6 марта 2010 г.

Афоризмы Дейкстры

В посте про маршрутизацию в SAN я упоминал, что протокол FSPF использует алгоритм Дейкстры. Вот несколько фактов об этом интересном человеке.

Э́дсгер Ви́бе Де́йкстра (Edsger Wybe Dijkstra) известен своим вкладом в теорию графов, создание операционной системы THE, появление семафоров для синхронизации процессов в многозадачных системах, методологию структурного программирования, разработку языка программирования Алгол. Этот острый на язык человек также является автором широко известных высказываний о программировании и компьютерных системах, многие из которых впоследствии стали народными афоризмами.

Приведу здесь некоторые:
  • “Приходится признать, что главная задача компьютерной науки — «не запутать все до неузнаваемости» — так и не была достигнута. Увы, большинство наших систем слишком сложны, чтобы не тревожиться об их состоянии, они слишком хаотичны и запутанны, чтобы с ними можно было чувствовать себя уверенно и спокойно”
  • “Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление”
  • “Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление”
  • “Вопрос «умеет ли компьютер думать» имеет не больше смысла, чем вопрос «умеет ли подводная лодка плавать»”
  • “Проекты, предлагающие программирование на естественном языке, гибельны по своей сути”
  • “Невозможно заточить карандаш тупым топором. Столь же тщетно пытаться сделать это десятком тупых топоров”
  • Решение СССР клонировать компьютеры IBM/360 при разработке серии ЕС ЭВМ было названо Дейкстрой, который в то время работал на одного из конкурентов IBM, “величайшей диверсией Запада против СССР”

2 марта 2010 г.

Кем быть

Нужные работники столяры и плотники...  Работают в соответсвии с должностными инструкциями на основании записи в трудовой книжке. Хорошие специальности, понятные.
А вот есть другие профессии, ну совсем не понятные. Для многих из нас известная история про папу тапера в борделе давно уже не анекдот, а суровая правда. Ну на самом деле, на вопрос "чем занимаешься?" порой, трудно понятно ответить даже своему брату IT-шнику, не то что человеку далекому от этих высоких сфер..

Ситуацию усугубляет полная неразбериха с названиями должностей. Размытые силуэты "менеджеров" и "консультантов" вряд ли когда-нибудь создадут четкое представление о роде занятий человека, носящего сей гордый титул. В западных компаниях еще круче. Позиция, на которую берут человека, обычно называется по английски. А вот перевод названия на великий-могучий - это занятие, требующее смекалки и выдумки.
Вот, например, возьмем меня... рядового Solutions Architect. Большой Англа-Русский словарь и творческий размах - это все, что было нужно для создания такого шедевра в моей трудовой книжке:


"Специалист по принятию решений"...  принять решение или , чисто, вопросы порешать (solutions)?    это комне, обращайтесь...  ;)

Ну, и немного о том, чем все-таки на самом деле приходится заниматься. Лет 5 назад с какой-то рабочей проблемой пришла одна из наших менеджеров, очень, кстати, милая девушка, и сказала (дословно): "Вася, меня все послали на%^& и я пришла к тебе...".  С тех пор ко мне все ходят и ходят...

1 марта 2010 г.

Маршрутизация и агрегирование каналов в SAN

Об утилизации каналов и локализации трафика здесь...

Маршрутизация – это процесс определения точного пути передачи фреймов между оконечными устройствами. Для построения таблиц маршрутизации в коммутаторах фабрики используется протокол FSPF (Fabric Shortest Path First), основанный на алгоритме Дейкстры (Dijkstra). Каждому ISL в фабрике ставится в соответствие значение веса (cost), зависящее от Transfer Rate линка. Вес линка можно установить и вручную. Общий вес пути равен сумме весов всех ISLs из которых он состоит. При наличии нескольких возможных путей между сервером и дисковым массивом, данные всегда передаются по пути с наименьшим весом.


В случае, если между двумя оконечными устройствами существуют сразу несколько путей с одинаковым весом, решение о доставке по конкретному маршруту принимается на основании следующих политик:

№
Brocade
Cisco
Описание
1
Port-based
не использ.
Маршрут выделяется на основании хешей номера входящего порта и Domain ID следующего коммутатора.
2
Device-based
Flow based
Маршрут выделяется на основании хешей FCID порта устройства-источника (Source ID, S_ID) и FCID порта устройства-назначения (Destination ID, D_ID).
3
Dynamic Path Selection (DPS)
Exchange-based
Маршрут выделяется на основании хешей FCID порта устройства-источника, FCID порта устройства-назначения и номеров FCP обмена (Originator eXchange ID, OXID и Receiver eXchange ID, RXID).

