Мне настроили сервер недавно с 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 из документа, и после):
$ application delete presentation * $ application delete host * $ delete virtual_disk * $ delete pool *
$ create pool raid_level=raid1 number=2
number
обозначает количество дисков пула. Созданный пул имеет идентификатор 7.
$ create virtual_disk capacity=max pool=7
Виртуальный диск основан на пуле, я просто создал и использую всю его емкость хранения.
$ application create host name=io1 ostype=linux
$ 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
$ 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.
.
Для того, чтобы диски появились в разделе /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, мне нужно было разбить устройство на разделы, а затем отформатировать его с заданной файловой системой.
После этого потока:
parted
mklabel
. $ parted /dev/sdb mklabel gpt
parted
mkpart
:$ parted -- выравнивание оптимального /dev/sdb mkpart primary 0% 100%
Это дало мне раздел /dev/sb1
.
xfs
(я уже использовал эту файловую систему для других своих разделов).:$ mkfs.xfs /dev/sdb1
смонтировал /dev/sdb1 /mnt/disk_array/
И теперь все работает нормально :)
Я основываю свой ответ на этой документации для вашего продукта , особенно на разделе 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 =
APPLICATION SHOW PRESENTATION *
На стороне сервера вы должны иметь возможность повторно сканировать LUN с помощью следующего (заменяя X номером HBA):
echo ' - - - '> / sys / class / scsi_host / hostX / scan
Если вы планируете делать больше с Fibre Channel в будущем и не хотите жить на Диком Западе, я также рекомендовал бы узнать о зонирование.