Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)

вторник, 16 октября 2018 г.

Пример настройки сервера Redhat/Oracle Linux 7 с адаптером Emulex для работы с массивом (HPE 3PAR)

Шпаргалка основана на "HPE 3PAR Red Hat Enterprise Linux, CentOS Linux, Oracle Linux, and Oracle VM Server Implementation Guide".

Сразу отмечу, статья для начинающих. Продолжающие сами меня научить могут.

В приложенном документе есть также примеры настройки драйвера QLogic и ОС SUSE Linux

Итак. карта в сервер установлена, ОС инсталирована, сервер запущен.

Проверяем карту


Карта должна видится ОС:
[root@workload-server ~]# lspci -nn |grep "Fibre Channel"
05:00.0 Fibre Channel [0c04]: Emulex Corporation Lancer Gen6: LPe32000 Fibre Channel Host Adapter [10df:e300] (rev 01)
05:00.1 Fibre Channel [0c04]: Emulex Corporation Lancer Gen6: LPe32000 Fibre Channel Host Adapter [10df:e300] (rev 01)
0b:00.0 Fibre Channel [0c04]: Emulex Corporation Lancer Gen6: LPe32000 Fibre Channel Host Adapter [10df:e300] (rev 01)
0b:00.1 Fibre Channel [0c04]: Emulex Corporation Lancer Gen6: LPe32000 Fibre Channel Host Adapter [10df:e300] (rev 01)


Модуль ядра загружен:
[root@workload-server ~]# lsmod |grep lpfc
lpfc                  724992  0
scsi_transport_fc      65536  1 lpfc



Каждому порту из вывода команды ниже соответствует свой каталог (ссылка) hostX:
[root@workload-server ~]# ll /sys/class/fc_host/
total 0
lrwxrwxrwx. 1 root root 0 Oct  3 20:38 host10 -> ../../devices/pci0000:00/0000:00:03.2/0000:0b:00.1/host10/fc_host/host10
lrwxrwxrwx. 1 root root 0 Oct  3 20:38 host7 -> ../../devices/pci0000:00/0000:00:02.0/0000:05:00.0/host7/fc_host/host7
lrwxrwxrwx. 1 root root 0 Oct  3 20:38 host8 -> ../../devices/pci0000:00/0000:00:02.0/0000:05:00.1/host8/fc_host/host8
lrwxrwxrwx. 1 root root 0 Oct  3 20:38 host9 -> ../../devices/pci0000:00/0000:00:03.2/0000:0b:00.0/host9/fc_host/host9

Уникальлное имя узла (node name WWN):
[root@workload-server ~]# cat /sys/class/fc_host/host10/node_name
0x200098f2b3a2dba7

Уникальлное имя порта (port name WWN):
[root@workload-server ~]# cat /sys/class/fc_host/host10/port_name
0x100098f2b3a2dba7

Команды с из статьи "How to check Fibre Channel HBAs in Linux"

Настройка драйвера

Настройки драйвера зависят от ОС и от массива. Для каждого массива они могут быть специфичны. Так как я делаю на примере массива HPE 3PAR, то и настройки беру из рекомендаций для массива. Некоторые массивы "любят" большую глубину очереди (параметр "lpfc_lun_queue_depth") на картах, некоторые нет. В случае 3PAR очередь на том можно сделать 32 или 64. В методичке рекомендуется 16. Всё зависит от планируемой нагрузки и количества томов, подключенных к серверу. Поэтому лучше всего подобрать параметр экпериментально. 16 - хорошее начало.

Файл с настройками модуля "/etc/modprobe.d/lpfc.conf" скорее всего не существует. Создадим его:
[root@localhost ~]#vi /etc/modprobe.d/lpfc.conf

Добавим строку
options lpfc lpfc_devloss_tmo=14 lpfc_lun_queue_depth=16 lpfc_discovery_threads=32

Проверим
[root@localhost ~]#cat /etc/modprobe.d/lpfc.conf
options lpfc lpfc_devloss_tmo=14 lpfc_lun_queue_depth=16 lpfc_discovery_threads=32


После этого надо пересобрать RAM-диск
[root@localhost ~]# /sbin/dracut -v --force --add multipath --include /etc/multipath /etc/multipath

Перезагрузить:
[root@localhost ~]# reboot

Проверка настроек
[root@localhost ~]# cat /etc/modprobe.d/lpfc.conf
[root@localhost ~]# cat /sys/module/lpfc/parameters/lpfc_devloss_tmo
[root@localhost ~]# cat /sys/module/lpfc/parameters/lpfc_discovery_threads
На моей системе средний файл отсутствовал

Еще один способ проверки настроек через "sysfsutils"
Обновление YUM
[root@localhost ~]#yum -y update
[root@localhost ~]# yum -y install sysfsutils

Проверяем параметры:

[root@localhost ~]# systool -m lpfc -v |grep devloss_tmo
    lpfc_devloss_tmo    = "14"


[root@localhost ~]# systool -m lpfc -v |grep iscovery_threads
    lpfc_discovery_threads= "32"
 

[root@localhost ~]# systool -m lpfc -v |grep lun_queue_depth=
    lpfc_lun_queue_depth= "16"
 

[root@localhost ~]# systool -m lpfc -v |grep lun_queue_depth
    lpfc_lun_queue_depth= "16"

