Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

20.2. FCP 接続の LUN (論理 ユニット) の追加

FCP LUN の追加方法の例を以下に示します。
注記
z/VM 下で実行している場合は、FCP アダプターが z/VM ゲストの仮想マシンに接続されていることを確認してください。実稼働環境でのマルチパス設定には、2 つの異なる物理アダプター (CHPID) 上に少なくとも 2 つの FCP デバイスを配置することになります。以下に例を示します。
CP ATTACH FC00 TO *
CP ATTACH FCD0 TO *

20.2.1. FCP LUN の動的なアクティベート

LUN をアクティベートするには以下の手順に従います。
  1. cio_ignore ユーティリティーを使用して、無視するデバイスの一覧から FCP アダプターを削除し、Linux から見えるようにします。
    # cio_ignore -r device_number
    device_number は、FCP アダプターのデバイス番号に置き換えます。以下に例を示します。
  2. 以下のコマンドを使用して FCP アダプターデバイスをオンラインにします。
    # chccwdev -e fc00
  3. zfcp デバイスドライバーの自動ポートスキャンで必要な WWPN が検出されたこと確認します。
    # 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. LUN へのアクセスに使用するポート (WWPN) に FCP LUN を追加して FCP LUN をアクティベートします。
    # 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

20.2.2. FCP LUN の永続的なアクティベート

上記では、実行中のシステムで FCP LUN を動的にアクティベートする手順を説明しています。しかし、そのような変更は永続的ではなく再起動後には維持されません。Linux システムにおいて FCP 設定の変更を永続化する方法は、FCP LUN がルートファイルシステムに属しているかどうかによって異なります。root ファイルシステムに必要なものは、ブートプロセスの初期段階で initramfs でアクティベートして、root ファイルシステムをマウントできるようにする必要があります。cio_ignore コマンドは、永続的なデバイス設定に対して透過的に処理されるため、無視リストからデバイスを手動で解放する必要はありません。

20.2.2.1. ルートファイルシステムの一部である FCP LUN

ルートファイルシステムの一部である FCP LUN を追加するために必要な唯一のファイルは、/etc/zipl.conf の後に zipl ブートローダーツールを実行します。initramfs を再作成する必要はありません。
Red Hat Enterprise Linux には、起動プロセスの早い段階で FCP LUN をアクティブにするパラメーターである rd.zfcp= があります。この値は、デバイスバス ID を含むコンマ区切りのリスト、0x で始まる 16 桁の 16 進数の WWPN、および 0x で始まり 16 桁の 16 桁の数字の右側にゼロを入れた FCP LUN です。
次の zipl.conf の例は、LVM ボリュームグループ vg_devel1 用に 2 つの FCP LUN のパーティションにある物理ボリュームを使用するシステム用で、root ファイルシステム用の論理ボリューム lv_root が含まれています。分かりやすくするため、この例ではマルチパスなしの設定となっています。
[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"
デバイスバス ID が 0.0.fc00、WWPN 0x5105074308c212e9、および FCP LUN 0x401040a300000000 の 3 番目の FCP LUN のパーティションに別の物理ボリュームを追加するには、rd.zfcp=0.0.fc00,0x5105074308c212e9,0x401040a300000000zipl.conf のブートカーネルのパラメーター行に追加します。以下に例を示します。
[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"
警告
/etc/zipl.conf のカーネルコマンドラインの長さが 896 バイトを超えないようにしてください。これを超えてしまうとブートローダーを保存できず、インストールに失敗します。
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.

20.2.2.2. ルートファイルシステムの一部ではない FCP LUN

データディスクなど、root ファイルシステムの一部ではない FCP LUN は、/etc/zfcp.conf ファイルで永続的に設定されます。このファイルの各行には FCP LUN が含まれています。各行には、FCP アダプターのデバイスバス ID、0x で始まる 16 桁の 16 桁の数字の WWPN、および 0x で始まり 16 桁の 16 桁の数字の右側にゼロが付く FCP LUN が、スペースまたはタブで区切られます。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 アダプターを削除し、Linux から見えるようにします。
    # cio_ignore -r device_number
    device_number は、FCP アダプターのデバイス番号に置き換えます。以下に例を示します。
    # 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