Шпаргалка основана на "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"
Файл с настройками модуля "/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"
[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
(вывод команды не сохранил)
Теперь собственно, сама настройка мультипасинга.
Нужно заполнить один файл: /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
Комментария и замечания приветствуются.
Сразу отмечу, статья для начинающих. Продолжающие сами меня научить могут.
В приложенном документе есть также примеры настройки драйвера 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
Комментария и замечания приветствуются.
Комментариев нет:
Отправить комментарий