Red Hat Training

A Red Hat training course is available for Red Hat Linux

第25章 インストール済みの Linux on System z インスタンスの設定

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

25.1. DASD の追加

本セクションでは Direct Access Storage Device (DASD) のオンラインでの設定、フォーマット化、また再起動しても自動的に使用できるようするシステムへの永続的な接続などを行う方法について説明しています。

注記

z/VM 環境下で実行する場合は、デバイスが Linux システムに接続またはリンクされていることを確認してください。
CP ATTACH EB1C TO *
アクセス可能なミニディスクをリンクするには、以下のようなコマンドを実行します。
CP LINK RHEL6X 4B2E 4B2E MR
DASD 4B2E LINKED R/W
上記のコマンドについては 『z/VM: CP Commands and Utilities Reference, SC24-6175』 をご覧ください。

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

以下の手順では DASD を動的に (永続的ではなく) オンラインで使用できるようにする方法を説明しています。新しい DASD を設定する際に行う最初の手順になります。後半では DASD の接続を永続的に維持する方法について説明します。

手順25.1 VMCP ドライバーを使って DASD ディスクを IBM System z に追加する

  1. VMCP ドライバーを有効にします。
    # modprobe vmcp
  2. cio_ignore コマンドを使って DASD を無視するデバイス一覧から削除し、Linux 側で表示されるようにします。
    # cio_ignore -r DeviceNumber
    DeviceNumber には DASD のデバイス番号を入れます。 例を次に示します。
    # cio_ignore -r 0102
  3. ディスクと仮想マシンをリンクします。
    # vmcp 'link * DeviceNumber DeviceNumber rw'
    DeviceNumber には DASD のデバイス番号を入力します。
  4. デバイスをオンラインで設定します。コマンドを以下の形式で使用します。
    # # chccwdev -e DeviceNumber
    DeviceNumber には DASD のデバイス番号を入力します。
  5. lsdasd コマンドを使ってディスクの準備が整っているか確認します。
    # lsdasd
    Bus-ID     Status      Name      Device  Type  BlkSz  Size      Blocks
    ==============================================================================
    0.0.0100   active      dasda     94:0    ECKD  4096   2347MB    600840
    0.0.0301   active      dasdb     94:4    FBA   512    512MB     1048576
    0.0.0300   active      dasdc     94:8    FBA   512    256MB     524288
    0.0.0101   active      dasdd     94:12   ECKD  4096   2347MB    600840
    0.0.0200   active      dasde     94:16   ECKD  4096   781MB     200160
    0.0.0102   active      dasdf     94:20   ECKD  4096   2347MB    600840
    
    上記の例では、デバイス 0102 (Bus-ID コラム内に表示されている 0.0.0102) は /dev/dasdf としてアクセスされています。
上記を手順通りに行うと新しい DASD は現在のセッションにのみ接続されます。つまり、システムの再起動後の接続は確保されません。ストレージデバイスを永続的に接続する方法については 「DASD の永続的なオンライン設定」 を参照してください。
詳細は 『Linux on System z Device Drivers, Features, and Commands on Red Hat Enterprise Linux 6』 の DASD 章でも解説されています。

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

「DASD の動的なオンライン設定」 では稼働中のシステムで DASD を動的に有効にする方法を解説しています。永続的な変更ではないためシステムを再起動すると DASD は接続されなくなります。本セクションでは DASD はすでに動的に接続されていると仮定しています。
Linux システムで DASD 設定に永続的な変更を行う場合、DASD が root (/) ファイルシステムの一部を構成しているかどうかにより方法が異なってきます。root ファイルシステムで必要とされる DASD の場合はinitramfs を使って起動プロセスの初期段階でアクティブにし、 root ファイルシステムをマウントできるようにしておかなければなりません。root ファイルシステムとは関係ない DASD は設定のプロセスを簡略化するため起動プロセス後半に行っても構いません。
無視するデバイス (cio_ignore) の一覧は永続デバイス設定に対して透過的に処理されます。無視するデバイス一覧内のデバイスを手作業で解放する必要はありません。

25.1.2.1. root ファイルシステムの一部を構成する DASD

新しい DASD を root ファイルシステムの一部として接続する場合、次回起動後に変更が反映されるよう zipl ブートローダー設定を編集してから initramfs を再生成する必要があります。以下に必要となる手順を示します。

