Wednesday, May 16, 2012

Несколько слов для начала

Последние несколько лет я по долгу службы много соприкасаюсь с дисковыми массивами и серверами соединёнными по технологии SAN. Основная масса систем с которыми мне приходится сталкиваться это разнообразные сотреджи от EMC от больших VMAX и новых VNX, до мелких AX; а так-же такие системы как Netapp и Hitachi. Из серверов я работаю почти исключительно с HP blade разных модификаций. Связывают это хозяйство воедино коммуникаторы от Cisco или Brocade. Я специально подробно остановился на том железе с которым мне приходится работать, поскольку большинство используемых мной методов, а так-же вопросы которые я хочу обсудить в этом блоге будут ориентированны на эти продукты. Однако если кому-то понадобится помощь в работе с другими системами, буду рад помочь чем смогу.


Несколько слов для чего предназначен данный набор скриптов: это попытка построить API для быстрой и безошибочной работы с одним или несколькими фабриками. Он включат:
1) Скрипт для построения за один проход любого количества зоне по схеме сервер-порт - сторедж-порт, на входе список серверов и список портов, на выходе - зоны с именем сервер_сторедж_порт, зоны автоматически создаются на правильных коммуникаторах.
2) Поиск зон по имени сервера, стореджа или порта - скрипт работает со писком параметров и в любой их комбинации, возможна замена любого параметра на ALL.
3) Удаление зон по тому-же принципу

Немного предыстории. Около четырёх лет назад моя фирма решила активно внедрять технологию SAN в наших системах. До этого у нас был богатый опыт работы с NAS в основном от Netapp, а так-же несколько разрозненных и небольших SAN массивов разных производителей. Помочь нам с переходом на SAN :) взялось EMC. В их семействе Symmetrix только что появился VMAX, с него всё и началось.
И так, для управления и мониторинга систем было куплено ECC от EMC которое в начале довольно неплохо справлялось с управлением фабриком, но когда количество коммуникаторов в каждом фабрике превысило 20, пользоваться им стало практически не возможно - время ожидания при любом изменении в конфигурации зон стало недопустимо велико (более часа), а вероятность успешного завершения слишком мала. Хочу заметить, что в новой системе - ProSphere данная функциональность полностью удалена.
В результате встал вопрос - как управлять фабриками (Cisco и Brocade) где количество коммуникаторовпревысило 40 в каждом а количество объектов приблизилось к 1000. Конечно можно было воспользоваться программами производителя коммуникаторов: Cisco Fabric Manager и Brocade DCFM, но во-первых - пользоваться двумя продуктами не слишком удобно (Brocade и Cisco у нас работают в параллель для повышения устойчивости системы к багам производителя), а во-вторых - после ECC в конфигурациях не осталось ни одного "алиеса" и единственным методом определения объекта стал WWN, что мягко говоря не слишком удобно.

Как результат описанного выше я решил начать разработку своих средств управления SAN системами. Скрипты которые я буду здесь выкладывать, являются переработанной и адаптированной под не специфическую сеть версией. Они написаны на BASH и должны без проблем выполнятся на любой UNIX системе. Если для работы скрипта будет необходим дополнительный пакет (например expect), я постараюсь дать разъяснения по его установке дополнительно.
Данная версия для коммуникации с объектами использует SSH, возможно, если по мнению пользователей, более подходящим протоколом будет telnet или SNMP - я займусь доработкой и под эти протоколы. Однако, для систем управления наиболее мощным, безопасным и универсальным является именно SSH.

И так, первый скрипт предназначен для поиска зон (Soft Zone) в одном или нескольких фабриках. В качестве входных параметров указывается список хостов, имя стореджа и список его портов, любой из параметров может быть заменён словом ALL для получения полного списка зон относящихся к данному серверу, массиву или порту соответственно. На выходе - список зон объединяющих объекты запроса, с разделением по сетям (фабрикам).
При применении ключа -v указываются WWN(ы) входящие в каждую зону. Скрипт использует для поиска WWN объектов хранимых в конфигурационных файлах и текущую конфигурацию зон извлекаемых непосредственно из коммуникаторов (один для каждого фабрика).

No comments:

Post a Comment