понедельник, 10 ноября 2008 г.

Настройка СХД HP MSA1500CS через CLI

Недавно встретился с необходимостью настройки системы хранения даных (СХД) - HP MSA1500CS. Вся проблема заключалась в том что даный продукт не поддерживает LAN и соответствено не может администрироваться через фиксированый IP адресс по HTTP. А затем после чтения различного рода документации и консультации с представительством HP Kazakhstan, было принято решение о настройке даной СХД с помощью CLI (Command Line Interface). Именно о специфике настройки СХД через CLI я и хочу поговорить в сегодняшней заметке.


CLI (Command Line Interface), говоря простым языком - Интерфейс командной строки, то есть в нашем случае управление СХД через дата-кабель (COM => RJ45) подключеный к ноутбуку на котором происходит соединение к СХД.
Соединение можно проводить как стандартным Hyper-Terminal, так и с помощью SecureCRT как это делал я например. Настройки соединения следующие:

Bits per Second: 19200
Data bits: 8
Parity: None
Stop bits: 1
Flow control: None

При успешном соединении мы попадаем в тот самый CLI, а выглядит он просто

CLI>

Поменять это приглашение вы можете так

CLI> set prompt MSA-1
MSA-1>

После даного приглашения вы и должны вводить команды управления, которые делятся на 2 вида
- Возможные глаголы (Например: copy, delete, set, add)
- Возможные существительные (Например: disk, unit, acl, global)
Команды так и пишутся [глагол] [существительное] [параметры]

Я не буду описывать все команды, а лишь приведу те что мне понадобились.
Для начала представим ситуацию что настройку СХД будем осуществлять с нуля.
Смотрим информацию о существющих дисковых полках и дисках в них.

MSA-1> show disks
Disk List: (box,bay) (B:T:L) Size Speed Units
Enclosure 1: SATA (0:03:00) PROLIANT 8LCE 2.02
Disk101 (1,01) (0:03:01) 500.0GB 160 MB/s none
Disk102 (1,02) (0:03:02) 500.0GB 160 MB/s none
Disk103 (1,03) (0:03:03) 500.0GB 160 MB/s none
Disk104 (1,04) (0:03:04) 500.0GB 160 MB/s none
Disk105 (1,05) (0:03:05) 500.0GB 160 MB/s none
Disk106 (1,06) (0:03:06) 500.0GB 160 MB/s none
Disk107 (1,07) (0:03:07) 500.0GB 160 MB/s none
Disk108 (1,08) (0:03:08) 500.0GB 160 MB/s none
Disk109 (1,09) (0:03:09) 500.0GB 160 MB/s none
Disk110 (1,10) (0:03:10) 500.0GB 160 MB/s none
Disk111 (1,11) (0:03:11) 500.0GB 160 MB/s none
Disk112 (1,12) (0:03:12) 500.0GB 160 MB/s none
Enclosure 2: SATA (1:03:00) PROLIANT 8LCE 2.02
Disk201 (2,01) (1:03:01) 500.0GB 160 MB/s none
Disk202 (2,02) (1:03:02) 500.0GB 160 MB/s none
Disk203 (2,03) (1:03:03) 500.0GB 160 MB/s none
Disk204 (2,04) (1:03:04) 500.0GB 160 MB/s none
Disk205 (2,05) (1:03:05) 500.0GB 160 MB/s none
Disk206 (2,06) (1:03:06) 500.0GB 160 MB/s none
Disk207 (2,07) (1:03:07) 500.0GB 160 MB/s none
Disk208 (2,08) (1:03:08) 500.0GB 160 MB/s none
Disk209 (2,09) (1:03:09) 500.0GB 160 MB/s none
Disk210 (2,10) (1:03:10) 500.0GB 160 MB/s none
Disk211 (2,11) (1:03:11) 500.0GB 160 MB/s none
Disk212 (2,12) (1:03:12) 500.0GB 160 MB/s none

Notes:
The speed is the currently negotiated speed to the disk. This may
be less than the maximum speed supported by the device due to bus
faults, loss of signal integrity, etc.

И так мы видим что MSA определил 2 дисковые полки по 12 дисков объемом в 500Гб на каждой полке. Итого 24 диска в общем.
В разделе Units мы видим none на всех дисках. Это значит что ниодин диск пока не построен в LUN'ы. (Unit)
Disk101 - означает что это первая дисковая полка и первый жесткий диск. Disk211 - вторая дисковая полка и 11 диск.
Очень полезным в будующем может оказаться для вас команда locate которая позволяет подсветить какой либо избраный диск, диапозон дисков, все диски.
То есть например мы столкнулись с ситуацией когда вышел из строя один из дисков и необходимо его срочно заменить. Чтобы его долго не искать среди кучи остальных (и мы знаем имя диска, например это disk108), мы можем дать простую команду:

MSA-1> locate disk disk107

Давайте теперь создадим пару лунов. Сразу же хочу отметить что 1 создаваемый нами LUN не должен превышать объем в 2 Тб !!!

MSA-1> add unit 1 data="disk101-disk104" raid_level=0 stripe_size=64
First volume to be configured on these drives.
Logical Unit size = 1907624 MB
RAID overhead = 0 MB
Total space occupied by new unit = 1907624 MB
Free space left on this array: = 0 MB
Unit 1 is created successfully.

MSA-1> add unit 2 data="disk105-disk109" raid_level=5 stripe_size=64
First volume to be configured on these drives.
Logical Unit size = 1907624 MB
RAID overhead = 476906 MB
Total space occupied by new unit = 2384530 MB
Free space left on this array: = 0 MB
Unit 2 is created successfully.

MSA-1> add unit 3 data="disk201-disk202" raid_level=1 stripe_size=64
First volume to be configured on these drives.
Logical Unit size = 476906 MB
RAID overhead = 476906 MB
Total space occupied by new unit = 953812 MB
Free space left on this array: = 0 MB
Unit 3 is created successfully.

Итак, мы создали 3 LUN'a (units) в RAID'ах 0,5 и 1 соответствено. Давайте посмотрим теперь например на 1-ый.

MSA-1> show unit 1Unit 1:
In PDLA mode, Unit 1 is Lun 2; In VSA mode, Unit 1 is Lun 1.
Unit Identifier :
Device Identifier : 600508B3-00951790-C9886E34-87A5004E
Preferred Path : Controller 1 (this controller)
Cache Status : Enabled
Max Boot Partition: Enabled
Volume Status : VOLUME OK
4 Data Disk(s) used by lun 1:
Disk101: Box 1, Bay 01, (B:T:L 1:03:01)
Disk102: Box 1, Bay 02, (B:T:L 1:03:02)
Disk103: Box 1, Bay 03, (B:T:L 1:03:03)
Disk104: Box 1, Bay 04, (B:T:L 1:03:04)
Spare Disk(s) used by lun 1:
No spare drive is designated.
Logical Volume Raid Level: NO FAULT TOLERANCE (RAID 0)
stripe_size=64kB
Logical Volume Capacity : 1,907,624MB

Теперь нам необходимо настроить ACL. Например у нас есть 3 сервера подключеных через SAN коммутатор к СХД по оптоволоконому каналу.
Для начала нам необходимо настроить так называемый profile.

MSA-1> add connection server-1 wwpn=10000000-xxxxxxxx profile=linux
Connection has been added successfully.
Profile linux is set for the new connection.

MSA-1> add connection server-2 wwpn=10000000-xxxxxxxx profile=linux
Connection has been added successfully.
Profile linux is set for the new connection.

MSA-1> add connection server-3 wwpn=10000000-xxxxxxxx profile=linux
Connection has been added successfully.
Profile linux is set for the new connection.

Проверяем командой show

MSA-1> show connections

Connection Name: server-1
Host WWNN = 20000000-xxxxxxxx
Host WWPN = 10000000-xxxxxxxx
Profile Name = Linux
Unit Offset = 0
Controller 1 Port 1 Status = Online

Connection Name: server-2
Host WWNN = 20000000-xxxxxxxx
Host WWPN = 10000000-xxxxxxxx
Profile Name = Linux
Unit Offset = 0
Controller 1 Port 1 Status = Online

Connection Name: server-3
Host WWNN = 20000000-xxxxxxxx
Host WWPN = 10000000-xxxxxxxx
Profile Name = Linux
Unit Offset = 0
Controller 1 Port 1 Status = Online

Здесь мы создали 3 соединения-алиаса - server-1,2,3 и присвоили каждому уникальный идентификатор - WWN адресс HBA-адаптера. С помощью этого мы теперь будем строить правила доступа.
Чтобы все сервера не видели все 3 диска надо настроить ACL так чтобы каждый сервер мог видеть только те диски, которые ему положено видеть.
Теперь делаем так:

MSA-1> show acl
ACL is disabled. To enable ACL use 'add acl'.


Все правильно! Правил пока что нет. Сейчас будем их создавать.

MSA-1> add acl connection=server-1 unit=1
Enabling ACL.
Allowing 10000000-xxxxxxxx access to unit 1.

MSA-1> add acl connection=server-2 unit=2
Allowing 10000000-xxxxxxxx access to unit 2.

MSA-1> add acl connection=server-3 unit=3
Allowing 10000000-xxxxxxxx access to unit 3.

Вот и все. Теперь каждый из серверов будет видеть и работать только с тем диском который положено ему видеть.
Это можно проверить зайдя на сервер и дать команду fdisk -l (если это Linux)
На этом я закончу эту уже длинную заметку о настройке системы хранения даных HP MSA1500CS через CLI.
Допольнительную информацию вы можете найти на сайте компании HP: http://www.hp.com/

Комментариев нет: