Категорії
Solaris

Настраиваем работу Fibre Channel

Данная статья является в некотором смысле вольным переводом статьи http://blogs.oracle.com/vreality/entry/storage_virtualization_with_comstar + мои дополнения.

1) Введение.

Сам по себе протокол FC инкапсулирует команды iSCSI, но в качестве среды передачи данных использует оптические каналы. В связи с этим, увеличивается стоимость (нужны соответственно оптические коммутаторы и прочее оборудование), но зато увеличивается и надёжность. Этот протокол, в отличии от iSCSI, лишён потери пакетов (так как не использует TCP/IP).

В FC существуют 2 типа портов: initiator и target. Initiator – это по сути клиент, а target – порт через который доступно хранилище.

Список портов можно посмотреть через команду:

# luxadm -e port
/devices/pci@0,0/pci1002,5a1f@b/pci1077,138@0/fp@0,0:devctl CONNECTED
/devices/pci@0,0/pci1002,5a1f@b/pci1077,138@0,1/fp@0,0:devctl NOT CONNECTED

Если порт присутствует, но не подключён – мы об этом узнаем.

По сути данная команда показывает только порты initiator’ы. Что бы посмотреть все доступные порты, можно использовать такой метод:

# mdb -k
Loading modules: [ unix genunix ... ]
> ::devbindings -q qlt
> ::devbindings -q qlc
ffffff0908ed7c58 pciex1077,2432, instance #0 (driver name: qlc)
ffffff0908ed7988 pciex1077,2432, instance #1 (driver name: qlc)

Здесь мы видим присутствие 2-х портов в режиме initiator (используется драйвер qlc).

2) Установка поддержки FC

В Solaris 11, в отличии от 10 очень много сервисов (samba, iscsi, fc, …) собраны в единый пакет storage-server. Отдельно поставить какой-нибудь компонент никак нельзя. Ставим его:

#pkg install storage-server

Для управления шарами используется сервис STMF, который по умолчанию отключён.

# svcs stmf
disabled 15:58:17 svc:/system/stmf:default

Включаем

# svcadm enable stmf

Проверяем

# svcs stmf
online 15:59:53 svc:/system/stmf:default

3) Создание target’a.

Создаём пул, на котором будем создавать ФС, которая и будет выступать в последствии LUN’ом (логической единицей для хранения данных). Хочу обратить внимание, что zfs нужно создавать обязательно с указанием объёма, иначе LUN не создастся:

#zpool create db mirror c0t0d0 c1t0d0
#zfs create -V 100G db/sharelun

Теперь создадим непосредственно LUN:

# sbdadm create-lu /dev/zvol/rdsk/tank/comstar-vol1
Created the following logical unit :
GUID DATA SIZE SOURCE
--------------------------- ------------------- ----------------
600144f07bb2ca0000004a4c5eda0001 53687025664 /dev/zvol/rdsk/db/sharelun

и проверим создание

# sbdadm list-lu
Found 1 LU(s)
GUID DATA SIZE SOURCE
-------------------------------- ------------------- ----------------
600144f07bb2ca0000004a4c5eda0001 53687025664 /dev/zvol/rdsk/db/sharelun

Следующим этапом сделаем наш LUN видимым для всех initiator’ов в сети:

# stmfadm add-view 600144f07bb2ca0000004a4c5eda0001

4) Информация о портах

Посмотрим информацию о портах:

# fcinfo hba-port
HBA Port WWN: 21000024ff2ec0bc
        Port Mode: Initiator
        Port ID: 10100
        OS Device Name: /dev/cfg/c12
        Manufacturer: QLogic Corp.
        Model: QLE2462
        Firmware Version: 05.04.03
        FCode/BIOS Version:  BIOS: 3.00; fcode: 3.15; EFI: 2.21;
        Serial Number: RFD1112M68451
        Driver Name: qlc
        Driver Version: 20110321-3.05
        Type: N-port
        State: online
        Supported Speeds: 1Gb 2Gb 4Gb
        Current Speed: 4Gb
        Node WWN: 20000024ff2ec0bc
        Max NPIV Ports: 127
        NPIV port list:
HBA Port WWN: 21000024ff2ec0bd
        Port Mode: Initiator
        Port ID: 0
        OS Device Name: /dev/cfg/c13
        Manufacturer: QLogic Corp.
        Model: QLE2462
        Firmware Version: 05.04.03
        FCode/BIOS Version:  BIOS: 3.00; fcode: 3.15; EFI: 2.21;
        Serial Number: RFD1112M68451
        Driver Name: qlc
        Driver Version: 20110321-3.05
        Type: unknown
        State: offline
        Supported Speeds: 1Gb 2Gb 4Gb
        Current Speed: not established
        Node WWN: 20000024ff2ec0bd
        Max NPIV Ports: 127
        NPIV port list:

