Dynamic Link Manager ユーザーズガイド(Linux®用)

[目次][索引][前へ][次へ]


3.7.3 マルチパス構成のブートディスク環境の設定

SCSIデバイスを使ったシングルパス構成のブートディスクの環境に,HDLMを新規インストールしてから,マルチパスのブートディスク環境を設定する方法について説明します。

設定を誤ると,OSが起動できなくなることがあるので,注意してください。HDLMデバイスからのOSの起動に失敗した場合の対処については,「3.7.5 HDLMデバイスからのOSの起動に失敗した場合の対処」を参照してください。

この手順で使用するブートローダの設定ファイル名は,ブートローダまたはOSによって異なります。ブートローダの設定ファイル名を次の表に示します。

表3-81 ブートローダの設定ファイル名

ブートローダ 設定ファイル名
GRUB BIOS Red Hat Enterprise Linuxの場合
Oracle Unbreakable Enterprise Kernel 5の場合
Oracle Unbreakable Enterprise Kernel 6の場合
/boot/grub/grub.conf
SUSE LINUX Enterprise Server 10の場合
SUSE LINUX Enterprise Server 11の場合
/boot/grub/menu.lst
UEFI Red Hat Enterprise Linux 6の場合 /boot/efi/EFI/redhat/grub.conf
GRUB2 BIOS Red Hat Enterprise Linux 7の場合
SUSE LINUX Enterprise Server 12の場合
/boot/grub2/grub.cfg
UEFI Red Hat Enterprise Linux 7の場合 /boot/efi/EFI/redhat/grub.cfg
ELILO EFI Red Hat Enterprise Linuxの場合 /boot/efi/EFI/redhat/elilo.conf
SUSE LINUX Enterprise Server 10の場合
SUSE LINUX Enterprise Server 11の場合
/boot/efi/EFI/SuSE/elilo.conf

  1. Linuxに,root権限を持つユーザでログインします。
  2. SUSE LINUX Enterprise Server 10にSP4以降を適用している場合は,ブートローダの設定ファイルに「multipath=off」を設定します。
    ブートローダの設定ファイルのカーネルパラメタに「multipath=off」が設定されていない場合は,「multipath=off」を設定したあと,サーバを再起動してください。
    multipath=off」の設定例を次に示します。
    • ブートローダとしてELILOを使用している場合
              :
              :
      image = vmlinuz-2.6.16.60-0.54.5-default
              label = 51
              append = "splash=silent multipath=off"
              description = Linux
              initrd = initrd-2.6.16.60-0.54.5-default
              root = /dev/disk/by-id/scsi-35001862001472c70-part12
       
      下線部に,「multipath=off」が設定されています。
    • Xen対応のカーネルで,ブートローダとしてGRUBを使用している場合
      Xen対応のカーネルは,「表3-74 HDLMがサポートするXenハイパーバイザの動作環境」を参照してください。
              :
              :
      title XEN
          root (hd0,0)
          kernel /xen-pae.gz
          module /vmlinuz-2.6.16.60-0.54.5-xenpae \
          root=/dev/disk/by-id/scsi-SFUJITSU_MAS3735NC_A050P360007N-part6 vga=0x317 \
          resume=/dev/disk/by-id/scsi-SFUJITSU_MAS3735NC_A050P3600077-part2 \
          splash=silent showopts multipath=off
          module /initrd-2.6.16.60-0.54.5-xenpae
       
      下線部に,「multipath=off」が設定されています。
    • Xen非対応のカーネルで,ブートローダとしてGRUBを使用している場合
      HDLMでサポートしているカーネルは,「3.1.1 HDLMがサポートするホストとOS」を参照してください。
              :
              :
      title SUSE LINUX Enterprise Server 10 SP3
          root (hd0,0)
          kernel /vmlinuz-2.6.16.60-0.54.5-smp root=/dev/VG/root vga=0x31a \
            resume=/dev/VG/swap splash=silent showopts multipath=off
          initrd /initrd-2.6.16.60-0.54.5-smp
       
      下線部に,「multipath=off」が設定されています。
  3. HDLMをインストールします。
    3.6.3 HDLMの新規インストール」を参照して手順2,手順4から手順13を実行して,HDLMデバイスを作成してください。
  4. ブートディスク環境にLVMが使用されているか確認します。
    mountコマンドを実行して,ルートパーティション「/」にマウントされたデバイス名 を確認します。LVMが使用されている場合は,VG名,LV名からなるデバイス名が表示されます。 コマンドの実行例を次に示します。
    • LVMが使用されている場合
      # mount
      /dev/mapper/vg00-lv00 on / type ext3 (rw)
              :
      #
       
    • LVMが使用されていない場合
      # mount
      /dev/sda9 on / type ext3 (rw)
              :
      #
       
  5. ブートディスク環境にLVMが使用されている場合は,LVM2がSCSIデバイスではなくHDLMデバイスを認識するように,/etc/lvm/lvm.confファイルを編集します。
    /etc/lvm/lvm.confファイルの編集例を次に示します。
    • SUSE LINUX Enterprise Server 12,Red Hat Enterprise Linux 7およびOracle Linux 7の場合
      変更前
      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
              # filter = [ "a/.*/" ]
                                    :
      
               global_filter = [ "a/.*/" ]
                                    :
      
              # types = [ "fd", 16 ]
                                    :
      
               md_component_detection = 1
                                    :
      }
      変更後
      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
              # filter = [ "a/.*/" ]
                                    :
      
              # global_filter = [ "a/.*/" ]
                  global_filter = [ "a|sddlm[a-p][a-p].*|", "r|/dev/sd|" ]
                                    :
      
              # types = [ "fd", 16 ]
                  types = [ "sddlmfdrv", 16 ]
                                    :
      
              # md_component_detection = 1
                  md_component_detection=0
                                    :
      }
      既存のglobal_filterおよびmd_component_detectionの行をコメントアウトし,下線部を追加します。
      HDLMをアンインストールするときに使用するため,変更前の値は控えてください。
    • 上記以外のOSの場合
      変更前
      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
               filter = [ "a/.*/" ]
                                    :
      
              # types = [ "fd", 16 ]
                                    :
      
              md_component_detection = 1
                                    :
      
      }
      変更後
      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
              # filter = [ "a/.*/" ]
                  filter = [ "a|sddlm[a-p][a-p].*|", "r|/dev/sd|" ]
                                    :
      
              # types = [ "fd", 16 ]
                  types = [ "sddlmfdrv", 16 ]
                                    :
      
              # md_component_detection = 1
                  md_component_detection=0
                                    :
      }
      既存のfilterおよびmd_component_detectionの行をコメントアウトし,下線部を追加します。
      HDLMをアンインストールするときに使用するため,変更前の値は控えてください。
    ファイルを編集したあと,次に示すコマンドを実行してください。
    # /sbin/vgscan
     
  6. /etc/fstabファイルをバックアップします。
  7. /etc/fstabファイルを編集して,各マウントポイントにHDLMデバイスがマウントされるように修正するため,次の手順で各項目に対応するHDLMデバイス名を確認してください。

    1. SCSIデバイス名からHDLMデバイス名を確認します。
      HDLM構成定義ユティリティ(dlmcfgmgr)に-vパラメタを指定して実行して,SCSIデバイスとHDLMデバイスの対応関係を確認します。
       
      # /sbin/dlmcfgmgr -v
      HDevName      Management  Device    Host    Channel Target  Lun
      /dev/sddlmaa  configured  /dev/sda     0          0      0    0
      KAPL10302-I /sbin/dlmcfgmgr completed normally.
       
      HDevName列はHDLMデバイス,Device列はSCSIデバイスを表します。
    2. LABEL指定の場合は,LABELからHDLMデバイス名を確認します。
      OSのコマンドfindfs LABEL={LABEL値}を実行して,LABELとデバイス名の対応を確認します。SCSIデバイス名が表示された場合はa.の結果を参照してHDLMデバイスに変更してください。論理ボリューム名(/dev/{VG名}/{LV名},/dev/mapper/{VG名}-{LV名})が表示された場合は,論理ボリューム名に変更してください (なお,SUSE LINUX Enterprise Server 12,Red Hat Enterprise Linux 7およびOracle Linux 7で論理ボリューム名が表示された場合は,LABELを変更する必要はありません)。
      # /sbin/findfs LABEL=/
      /dev/sddlmaa2
      #
      

      注意事項
      使用する環境によって,findfsにswapのLABELを指定しても情報が取得できない場合があります。その場合,/bin/cat /proc/swapsを実行してswapに使用されているデバイスを確認してください。また,HDLMをアンインストールする場合に備えて,swapのLABELが既に分かっている場合は記録しておいてください。
    3. UUID指定の場合は,UUIDからHDLMデバイス名を確認します。
      OSのコマンドfindfs UUID={UUID値}を実行して,UUIDとデバイス名の対応を確認してください。SCSIデバイス名が表示された場合はa.の結果を参照してHDLMデバイスに変更してください。論理ボリューム名(/dev/{VG名}/{LV名},/dev/mapper/{VG名}-{LV名})が表示された場合は,論理ボリューム名に変更してください (なお,SUSE LINUX Enterprise Server 12,Red Hat Enterprise Linux 7およびOracle Linux 7,で論理ボリューム名が表示された場合は,UUIDを変更する必要はありません)。
      # /sbin/findfs UUID=b74637c2-59bb-4bca-94f0-94a96325b73f
      /dev/sddlmaa2
      #
      
    4. /dev/diskディレクトリから始まるデバイス名(udev 名)指定の場合は,/dev/diskディレクトリから始まるデバイス名(udev名)に対応するHDLMデバイス名を確認します。
      OSのコマンドreadlink -f {udev名}を実行して,udev名とデバイス名の対応を確認してください。SCSIデバイス名が表示された場合はa.の結果を参照してHDLMデバイスに変更してください。
      # /usr/bin/readlink -f /dev/disk/by-id/scsi-360060e801025333005112b6300000036-part2
      /dev/sddlmaa2
      #
      
    5. 論理ボリューム(/dev/{VG名}/{LV名},/dev/mapper/{VG名}-{LV名})で記述されたマウントしたいデバイスは変更する必要はありません。
  8. /etc/fstabファイルを編集します。
    HDLM管理対象デバイスのマウントポイントを,SCSIデバイスからHDLMデバイスに書き換えます。
    既存のSCSIデバイス指定は先頭に#を付けてコメントアウトして,手順7のa.で確認したSCSIデバイスとHDLMデバイスの対応関係を基に,次のようにHDLMデバイス指定を追加します。
     
    # vi /etc/fstab
    /dev/VolGroup00/LogVol00 / ext3     defaults        1 1
    #LABEL=/boot            /boot ext3     defaults        1 2
    /dev/sddlmaa1              /boot ext3     defaults        1 2
    none                     /dev/pts devpts   gid=5,mode=620  0 0
                                :
                                :
     
    なお,HDLMのブートディスク環境では,OSごとにルートパーティション「/」のマウントポイントに設定できるデバイス名の書式は次の制限があるので注意してください。

    表3-82 /etc/fstabファイルでルートパーティション「/」に設定できるデバイスの書式

    OS名 HDLMのブートディスク環境
    LVMなし LVMあり
    Red Hat Enterprise Linux 5
    Oracle Enterprise Linux 5
    Oracle Unbreakable Enterprise Kernel 5
    /dev/{HDLMデバイス} /dev/{VG名}/{LV名}
    Red Hat Enterprise Linux 6
    Red Hat Enterprise Linux 7
    Oracle Linux 6
    Oracle Linux 7
    /dev/mapper/{VG名}-{LV名}
    SUSE LINUX Enterprise Server 10
    SUSE LINUX Enterprise Server 11
    /dev/{VG名}/{LV名}
    SUSE LINUX Enterprise Server 12 UUID={UUID 値} または,/dev/{VG名}/{LV名}
  9. HDLM用の初期RAMディスクイメージファイルを作成します。
    パラメタに指定する初期RAMディスクイメージファイル名の形式を次に示します。同じ名前のファイルがある場合は,既存のファイルをバックアップしてください。

    表3-83 HDLM用の初期RAMディスクイメージファイル名

    OS名 ファイル名
    Red Hat Enterprise Linux 5
    Oracle Enterprise Linux 5
    Oracle Unbreakable Enterprise Kernel 5
    initrd-hdlm-{kernel-version}.img
    Red Hat Enterprise Linux 6
    Oracle Linux 6
    initramfs-hdlm-{kernel-version}.img
    SUSE LINUX Enterprise Server 10
    SUSE LINUX Enterprise Server 11
    initrd-{kernel-version}.hdlm
    Red Hat Enterprise Linux 7
    Oracle Linux 7
    initramfs-{kernel-version}.img
    SUSE LINUX Enterprise Server 12 initrd-{kernel-version}
    注※
    kernel-versionはuname -rコマンドの出力結果です。
    ホストのOSに応じて,次の手順を実行してください。
    • SUSE LINUX Enterprise Server 12,Red Hat Enterprise Linux 7およびOracle Linux 7の場合

      1. /etc/opt/DynamicLinkManager/hdlm.confに定義されている「hdlm_dracut=n」の記述を,「hdlm_dracut=y」に変更します。
      2. dracutコマンドを実行します。
        コマンドの実行例を次に示します。
         
        # /usr/bin/dracut /boot/initrd-3.12.28-4-default `uname -r`
         
      3. /etc/opt/DynamicLinkManager/hdlm.confに定義されている「hdlm_dracut=y」の記述を,「hdlm_dracut=n」に変更します。
    • Red Hat Enterprise Linux 6またはOracle Linux 6の場合

      1. /etc/opt/DynamicLinkManager/hdlm.confに定義されている「hdlm_dracut=n」の記述を,「hdlm_dracut=y」に変更します。
      2. dracutコマンドを実行します。
        コマンドの実行例を次に示します。
         
        # /sbin/dracut /boot/initramfs-hdlm-2.6.32-71.el6.i686.img `uname -r`
         
      3. /etc/opt/DynamicLinkManager/hdlm.confに定義されている「hdlm_dracut=y」の記述を,「hdlm_dracut=n」に変更します。
    • 上記以外のOSの場合
      ブートディスクサポートユティリティ(dlmmkinitrd)を実行します。
      dlmmkinitrdユティリティについては,「7.5 dlmmkinitrd ブートディスクサポートユティリティ」を参照してください。
  10. ブートローダの設定ファイルをバックアップします。
    • SUSE LINUX Enterprise Server 12,Red Hat Enterprise Linux 7およびOracle Linux 7の場合
      OS起動時のカーネルパラメータにresumeの指定がないことを確認してください。

      1. OS起動時のカーネルパラメータを確認します。
        # /usr/bin/cat /proc/cmdline
        BOOT_IMAGE=/boot/vmlinuz-3.12.28-4-default \
        root=UUID=c12fce35-4de5-4674-8b3b-2a2e45007b61 \
        resume=/dev/system/swap splash=silent quiet crashkernel=214M-:107M showopts
        #
        resumeの指定がある場合は,次の手順でresumeの指定がないブートローダのコンフィグファイルを作り直します。resumeの指定がない場合は,この手順は不要なため,手順16に進んでください。
      2. /etc/default/grubファイルからresumeの記述を削除します。
        変更前
        GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/system/swap splash=silent quiet crashkernel=214M-:107M showopts"
        変更後
        GRUB_CMDLINE_LINUX_DEFAULT="splash=silent quiet crashkernel=214M-:107M showopts"
      3. grub2-mkconfigコマンドを使ってgrub.cfgを作り直します。
        # grub2-mkconfig -o /boot/grub2/grub.cfg
    • 上記以外のOSの場合
      ホストのOSに応じて,次の手順を実行してください。
  11. 現在の起動に使用している,ブートローダの設定ファイルに記載されている設定をコピーします。
  12. ブートローダの設定ファイルに記載されている設定の名前を変更します。
    手順11でコピーした設定の名前を変更してください。HDLMデバイス指定用だとわかるような名前を任意に付けます。
    • ブートローダとしてGRUBを使用している場合
      次の下線部を変更します。
      変更前
      title RHEL4.5 (2.6.9-55.EL)
      変更後
      title RHEL4.5 (2.6.9-55.EL-hdlm)
    • ブートローダとしてELILOを使用している場合
      次の下線部を変更します。
      変更前
      label=2.6.9-55.EL
      変更後
      label=2.6.9-55.EL-hdlm
  13. ブートローダの設定ファイルに記載されているrootの指定を編集します。
    • Red Hat Enterprise Linux 6またはOracle Linux 6の場合
      次の手順を実行して,rootにルートデバイスのUUIDを指定します。

      1. mountコマンドを実行して,ルートパーティション「/」にマウントされたデバイス名を確認します。
        コマンドの実行例を次に示します。
         
        # mount
        /dev/sda2 on / type ext4 (rw)
        proc on /proc type proc (rw)
             :
             :
         
        下線部のデバイス名を確認してください。
      2. blkidコマンドを指定して,a.で確認したデバイスのUUIDを確認します。
        コマンドの実行例を次に示します。
         
        # blkid /dev/sda2
        /dev/sda2: UUID="19597725-5d20-4d1d-9906-f9f891b7711a" TYPE="ext4"
        #
         
      3. 手順11でコピーした設定のrootの指定を,b.で確認したUUIDに変更します。
        root=UUID=19597725-5d20-4d1d-9906-f9f891b7711a
        
    • 上記以外のOSの場合
      次の手順を実行して,rootにデバイス名を指定します。

      1. mountコマンドを実行して,ルートパーティション「/」にマウントされたデバイス名を確認します。
        コマンドの実行例を次に示します。
         
        # mount
        /dev/sda2 on / type ext4 (rw)
        proc on /proc type proc (rw)
             :
             :
         
        下線部のデバイス名を確認してください。
      2. 手順11でコピーした設定のrootの指定を,a.で確認したデバイス名に変更します。
        root=/dev/sddlmaa2 on / type ext4 (rw)
        
    なお,HDLMのブートディスク環境では,カーネルパラメタで「root=」に記述できる書式は次の制限があるので注意してください。

    表3-84 カーネルパラメタで「root=」に記述できる書式

    OS名 HDLMのブートディスク環境
    LVMなし LVMあり
    Red Hat Enterprise Linux 5
    Oracle Enterprise Linux 5
    Oracle Unbreakable Enterprise Kernel 5
    root=/dev/{HDLMデバイス} root=/dev/{VG名}/{LV名}
    Red Hat Enterprise Linux 6
    Red Hat Enterprise Linux 7
    Oracle Linux 6
    Oracle Linux 7
    root=UUID={UUID値} root=UUID={UUID値}または, root=/dev/mapper/{VG名}-{LV名}
    SUSE LINUX Enterprise Server 10
    SUSE LINUX Enterprise Server 11
    root=/dev/{HDLMデバイス} root=/dev/{VG名}/{LV名}
    SUSE LINUX Enterprise Server 12 root=UUID={UUID値} root=UUID={UUID値}または, root=/dev/{VG名}/{LV名}
  14. 手順9で作成した初期RAMディスクイメージファイルをブートローダの設定ファイルに記載されているinitrdに指定します。
    手順11でコピーした設定のinitrdの指定を変更してください。
    initrdはブートローダによって指定の方法が異なるので注意してください。
    また,ユーザ環境に応じた任意指定のオプションが設定されている場合,オプションを削除しないように注意してください。
    • SUSE LINUX Enterprise Server 10またはSUSE LINUX Enterprise Server 11の場合
      Xen対応のカーネルを使用している場合は,moduleで指定されたinitrdファイル名を手順9で作成した初期RAMディスクイメージファイルに変更してください。Xen対応のカーネルは,「表3-74 HDLMがサポートするXenハイパーバイザの動作環境」を参照してください。
      手順11でコピーした設定に記載されている,resumeの設定を削除してください。カーネルパラメタにresumeが設定されている場合,HDLMではresumeをサポートしていないため,resumeの設定を削除してください。
  15. ブートローダの設定ファイルを編集して,起動時に使用する設定を指定します。
    • ブートローダとしてGRUBを使用している場合
      手順11でコピーした設定で起動できるように,defaultの数字を変更します。
      数字は有効なtitleが0から数えて何番目かを表します。
      1番目のtitleが有効な場合の編集例を次に示します。
       default= 0 
    • ブートローダとしてELILOを使用している場合
      defaultlabelを記述します。
      編集例を次に示します。
      default linux-HDLM
  16. ホストを停止します。
    次に示すコマンドを実行して,ホストを停止します。
     
    # shutdown -h now
     
  17. LU(システムディスク)へのパスを追加して, シングルパス構成からマルチパス構成に変更します。
  18. ホストを起動します。
  19. HDLMのブートディスク環境に設定できたことを確認します。
    /proc/mountsを参照して,ルート(/)にマウントされているデバイスを確認します。 次のコマンドを実行して,ルートの情報を出力してデバイスを確認してください。
     
    # /bin/cat /proc/mounts | /bin/grep –w / | /bin/grep –v rootfs
    出力されたデバイスを基に次の確認をします。
    • /dev/{HDLMデバイス}が出力された場合
      HDLMのブートディスク環境です。
    • その他のデバイスが出力された場合

      1. /usr/bin/readlink -f {出力されたファイル名} コマンドを実行します。
        ファイルがフルパスで出力されます。
      2. /bin/ls -l {出力されたファイル名} コマンドを実行します。
        通常ファイルではファイルサイズが表示される位置に(major, minor)が表示されます。
      3. 表示されたmajorを引数に次のコマンドを実行します。
        # /bin/cat /proc/devices | /bin/grep -w {major}
        • 出力内容にsddlmfdrvが含まれていればHDLMのブートディスク環境です。
        • 出力内容にdevice-mapperが含まれている場合
          /sbin/dmsetup ls --treeを実行して,b.で表示された(majorminor)を 持つデバイスに関連付けされたデバイスの(majorminor)を確認します。
          表示例
          # /sbin/dmsetup ls --tree
          system-usr (252:3)
            |- (251:2)
          system-var (252:4)
            |- (251:2)
          system-swap (252:1)
            |- (251:2)
          system-root (252:0)
            |- (251:2)
          system-tmp (252:2)
            |- (251:2)
          #
          
          上記の例では,b.で表示された(majorminor)が(252,0)の場合,関連付けられたデバイスは(251:2)=(251, 2)=(major, minor)になります。
          majorを引数に次のコマンドを実行します。
          /bin/cat /proc/devices | /bin/grep –w {major}
          出力内容にsddlmfdrvが含まれていればHDLMのブートディスク環境です。
          含まれていなければHDLMのブートディスク環境ではありません。
        • その他のデバイスが出力された場合
          HDLMのブートディスク環境ではありません。
  20. SUSE LINUX Enterprise Server 12でブートディスク環境にLVMが使用されている場合は,HDLM用の初期RAMディスクイメージファイルを再作成します。 手順9と同じ手順で作成します。
  21. SUSE LINUX Enterprise Server 12でブートディスク環境にLVMが使用されている場合は,ホストを再起動します。 次に示すコマンドを実行して,ホストを再起動してください。
    # /sbin/shutdown -r now

[目次] [前へ] [次へ]


All Rights Reserved. Copyright© 2014, 2016, Hitachi, Ltd.