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

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

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

23.1 概念の概要

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

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

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

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

  • DLMのリソースエージェント(DLMの設定方法については、手順18.1「DLMのベースグループの設定」を参照してください)。

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

  • インストール済みパッケージ cluster-md-kmp-defaultをインストールします。

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

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

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

      root # mdadm --create /dev/md0 --bitmap=clustered \
         --metadata=1.2 --raid-devices=2 --level=mirror /dev/sda /dev/sdb

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

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

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

      root # mdadm --create /dev/md0 --bitmap=clustered --raid-devices=2 \
            --level=mirror --spare-devices=1 /dev/sda /dev/sdb /dev/sdc --metadata=1.2
  3. UUIDおよび関連するmdパスを取得します。

    root # mdadm --detail --scan

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

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

    DEVICE /dev/sda /dev/sdb
    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
    }

23.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で変更を送信します。

23.4 デバイスの追加

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

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

root # mdadm --manage /dev/md0 --add /dev/sdc

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

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

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

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

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

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

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

root # mdadm --manage /dev/md0 --re-add /dev/sdb

23.6 デバイスの削除

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

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

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

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

    root # mdadm --manage /dev/md0 --remove /dev/sda

23.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)