Сервер Centos 7 не видит диски Дискового массива

Контекст

Мне настроили сервер недавно с CentOS 7, подключенным к Дисковому массиву с Соединением Fibre Channel.

Я хочу смонтировать диски Дискового массива в файловой системе своего сервера, и затем устанавливать сервер NFS на ней для предоставления доступа к этому устройству хранения данных доступным для всех узлов в кластере (и сервер и дисковый массив являются частью небольшого кластера, которым я управляю).

Сервер: бык R423

Дисковый массив: DDN S2A6620 (сеть DirectData)

Я только использую один из обоих контроллеров дискового массива.

Вот выборка команды lspci вывод:

# lspci
85:00.0 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)
85:00.1 Fibre Channel: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter (rev 03)

Таким образом, я думаю, что мой сервер обнаруживает хорошо HBA FC (Шинный адаптер Хоста Fibre Channel), которые, кажется, от бренда Emulex.

Дисковый массив совместим с Red Hat 5&6 серверы, таким образом, я не уверен, может ли он на самом деле работать с сервером CentOS 7, но я решил дать ему попытку.

Я следовал руководству пользователя Дискового массива, я смог соединиться с ним удаленно с сервера, и я реализовал всю необходимую конфигурацию (Создающий Набег 1 пул хранения данных 2 дисков, создав виртуальный диск из того пула, чтобы представить диски серверу, представить виртуальный диск хосту с числом LUN...). Но затем в руководстве пользователя ничто не говорится о серверной стороне.


Конфигурация дискового массива

Некоторые детали о том, как я выполнил конфигурацию на стороне дискового массива.

Дисковым массивом ОС является ОС SFA v1.3.0.8. Самое близкое руководство, которое я нашел, является этим (v1.4.0). В основном вот шаг, который я выполнил (соответствующий для разделения 3.6.5 из документа, и после):

  1. Очистка дискового массива

$ application delete presentation * $ application delete host * $ delete virtual_disk * $ delete pool *

  1. Создайте пул хранения данных

$ create pool raid_level=raid1 number=2

number обозначает количество дисков пула. Созданный пул имеет идентификатор 7.

  1. Создайте виртуальный диск на основе того пула

$ create virtual_disk capacity=max pool=7

Виртуальный диск основан на пуле, я просто создал и использую всю его емкость хранения.

  1. Создайте объект хоста, соответствующий моему серверу:

$ application create host name=io1 ostype=linux

  1. Импортируйте обнаруженного инициатора в отношения с хостом:

$ app show discovered * | Initiator Identifier | | Index | Type | ID | node | port | Ctrl 0 | Ctrl 1 | 00003 FC 0x000001 0x20000000c99de40f 0x10000000c99de40f 1 Total FC Initiators: 1 Существует только один обнаруженный инициатор с идентификатором 3. Это соответствует одному из хоста Волоконно-оптического канала моего сервера:

$ cat /sys/class/fc_host/host10/port_name 0x10000000c99de40f

Это связано с контроллером 1 из дискового массива, который является на самом деле единственным контроллером, который я использую.

$ application import discovered_initiator 3 host 3

  1. Представьте виртуальный диск хосту

$ application create presentation virtual_disk 7 host 3

(Идентификатор виртуального диска, который я создал, равняется 7),

И виртуальный диск и пул хранения данных, кажется, находятся в Состоянии готовности.


Проблема

Теперь, когда я, предположительно, представил диски своему серверу, я хочу смонтировать что пространство памяти как файловая система на моем сервере.

Я попытался зарегистрироваться /dev/ каталог. Только sda диск смонтирован на данный момент (мой жесткий диск сервера). Я справился о каждом файле в /dev/, и найденный некоторыми, которые могли бы иметь некоторое отношение к Fibre Channel или Scsi:

  • /dev/bsg/ каталог, выделенный SCSI Linux универсальный драйвер, содержа /dev/bsg/fc_host9 и /dev/bsg/fc_host10;
  • /dev/lpfcmgmt выделен драйверу Emulex;
  • /dev/tgt, используемый целью SCSI.

Я установил sg3_utils, и выполненный сканирование на fc_host10:

$ sg_scan /dev/bsg/fc_host10
/dev/bsg/fc_host10: scsi0 channel=0 id=0 lun=0 [em]

После того, как я выполнил ту команду сканирования, я все еще не мог найти дополнительным /dev/sd*.

Кроме того, /sys/class/fc_host/host10/ ссылка на /sys/devices/pci0000:80/0000:80:07.0/0000:85:00.1/host10/fc_host/host10, таким образом, я предполагаю, что это дает мне вид 'идентификатора' шины.

Но вот список файлов в каталоге /dev/disk/by-path:

$ ll /dev/disk/by-path
total 0
lrwxrwxrwx. 1 root root  9 Aug  3 22:02 pci-0000:84:00.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx. 1 root root 10 Aug  3 22:02 pci-0000:84:00.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx. 1 root root 10 Aug  3 22:02 pci-0000:84:00.0-scsi-0:0:0:0-part2 -> ../../sda2

