Red Hat Training

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

第20章 IBM Z インスタンスでのインストール済み Linux の設定

IBM Z 上の Linux に関する詳細情報は、22章IBM Z に関する参考文献に一覧表示されている資料を参照してください。一般的なタスクの一部がここで説明されています。

20.1. DASD の追加

DASD (ダイレクトアクセスストレージデバイス) は、IBM Z で一般的に使用されるタイプのストレージです。このストレージデバイスの使用方法については、IBM Knowledge Center (http://www-01.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.lgdd/lgdd_t_dasd_wrk.html) を参照してください。
DASD をオンラインに設定してフォーマットし、変更を永続化する方法の例を以下に示します。
注記
z/VM 環境下で実行する場合は、デバイスが Linux システムに接続またはリンクされていることを確認してください。
CP ATTACH EB1C TO *
アクセス可能なミニディスクをリンクするには、以下のようなコマンドを実行します。
CP LINK RHEL7X 4B2E 4B2E MR
DASD 4B2E LINKED R/W
上記のコマンドについての詳細は『z/VM: CP Commands and Utilities Reference, SC24-6175』を参照してください。

20.1.1. DASD のオンラインでの動的な設定

DASD をオンラインで設定するには、次の手順に従います。
  1. cio_ignore ユーティリティーを使用して、無視するデバイスの一覧から DASD を削除し、Linux から見えるようにします。
    # cio_ignore -r device_number
    device_number は DASD のデバイス番号で置き換えます。以下に例を示します。
    # cio_ignore -r 4b2e
  2. デバイスをオンラインに設定します。コマンドを次の形式で使用します。
    # chccwdev -e device_number
    device_number は DASD のデバイス番号で置き換えます。以下に例を示します。
    # chccwdev -e 4b2e
    または、sysfs 属性を使用してデバイスをオンラインに設定できます。
    1. cd コマンドを使用して、そのボリュームを表す /sys/ ディレクトリーに移動します。
      # cd /sys/bus/ccw/drivers/dasd-eckd/0.0.4b2e/
      # ls -l
      total 0
      -r--r--r--  1 root root 4096 Aug 25 17:04 availability
      -rw-r--r--  1 root root 4096 Aug 25 17:04 cmb_enable
      -r--r--r--  1 root root 4096 Aug 25 17:04 cutype
      -rw-r--r--  1 root root 4096 Aug 25 17:04 detach_state
      -r--r--r--  1 root root 4096 Aug 25 17:04 devtype
      -r--r--r--  1 root root 4096 Aug 25 17:04 discipline
      -rw-r--r--  1 root root 4096 Aug 25 17:04 online
      -rw-r--r--  1 root root 4096 Aug 25 17:04 readonly
      -rw-r--r--  1 root root 4096 Aug 25 17:04 use_diag
    2. デバイスがすでにオンラインになっているかを確認します。
      # cat online
      0
    3. オンラインになっていない場合は、次のコマンドを実行してオンラインにします。
      # echo 1 > online
      # cat online
      1
  3. どのブロック devnode にアクセスしているかを確認します。
    # ls -l
    total 0
    -r--r--r--  1 root root 4096 Aug 25 17:04 availability
    lrwxrwxrwx  1 root root    0 Aug 25 17:07 block -> ../../../../block/dasdb
    -rw-r--r--  1 root root 4096 Aug 25 17:04 cmb_enable
    -r--r--r--  1 root root 4096 Aug 25 17:04 cutype
    -rw-r--r--  1 root root 4096 Aug 25 17:04 detach_state
    -r--r--r--  1 root root 4096 Aug 25 17:04 devtype
    -r--r--r--  1 root root 4096 Aug 25 17:04 discipline
    -rw-r--r--  1 root root    0 Aug 25 17:04 online
    -rw-r--r--  1 root root 4096 Aug 25 17:04 readonly
    -rw-r--r--  1 root root 4096 Aug 25 17:04 use_diag
    この例では、 /dev/dasdb としてデバイス 4B2E にアクセスしてます。
この命令では、現行セッションに DASD オンラインを設定しましたが、システムが再起動すると元に戻ります。DASD オンラインを永続的に設定する場合は 「DASD のオンラインでの永続的な設定」 を参照してください。DASD を使用する場合は、/dev/disk/by-path/ の下にある永続的なデバイスのシンボリックリンクを使用します。ストレージデバイスを連続的に参照する別の方法については、Red Hat Enterprise Linux 7 ストレージ管理ガイドの永続ストレージデバイスの命名についての章を参照してください。

20.1.2. 低レベルフォーマットによる新規 DASD の準備

ディスクがオンラインになったら、/root ディレクトリーに戻り、デバイスをローレベルフォーマットします。DASD の有効期間中に必要なローレベルフォーマットは、この 1 回のみです。
# cd /root
# dasdfmt -b 4096 -d cdl -p /dev/disk/by-path/ccw-0.0.4b2e
Drive Geometry: 10017 Cylinders * 15 Heads =  150255 Tracks

I am going to format the device /dev/disk/by-path/ccw-0.0.4b2e in the following way:
Device number of device : 0x4b2e
Labelling device        : yes
Disk label              : VOL1
Disk identifier         : 0X4B2E
Extent start (trk no)   : 0
Extent end (trk no)     : 150254
Compatible Disk Layout  : yes
Blocksize               : 4096

--->> ATTENTION! <<---
All data of that device will be lost.
Type "yes" to continue, no will leave the disk untouched: yes
cyl    97 of  3338 |#----------------------------------------------|   2%
進捗バーが最後まで到達し、フォーマットが完了すると、dasdfmt は以下の出力を出力します。
Rereading the partition table...
Exiting...
ここで、fdasd を使用して DASD にパーティションを設定します。DASD には最大 3 つの パーティションを作成できます。この例では、ディスク全体にまたがるパーティションを 1 つ作成します。
# fdasd -a /dev/disk/by-path/ccw-0.0.4b2e
auto-creating one partition for the whole disk...
writing volume label...
writing VTOC...
checking !
wrote NATIVE!
rereading partition table...
(ローレベルフォーマットを行った) DASD をオンラインにすると、Linux 環境下の他のディスクと同様に使用できます。たとえば、/dev/disk/by-path/ccw-0.0.4b2e-part1 などのパーティションにファイルシステム、LVM 物理ボリューム、またはスワップ領域を作成できます。dasdfmt コマンドおよび fdasd コマンド以外には、絶対に DASD デバイス全体(dev/dasdb)を使用しないでください。DASD 全体を使用する場合は、上記の fdasd の例のように、ドライブ全体にまたがるパーティションを 1 つ作成します。
たとえば、/etc/fstab の既存のディスクエントリーを破損せずにディスクを後で追加するには、/dev/disk/by-path/ の下にある永続的なデバイスのシンボリックリンクを使用します。

20.1.3. DASD のオンラインでの永続的な設定

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

20.1.3.1. ルートファイルシステムの一部である DASD

ルートファイルシステムの一部である DASD を追加するために必要な唯一のファイルは /etc/zipl.conf です。次に、zipl ブートローダーツールを実行します。initramfs を再作成する必要はありません。
起動プロセスの早い段階で DASD をアクティベートする起動オプションである rd.dasd= があります。このオプションは、DASD (Direct Access Storage Device) アダプターデバイスバス識別子を取ります。複数の DASD の場合は、パラメーターを複数回指定するか、バス ID のコンマ区切りリストを使用します。DASD の範囲を指定するには、最初と最後のバス ID を指定します。
以下は、LVM ボリュームグループ vg_devel1 用に 2 つの DASD のパーティションにある物理ボリュームを使用するシステム用の zipl.conf の例です。これには、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.dasd=0.0.0200,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.0207,use_diag=0,readonly=0,erplog=0,failfast=0  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.202b の 3 番目の DASD のパーティションに、物理ボリュームをもう 1 つ追加するとします。これを行うには、rd.dasd=0.0.202bzipl.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.dasd=0.0.0200,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.0207,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.202b  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..........................: 5e:00
Partition.......................: 5e:01
Device name.....................: dasda
DASD device number..............: 0201
Type............................: disk partition
Disk layout.....................: ECKD/compatible disk layout
Geometry - heads................: 15
Geometry - sectors..............: 12
Geometry - cylinders............: 3308
Geometry - start................: 24
File system block size..........: 4096
Physical block size.............: 4096
Device size in physical blocks..: 595416
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.dasd=0.0.0200,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.0207,use_diag=0,readonly=0,erplog=0,failfast=0 rd.dasd=0.0.202b 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-0x00a70fff
parmline........: 0x00001000-0x00001fff
initial ramdisk.: 0x02000000-0x022d2fff
internal loader.: 0x0000a000-0x0000afff
Preparing boot device: dasda (0201).
Preparing boot menu
Interactive prompt......: enabled
Menu timeout............: 15 seconds
Default configuration...: 'linux'
Syncing disks...
Done.

20.1.3.2. ルートファイルシステムの一部ではない DASD

ルートファイルシステムの一部ではない DASD ( データディスク )は、/etc/dasd.conf ファイルで永続的に設定されます。このファイルでは各行に 1 つの DASD が含まれています。各行は DASD のデバイスバス ID で始まります。オプションとして各行は、空白またはタブ文字区切りでオプションを続けられます。オプションは、キーと値が等号 (=) で分けられたキーと値ペアで設定されています。
このキーは、DASD が持つことができる有効な sysfs 属性に対応します。値はキーの sysfs 属性に書き込まれます。DASD がシステムに追加されると、/etc/dasd.conf 内のエントリーが udev によってアクティベートされ、設定されます。起動時に、システムに表示されるすべての DASD が追加され、udev が発生します。
/etc/dasd.conf のコンテンツの例:
0.0.0207
0.0.0200 use_diag=1 readonly=1
/etc/dasd.conf の変更は、システムの再起動後か、システムの I/O 設定を変更して新規の DASD を動的に追加(つまり、DASD は z/VM の下に接続)しないと有効になりません。または、/etc/dasd.conf で、アクティブでなかった DASD に対して、以下のコマンドを実行して、新しいエントリーをアクティベートできます。
  1. cio_ignore ユーティリティーを使用して、無視するデバイスの一覧から DASD を削除し、Linux から見えるようにします。
    # cio_ignore -r device_number
    以下に例を示します。
    # cio_ignore -r 021a
  2. デバイスの uevent 属性に書き込むことにより、アクティベーションをトリガーします。
    # echo add > /sys/bus/ccw/devices/device-bus-ID/uevent
    以下に例を示します。
    # echo add > /sys/bus/ccw/devices/0.0.021a/uevent