Детальная информация о порте:

# fcinfo remote-port -sl -p 21000024ff2ec0bc
Remote Port WWN: 21000024ff2ec110
        Active FC4 Types: SCSI
        SCSI Target: yes
        Port Symbolic Name: qlt0,0
        Node WWN: 20000024ff2ec110
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
        LUN: 0
          Vendor: SUN
          Product: COMSTAR
          OS Device Name: /dev/rdsk/c0t600144F00200000000004EF354850001d0s2
Remote Port WWN: 21000024ff2ec192
        Active FC4 Types: SCSI,IP
        SCSI Target: no
        Port Symbolic Name: qlc(0,0)
        Node WWN: 20000024ff2ec192
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
Remote Port WWN: 21000024ff2ec193
        Active FC4 Types: SCSI,IP
        SCSI Target: no
        Port Symbolic Name: qlc(1,0)
        Node WWN: 20000024ff2ec193
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
Remote Port WWN: 21000024ff2ec03a
        Active FC4 Types: SCSI
        SCSI Target: yes
        Port Symbolic Name: qlt0,0
        Node WWN: 20000024ff2ec03a
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
Remote Port WWN: 21000024ff2ec03a
        Active FC4 Types: SCSI
        SCSI Target: yes
        Port Symbolic Name: qlt0,0
        Node WWN: 20000024ff2ec03a
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
        LUN: 0
          Vendor: SUN
          Product: COMSTAR
          OS Device Name: /dev/rdsk/c0t600144F0D0BEC80000004EF4BC960001d0s2
Remote Port WWN: 21000024ff2ec13c
        Active FC4 Types: SCSI
        SCSI Target: yes
        Port Symbolic Name: qlt0,0
        Node WWN: 20000024ff2ec13c
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
        LUN: 0
          Vendor: SUN
          Product: COMSTAR
          OS Device Name: /dev/rdsk/c0t600144F00200000000004EF2A7E20001d0s2
Remote Port WWN: 21000024ff2ebf48
        Active FC4 Types: SCSI
        SCSI Target: yes
        Port Symbolic Name: qlt0,0
        Node WWN: 20000024ff2ebf48
        Link Error Statistics:
                Link Failure Count: 0
                Loss of Sync Count: 0
                Loss of Signal Count: 0
                Primitive Seq Protocol Error Count: 0
                Invalid Tx Word Count: 0
                Invalid CRC Count: 0
        LUN: 0
          Vendor: SUN
          Product: COMSTAR
          OS Device Name: /dev/rdsk/c0t600144F00200000000004EF48B630001d0s2

А так можно посмотреть информацию об устройствах (порты c12, c13 – FC-порты)

# cfgadm -al | grep connected
c3                             scsi-sas     connected    configured   unknown
c3::dsk/c3t31ACB1CC76F5DE6Ad0  disk         connected    configured   unknown
c3::dsk/c3t35A1051D7AE20B19d0  disk         connected    configured   unknown
c6                             scsi-sas     connected    unconfigured unknown
c7                             scsi-sas     connected    unconfigured unknown
c8                             scsi-sas     connected    unconfigured unknown
c9                             scsi-sas     connected    unconfigured unknown
c10                            scsi-sas     connected    unconfigured unknown
c11                            scsi-sas     connected    unconfigured unknown
c12                            fc-fabric    connected    configured   unknown
c12::21000024ff2ebf48          disk         connected    configured   unknown
c12::21000024ff2ec03a          disk         connected    configured   unknown
c12::21000024ff2ec110          disk         connected    configured   unknown
c12::21000024ff2ec13c          disk         connected    configured   unknown
c12::21000024ff2ec192          unknown      connected    unconfigured unknown
c12::21000024ff2ec193          unknown      connected    unconfigured unknown
c13                            fc           connected    unconfigured unknown
usb4/5                         usb-storage  connected    configured   ok
usb7/6                         usb-storage  connected    configured   ok
usb8/1                         usb-device   connected    configured   ok

5) Изменения режима работы порта.

Что бы перевести порт в режим, например, target’a делаем следующее:

