Показаны сообщения с ярлыком multipathing. Показать все сообщения
Показаны сообщения с ярлыком multipathing. Показать все сообщения

среда, 5 февраля 2014 г.

Solaris 10 MPxIO и Clariion CX3-20c. Дружим между собой

Есть сервер T4-4 с Solaris 10. Есть массив Clariion CX3-20c. Соединение через FC коммутаторы. К этому серверу подключены на самом деле два массива - один выше указанный и более новый Clariion (модель не помню уже).
Когда мы сделали тома на новом массиве и передали солярису - все отработало отлично, тома перешли под управление scsi_vhci. Но позже захотелось больше томов и их сделали на CX3-20c. И вот что получилось в итоге - тома с CX3 ушли под управление scsi_vhci, но в то же время появились устройства со статусом drive unknow, и висят они на физических путях fc:

#format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
       ...
       1. c4t5006016841E05F73d0
    /pci@400/pci@2/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0/fp@0,0/ssd@w5006016841e05f73,0
       2. c4t5006016041E05F73d0
    /pci@400/pci@2/pci@0/pci@1/pci@0/pci@2/SUNW,qlc@0/fp@0,0/ssd@w5006016041e05f73,0
       6. c9t600601601B031B003CFAE412BF55E311d0  /scsi_vhci/ssd@g600601601b031b003cfae412bf55e311
       7. c9t600601601B031B00020373D4BE55E311d0  /scsi_vhci/ssd@g600601601b031b00020373d4be55e311
   
Если копать дальше и посмотреть luxadm, mpathadm по этим устройствам, то будет видно, что тип этих непонятных устройств = LUNZ а не RAID или ARRAY.

В итоге копания на powerlink была найдена статья с названием:
"How do I remove LUNZ devices from a Solaris host?"

Идея в том, что бы убрать поведение массива по предоставлению из себя LUN ID 0.

Вот такие настройки на массиве можно сделать (выбрать WWN которые принадлежат нашему серверу и для них сделать такие настройки):
Обратите внимание на Array CommPath. Он стоит в Disabled сейчас (а по умолчанию Enabled и это есть наша проблема).

После установки параметров на массиве на солярис сделайте как обычно cfgadm -al и devfsadm -Cv. 

Благодарю за помощь в разбирательстве с проблемой коллег из Самары - Владимира Назарова и Сергея Попова.

понедельник, 8 апреля 2013 г.

Solaris. Смотрим работу multipathing

Частый вопрос - а работает ли у меня multipathing ?
Давайте посмотрим по шагам:
#fcinfo hba-port
тут мы увидим много интересного. Но для справки в основном.

#luxadm -e port
Посмотрим, что устройства в фабрике, состояние у них два - Connected или Not Connected.
Для нас нужно что были CONNECTED хотя бы два.

Я кстати напомню, что если мы имеем дело с массивом Active-Passive, то два пути напрямую в массив от сервера (а обычно все делают так - один кабель в первый контроллер, второй кабель во второй контроллер) - не дает никакой балансировки нагрузки. Массивы этой группы балансируют нагрузку исключительно на одном контроллере только. Далее вы увидите, что ПО Multipath эту ситуацию отслеживает и на пути, что подключены к контроллеру, который не является владельцем тома, трафик направлен не будет без причины (Tresspath, fail). Поэтому правильное подключение либо через коммутаторы либо 4 провода (по два в каждый контроллер).

#luxadm probe -p
Тут мы увидим устройства, что подключены и видны нам по нашим путям. Будет показано дерево. Если в пути физического устройства видим scsi_vhci - это как раз наш пациент, и это значит, что том под управлением драйвера Multipathing. Например:

Found Fibre Channel device(s):
  Node WWN:50060e80103ec920  Device Type:Disk device
    Logical Path:/dev/rdsk/c0t60060E80103EC920057FB7620000000Ad0s2
    Physical Path:
     /devices/scsi_vhci/ssd@g60060e80103ec920057fb7620000000a:c,raw

#luxadm display /dev/rdsk/c0t60060E80103EC920057FB7620000000Ad0s2
устройство взято из примера выше (Logical path).
Вот вывод для массива HDS HUS130:

DEVICE PROPERTIES for disk: /dev/rdsk/c0t60060E80103EC920057FB7620000000Ad0s2
  Vendor:               HITACHI
  Product ID:           DF600F        
  Revision:             0000
  Serial Num:           92256098000A  
  Unformatted capacity: 1048576.000 MBytes
  Write Cache:          Enabled
  Read Cache:           Enabled
    Minimum prefetch:   0x0
    Maximum prefetch:   0x0
  Device Type:          Disk device
  Path(s):


