Wednesday, May 16, 2012

A few words to start

The last few years, I have a lot of duty in contact with the storages and servers connected by technology SAN. Most of the systems with which I have to face a variety of EMC storages from large new VMAX and VNX, to small AX; as well as the same as those of Netapp and Hitachi. I work almost exclusively with the HP blade servers of different modifications connected over switches of Cisco and Brocade. I specifically dwelt on that hardware with which I work, because most of the methods used by me, as well as questions that I want to discuss in this blog will be oriented to these products. But, if someone needs help in management of other systems, I will be glad to help than I can.


A few words for what is this set of scripts: this is an attempt to build an API for fast and error-free operation with one or more fabrics. It will include:
1) A script to build by a single run any number of zone under the schemethe server_port - storage_port, at the entrance list of servers and a list of ports on the output - named server_storage_port zone, the zone is automatically created on the right switch.
2) Find zones by the server name or port of storage - the script works with a parameter list and any combination thereof, is possible change any parameter to
ALL.
3) Removal of zones to the same principle


A little background. About four years ago, my company has decided to actively implement
SAN technology in our systems. Prior to that, we had a great experience with NAS mainly from Netapp, as well as a few small SAN arrays from different vendors. Help us with the transition to SAN :) come from EMC. Their family had just appeared Symmetrix VMAX, with it all began.
And so, for control and monitoring systems were purchased from
EMC ECC is at the beginning of a pretty good management software for fabric, but when the number of switches in each fabric, reached more than 20, use it became practicaly impossible - while waiting time for any change in the configuration of zones was unacceptable large (more than an hour), and the probability of success is too low. Please note, that the new system - ProSphere this functionality is completely removed.
As a result, the question arose - how to manage the fabrics (Cisco and Brocade) where the number of switches in each go beyond 40 and the number of objects close to 1000. Of course you can use the software manufacturer of switches: Cisco Fabric Manager and Brocade DCFM, but first - use the two products is not very
comfortable (Brocade and Cisco, we are working in parallel to increase the stability of the system to vendors bugs), and second - after ECC configurations, not a aliases used and the only method of determining the object was WWN, to say the least that not so easy.

As a result of the above, I decided to start development of my
SAN management tools. The scripts that I'm here to spread, are processed and are adapted to the not specific network. They are written in BASH, and should easily be run on any UNIX system. If the script would need an additional package (for example expect), I'll try to give explanations on how to install it later.
This version is for communication with objects using SSH, but, if in the opinion of users, a more appropriate protocol is telnet or SNMP - I'll refining it under these protocols. However, for systems control the most powerful, safe and flexible it is SSH.

And so, the first script is designed to search zones (Soft Zone) in one or more fabrics. As an input parameter specifies a list of hosts, a name of storage and a list of ports, any of the parameters can be replaced with the word
ALL for a complete list of zones related to the server, port, or an array, respectively. The output of : list of zones combining the request objects to the division of networks (factories).
In the application of the key -v specifies WWN (s) included in each zone. The script uses WWN of objects stored in the configuration files and the current configuration of the zones extracted directly from the switches (one for each fabric).

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

Последние несколько лет я по долгу службы много соприкасаюсь с дисковыми массивами и серверами соединёнными по технологии 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 объектов хранимых в конфигурационных файлах и текущую конфигурацию зон извлекаемых непосредственно из коммуникаторов (один для каждого фабрика).