17.2. 新增連接了 FCP 的邏輯單元(LUN)

以下為如何新增 FCP LUN 的範例。

注意

若在 z/VM 下執行的話,請確認 FCP 介面卡已連至 z/VM 客座端虛擬機器上。若要在生產環境下進行 multipath,在不同的兩個實體介面卡(CHPID)上,必須含有至少兩個 FCP 裝置。例如:
CP ATTACH FC00 TO * 
CP ATTACH FCD0 TO *

17.2.1. 動態式地啟動一個 FCP LUN

請依照下列步驟來啟動 LUN:
  1. 請使用 cio_ignore 工具程式來將 FCP adapter 由忽略裝置清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r device_number
    請將 device_number 取代為 FCP adapter 的裝置號碼。例如:
  2. 若要啟用 FCP 介面卡裝置,請使用下列指令:
    # chccwdev -e fc00
  3. 驗證必要的 WWPN 能被 zfcp 裝置驅動程式的自動連接埠掃描偵測到:
    # ls -l /sys/bus/ccw/drivers/zfcp/0.0.fc00/
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x500507630040710b
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x50050763050b073d
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x500507630e060521
    drwxr-xr-x.  3 root root    0 Apr 28 18:19 0x500507630e860521
    -r--r--r--.  1 root root 4096 Apr 28 18:17 availability
    -r--r--r--.  1 root root 4096 Apr 28 18:19 card_version
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 cmb_enable
    -r--r--r--.  1 root root 4096 Apr 28 18:17 cutype
    -r--r--r--.  1 root root 4096 Apr 28 18:17 devtype
    lrwxrwxrwx.  1 root root    0 Apr 28 18:17 driver ->  ../../../../bus/ccw/drivers/zfcp
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 failed
    -r--r--r--.  1 root root 4096 Apr 28 18:19 hardware_version
    drwxr-xr-x. 35 root root    0 Apr 28 18:17 host0
    -r--r--r--.  1 root root 4096 Apr 28 18:17 in_recovery
    -r--r--r--.  1 root root 4096 Apr 28 18:19 lic_version
    -r--r--r--.  1 root root 4096 Apr 28 18:17 modalias
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 online
    -r--r--r--.  1 root root 4096 Apr 28 18:19 peer_d_id
    -r--r--r--.  1 root root 4096 Apr 28 18:19 peer_wwnn
    -r--r--r--.  1 root root 4096 Apr 28 18:19 peer_wwpn
    --w-------.  1 root root 4096 Apr 28 18:19 port_remove
    --w-------.  1 root root 4096 Apr 28 18:19 port_rescan
    drwxr-xr-x.  2 root root    0 Apr 28 18:19 power
    -r--r--r--.  1 root root 4096 Apr 28 18:19 status
    lrwxrwxrwx.  1 root root    0 Apr 28 18:17 subsystem ->  ../../../../bus/ccw
    -rw-r--r--.  1 root root 4096 Apr 28 18:17 uevent
  4. 將 FCP LUN 新增至您將會用來存取 LUN 的連接埠(WWPN),以將它啟用:
    # echo 0x4020400100000000 > /sys/bus/ccw/drivers/zfcp/0.0.fc00/0x50050763050b073d/unit_add
  5. 找出指定的 SCSI 裝置名稱:
    # lszfcp -DV
    /sys/devices/css0/0.0.0015/0.0.fc00/0x50050763050b073d/0x4020400100000000
    /sys/bus/ccw/drivers/zfcp/0.0.fc00/host0/rport-0:0-21/target0:0:21/0:0:21:1089355792

17.2.2. 永續性地啟動 FCP LUN

上述指南詳述了如何動態式地在一部執行中的系統上啟用 FCP LUN。然而,此類型的變更並非永續性的變更,並且無法在重新開機後維持其狀態。要使 FCP 配置的變更能夠在您的系統上保有永續性,取決於該 FCP LUN 是否屬於 root 檔案系統。root 檔案系統所需的這些 FCP,需要在開機程序非常早期的步驟中,由 initramfs 啟用,以便掛載 root 檔案系統。cio_ignore 指令會自動被處理為永續性裝置配置,並且您無須手動式地將裝置由忽略清單中移除。

17.2.2.1. 屬於 Root 檔案系統一部分的 FCP LUN

要新增屬於 root 檔案系統一部分的 FCP LUN,您唯一需要修改的檔案為 /etc/zipl.conf。接著請執行 zipl 開機載入程式工具。您無須重新建立 initramfs
Red Hat Enterprise Linux 提供了用來在開機程序起始步驟中啟用 FCP LUN 的參數:rd.zfcp=。這個值是個以逗號區隔開的清單,其中包含了裝置 bus ID、WWPN 為 16 碼的十六進位數字,並以 0x 作為起始,以及以 0x 為起始的 FCP LUN,並且右方填補上零以達到 16 個十六進位數字。
以下為一部系統的 zipl.conf 範例,它在兩個 FCP LUN 的分割區上使用了實體卷冊來作為一個 LVM 卷冊群組 vg_devel1,它包含了 root 檔案系統的 lv_root 邏輯卷冊。為了讓您輕易理解,此範例中所顯示的是無 multipath 的配置。
[defaultboot]
default=linux
target=/boot/
[linux]
image=/boot/vmlinuz-2.6.32-19.el7.s390x
ramdisk=/boot/initramfs-2.6.32-19.el7.s390x.img
parameters="root=/dev/mapper/vg_devel1-lv_root 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a100000000 
rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 
SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev"
若您希望在第三個 FCP LUN 的分割區上新增另一個裝置 bus ID 為 0.0.fc00、WWPN 為 0x5105074308c212e9,並且 FCP LUN 為 0x401040a300000000 的實體卷冊,請將 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000 附加至 zipl.conf 中,boot kernel 的參數行即可,例如:
[defaultboot]
default=linux
target=/boot/
[linux]
image=/boot/vmlinuz-2.6.32-19.el7.s390x
ramdisk=/boot/initramfs-2.6.32-19.el7.s390x.img
parameters="root=/dev/mapper/vg_devel1-lv_root 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a100000000 
rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000
rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 
SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev"
請執行 zipl 來為下個 IPL 套用 /etc/zipl.conf 的變更:
# zipl -V
Using config file '/etc/zipl.conf'
Target device information
Device..........................: 08:00
Partition.......................: 08:01
Device name.....................: sda
Device driver name..............: sd
Type............................: disk partition
Disk layout.....................: SCSI disk layout
Geometry - start................: 2048
File system block size..........: 4096
Physical block size.............: 512
Device size in physical blocks..: 10074112
Building bootmap in '/boot/'
Building menu 'rh-automatic-menu'
Adding #1: IPL section 'linux' (default)
kernel image......: /boot/vmlinuz-2.6.32-19.el7.s390x
kernel parmline...: 'root=/dev/mapper/vg_devel1-lv_root rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a000000000 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a100000000 rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000 rd_LVM_LV=vg_devel1/lv_root rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us cio_ignore=all,!condev'
initial ramdisk...: /boot/initramfs-2.6.32-19.el7.s390x.img
component address:
kernel image....: 0x00010000-0x007a21ff
parmline........: 0x00001000-0x000011ff
initial ramdisk.: 0x02000000-0x028f63ff
internal loader.: 0x0000a000-0x0000a3ff
Preparing boot device: sda.
Detected SCSI PCBIOS disk layout.
Writing SCSI master boot record.
Syncing disks...
Done.

17.2.2.2. 不屬於 Root 檔案系統一部分的 FCP LUN

不屬於 root 檔案系統一部分的 FCP LUN(例如資料磁碟),將永續性地配至於 /etc/zfcp.conf 檔案中。它一行包含了一個 FCP LUN。每行皆包含了 FCP 介面卡的裝置 bus ID、WWPN 為 16 碼的十六進位數字並以 0x 作為起始,以及以 0x 為起始的 FCP LUN,右方填補上零以達到 16 個十六進位數字,並以空格或 tab 區隔開。當 FCP 介面卡被新增至系統時,/etc/zfcp.conf 中的項目會由 udev 啟動與配置。在開機時,所有系統可見的 FCP 介面卡將會被新增並且啟動 udev
/etc/zfcp.conf 的範例內容:
0.0.fc00 0x5105074308c212e9 0x401040a000000000
0.0.fc00 0x5105074308c212e9 0x401040a100000000
0.0.fc00 0x5105074308c212e9 0x401040a300000000
0.0.fcd0 0x5105074308c2aee9 0x401040a000000000
0.0.fcd0 0x5105074308c2aee9 0x401040a100000000
0.0.fcd0 0x5105074308c2aee9 0x401040a300000000
修改 /etc/zfcp.conf 只有在重新啟動系統,或是透過動態更改系統 I/O 配置來新增 FCP 頻道時(比方說在 z/VM 上,已連接的頻道),才會生效。此外,您亦可透過下列指令來啟用 /etc/zfcp.conf 中未啟動的 FCP 介面之項目:
  1. 請使用 cio_ignore 工具程式來將 FCP adapter 由忽略裝置清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r device_number
    請將 device_number 取代為 FCP adapter 的裝置號碼。例如:
    # cio_ignore -r fcfc
  2. 若要啟動將啟用變更的 uevent,請輸入:
    echo add > /sys/bus/ccw/devices/device-bus-ID/uevent
    舉例來說:
    echo add > /sys/bus/ccw/devices/0.0.fcfc/uevent