Hitachi

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


3.10.3 シングルパス環境でSCSIデバイス上に作成済みの論理ボリュームをHDLMデバイスに移行する場合

ここでは,シングルパス環境の場合にSCSIデバイス上にある論理ボリュームをマルチパス環境のHDLMデバイス上に移行する手順を説明します。「図3‒14 SCSIデバイス上にある論理ボリュームをHDLMデバイス上に移行する場合のデバイス構成(シングルパス環境の場合)」に示す環境は,次の手順で構築してください。

図3‒14 SCSIデバイス上にある論理ボリュームをHDLMデバイス上に移行する場合のデバイス構成(シングルパス環境の場合)
[図データ]

図3‒14 SCSIデバイス上にある論理ボリュームをHDLMデバイス上に移行する場合のデバイス構成(シングルパス環境の場合)」のsdnは,それぞれ別のLUを示します。sddlmad1sddlmad2はそれぞれのLUに対応するHDLMデバイスを示します。

  1. HDLMがインストールされていることを確認します。

    rpmコマンドを実行して,HDLMがインストールされていることを確認します。

    # rpm -q HDLM
     HDLM-x.x.x.x.xxx-x
  2. シングルパス状態であることを確認します。

    HDLM構成定義ユティリティdlmcfgmgr)-vパラメを指定して実行して,LUに対するパスがシングルパス状態であることを確認します。

    # dlmcfgmgr -v
    HDevName        Management    Device     Host  Channel  Target  Lun
    /dev/sddlmaa    configured    /dev/sda      2      0       0      0
    /dev/sddlmab    configured    /dev/sdb      2      0       0      1
    KAPL10302-I /sbin/dlmcfgmgr completed normally.
  3. SCSIデバイスおよびHDLMデバイスを使用しているプロセス,サービスなどをすべて停止します。

  4. 移行対象の論理ボリュームをアンマウントします。

    論理ボリュームが/mnt/lvol1にマウントされている場合の実行例を次に示します。

    # umount /mnt/lvol1
  5. ボリュームグループを非活性化します。

    移行対象の論理ボリュームが,vg01(ボリュームグループ)に属している場合の実行例を次に示します。

    # vgchange -an vg01 
      0 logical volume(s) in volume group "vg01" now active
  6. ボリュームグループをエクスポートします。

    vg01(ボリュームグループ)の情報をエクスポートする場合の実行例を次に示します。

    # vgexport vg01
      Volume group "vg01" successfully exported
  7. /etc/lvm/lvm.confファイルを編集します。

    SCSIデバイスの構成を無効にしてHDLMデバイスの構成を有効にするために,ファイル中のデバイスセクションに対して次の編集を行います。

    /etc/lvm/lvm.confファイルの編集例を次に示します。

    • Red Hat Enterprise Linux 9の場合

      変更前

      devices {
                                    :
              # global_filter = [ "a/.*/" ]
              global_filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
                                    :
              # types = [ "fd", 16 ]
                                    :
              md_component_detection = 1
                                    :
              allow_changes_with_duplicate_pvs = 0
                                    :
              multipath_component_detection=1
                                    :
              use_devicesfile=1
                                    :
      
      }

      変更後

      devices {
                                    :
              # global_filter = [ "a/.*/" ]
              # global_filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
              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
                                    :
              # allow_changes_with_duplicate_pvs = 0
              allow_changes_with_duplicate_pvs = 1
                                    :
              # multipath_component_detection=1
              multipath_component_detection=0
                                    :
              # use_devicesfile=1
              use_devicesfile=0
                                    :
      
      }

      既存のglobal_filtertypesmd_component_detectionallow_changes_with_duplicate_pvsmultipath_component_detectionおよびuse_devicesfileの行をコメントアウトし,下線部を追加します。

      SCSIデバイスの構成に戻す場合に使用するため,変更前の値は控えてください。

    • Red Hat Enterprise Linux 8,Oracle Linux 8,Oracle Unbreakable Enterprise Kernel 8またはSUSE LINUX Enterprise Server 15 SP2以降の場合

      Red Hat Enterprise Linux 8.8以降の場合は,multipath_component_detectionの値を0に設定してください。詳細は,「3.10.1 LVM2を使用する場合の注意事項」を参照してください。

      変更前

      devices {
                                    :
              # global_filter = [ "a/.*/" ]
              global_filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
                                    :
              # types = [ "fd", 16 ]
                                    :
              md_component_detection = 1
                                    :
              allow_changes_with_duplicate_pvs = 0
                                    :
      
      }

      変更後

      devices {
                                    :
              # global_filter = [ "a/.*/" ]
              # global_filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
              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
                                    :
              # allow_changes_with_duplicate_pvs = 0
              allow_changes_with_duplicate_pvs = 1
                                    :
      
      }

      既存のglobal_filtertypesmd_component_detectionおよびallow_changes_with_duplicate_pvsの行をコメントアウトし,下線部を追加します。

      SCSIデバイスの構成に戻す場合に使用するため,変更前の値は控えてください。

    • SUSE LINUX Enterprise Server 12,SUSE LINUX Enterprise Server 15 SP1以前,Red Hat Enterprise Linux 7,Oracle Linux 7およびOracle Unbreakable Enterprise Kernel 7の場合

      allow_changes_with_duplicate_pvsの値を1に,write_cache_stateの値を0 に設定してください。詳細は,「3.10.1 LVM2を使用する場合の注意事項」を参照してください。

      use_lvmetad=0で運用する場合は,global_filterではなくfilterで指定してください。

      変更前

      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
              # filter = [ "a/.*/" ]
                filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
                                    :
      
              write_cache_state = 1
                                    :
      
              # 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 = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
                  filter = [ "a|sddlm[a-p][a-p].*|", "r|/dev/sd|" ]
                                    :
      
              # write_cache_state = 1
                  write_cache_state = 0
                                    :
      
              # types = [ "fd", 16 ]
              types = [ "sddlmfdrv", 16 ]
                                    :
      
              # md_component_detection = 1
                  md_component_detection=0
                                    :
      }

      既存のfilterwrite_cache_statetypesおよびmd_component_detectionの行をコメントアウトし,下線部を追加します。

      SCSIデバイスの構成に戻す場合に使用するため,変更前の値は控えてください。

    • 上記以外のOSの場合

      write_cache_stateの値を0 に設定してください。詳細は,「3.10.1 LVM2を使用する場合の注意事項」を参照してください。

      global_filterが使用できるLVM2のバージョンで,use_lvmetad=1で運用する場合は,filterではなくglobal_filterで指定してください。

      変更前

      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
              # filter = [ "a/.*/" ]
                                    :
      
              # global_filter = [ "a/.*/" ]
                global_filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
                                    :
      
              write_cache_state = 1
                                    :
      
              # 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 = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
                  global_filter = [ "a|sddlm[a-p][a-p].*|", "r|/dev/sd|" ]
                                    :
      
              # write_cache_state = 1
                  write_cache_state = 0
                                    :
      
              # types = [ "fd", 16 ]
              types = [ "sddlmfdrv", 16 ]
                                    :
      
              # md_component_detection = 1
                  md_component_detection=0
                                    :
      }

      既存のglobal_filterwrite_cache_statetypesおよびmd_component_detectionの行をコメントアウトし,下線部を追加します。

      SCSIデバイスの構成に戻す場合に使用するため,変更前の値は控えてください。

  8. VGスキャンを実行します。

    HDLMデバイスでボリュームグループを再構築するために,vgscanコマンドを実行します。実行例を次に示します。

    # vgscan
      Reading all physical volumes.  This may take a while...
      Found exported volume group "vg01" using metadata type lvm2
  9. LVMキャッシュファイルを削除します。

    次のファイルがある場合,ファイルを削除してください。

    • /etc/lvm/.cache

    • /etc/lvm/cache/.cache

  10. ボリュームグループをインポートします。

    vg01(ボリュームグループ)の情報をインポートする場合の実行例を次に示します。

    # vgimport vg01
      Volume group "vg01" successfully imported
  11. 移行が正常に終了したかどうかをpvscanコマンドを実行して確認します。

    移行対象の論理ボリュームの物理ボリューム情報がHDLMデバイスになっていることを確認するために,次のコマンドを実行します。

    # pvscan
      PV /dev/sddlmad1   VG vg01   lvm2 [468.00 MB / 368.00 MB free]
      PV /dev/sddlmad2   VG vg01   lvm2 [548.00 MB / 548.00 MB free]
      Total: 2 [1016.00 MB] / in use: 2 [1016.00 MB] / in no VG: 0 [0   ]
  12. ボリュームグループを活性化します。

    移行対象の論理ボリュームが,vg01(ボリュームグループ)に属している場合の実行例を次に示します。

    # vgchange -ay vg01 
      1 logical volume(s) in volume group "vg01" now active
  13. LUへパスを追加します。

    4.7.4 HDLMデバイスの構成変更」の(3) LUへのパスを追加する」を参照して,既存のLUへのパスを追加します。

  14. 移行対象の論理ボリュームをマウントします。

    移行対象の論理ボリュームが/dev/vg01/lvol1で,これを/mnt/lvol1にマウントする場合の実行例を次に示します。

    # mount /dev/vg01/lvol1 /mnt/lvol1