Важно понимать, что политики маршрутизации различаются только принципами, по которым парам портов взаимодействующих оконечных устройств на некую продолжительность времени выделяется один из эквивалентных путей передачи. Политики 1 и 2 никак не зависят от нагрузки или типа ввода-вывода. По сути, маршрут выдается на все время, пока устройства будут подключены к фабрике (имеется ввиду логическое подключение, например, перегрузка драйвера HBA может привести к изменению маршрута).
Продолжительность выделения маршрута в политике 3 зависит от объема данных FCP-обмена  (exchange) и, следовательно, может варьироваться в очень широких пределах. Поэтому данные различных приложений будут неравномерно загружать доступные пути.

Из вышесказанного следует, что маршрутизация в фабрике не может балансировать нагрузку (load-balancing). Применяемые политики позволяют только с той или иной степенью равномерности разделять нагрузку (load-sharing) между эквивалентными с точки зрения FSPF путями.

Однако, в коммутаторах Brocade существует способ балансировки нагрузки на уровне фабрики. Имеется ввиду агрегирование каналов двух непосредственно соединенных друг с другом коммутаторов, которое называется транкинг (Trunking). При передаче данных по логическому агрегированному каналу, коммутаторы оптимальным образом распределяют фреймы по линкам, составляющим транк (до 4x каналов в транке в 1/2Gbps и до 8x в 4/8Gbps коммутаторах). Т. е. балансировка нагрузки происходит на уровне фреймов размером 2KB, что достаточно эффективно. Между несколькими транками, так же, как и между обычными ISL, возможен load-sharing на уровне маршрутизации.


Функциональность агрегирования каналов, реализованная в коммутаторах Cisco, называется Port Channel. К сожалению, в отличие от Brocade Trunking, она не балансирует нагрузку на уровне фреймов. По сути, это просто дополнительная опция к политикам маршрутизации Exchange-based или Flow-based. Нагрузка просто разделяется между линками, составляющими агрегированный канал, на уровне FCP-обменов или потоков. Однако, в отличие от неагрегированных линков, таблицы маршрутизации Port Channel являются общими для всех линков, составляющих логический канал (до 16x). Поэтому при разрыве или добавлении физического линка, протоколу FSPF нет необходимости прерывать передачу трафика во всей фабрике и начинать достаточно ресурсоемкую процедуру обследования путей.
Обратите внимание на то, что функциональность Cisco Trunking используется совсем в другом контексте и не имеет никакого отношения к агрегированию каналов.

27 февраля 2010 г.

Brocade Persistent PID

В соответствии со стандартами Fibre Channel, 24-битный адрес FCID оконечных устройств состоит из Domain ID (первые 8 бит) и Port ID (PID) (последние 16 бит, которые состоят из 8 бит Area ID и 8 бит Node ID). В коммутаторах Brocade, PID зависит от номера физического порта, к коротому подключены HBA и дисковые массивы. Поэтому при переключении в другой порт коммутатора всегда меняется FCID устройства, что, в свою очередь, требует перестройки путей в HP-UX и AIX (в свежих версиях этих ОС, вроде, эту проблему побороли).

И вот, наконец-то свершилось. Появилась замечательная возможность использования WWN-Based Persistent PID. Эта функциональность позволяет на этапе PLOGI гарантировать привязку PID оконечных устройств не к номеру порта, а к их уникальным WWN. Теперь у нас есть возможность подключать оптические кабели доступа к оконечным устройствам в любой порт коммутатора не влияя на их PID. Опция включается следующим образом:


Синтаксис команд прост и комментировать их я не буду.


Работать Persistent PID будет только с FOS версии 6.3 и только на коммутаторах DCX, DCX-4S, 5100 и 5300. Естественно, использовать ее можно будет исключительно в рамках одного физического или логического коммутатора.

26 февраля 2010 г.

Тим Беренс-ли

Мой календарь подсказывает, что именно сегодня 26 февраля 19 лет назад известный ученый Тим Беренс-ли (Tim Berners-Lee), который общепризнанно считается "отцом Internet", представил коллегам в институте CERN свой первый прототип web-браузера. Я к своему стыду достаточно мало знал об этом выдающемся человеке и прочитал несколько его биографий. Что ж, надо отметить, что Тим презабавнейший дядька. Вот несколько интересных фактов.

Я всегда почему-то думал, что раз Тим "придумал" Internet, то он обязательно должен быть американцем. Ан нет, он англичанин. Конечно, сейчас он живет в США (преподает в MIT), но переехал туда достаточно поздно (в 1994 г.), когда ему уже было под 40.

Когда он учился в Оксфордском университете, его лишили доступа к компьютеру лаборатории ядерной физики за то, что... он играл в игрушки. Правда, в каких-то биографиях указывается, что все-таки за "проведение хакерской атаки". Я лично с большей охотой верю первой версии...

Тим известен своей манерой очень быстро говорить. Так ли это, можно увидеть, например, на этом видео. Я особого криминала не узрел. Возможно стало сказываться благотворное влияние  многолетнего опыта преподавания. Как бы то ни было, ходят байки, что когда Беренс-ли работал в CERN, некоторые его коллеги специально общались с ним только по-французски, надеясь таким образом снизить темп лавины его слов.

Тим считает, что в будущем понятие WWW (World Wide Web) будет заменено понятием GGG (Giant Global Graph). «Гигантский глобальный граф», звучит достаточно жутко... мне почему-то сразу представляется краб огромных размеров, захватывающий Вселенную. Похоже жена права, я параноик %)

Однажды, перед огромной аудиторией ему пришлось решать проблемы со своим компьютером. После того, как трудность была преодолена, он заявил: "Разве стоял бы я здесь перед вами, если бы оно и так работало как надо?".

"Если бы я знал тогда, сколько людей будут указывать URL,то не стал бы использовать в синтаксисе два слэша",- Тим Бернерс-Ли.

25 февраля 2010 г.

Утилизация каналов и локализация трафика в SAN

О переподписке SAN здесь...

Характеристикой текущего уровня нагрузки на канал является его утилизация. Мы уже обсуждали эту метрику в разделе Utilization. Напомню, что она определяется как процентное отношение текущего значения Bandwidth линка или агрегированного канала к его максимальной полосе пропускания. В качестве максимальной Bandwidth обычно берется теоретическая, а не экспериментальная величина. Например, для каналов 4Gbps она равна не ~360MB/s, а 400MB/s.

Приведу пример: сервер, загружающий 60MB/s линка 4Gbps, утилизирует его всего на 15% ( (60/400)*100% ). Как вы помните, оптимальным значением утилизации считается 72%. Это значение может быть изменено с учетом нагрузки в пиковые периоды или в расчете на ее значительное увеличение в ближайшем будущем.


Все производители коммутаторов для сетей SAN позволяют узнать текущее значение Bandwidth и оценить утилизацию каналов. Для получения расширенных отчетов о производительности часто необходимы дополнительные лицензии.

Для снижения уровня утилизации линков следует подключать оконечные устройства таким образом, чтобы количество каналов передачи было минимальным. В этом смысле идеальной является конфигурация, в которой весь трафик локализован внутри коммутаторов. Например, подключение HBAs и портов дисковых массивов, с которыми взаимодействует сервер, к одному FC коммутатору. Дополнительным преимуществом такой конфигурации также будет являться уменьшение количества коммутирующих элементов, через которые придется пройти данным. Это приведет к уменьшению задержек.
Более широко посмотрев на проблему, можно говорить о полезности локализации трафика внутри фабрик, как физических, так и виртуальных (Cisco VSANs и Brocade Virtual Fabrics).
В случае коммутаторов Brocade, мы имеем еще одну возможность локализации трафика внутри группы портов одного модуля ASIC. За подробностями отсылаю к многочисленным документам, непосредственно посвященным оптимизации сетей хранения.

К сожалению, в большинстве случаев локализовать весь трафик не удается. Это обычно связано либо с требованиями к географическому разнесению серверов и устройств хранения, либо просто с недостаточным количеством портов на отдельных коммутаторах. Иногда дисковые массивы и серверы намеренно подключаются к различным, логически выделенным именно для этих целей коммутаторам. Такой подход позволяет унифицировать правила подключения устройств разных типов и, соответственно, заметно упростить управление всей SAN.

О маршрутизации и агрегирование каналов в SAN здесь...

22 февраля 2010 г.

О поисковых запросах и кризисе

Сегодня я случайно наткнулся на такую забавную штуку, как Google Trends и попробовал с ней немного поэкспериментировать.. Так как в данный момент моя сфера интересов в основном находится в стораджевом мире, я попробовал следующий запрос "netapp storage, hitachi storage, emc storage, ibm storage, hp storage". В итоге я получил такую картинку:


Как трактовать результаты? Ну, во первых, надо знать о том, что верхний график показывает количество поисковых запросов.Для удобства оценки я поставил нормировку результатов по минимальному графику. NetApp считается за 1. Остальные места распределились очень предсказуемо. Самым раскрученным брендом оказался HP. Понятно, что такие гигантские показатели достигнуты не только за счет запросов о системах хранения данных, но и, банально, о ближайших складах бумаги и картриджей. IBM сильно отстает от HP, но все же занимает почетную вторую строчку в рейтинге. И тоже не только за счет своих дисковых массивов. В общем, эксперимент не удался. Нужен какой-то более умный запрос, позволяющий более четко сфокусироваться на системах хранения данных. При этом он должен быть достаточно популярным. Так, запрос "HDS storage" обработан быть не может, т. к. "do not have enough search volume to show graphs". Я пока такого запроса не придумал.

