Colobridge WIKI

Fc подключение к схд сервера под linux

Применимость: Linux, выделенный сервер

Слова для поиска: storage, Huawei OceanStor


Как подключиться к LUN выделенному на системе хранения

Обновите систему и перезагрузите сервер с новым ядром

Ядро уже содержит драйвер для QLE2562, но вы можете использовать самый свежий драйвер с сайта производителя. Скачайте архив с драйвером

Установка компиляторов и прочих пакетов:

yum install gcc* unzip kernel-devel

Распаковать архив с драйвером и выполнить установку:

tar -xzf qla2xxx-src-v8.07.00.39.07.0-k.tar.gz
cd qla2xxx-8.07.00.39.07.0-k/
./extras/build.sh install

Проверить версию установленного драйвера:

  modinfo qla2xxx | grep ^version
  version:        8.07.00.39.07.0-k

Перезагрузить сервер:

reboot

Найти HBA карты на вашем сервере:

yum install pciutils 
lspci -nn | grep -i hba

Есть другие способы чтобы получить информацию о HBA, но удобнее использовать systool (пакет sysfsutils).

yum install sysfsutils
systool -c fc_host

Найти WWN портов:

systool -c fc_host -v | grep port_name
  port_name           = "0x21000024ff53e456"
  port_name           = "0x21000024ff53e457"

Сообщите эти значения администратору для настройки параметров доступа к вашему LUN

Определить статус портов:

systool -c fc_host -v | grep port_state
  port_state          = "Online"
  port_state          = "Online"

Если статус Online и настроен доступ на СХД, то можно перезагрузить модуль адаптера и попытаться увидеть ваш LUN

rmmod qla2xxx
modprobe qla2xxx

lsscsi -s 


[0:0:1:1]    disk    HUAWEI   XSG1             4303  /dev/sdg    214GB
[0:0:2:1]    disk    HUAWEI   XSG1             4303  /dev/sdh    214GB
[7:0:1:1]    disk    HUAWEI   XSG1             4303  /dev/sdc    214GB
[7:0:2:1]    disk    HUAWEI   XSG1             4303  /dev/sdd    214GB
[7:0:4:1]    disk    HUAWEI   XSG1             4303  /dev/sde    214GB
[7:0:5:1]    disk    HUAWEI   XSG1             4303  /dev/sdf    214GB

В этом примере мне выделен один LUN на 200GB, но я вижу 8 штук. Причина в том, что этот LUN виден по 8-ми путям. 2 порта на моем сервере и группа из 4-х портов на СХД образуют 8 возможных путей прохождения данных.

Это необходимо для распределения нагрузки и отказоустойчивости.

- Какое же из устройств использовать? - Если вы просто будете использовать в таком варианте одно из устройств, то это означает использование только одного пути.

Для использования всех нужно использовать либо службу Multipath или Huawei OceanStor UltraPath

Использовать много-путевой доступ необходимо даже в том случае если на вашем сервере используется 1 порт.

Иначе, например, в случае обновления прошивки на одном из контроллеров СХД произойдет временное отключение вашего сервера от СХД и данные на вашем LUN могу быть повреждены.

Многопутевой ввод-вывод (Multipath I/O) — технология подключения узлов сети хранения данных с использованием нескольких маршрутов. В случае отказа одного из контроллеров, операционная система будет использовать другой для доступа к устройству. Это повышает отказоустойчивость системы и позволяет распределять нагрузку.

Multipath устройства объединяются в одно устройство с помощью специализированного программного обеспечения в новое устройство. Multipath обеспечивает выбор пути и переключение на новый маршрут при отказе текущего. Это происходит невидимо для программ и процессов использующих это устройство. Кроме того Multipath способен распределять передачу данных по разным путям посредством различных алгоритмов, например:

  • round-robin - Цикл по всем маршрутам в группе маршрутов, посылая одинаковый поток в каждый)
  • queue-length Посылать следующую порцию данных по маршруту с наименьшим количеством невыполненных запросов
  • service-time - Посылать следующую порцию данных по маршруту с наименьшими задержками, которые определяются делением общего объема невыполненного ввода/вывода на каждом маршруте на их относительную пропускную способность.

Преимущества Huawei UltraPath

Запросить у службы поддержки ссылку на пакет OceanStor UltraPath соответствующий версии вашей ОС.

Распаковать архив и установить UltraPath:

unzip OceanStor_UltraPath_V100R008C50SPC200_RHEL.zip
cd ./RHEL/
sh ./install.sh

В ходе установки вам будет предложено выбрать опции:

  1: Boot from local
  2: Boot from SAN

Если система у вас установлена на локальном HDD, то ваш выбор должен быть - 1: Boot from local Если ваша система установливалась на диск доступный по Fibre Channel или iSCSI, то ваш выбор должен быть - 2: Boot from SAN

Следующий шаг - согласиться или отказаться от перезагрузки системы.

The installation is complete. Whether to restart the system now?
<Y|N>:n

Если для подключения к системе хранения используются HBA адаптеры HCA, QLogic или Emulex, мы рекомендуем установить значение N.

Установите следующие параметры драйвера HBA адаптера:

Например для QLogic (qla2xxx) в файле /etc/modprobe.d/nxupmodules.conf следует добавить строки, если их там нет:

options qla2xxx ql2xfailover=0
options qla2xxx qlport_down_retry=5

Для Emulex:

options lpfc lpfc_nodev_tmo=5

Для программного адаптера Linux-iscsi (Red Hat AS4) в файле /etc/iscsi.conf должны быть параметры:

Multipath=portal
ConnFailTimeout=1

Для программного адаптера open-iscsi (RHEL-7, Centos) в файле /etc/iscsi/iscsid.conf должны быть параметры:

node.startup = automatic  
node.session.timeo.replacement_timeout=1

Перезагрузите сервер:

reboot

Убедитесь, что UltraPath работает

lsscsi | grep updisk [8:0:0:1] disk up updisk 4303 /dev/sdc

В данном случае виртуальный диск созданный UltraPath имеет имя /dev/sdc

В дальнейшем вы можете использовать его для всех нужд

Создать раздел:

parted -s /dev/sdc mkpart primary ext2 1 215GB

Создать файловую систему XFS:

mkfs.xfs /dev/sdc1

Для управления параметрами используется утилита upadmin

Конфигурация по умолчанию после установки:

upadmin show upconfig
=======================================================
UltraPath Configuration 
=======================================================
Basic Configuration
  Working Mode : load balancing within controller
  LoadBalance Mode : min-queue-depth
  Loadbanlance io threshold : 100
  LUN Trespass : on

Здесь стоит изменить параметр Working Mode чтобы данные одновременно передавались по всем путям

upadmin set workingmode -m 0

Контроль I/O по путям для LUN с идентификатором 0:

upadmin show iostat vlun_id=0

Если у вас изменился список scsi устройств (добавили LUN), то система не увидит их сама В дистрибутивах основанных на Red Hat есть скрипт:

/usr/bin/rescan-scsi-bus.sh

После отрабатывания скрипта проверьте вывод команды:

lsscsi -s