手順25.2 root デバイスとして DASD を永続的に接続する

  1. Vim などのプレーンなテキストエディターを使って /etc/dasd.conf 設定ファイルを編集し、DASD の設定を表す行をファイルに追加します。以前、設定したデバイスを表すファイルの一部を利用しても構いません。有効な構成を表す行の例を以下に示します。
    0.0.0102 use_diag=0 readonly=0 erplog=0 failfast=0
    
  2. /etc/zipl.conf 設定ファイルを編集します。zipl.conf ファイルの例を以下に示します。
    [defaultboot]
    default=linux
    target=/boot/
    [linux]
      image=/boot/vmlinuz-2.6.32-19.el6.s390x
      ramdisk=/boot/initramfs-2.6.32-19.el6.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,!0.0.0009"
    
    parameters= 行にある複数の rd_DASD= オプションに注目してください。新しい DASD は同じ構文を使ってこの行に追加する必要があります (rd_DASD= のキーワードの後にデバイス IDを入れ、コンマで区切ってオプション一覧を続けます)。詳細は 『Linux on System z Device Drivers, Features, and Commands on Red Hat Enterprise Linux 6』 の DASD デバイスドライバーの章に記載されている dasd= パラメーターの説明をご覧ください。
  3. 次に initrd を再構築します。
    # mkinitrd -f /boot/initramfs-2.6.32-71.el6.s390x.img `uname -r`
  4. zipl コマンドでブートローダー設定を再構築します。詳細を出力させる場合は -V オプションを使用します。
    # 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.el6.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_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,!0.0.0009'
      initial ramdisk...: /boot/initramfs-2.6.32-19.el6.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.
    
ここまで完了すると、新しい DASD が永続的に接続されるため、root ファイルシステムの一部として使用できるようになります。ただし、その前に root ファイルシステムを新しい DASD に拡張する手順が必要です。root ファイルシステムに LVM の論理ボリュームを使用している場合はこのボリューム (およびこのボリュームを格納しているボリュームグループ) も新しい DASD に拡張する必要があります。pvcreatevgextendlvextend のコマンドを使って LVM の物理ボリュームを作成、既存のボリュームグループを拡張してから root 論理ボリュームを拡張するという手順で行います。詳細は 「新しいストレージデバイスを含ませるため既存の LVM ボリュームを拡張する」 を参照してください。

25.1.3. root ファイルシステムの一部を構成しない DASD

root ファイルシステムの一部でない DASD、すなわち データディスク/etc/dasd.conf 内で永続的に設定されています。このファイルでは各行に 1 つの DASD が含まれています。各行は DASD のデバイスバス ID で始まります。オプションとして各行は、空白またはタブ文字区切りでオプションを続けられます。オプションは、キーと値がイコール記号 (=) で分けられたキー値ペアで構成されています。
このキーは、DASD にある可能性のある有効な sysfs 属性に対応しています。値はキーの sysfs 属性に書き込まれます。/etc/dasd.conf 内のエントリーは、DASD がシステムに追加された際にアクティベートされ設定されます。ブート時にはシステムから見えるすべての 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 下で接続) した後でのみ反映されます。別の方法では、以下のコマンドを実行することで、アクティブではなかった DASD 用に /etc/dasd.conf 内の新規のエントリーをアクティベートできます。

手順25.3 root デバイスとは関係ない DASD を永続的に接続する

  • デバイスの uevent 属性を書き込むことでアクティベートします。
    echo add > /sys/bus/ccw/devices/device.bus,ID/uevent
    例を示します。
    echo add > /sys/bus/ccw/devices/0.0.021a/uevent

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

DASD をオンラインにしたら今度は必要に応じてフォーマット化を行います。フォーマット化に必要な手順を以下に示します。

警告

ディスクにある既存データはすべて消去されます。保持したいデータがある場合は次の手順に進む前に必ずバックアップを取ってください。

手順25.4 DASD のフォーマット化

  1. dasdfmt コマンドで DASD 上にあるデータをすべて消去します。DeviceNumber には DASD のデバイス番号を入れてください。確認のプロンプトが表示されたら (以下参照)、yes と入力して先に進みます。
    # dasdfmt -b 4096 -d cdl -p /dev/disk/by-path/ccw-0.0.DeviceNumber
    Drive Geometry: 10017 Cylinders * 15 Heads =  150255 Tracks
    
    I am going to format the device /dev/disk/by-path/ccw-0.0.0102 in the following way:
       Device number of device : 0x4b2e
       Labelling device        : yes
       Disk label              : VOL1
       Disk identifier         : 0X0102
       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...
    
    dasdfmt コマンドの構文については dasdfmt(8) の man ページを参照してください。
  2. fdasd コマンドを使って Linux 互換の新しいパーティションテーブルを DASD に書き込みます。DeviceNumber には DASD のデバイス番号を入力してください。
    # fdasd -a /dev/disk/by-path/ccw-DeviceNumber
    auto-creating one partition for the whole disk...
    writing volume label...
    writing VTOC...
    checking !
    wrote NATIVE!
    rereading partition table...
    
    上記の例ではディスク全体を占めるパーティションをひとつ作成するため -a オプションを使用しています。1 つの DASD 上に最大 3 つのパーティションまで作成することができます。fdasd コマンドの構文および使用できるオプションについては fdasd(8) の man ページを参照してください。
  3. fdisk で新しいパーティションを作成します。DeviceName には DASD のデバイス名を入力してください。
    # fdisk /dev/DeviceName
    fdisk を実行すると、ターミナルに一連のプロンプトが表示されます。プロンプトを使ってディスクパーティションテーブルを操作し、新しいパーティションを作成したり既存のパーティションを編集したりすることができます。fdisk の使い方については fdisk(8) の man ページを参照してください。