# update_drv -a -i '/pci@0,0/pci1002,5a1f@b/pci1077,138@0,1/fp@0,0' qlt
devfsadm: driver failed to attach: qlt
Warning: Driver (qlt) successfully added to system but failed to attach.

где путь берётся из вывода luxadm и /pci@0,0/pci1002,5a1f@b/pci1077,138@0,1/fp@0,0 – путь относительно каталога /devices. Ошибка значит лишь то, что в данный момент оно не может выгрузить драйвер – он будет выгружен при ребуте.

После изменения выполним

#init 6

Далее, заходим в mdb и смотрим:

root@sr602:/home/skeletor# mdb -k
Loading modules: [ unix genunix specfs dtrace mac cpu.generic uppc pcplusmp scsi_vhci zfs mpt_sas sd ip hook neti arp usba sockfs qlc fctl kssl stmf stmf_sbd md lofs random idm fcp cpc crypto nfs ufs logindmux ptm sppp ]
> ::devbindings -q ql
mdb: failed to get major number for ql
> ::devbindings -q qlc
ffffff114ccce5d0 pciex1077,2432, instance #0 (driver name: qlc)
> ::devbindings -q qlt
ffffff114ccce300 /pci@0,0/pci1002,5a1f@b/pci1077,138@0,1, instance #0 (driver name: qlt)
> $q

Как видим изменения прошли. Так же можно посмотреть инфу и через fcinfo:

# fcinfo hba-port

        HBA Port WWN: 210000e08b91facd
        Port Mode: Target
        Port ID: 2
        OS Device Name: /dev/cfg/c13
        Manufacturer: QLogic Corp.
        Model: 375-3294-01
        Firmware Version: 04.04.01
        FCode/BIOS Version: BIOS: 1.4; fcode: 1.11; EFI: 1.0;
        Serial Number: 0402R00-0634175788
        Driver Name: qlt
        Driver Version: 20080617-2.30
        Type: L-port
        State: online
        Supported Speeds: 1Gb 2Gb 4Gb
        Current Speed: 4Gb
        Node WWN: 200000e08b91facd
        Max NPIV Ports: 63
        NPIV port list:

Так же можно посмотреть список target’ов:

# stmfadm list-target -v
Target: wwn.21000024FF2EC0BD
Operational Status: Online
Provider Name : qlt
Alias : qlt0,0
Protocol : Fibre Channel
Sessions : 3
Initiator: wwn.21000024FF2EC0BC
Alias: server.com
Logged in since: Wed Jan 25 12:45:46 2012
Initiator: wwn.21000024FF2EC192
Alias: :qlc0
Logged in since: Wed Jan 25 12:45:46 2012
Initiator: wwn.21000024FF2EC193
Alias: :qlc1
Logged in since: Wed Jan 25 12:45:46 2012

6) Настройка Initiator’a.

После того, как вы настроили target’ы, переходим к initiator’ам.
Что бы заново пересканировать все доступные target’ы, выполним команду:

luxadm -e forcelip /dev/cfg/c12

и теперь новые диски станут доступными. Что посмотреть изменения, запустим команду format:

# format
Searching for disks...
AVAILABLE DISK SELECTIONS:
0. c1t0d0 <SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@0,0
1. c1t2d0 <FUJITSU-MAV2073RCSUN72G-0301-68.37GB>
/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@2,0
2. c1t3d0 <FUJITSU-MAV2073RCSUN72G-0301-68.37GB>
/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@3,0
3. c2t210000E08B91FACDd0 <SUN-COMSTAR-1.0 cyl 65533 alt 2 hd 16 sec 100>
/pci@7c0/pci@0/pci@9/SUNW,qlc@0/fp@0,0/ssd@w210000e08b91facd,0
Specify disk (enter its number):

Как можно заметить, у нас появился новый диск SUN-COMSTAR. Далее с ним можно работать как с обычным, то есть создавать пул, ФС, …

Примечание.

По не выясненным причинам во время загрузки ОС FC-порт долго поднимался, и в итоге пул был недоступен и из-за этого ОС грузилась достаточно долго, но пул всё равно оставался недоступным. В итоге пришлось отказаться от FC.

7) Multipathing

Пару слов хочется сказать о multipathing: это механизм, который предоставляет системе несколько путей до устройства с применением технологии отказоустойчивости и балансировки . Устройством может быть как хранилище, так и сетевое устройство (например, удалённый сервер).

При настройке разного рода FC/iSCSI очень желательно настроить и multipathing.

Очень неплохой tutorial по multipathing описан здесь

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff