目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise High Availabilityのドキュメント / 管理ガイド / ストレージとデータレプリケーション / クラスタマルチデバイス(Cluster MD)
適用項目 SUSE Linux Enterprise High Availability 15 SP6

25 クラスタマルチデバイス(Cluster MD)

クラスタマルチデバイス(Cluster MD)は、クラスタ用のソフトウェアベースのRAIDストレージソリューションです。現在、Cluster MDでは、クラスタにRAID1ミラーリングの冗長性を提供しています。SUSE Linux Enterprise High Availability 15 SP6では、テクノロジープレビューとしてRAID10が含まれています。RAIDを試したい場合は、関連するmirrorコマンドで10mdadm10に置き換えてください。この章では、Cluster MDの作成および使用方法を示します。

25.1 概念の概要

Cluster MDは、クラスタ環境内のRAID1の使用をサポートします。Cluster MDで使用されるディスクまたはデバイスは、各ノードからアクセスされます。Cluster MDの一方のデバイスに障害が発生した場合、実行時に他方のデバイスに置き換えることができ、同じ量の冗長性を提供するために再同期されます。Cluster MDでは、調整とメッセージングのためにCorosyncと分散ロックマネージャ(DLM)が必要です。

Cluster MDデバイスは、他の通常のMDデバイスのようにブート時に自動的に開始されません。クラスタ化されたデバイスはリソースエージェントを使用して開始し、DLMリソースが開始されていることを確認する必要があります。

25.2 クラスタ化されたMD RAIDデバイスの作成

要件
  • Pacemakerを使用して実行中のクラスタ。

  • DLMのリソースエージェント(20.2項 「DLMクラスタリソースの設定」を参照)。

  • 少なくても2つの共有ディスクデバイス。デバイス障害の場合は自動的にフェールオーバーするスペアとして追加のデバイスを使用できます。

  • インストールされたパッケージcluster-md-kmp-default

安定性向上のために、/dev/sdXの代わりに、/dev/disk/by-id/DEVICE_IDのような永続的なデバイス名を使用してください。

  1. クラスタの各ノードでDLMリソースが稼働していることを確認し、リソース状態を確認するには、次のコマンドを実行します。

    # crm_resource -r dlm -W
  2. Cluster MDデバイスを作成します。

    • 既存の通常のRAIDデバイスがない場合、次のコマンドを実行し、DLMリソースが稼働しているノードでCluster MDデバイスを作成します。

      # mdadm --create /dev/md0 --bitmap=clustered \
      --metadata=1.2 --raid-devices=2 --level=mirror \
      /dev/disk/by-id/DEVICE_ID1 /dev/disk/by-id/DEVICE_ID2

      Cluster MDはバージョン1.2のメタデータでのみ動作します。このため、--metadataオプションを使用してバージョンを指定することが推奨されます。他の役立つオプションについては、mdadmのマニュアルページを参照してください。/proc/mdstatで再同期の進捗状況を監視します。

    • 既存の通常のRAIDがすでにある場合は、最初に既存のビットマップをクリアしてからクラスタ化されたビットマップを作成します。

      # mdadm --grow /dev/mdX --bitmap=none
      # mdadm --grow /dev/mdX --bitmap=clustered
    • オプションで、自動フェールオーバーのためのスペアデバイスを使用してCluster MDデバイスを作成するには、1つのクラスタノード上で次のコマンドを実行します。

      # mdadm --create /dev/md0 --bitmap=clustered --raid-devices=2 \
      --level=mirror --spare-devices=1 --metadata=1.2 \
      /dev/disk/by-id/DEVICE_ID1 /dev/disk/by-id/DEVICE_ID2 /dev/disk/by-id/DEVICE_ID3
  3. UUIDおよび関連するmdパスを取得します。

    # mdadm --detail --scan

    このUUIDはスーパーブロックに保存されているUUIDと一致する必要があります。UUIDの詳細については、mdadm.confのマニュアルページを参照してください。

  4. /etc/mdadm.confを開いて、mdデバイス名とそのデバイス名に関連付けられているデバイスを追加します。前のステップのUUIDを使用します。

    DEVICE /dev/disk/by-id/DEVICE_ID1 /dev/disk/by-id/DEVICE_ID2
    ARRAY /dev/md0 UUID=1d70f103:49740ef1:af2afce5:fcf6a489
  5. Csync2の設定ファイル/etc/csync2/csync2.cfgを開き、/etc/mdadm.confを追加します。

    group ha_group
    {
       # ... list of files pruned ...
       include /etc/mdadm.conf
    }

25.3 リソースエージェントの設定

CRMリソースを次のように設定します。

  1. Raid1プリミティブを作成します。

    crm(live)configure# primitive raider Raid1 \
      params raidconf="/etc/mdadm.conf" raiddev=/dev/md0 \
      force_clones=true \
      op monitor timeout=20s interval=10 \
      op start timeout=20s interval=0 \
      op stop timeout=20s interval=0
  2. raiderリソースをDLM用に作成したストレージのベースグループに追加します。

    crm(live)configure# modgroup g-storage add raider

    addサブコマンドは、デフォルトで新しいグループメンバーを追加します。

    まだ実行されてない場合は、g-storageグループのクローンを作成して、すべてのノードで実行できるようにします。

    crm(live)configure# clone cl-storage g-storage \
        meta interleave=true target-role=Started
  3. showで変更内容をレビューします。

  4. すべてが正しい場合は、commitを使用して変更を送信してください。

25.4 デバイスの追加

デバイスを既存のアクティブなCluster MDデバイスに追加するには、最初にそのデバイスが各ノード上で表示可能であることを、コマンドを実行して確認します(cat /proc/mdstat)。デバイスが表示できない場合、コマンドは失敗します。

1つのクラスタノード上で次のコマンドを使用します。

# mdadm --manage /dev/md0 --add /dev/disk/by-id/DEVICE_ID

追加された新しいデバイスの動作は、Cluster MDデバイスの状態によって異なります。

  • ミラーリングされたデバイスの1つのみがアクティブである場合、新しいデバイスはミラーリングされたデバイスの2番目のデバイスになり、回復処理が開始されます。

  • Cluster MDデバイスの両方のデバイスがアクティブな場合、新たに追加されたデバイスはスペアデバイスになります。

25.5 一時的に障害が発生したデバイスの再追加

多くの場合、障害は一時的なもので、単一ノードに限定されます。任意のノードでI/O処理中に障害が発生した場合、クラスタ全体のデバイスがfailedとマーク付けされます。

たとえば、あるノードでケーブル障害が発生した場合などに、このようになることがあります。問題を修正した後で、デバイスを再追加できます。新しいパーツを追加してデバイス全体を同期するのではなく、古いパーツのみが同期されます。

デバイスを再追加するには、1つのクラスタノード上で次のコマンドを実行します。

# mdadm --manage /dev/md0 --re-add /dev/disk/by-id/DEVICE_ID

25.6 デバイスの削除

置き換えるために実行時にデバイスを削除する前に、次の操作を実行します。

  1. /proc/mdstatをイントロスペクトしてデバイスに障害が発生しているか確認します。デバイスの前にある(F)を探します。

  2. 1つのクラスタノード上で次のコマンドを実行して、デバイスに障害発生させます。

    # mdadm --manage /dev/md0 --fail /dev/disk/by-id/DEVICE_ID
  3. 1つのクラスタノード上で次のコマンドを実行して障害が発生したデバイスを削除します。

    # mdadm --manage /dev/md0 --remove /dev/disk/by-id/DEVICE_ID

25.7 障害復旧サイトで通常のRAIDとしてCluster MDをアセンブルする障害復旧サイトで通常のRAIDとしてCluster MDのアセンブルする

障害復旧の際には、障害復旧サイトのインフラストラクチャにPacemakerクラスタスタックがないにもかかわらず、アプリケーションが既存のCluster MDディスク上のデータまたはバックアップからデータにアクセスする必要があるという状況に直面する場合があります。

-U no-bitmapオプションを指定して--assemble操作を使用し、それに応じてRAIDディスクのメタデータを変更することで、Cluster MD RAIDを通常のRAIDに変換できます。

データ復旧サイトですべてのアレイをアセンブルする方法の例を以下に示します。

while read i; do
   NAME=`echo $i | sed 's/.*name=//'|awk '{print $1}'|sed 's/.*://'`
   UUID=`echo $i | sed 's/.*UUID=//'|awk '{print $1}'`
   mdadm -AR "/dev/md/$NAME" -u $UUID -U no-bitmap
   echo "NAME =" $NAME ", UUID =" $UUID ", assembled."
done < <(mdadm -Es)