(低レベルのフォーマット化を行った) DASD をオンラインにすると、Linux 環境下の他のディスクと同様に使用することができます。たとえば、DASD のパーティション上にはファイルシステムや LVM 物理ボリューム、swap 領域などを作成することができます (例、/dev/disk/by-path/ccw-0.0.4b2e-part1 )。dasdfmt コマンドおよび fdasd コマンド以外では、絶対に DASD デバイス全体 (dev/dasdb) を使用しないでください。DASD 全体を使用する場合は、上述の fdasd の例で示すようにドライブ全体にまたがるパーティションを 1 つ作成します。

注記

たとえば /etc/fstab の既存のディスクエントリーの構成を壊さずに新しいディスクを後で追加するには、/dev/disk/by-path/ 配下で永続的なデバイスシンボリックリンクを使用します。

25.1.5. 新しいストレージデバイスを含ませるため既存の LVM ボリュームを拡張する

LVM を使用しているシステムの場合、本章前半の手順にしたがって接続した新しい DASD を既存の論理ボリュームに含ませるため、そのボリュームグループおよび論理ボリュームを拡張する必要があります。拡張しないとシステムに DASD を接続しても使用できません。
既存するひとつの論理ボリュームに新しい DASD の全容量を使用する場合は以下の手順になります。複数の論理ボリュームに使用したい場合は、以下のパーティションに複数の LVM 物理ボリュームを作成し、各物理ボリューム (およびボリュームグループ) に対して同じ手順を繰り返します。ここでは 「DASD の動的なオンライン設定」 の手順に従い新しい DASD を動的に接続、「root ファイルシステムの一部を構成する DASD」 の手順で永続的に接続、root ボリュームとして使用するための準備、「ローレベルフォーマットによる新規 DASD の準備」 通りのフォーマット化がすべて終了し、そこに単一パーティションが作成されていると仮定しています。

手順25.5 新しい DASD を使用させるため既存の論理ボリュームを拡張する

  1. pvcreate コマンドを使って DASD 上に LVM 用の新しい物理ボリュームを作成します。
    # pvcreate /dev/DeviceName

    重要

    /dev/dasdf1 など、パーティション としてデバイス名を必ず指定します。ブロックデバイス全体を指定しないよう注意してください。
  2. pvs コマンドを使って既存の物理ボリュームを表示させ物理ボリュームが実際に作成されたか確認します。
    # pvs
    PV                 VG             Fmt  Attr PSize   PFree
     /dev/dasda2        vg_local       lvm2 a--    1,29g       0
     /dev/dasdd1        vg_local       lvm2 a--    2,29g       0
     /dev/dasdf1                       lvm2 a--    2,29g    2,29g
     /dev/mapper/mpathb vgextnotshared lvm2 a--  200,00g 1020,00m
    
    上記の例では /dev/dasdf1 に空の物理ボリュームが格納され、いずれのボリュームグループにも割り当てられていないことがわかります。
  3. 新しい DASD を使用させたいボリュームを格納している既存ボリュームグループを vgextend コマンドを使って拡張します。
    # vgextend VolumeGroup PhysicalVolume
    VolumeGroup には拡張しようとしているボリュームグループ名を入れ、PhysicalVolume には物理ボリューム名を入れます (/dev/dasdf1 など)。
  4. 新しい DASD を使用させたい論理ボリュームを拡張するため lvextend コマンドを使用します。
    # lvextend -L +Size /dev/mapper/VolumeGroup-LogicalVolume
    例を示します。
    # lvextend -L +2G /dev/mapper/vg_local-lv_root
    Extending logical volume lv_root to 2,58 GiB
    Logical volume lv_root successfully resized
    
手順通りの作業が完了すると既存のボリュームが拡張されて以前から割り当てられていたストレージデバイスに加え新しい DASD が含まれるようになります。pvsvgslvs などのコマンドを root で使用すると、上記手順の途中いずれの段階でも LVM の物理ボリューム、ボリュームグループ、論理ボリュームを表示させることができます。