[root@localhost ~]# systool -c fc_host -A port_name -m lpfc
Class = "fc_host"

  Class Device = "host10"
  Class Device path = "/sys/devices/pci0000:00/0000:00:03.2/0000:0b:00.1/host10/                                                                                                                                                             fc_host/host10"
    port_name           = "0x100098f2b3a2dba7"

    Device = "host10"
    Device path = "/sys/devices/pci0000:00/0000:00:03.2/0000:0b:00.1/host10"

  Class Device = "host7"
  Class Device path = "/sys/devices/pci0000:00/0000:00:02.0/0000:05:00.0/host7/f                                                                                                                                                             c_host/host7"
    port_name           = "0x100098f2b3a2fb82"

    Device = "host7"
    Device path = "/sys/devices/pci0000:00/0000:00:02.0/0000:05:00.0/host7"

  Class Device = "host8"
  Class Device path = "/sys/devices/pci0000:00/0000:00:02.0/0000:05:00.1/host8/f                                                                                                                                                             c_host/host8"
    port_name           = "0x100098f2b3a2fb83"

    Device = "host8"
    Device path = "/sys/devices/pci0000:00/0000:00:02.0/0000:05:00.1/host8"

  Class Device = "host9"
  Class Device path = "/sys/devices/pci0000:00/0000:00:03.2/0000:0b:00.0/host9/f                                                                                                                                                             c_host/host9"
    port_name           = "0x100098f2b3a2dba6"

    Device = "host9"
    Device path = "/sys/devices/pci0000:00/0000:00:03.2/0000:0b:00.0/host9"

Module = "lpfc"



ПО мультапасинга

Обновление YUM
[root@localhost ~]#yum -y update

Установка Multipathing
[root@localhost ~]#yum -y install device-mapper-multipath


Если устраивет полуактивный режим (Active-Passive), то просто запускаем:
root@workload-server ~]# mpathconf --enable --with_multipathd y
Но он не должен устраивать :)

Можно поставить ПО для управления адаптерами HBA "OneCommand Manager" от Emulex. Скачать нужную версию (зависит от ОС и версии ядра) можно с сайта Broadcom.
Предполагается, что файл загружен в корневую директорию пользователя root.

[root@workload-server ~]# tar zxvf ./elxocmcore-ol6_ol7_uek-12.0.193.22-1.tgz
[root@workload-server ~]# cd elxocmcore-ol6_ol7_uek-12.0.193.22-1/
[root@workload-server ~]# ./install.sh

Запуск сервиса
[root@workload-server ~]# /usr/sbin/ocmanager/start_ocmanager

Список параметров:
[root@workload-server ~]# /usr/sbin/ocmanager/hbacmd
 
Информация об установленных картах 
[root@workload-server ~]# hbacmd ListHBAs
(вывод команды не сохранил)

Теперь собственно, сама настройка мультипасинга.

Нужно заполнить один файл: /etc/multipath.conf
Если его нет, то можно скопировать заготовку:
cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf

Редактируем его:
vi /etc/multipath.conf


В заготовке много закомментированных строк. Я оставил только значимые строки. Файл скопирован из "HPE 3PAR Red Hat Enterprise Linux, CentOS Linux, Oracle Linux, and Oracle VM Server Implementation Guide" с один только изменением: "user_friendly_names" я оставил со значением "yes". Данный файл специфичен для каждого массива. У производителя должны быть рекомендации по его заполнению. Для каждого массива может быть сделан специальный раздел.
[root@localhost ~]# cat /etc/multipath.conf
defaults {
       user_friendly_names yes
        find_multipaths yes
        polling_interval 10
}

devices {
        device {
                vendor                  "3PARdata"
                product                 "VV"
                features                "0"
                hardware_handler        "1 alua"
                path_selector           "round-robin 0"
                path_grouping_policy    group_by_prio
                prio                    alua
                failback                immediate
                rr_weight               uniform
                no_path_retry           18
                rr_min_io_rq            1
                path_checker            tur
                fast_io_fail_tmo        10
                dev_loss_tmo            14
        }
}

blacklist {
}


Проверка настроек Multipahing. Статус демона:
[root@localhost ~]# multipath
[root@localhost ~]# mpathconf



Активируем:
[root@localhost ~]# mpathconf --enable


Снова проверяем статус:
[root@localhost ~]# mpathconf
[root@localhost ~]# multipath


Команды для работы с демоном - статус, запуск, перезагрузка с новыми настройками (после изменения /etc/multipath.conf):
[root@localhost ~]# service multipathd status
[root@localhost ~]# service multipathd start
[root@localhost ~]# service multipathd reload


Видимые пути:
[root@localhost ~]# multipath -ll

Автозапуск демона:
[root@localhost ~]# systemctl enable multipathd


На этом этапе массив и хост должны друг друга видеть. Если массив имеет функцию обнаружения хостов (SmartSAN), то порты хоста должны быть видны на массиве и доступны для презентации томов. После того, как том презентован, надо пересканировать
[root@localhost ~]# /usr/sbin/lpfc/SmartSAN.sh --enable
SmartSAN configured: Enabled
SmartSAN current state: Disabled



Пересканирование томов:
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host3/scan
или
[root@localhost ~]# /usr/sbin/lpfc/lun_scan


Карта соответствия томов устройствам:
cd /dev/disk/by-id
ls -l | grep sdc



Комментария и замечания приветствуются.

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