/dev/rdsk/c0t60060E80103EC920057FB7620000000Ad0s2
  /devices/scsi_vhci/ssd@g60060e80103ec920057fb7620000000a:c,raw
   Controller           /devices/pci@0/pci@0/pci@8/pci@0/pci@9/SUNW,emlxs@0/fp@0,0
    Device Address              50060e80103ec920,3
    Host controller port WWN    10000000c96b5d01
    Class                       primary
    State                       ONLINE
   Controller           /devices/pci@0/pci@0/pci@8/pci@0/pci@9/SUNW,emlxs@0/fp@0,0
    Device Address              50060e80103ec929,3
    Host controller port WWN    10000000c96b5d01
    Class                       primary
    State                       ONLINE
   Controller           /devices/pci@0/pci@0/pci@8/pci@0/pci@1/SUNW,emlxs@0/fp@0,0
    Device Address              50060e80103ec921,3
    Host controller port WWN    10000000c96b5e08
    Class                       primary
    State                       ONLINE
   Controller           /devices/pci@0/pci@0/pci@8/pci@0/pci@1/SUNW,emlxs@0/fp@0,0
    Device Address              50060e80103ec928,3
    Host controller port WWN    10000000c96b5e08
    Class                       primary
    State                       ONLINE

Обратите внимание на строки State - ONLINE и Class - PRIMARY.
Вот для массива типа Active-Passive мы увидим на одной паре Class - Standby и эти пути не будут получать трафик без причины.
В нашем случае у нас массив Active-Active и все пути работают.

Идем далее:
iostat - у нас есть две опции X и Y для просмотра статистики по путям.
#iostat -zX 5

                  extended device statistics                
device      r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b
ssd1.fp2  572.7  927.0 1512.6 30438.0  0.0  0.0    0.0   0   0
ssd1.fp4  576.9  866.4 1489.5 30486.8  0.0  0.0    0.0   0   0

#iostat -zY 5


                    extended device statistics                  
device          r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b
ssd1.t1.fp2   237.6  340.7  648.0 14646.4  0.0  0.0    0.0   0   0
ssd1.t2.fp2   241.0  321.9  621.5 14752.7  0.0  0.0    0.0   0   0
ssd1.t3.fp4   242.6  269.6  646.6 10917.1  0.0  0.0    0.0   0   0
ssd1.t4.fp4   247.0  333.5  653.4 13982.3  0.0  0.0    0.0   0   0


fp2 и fp4 - это наши пути, которые работают одновременно на трафик с массивом.






пятница, 13 июля 2012 г.

Solaris + EMC VMAX. Multipathing, Soft Partition, UFS

Solaris 10U10. M9000. К нему подключен VMAX. Этот массив относится к классу High End и имеет все атрибуты этих машин. Кроме прочего, для лучшей производительности EMC рекомендует создавать множество маленьких групп дисков (по 4 в зеркале в моем случае и таких групп было 60 штук). Что же видит солярис в этом случае ? Да - 60 LUN-ов. Точнее видит он их 120 штук. Поэтому включаем сначала Multipathing. Можно было бы сделать stmsboot -e и всё. Но это не работает здесь. Вот что делаем. Правим файл /kernel/drv/scsi_vhci.conf. У меня он стал вот таким:


name="scsi_vhci" class="root";
load-balance="round-robin";
auto-failback="enable";
device-type-scsi-options-list = "EMC     SYMMETRIX", "symmetric-option";
symmetric-option=0x1000000;

Между EMC и SYMMETRIX - пять пробелов.

ПРоверим и если не так - поправим - в файле /kernel/drv/fp.conf строку (должно быть так):
mpxio-disable="no";

/etc/system:

set md_mirror:md_resync_bufsz=2048
set md:mirrored_root_flag=1
set noexec_user_stack=1
set ssd:ssd_max_throttle=20
set sd:sd_max_throttle=20
set ssd:ssd_io_time=0x3c
set sd:sd_io_time=0x3c
set sq_max_size=250
set rlim_fd_max=65536


Перезагрузка. Почистим devfsadm -Cv. Теперь format видит 60 моих томов. Скриптами я получаю строку с перечнем устройств. Далее надо поставить метки на каждый.
Далее я делаю страйп на все 60 томов : metainit d100 1 60 устройство1 устройство2 ... устройство60. Но клиент не хочет что бы все 5 ТБ (такой общий размер страйпа получился) были отданы в одну файловую систему. Требование приложения - только UFS (точнее не так - НЕ ZFS!). У нас есть страйп - d100. Из него вырезаем кусок нужного размера при помощи Soft partition: metainit d200 -p d100 500gb
далее newfs /dev/md/rdsk/d200 ну и mount.

А добавить место к текущему разделу Soft Partition очень просто:
metattach d200 10gb

Запустим vdbench на создание 100 файлов по 10ГБ каждый. Около 26 тысячи IOPS, около 430 МБ в секунду. Нормально. В страйпе 240 дисков в итоге (60 групп по 4 диска в группе 2-way mirror). Диски FC 15 000 rpm.

PS: странное поведение было до этого. Я создал metaset -s vmax из этих же 60 кусков, после в этом metaset сделал тот же страйп и вырезал кусок soft partition. В этом варианте я не получал более 10 000 iops и 100 МБ в секунду. Видно что работает только один путь из 4-х FC. Убил метасет, создал страйп как описал выше и все встало на свои места. Баг или глюк - не могу сказать. Повторять было некогда ситуацию.

вторник, 18 октября 2011 г.

SLES 11. HP P2000 SAS. Multipathing

SLES 11 SP1. Две карты SAS, внешний массив HP P2000 SAS.
На массиве делаем Vdisk, тома, отдаем хостам.
На хосте надо установить ПО HPDmultipath.
Настройка сводится к :
1. В файл /etc/modprobe.conf.local добавить строку:
options mptsas mpt_cmd_retry_count=10 mpt_disable_hotplug_remove=1

2. /etc/multipath.conf
Поправить описание массива P2000 на
product                 "P2000 G3 SAS"

3. Запустить multipath без ключей для создания устройств mapper
4. Запустить multipath -l
это покажет ID тома
5. в файл /etc/multipath.conf внести секцию

multipaths {
multipath {
        wwid 3600c0ff000122866c1ff9b4e0100000 - < это тот самый ID
        alias db1
        path_grouping_policy failover
}
}

6. делаем файловую систему
mkfs.ext3 /dev/mapper/db1

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

SLES и RDAC driver

Частая связка оборудования: x86 + StorageTek требует установки драйвера, отличного от multipath-tools, который входит в состав дистрибутива. Причина простая, storagetek при наличии двух контроллеров не работает по схеме active-active. Multipath-tools при такой схеме видит оба пути к LUN, но отрабатывает их неправильно (может быть, конечно, я с ним не разобрался). Но в любом случае, я нашёл драйвер RDAC на сайте SUN. Под массивы 2500 и 6000-й серии драйверы разные. Более того, для SLES9 одна версия (еще поддерживается scsi_request), для SLES10 такого вызова уже нет. Зато есть новая версия.
После установки драйвера нужно прописать новую строку в grub (потому как собирается новый initrd). Перегрузить сервер.
Далее:
#mppUtil -a
Hostname = prima
Domainname = N/A
Time = GMT 10/13/2008 03:00:52

---------------------------------------------------------------
Info of Array Module's seen by this Host.
---------------------------------------------------------------
ID WWN Name
---------------------------------------------------------------
0 600a0b800048983600000000486a8d33 STK1
---------------------------------------------------------------

prima:~ # mppUtil -S
H3C0T0 Active Active STK1
H0C0T0L000 Up H1C0T0L000 Up

Missing Arrays
There are no missing arrays

вот эти два пути у меня сейчас видны как живые и здоровые. Multipath-Tools же видит живым только один путь - тот контроллер, к которому LUN привязан. И не отрабатывает отказ этого активного пути!
Найдём устройство, которое соответствует нашему LUN:
#/opt/mpp/lsdev
Array Name Lun sd device
-------------------------------------
STK1 0 -> /dev/sdc

ну и вот так
#cat /proc/scsi/scsi

Посмотрим файл /etc/mpp.conf. Подробности здесь http://docs.sun.com/source/820-4738-10/chapsing.html.

Далее делаем файловую систему, монтируем. Далее стоит проверить, что работает... Отрывать кабельки и смотреть...

Добавление 1.
Для сборки драйвера нужно быть внимательным в версиях драйверов.
Обязательно добавить из /opt/mpp/modprobe.confappend в /etc/midprobe.conf.local параметры драйвера qla2xxx
Делать initrd /sbin/mk_initrd можно (перепишет текущий) но лучше использовать /opt/mpp/setupdriver.SuSe

вторник, 19 февраля 2008 г.

Solaris. Включаем MultiPathing

В Solaris 9, 10 что бы включить Multipathing, используем stmsboot -e. Что бы отключить -d.
В 10-й версии есть полезные ключи - выбор подсистемы для включения/отключения. Например, очень полезно отключить на системе Fiber (fp) если подключение к внешним массивам идет по одному пути (один HBA, один контроллер в массиве).

Потребуется перезапуск ОС.