Идентификатор не соответствует, и так или иначе это - символьные ссылки на /dev/sda*, которые соответствуют моему локальному диску сервера.

Как предложено billyw, я работал

echo '- - -' > /sys/class/scsi_host/host10/scan

но это ничего не производило, и все еще не было никого нового /dev/sd* появление.


Вопросы

Я принимаю на успех, диски должны появиться как некоторые /dev/sd*/. Это верно? В противном случае, где те диски должны появиться?

Наконец, как я заставляю эти диски появиться на моей точке зрения сервера?


Править

Следуя совету billyw, я работал echo 1 > /sys/class/fc_host/hostX/issue_lip. Вот журналы.

По-видимому, FLOGI ошибки не релевантны здесь, так как я нахожусь в топологии шлейфа, не топологии матрицы. Однако, никакой диск, где появление в /dev.

Теперь после этого потока, я перезапустил lpfc драйвер:

$ modprobe -r lpfc
$ modprobe lpfc

То, которое привело к ним, входит в систему /var/log/messages.

На этот раз, /dev/sdb и /dev/sdc появившийся. Но я не мог смонтировать их:

$ mount /dev/sdb /mnt/db
mount: /dev/sdb is write-protected, mounting read-only
mount: unknown filesystem type '(null)'

Таким образом, я пытался исследовать журналы, сгенерированные при перезапуске lpfc. Во-первых, я заметил это Link Up Event npiv not supported in loop topology сообщение. Я перезапустил lpfc, отключение npiv на этот раз (я думаю npiv бесполезно в моем случае):

$ modprobe -r lpfc
$ modprobe lpfc lpfc_enable_npiv=0

Журналы являются вполне тем же, но npiv сообщение исчезло.

Я все еще исследую журналы, следующая ошибка в моем Списке ожидающих выполнения задач Warning! Received an indication that the LUN assignments on this target have changed. The Linux SCSI layer does not automatically remap LUN assignments..

4
задан 16 August 2017 в 10:26
2 ответа

Для того, чтобы диски появились в разделе /dev/sd*, было решено перезапустить драйвер HBA Fibre Channel, как указано в этом ответе . В моём случае это был lpfc :

stop lpfc driver:

$ modprobe -r lpfc

start lpfc driver:

$ modprobe lpfc

Then, my device came under /dev/sdb. После этого, как заявил GregL, мне нужно было разбить устройство на разделы, а затем отформатировать его с заданной файловой системой.

После этого потока:

  1. я создал таблицу разделов GPT на диске, используя команду parted mklabel.

$ parted /dev/sdb mklabel gpt

  1. Затем я создал основной раздел, занимающий все пространство на этом устройстве (от 0% до 100%) с оптимальным выравниванием, используя команду parted mkpart:

$ parted -- выравнивание оптимального /dev/sdb mkpart primary 0% 100%

Это дало мне раздел /dev/sb1.

  1. После этого я отформатировал раздел с файловой системой xfs (я уже использовал эту файловую систему для других своих разделов).:

$ mkfs.xfs /dev/sdb1

  1. Наконец, я смонтировал раздел:

смонтировал /dev/sdb1 /mnt/disk_array/

И теперь все работает нормально :)

2
ответ дан 3 December 2019 в 03:56

Я основываю свой ответ на этой документации для вашего продукта , особенно на разделе 3.12. Я не владею вашим продуктом, поэтому доверяйте документации больше, чем мне.

Вам необходимо настроить массив хранения DDN так, чтобы серверу был разрешен доступ к нему. В вашем случае термин инициатор относится к HBA Fibre Channel на сервере, а термин target относится к портам в массиве хранения DDN, которые будут представлять LUN.

] Подведем итоги шагов:

  • Покажите инициаторы, которые обнаруживает массив хранения, с помощью APPLICATION SHOW DISCOVERED_INITIATOR *
  • Создайте хост (который, похоже, является просто формой маркировки) с помощью APPLICATION CREATE HOST INDEX = NAME = OSTYPE =
  • Сопоставьте хост с инициатором с помощью APPLICATION IMPORT DISCOVERED_INITIATOR = HOST =
  • Убедитесь, что отображение правильное, с APPLICATION SHOW INITIATOR *
  • Представьте виртуальные диски хосту, используя APPLICATION CREATE PRESENTATION INDEX = HOST = VIRTUAL_DISK = LUN =
  • (Существует альтернативный случайный режим для представления виртуального диска на все порты хоста, но с предупреждением)
  • Проверьте, что t презентация правильная, с APPLICATION SHOW PRESENTATION *

На стороне сервера вы должны иметь возможность повторно сканировать LUN с помощью следующего (заменяя X номером HBA):

echo ' - - - '> / sys / class / scsi_host / hostX / scan

Если вы планируете делать больше с Fibre Channel в будущем и не хотите жить на Диком Западе, я также рекомендовал бы узнать о зонирование.

0
ответ дан 3 December 2019 в 03:56

Теги

Похожие вопросы