Хорошо, давайте посмотрим на вендоров, которые работают только в сегменте хранения данных и исключим HP и IBM: "netapp|"Network appliance", emc|"emc corporation", hds|"hitachi data systems"".


Для чистоты эксперимента я включил как краткие, так и полные имена компаний, хотя, конечно, краткие генерят принципиально большее количество поисковых запросов.
Итак, как вы видите, результаты тоже достаточно предсказуемы. Чаще всего у Гугла интересуются компанией EMC. Количество запросов о NetApp и HDS приблизительно одинаково.

Нижний график показывает частоту упоминаний в масс-медиа. Прискорбно отметить, что HDS по этому параметру очевидный аутсайдер. Надо чаще хвастаться своими успехами.


Основным ньюз-мейкером остается EMC.


Запросы из России по поводу netapp, hds, emc не являются частыми. Зато интересно отметить, что наша Родина является лидером по запросам "hp storage". На втором месте Вьетнам... ;)


Конечно, к приведенным результатам стоит относится с большой долей скепсиса. Google Trends может только косвенно отражать реальную популярность того или иного бренда.

Ну и в заключение картинка с Google Finance. Похоже, что те, кто вещает об окончании кризиса отчасти говорят правду. По крайней мере, на сегодняшний момент финансовые показатели компаний достигли или даже превысили значения первой половины 2008 г. Хотя, к этому тоже стоит относиться с осторожностью..  ;)


Добавлено
Кстати, оказывается что Google Trends используется в проекте Google Flu для предсказания динамики интенсивности заболевания гриппом в разных странах.

21 февраля 2010 г.

Переподписка в SAN - часть 2

Первая часть здесь...

С точки зрения оконечных устройств переподписка обычно рассматривается в следующих контекстах:
  • Fan-out характеризует требования порта устройства хранения к соответствующим HBAs. Оно равно отношению суммы Transfer Rates всех HBAs, обменивающихся информацией с одним из портов дискового массива, к скорости этого порта. При использовании Dual или Quad HBAs, подключенные порты, конечно, необходимо  учитывать индивидуально.

Максимальные значения Fan-out определяются ограничениями самого дискового массива. В конфигурациях с большим количеством серверов необходимо учитывать, что кроме Fan-out на порт дискового массива, существуют ограничения на количество подключений HBAs в расчете на каждую SP, а также на все хранилище. В таблице показаны значения Fan-out для дисковых массивов Clariion CX4 при использовании Flare различных версий.

Модель CX4
Fan-out Flare R29/R28.7
На FC порт
На 1Gbit/s iSCSI порт
На 10Gbit/s iSCSI порт
На SP
На весь массив
CX4-120
256/256
256/128
256/NA
256/128
512/256
CX4-240
256/256
256/256
512/NA
512/256
1024/512
CX4-480
256/256
256/256
1024/NA
1024/256
2048/512
CX4-960
512/256
256/256
1024/NA
4096/512
8192/1024


Оптимальные значения этой метрики сильно зависят от нагрузки с серверов.
  • Fan-in характеризует требования HBA к соответствующим портам устройства хранения. Оно равно отношению суммы Transfer Rates портов дисковых массивов, обменивающихся информацией с одной из HBA, к скорости этой HBA.

Максимальные значения Fan-in определяются ограничением самой HBA. Типичным значением является 4:1.


Fan-out и Fan-in обычно анализируются совместно с ISL oversubscription. Если Fan-out больше значения переподписки, то при возникновении проблем следует распределить нагрузку по большему количеству портов дискового массива. Если наоборот, значит необходимо добавить ISLs, переключить порты оконечных устройств, чтобы локализовать трафик или подключить порты дискового массива к платам с низким уровнем переподписки.


Очень важно понимать, что высокий уровень любой из вышеперечисленных метрик переподписки сам по себе не указывает на наличие каких-либо проблем в SAN. Он лишь является индикатором того, что соответствующие компоненты сети потенциально могут быть перегружены. Низкий уровень нагрузки оконечных устройств и локализация трафика в рамках самих коммутаторов, обсуждаемые в следующем разделе, позволяют без каких-либо проблем использовать сети SAN с высоким значением переподписки.

Об утилизация каналов и локализация трафика в SAN здесь...