5.5. クラスター内でのミラー化 LVM 論理ボリュームの作成

ミラー化 LVM 論理ボリュームをクラスターに作成するには、( セグメントタイプ mirror を設定して) 1 つのノードにミラー化 LVM 論理ボリュームを作成する場合と同じコマンドと手順を使用する必要があります。ただし、クラスターに、ミラー化 LVM ボリュームを作成するには、以下の条件を満たす必要があります。
  • クラスターおよびクラスターミラーインフラストラクチャーが稼働している
  • クラスターが定足数を満たす
  • lvm.conf ファイルのロッキングタイプはクラスターロッキングを有効にするよう正しく設定されている必要があり、use_lvmetad 設定は 0 である必要があります。ただし、Red Hat Enterprise Linux 7 では開始プロシージャーの一部として、ocf:heartbeat:clvm Pacemaker リソースエージェント自体がこれらのタスクを実行します。
Red Hat Enterprise Linux 7 では、クラスターは Pacemaker で管理されます。クラスター化された LVM 論理ボリュームは、Pacemaker クラスターと併用される場合のみサポートされるため、クラスターリソースとして設定する必要があります。
以下の手順は、クラスターに、ミラー化された LVM ボリュームを作成します。
  1. クラスターソフトウェアおよび LVM パッケージをインストールし、クラスターソフトウェアを起動してクラスターを作成します。クラスターにはフェンスを設定する必要があります。『 High Availability Add-On の管理 』 ドキュメントには、クラスターを作成し、クラスターにノードのフェンスを設定する手順例が記載されています。『 High Availability Add-On Reference 』 ドキュメントには、クラスター設定のコンポーネントについての詳細情報が記載されています。
  2. クラスター内の全ノードで共有するミラー化論理ボリュームを作成するには、クラスターの各ノードの lvm.conf ファイルにロッキングタイプが正しく設定されている必要があります。デフォルトでは、ロッキングタイプはローカルに設定されます。これを変更するには、クラスターの各ノードで以下のコマンドを実行し、クラスターロッキングを有効にします。
    # /sbin/lvmconf --enable-cluster
  3. クラスターの dlm リソースをセットアップします。リソースをクローンリソースとして作成し、そのリソースがクラスター内のすべてのノードで実行されるようにします。
    # pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true
  4. クラスターリソースとして clvmd を設定します。dlm リソースの場合と同様に、リソースを、クローン作成したリソースとして作成し、それがクラスター内のすべてのノードで実行されるようにします。with_cmirrord=true パラメーターで、clvmd が実行されるすべてのノードで cmirrord デーモンを有効にするように設定する必要があります。
    # pcs resource create clvmd ocf:heartbeat:clvm with_cmirrord=true op monitor interval=30s on-fail=fence clone interleave=true ordered=true
    clvmd リソースを設定していても、with_cmirrord=true パラメーターを設定していない場合は、以下のコマンドでそのパラメーターを組み込むようにリソースを更新することができます。
    # pcs resource update clvmd with_cmirrord=true
  5. clvmd および dlmの依存関係をセットアップし、順番に起動します。clvmddlm の後に起動し、dlm と同じノードで実行する必要があります。
    # pcs constraint order start dlm-clone then clvmd-clone
    # pcs constraint colocation add clvmd-clone with dlm-clone
  6. ミラーを作成します。最初のステップは、物理ボリュームの作成です。次のコマンドは、3 つの物理ボリュームを作成します。これらの内の 2 つの物理ボリュームはミラーレッグとして使用され、3 つ目の物理ボリュームにミラーログが格納されます。
    # pvcreate /dev/sdb1
      Physical volume "/dev/sdb1" successfully created
    # pvcreate /dev/sdc1
      Physical volume "/dev/sdc1" successfully created
    # pvcreate /dev/sdd1
      Physical volume "/dev/sdd1" successfully created
  7. ボリュームグループを作成します。この例では、直前のステップで作成した 3 つの物理ボリュームで構成されるボリュームグループ vg001 を作成します。
    # vgcreate vg001 /dev/sdb1 /dev/sdc1 /dev/sdd1
      Clustered volume group "vg001" successfully created
    vgcreate コマンドの出力で、ボリュームグループがクラスター化されていることが示されている点に注意してください。ボリュームグループの属性を表示する vgs コマンドを使用すると、ボリュームグループがクラスター化されていることを検証することができます。ボリュームグループがクラスター化されている場合は、c 属性が表示されます。
    # vgs vg001
      VG       #PV #LV #SN Attr   VSize  VFree
      vg001      3   0   0 wz--nc 68.97G 68.97G
  8. ミラー化論理ボリュームを作成します。この例では、ボリュームグループ vg001 から論理ボリューム mirrorlv を作成します。このボリュームのミラーレッグは 1 つです。この例では、物理ボリュームのどのエクステントが論理ボリュームに使用されるかを指定します。
    # lvcreate --type mirror -l 1000 -m 1 vg001 -n mirrorlv /dev/sdb1:1-1000 /dev/sdc1:1-1000 /dev/sdd1:0
      Logical volume "mirrorlv" created
    lvs コマンドを使用すると、ミラー作成の進捗状況を表示できます。以下の例では、ミラーの同期が、47%、91% と進み、ミラー完了時には 100% 同期になったことを示しています。
    # lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     47.00
    # lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     91.00   
    #  lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog    100.00
    
    ミラーの完了は、システムログに記録されます。
    May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events
    May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
  9. lvs コマンドで -o +devices オプションを使用すると、ミラーの設定を表示できます。これには、ミラーレッグを構成するデバイスの情報が含まれます。この例では、論理ボリュームが 2 つのリニアイメージと 1 つのログで構成されていることがわかります。
    # lvs -a -o +devices
      LV                  VG         Attr   LSize  Origin Snap%  Move Log           Copy%  Convert Devices                                  
      mirrorlv            vg001      mwi-a-  3.91G                    mirrorlv_mlog 100.00         mirrorlv_mimage_0(0),mirrorlv_mimage_1(0)
      [mirrorlv_mimage_0] vg001      iwi-ao  3.91G                                                 /dev/sdb1(1)                            
      [mirrorlv_mimage_1] vg001      iwi-ao  3.91G                                                 /dev/sdc1(1)                            
      [mirrorlv_mlog]     vg001      lwi-ao  4.00M                                                 /dev/sdd1(0)
    
    lvsseg_pe_ranges オプションを使用すると、データレイアウトを表示することができます。このオプションを使用すれば、レイアウトに適切な冗長性があることを検証することができます。このコマンドの出力は、lvcreatelvresize コマンドが入力として受け取る形式と同じ形式で PE 範囲を表示します。
    # lvs -a -o +seg_pe_ranges --segments
      PE Ranges                                      
      mirrorlv_mimage_0:0-999 mirrorlv_mimage_1:0-999
      /dev/sdb1:1-1000                              
      /dev/sdc1:1-1000                              
      /dev/sdd1:0-0
    

注記

LVM ミラー化ボリュームのいずれかのレッグに障害が発生した際の回復方法は、「LVM ミラー障害からの回復」 を参照してください。