IBM Cloud Docs
Red Hat Enterprise Linux High Availability Add-On クラスタでの SBD ポイズンピルフェンシングの実装

Red Hat Enterprise Linux High Availability Add-On クラスタでの SBD ポイズンピルフェンシングの実装

このガイドでは、 Power Virtual Server 上の Red Hat Enterprise Linux High Availability Add-On クラスタに SBD (Storage-Based Death) ポイズンピルフェンシングを実装する方法について説明します。

iSCSI ターゲットサーバーのセットアップ、共有ストレージの設定、およびクラスターリソースの設定について説明します。

クラスタ・フェンシングは、HAクラスタにおけるスプリットブレイン保護と自動フェイルオーバーを保証するためにクラスタにとって非常に重要です。

SBDフェンシングには、共有ディスクとウォッチドッグデバイスが必要です。

  • 共有ディスクは、 IBM VPC内の iSCSI ターゲット・サーバーからブロック・デバイスとしてプロビジョニングされる。
  • ハードウェア・ウォッチドッグとして、Power Architecture Platform Watchdogドライバ pseries-wdt。 このドライバは、 IBM Power10 サーバ以降で利用可能です。

iSCSI は、RFC3720で定義されているオープンな標準ベースの技術である。 IPネットワーク上でのストレージ・エリア・ネットワーキングの展開を可能にする。 iSCSI ソフトウェア・ターゲットは、ローカル・ストレージをネットワーク上で共有することを可能にする。 iSCSI 異なるゾーンやシステムにあるイニシエータは、 プロトコルを使用することで、IPネットワーク経由で共有ストレージにアクセスできます。 iSCSI このプロトコルは、SCSIコマンドをTCP/IPパケット内にカプセル化し、専用のSANインフラを必要とすることなく、標準イーサネットネットワーク上でのデータ転送を可能にします。

アーキテクチャ図
IBM Power Virtual Server インスタンスから IBM VPC の iSCSI ターゲットにアクセスするためのアーキテクチャ図。

開始前に

IBM Power Virtual Server 参照での SAP アプリケーションの高可用性の実装」 に記載されている一般要件、製品ドキュメント、サポート記事、および SAP ノートを確認してください。

iSCSI、アベイラビリティゾーンをまたがるターゲットサーバーのプロビジョニング

3つのアベイラビリティ・ゾーンにまたがる IBM VPCを作成するには、 Virtual Private Cloud(VPC)を始めるを 参照してください。 次に、 仮想サーバー・インスタンスの作成 の手順に従って、 iSCSI ターゲット・サーバー・インスタンスを3台(各ゾーンに1台ずつ)プロビジョニングします。

iSCSI 各ターゲットサーバーは、複数の高可用性クラスタに使用でき、効率的なリソース共有が可能です。

IBM VPCの作成

  1. Virtual Private Cloudを 参照し、 Createをクリックする。
  2. 仮想プライベートクラウドを作成する場所を選択します。
  3. 地理と 地域を選択する。
  4. 詳細」 セクションの 「名前」 フィールドに「 iscsi-tgt-vpc 」と入力する。
  5. リソースグループを選択する。
  6. Subnets セクションで、リスト内の各サブネットの Nameを変更する。
    • 最初のゾーンのサブネットの鉛筆アイコンをクリックする。
    • Nameiscsi-tgt-zone-1-sn に変更し、 Save をクリックする。
  7. 他のゾーンについてもこの手順を繰り返し、名前を iscsi-tgt-zone-2-sniscsi-tgt-zone-3-sn に変更する。
  8. 「仮想プライベート・クラウドの作成」 をクリックします。

IBM VPCのデフォルトセキュリティグループの変更

デフォルトのセキュリティグループのインバウンドルールに iSCSI ポートを追加する。

  1. VPCのセキュリティグループを 参照し、リスト内のセキュリティグループをクリックします。
  2. Rules セクションの Manage rulesをクリックします。
  3. 新しい受信ルールを作成するには、 [受信ルール]の作成 ]をクリックします。
  4. Protocol TCP を選択し、 Port minPort max の両フィールドに iSCSI ポート 3260 を指定する。 ソース・ タイプとデスティネーション・タイプは Any のままにしておく。
  5. 「作成」 をクリックします。

VPCを Transit Gateway

IBM Transit Gateway を使用して、Virtual Private Cloud (VPC) インフラストラクチャと Power Virtual Server ワークスペースを接続します。

  1. をブラウズする Transit Gateway.
  2. リストからローカル・トランジット・ゲートウェイを選択し、 Add connectionをクリックする。
  3. ネットワーク接続リストで VPC を選択し、 地域を選択する。
  4. 追加 をクリックします。

クラスタ用の仮想サーバ・インスタンスの作成

この例では、3台の iSCSI ターゲットサーバーがプロビジョニングされている。 各ターゲットサーバーは、すべてのクラスターノードから共有ディスクとしてアクセスされる専用の iSCSI LUNを提供します。

仮想サーバーインスタンスを iSCSI ターゲットとして設定するには、以下の手順に従います。 サポートされているバージョンの Red Hat Enterprise Linux オペレーティング・システムを実行している仮想マシンをデプロイします。

cx3d-2x5bx3d-2x10 のような小さなVMインスタンス・プロファイルで十分である。 仮想サーバーインスタンスを作成するときに、SSH キーを選択する必要があります。 SSHキーを生成するには、「 Getting started with SSH keys 」を参照してください。

  1. Virtual server instances for VPC 」を参照し、「 Create 」をクリックします。
  2. 地理地域ゾーンを選択
  3. Details(詳細) セクションで、VSIの名前を入力する。
  4. リソースグループを選択します。
  5. サーバー設定セクションで、 Change imageをクリックする。
  6. Red Hat Enterprise Linux イメージ( 9.x- 最小インストール)を選択し、 保存をクリックします。
  7. プロフィールのフットプリントは小さく、例えば bx2-2x8
  8. SSHキーを選択します。
  9. Data Volumes] セクションで[ Create ]をクリックし、 iSCSI LUNのホスティング用に指定された10 GBのボリュームをプロビジョニングします。
    • データボリュームの名前を入力します。
    • ストレージサイズ(GB)には 10を入力します。
    • 「作成」 をクリックします。
  10. Networking セクションで、先ほど作成したVPCを選択します。
  11. 仮想サーバーの作成 ]をクリックします。

仮想サーバーインスタンスのデプロイが開始されます。 このプロセスを繰り返して、2台目と3台目の仮想サーバーインスタンスを別のアベイラビリティゾーンに作成します。

オペレーティング・システムの準備

すべての iSCSI ターゲット仮想マシンに root ユーザーとしてログインします。

  1. オペレーティングシステムを更新する。

    dnf -y update
    

    変更を適用するにはノードの再起動が必要な場合があります。

    shutdown -r now
    
  2. バックストア用にプロビジョニングしたディスクボリュームのデバイス名を特定する。

    lsblk | grep 10G
    

    この例では、デバイスは次のように識別される。 /dev/vdb

    出力例:

    vdb    252:16   0   10G  0 disk
    
  3. ブロックサイズ512バイトの xfs ファイルシステムを作成する。

    # mkfs.xfs -m crc=0 -b size=512 /dev/vdb
    
    1. マウント・ポイントを作成し、 /etc/fstab ファイルにファイル・システム・エントリーを追加し、ファイル・システムをマウントする。

    出力例:

    # mkdir /sbd
    # echo "/dev/vdb    /sbd    xfs    defaults    0    0" >> /etc/fstab
    # systemctl daemon-reload
    # mount /sbd
    
  4. iSCSI ターゲットソフトウェアパッケージをインストールする。

    dnf -y install targetcli
    
  5. iSCSI ターゲットを起動し、ブート時に自動的に起動するようにする。

    systemctl enable --now target
    

    出力例:

    # systemctl enable --now target
    Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.
    

iSCSI ターゲットサーバー上に iSCSI デバイスを作成する

root ユーザーとして、各 iSCSI ターゲット仮想インスタンスで以下のコマンドを実行し、SBD デバイス用の iSCSI ディスクを作成します。

この例では以下の名前を使用している。

  • cluster1 はHAクラスタのクラスタ名である。
  • cl1n1 と は、 のクラスターノードのホスト名である。 cl1n2 cluster1

以下の説明のコマンドは、特定の環境設定に合わせて調整してください。

  1. 高可用性クラスタの SBD 用 LUN を準備する cluster1.

    • SBD LUN用に fileio バックストアを作成します。 ファイルシステムのキャッシュを無効にするには、 write_back パラメータを false に設定する。

      targetcli backstores/fileio create cluster1_sbd /sbd/cluster1_sbd 50M write_back=false
      

      出力例:

      # targetcli backstores/fileio create cluster1_sbd /sbd/cluster1_sbd 50M write_back=false
      Created fileio cluster1_sbd with size 52428800
      
    • iSCSI ターゲット定義を作成する。

      targetcli iscsi/ create iqn.2006-04.cluster1.local:cluster1
      

      出力例:

      # targetcli iscsi/ create iqn.2006-04.cluster1.local:cluster1
      Created target iqn.2006-04.cluster1.local:cluster1.
      Created TPG 1.
      Global pref auto_add_default_portal=true
      Created default portal listening on all IPs (0.0.0.0), port 3260.
      
    • iSCSI LUN を作成する。

      targetcli iscsi/iqn.2006-04.cluster1.local:cluster1/tpg1/luns/ create /backstores/fileio/cluster1_sbd
      

      出力例:

      # targetcli iscsi/iqn.2006-04.cluster1.local:cluster1/tpg1/luns/ create /backstores/fileio/cluster1_sbd
      Created LUN 0.
      
    • iSCSI ACLを作成する。

      targetcli iscsi/iqn.2006-04.cluster1.local:cluster1/tpg1/acls/ create iqn.2006-04.cl1n1.local:cl1n1
      

      出力例:

      # targetcli iscsi/iqn.2006-04.cluster1.local:cluster1/tpg1/acls/ create iqn.2006-04.cl1n1.local:cl1n1
      Created Node ACL for iqn.2006-04.cl1n1.local:cl1n1
      Created mapped LUN 0.
      
      targetcli iscsi/iqn.2006-04.cluster1.local:cluster1/tpg1/acls/ create iqn.2006-04.cl1n2.local:cl1n2
      

      出力例:

      # targetcli iscsi/iqn.2006-04.cluster1.local:cluster1/tpg1/acls/ create iqn.2006-04.cl1n2.local:cl1n2
      Created Node ACL for iqn.2006-04.cl1n2.local:cl1n2
      Created mapped LUN 0.
      
      • targetcli の設定を保存する。
      targetcli saveconfig
      

      出力例:

      # targetcli saveconfig
      Configuration saved to /etc/target/saveconfig.json
      
  2. コンフィギュレーションをチェックする。

    targetcli ls
    

    出力例:

    # targetcli ls
    o- / ......................................................................................................................... [...]
      o- backstores .............................................................................................................. [...]
      | o- block .................................................................................................. [Storage Objects: 0]
      | o- fileio ................................................................................................. [Storage Objects: 1]
      | | o- cluster1_sbd ........................................................... [/sbd/cluster1_sbd (50.0MiB) write-thru activated]
      | |   o- alua ................................................................................................... [ALUA Groups: 1]
      | |     o- default_tg_pt_gp ....................................................................... [ALUA state: Active/optimized]
      | o- pscsi .................................................................................................. [Storage Objects: 0]
      | o- ramdisk ................................................................................................ [Storage Objects: 0]
      o- iscsi ............................................................................................................ [Targets: 1]
      | o- iqn.2006-04.cluster1.local:cluster1 ............................................................................... [TPGs: 1]
      |   o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
      |     o- acls .......................................................................................................... [ACLs: 2]
      |     | o- iqn.2006-04.cl1n1.local:cl1n1 ........................................................................ [Mapped LUNs: 1]
      |     | | o- mapped_lun0 ......................................................................... [lun0 fileio/cluster1_sbd (rw)]
      |     | o- iqn.2006-04.cl1n2.local:cl1n2 ........................................................................ [Mapped LUNs: 1]
      |     |   o- mapped_lun0 ......................................................................... [lun0 fileio/cluster1_sbd (rw)]
      |     o- luns .......................................................................................................... [LUNs: 1]
      |     | o- lun0 ..................................................... [fileio/cluster1_sbd (/sbd/cluster1_sbd) (default_tg_pt_gp)]
      |     o- portals .................................................................................................... [Portals: 1]
      |       o- 0.0.0.0:3260 ..................................................................................................... [OK]
      o- loopback ......................................................................................................... [Targets: 0]
    

クラスタノード上のSBDデバイスの作成

クラスタ・ノード上で、先に作成した iSCSI デバイスを検出し、接続します。 両方のクラスタ・ノードで以下のコマンドを実行する。

クラスタノード上の iSCSI デバイスへのアクセス

iSCSI イニシエータのセットアップ

  1. 両方のクラスタノードで、以下のコマンドを実行して、 iSCSI イニシエータユーティリティをインストールまたは更新します。

    dnf install -y iscsi-initiator-utils
    
  2. 両方のクラスタノードで次のコマンドを実行して、必要なHAアドオンパッケージをインストールします。

    dnf install -y pcs pacemaker sbd fence-agents-sbd
    

    fence-agents-sbd パッケージをインストールするには、バージョン 4.10.0 とリリース 62.el9_4.15 またはより新しいものを使用してください。

  3. 各 iSCSI イニシエータは、 iSCSI ターゲットへのアクセスを制御するために使用される、一意のIQN( iSCSI Qualified Name)を持たなければならない。 インストール時にランダムに生成されたIQNが割り当てられるが、より分かりやすい名前に置き換えることもできる。 IQN は、 iSCSI ターゲット・サーバー上の iSCSI デバイス用に作成したアクセス・コントロール・リスト(ACL)の名前と一致する必要があります。

    • NODE1 で、以下のコマンドを実行してIQNを変更する。

      echo "InitiatorName=iqn.2006-04.cl1n1.local:cl1n1" > /etc/iscsi/initiatorname.iscsi
      
    • NODE2 で、以下のコマンドを実行してIQNを変更する。

      echo "InitiatorName=iqn.2006-04.cl1n2.local:cl1n2" > /etc/iscsi/initiatorname.iscsi
      
  4. 両方のクラスタ・ノードで以下のコマンドを実行して、 iSCSI サービスを有効にします。

    systemctl enable iscsid iscsi
    
  5. 両方のクラスタ・ノードで以下のコマンドを実行して、 iSCSI サービスを再起動します。

    systemctl restart iscsid
    
    systemctl restart iscsi
    

iSCSI LUN の発見

  1. 両方のクラスタ・ノードで以下のコマンドを実行して、 iSCSI デバイスを接続します。

    以下の例では、 iSCSI ターゲットサーバーは、 iSCSI ターゲットバーチャルサーバーの IP アドレスと iSCSI ポート 3260 を介してアクセスされます。

    この例で提供されているIPアドレスは、説明のためのものである。 特定のVPCサブネット構成に一致する値に置き換えてください。

    この構成例で使用されている iSCSI ターゲットの IP アドレス。
    VSI名 IPアドレス:ポート
    iscsi-vm-001 10.20.30.4:3260
    iscsi-vm-002 10.20.30.69:3260
    iscsi-vm-003 10.20.30.132:3260

    セットアップを簡単にするため、 iSCSI ターゲット・サーバーの通信詳細用に環境変数を作成する。

    export ISCSI_TGT_1="10.20.30.4:3260"                         # IP address and port of the first virtual server (first iSCSI target)
    export ISCSI_TGT_2="10.20.30.69:3260"                        # IP address and port of the second virtual server (second iSCSI target)
    export ISCSI_TGT_3="10.20.30.132:3260"                       # IP address and port of the third virtual server (third iSCSI target)
    export ISCSI_TGT_NAME="iqn.2006-04.cluster1.local:cluster1"  # iSCSI target name
    

    iscsiadm discoveryコマンドを実行し、ターゲット名が正しいことを確認する。 2台目と3台目の iSCSI ターゲットサーバーについてもこの手順を繰り返す。

    iscsiadm -m discovery --type=st --portal=${ISCSI_TGT_1}
    

    出力例:

    # iscsiadm -m discovery --type=st --portal=${ISCSI_TGT_1}
    10.20.30.4:3260,1 iqn.2006-04.cluster1.local:cluster1
    # iscsiadm -m discovery --type=st --portal=${ISCSI_TGT_2}
    10.20.30.69:3260,1 iqn.2006-04.cluster1.local:cluster1
    # iscsiadm -m discovery --type=st --portal=${ISCSI_TGT_3}
    10.20.30.132:3260,1 iqn.2006-04.cluster1.local:cluster1
    

    iscsiadm -m discovery コマンドの出力から、 iSCSI ターゲット名をメモし、それを ISCSI_TGT_NAME 環境変数に代入する。

  2. iSCSI ターゲット・デバイスにログインする。

    iscsiadm -m node -T ${ISCSI_TGT_NAME} --login --portal=${ISCSI_TGT_1}
    

    出力例:

    # iscsiadm -m node -T ${ISCSI_TGT_NAME} --login --portal=${ISCSI_TGT_1}
    Logging in to [iface: default, target: iqn.2006-04.cluster1.local:cluster1, portal: 10.20.30.4,3260]
    Login to [iface: default, target: iqn.2006-04.cluster1.local:cluster1, portal: 10.20.30.4,3260] successful.
    

    引数 --portal の値として ${ISCSI_TGT_2}${ISCSI_TGT_3} を使ってステップを繰り返す。

  3. iSCSI デバイスへの自動ログインを有効にする。

    iscsiadm -m node -p ${ISCSI_TGT_1} -T ${ISCSI_TGT_NAME} --op=update --name=node.startup --value=automatic
    

    引数 -p の値として ${ISCSI_TGT_2}${ISCSI_TGT_3} を使ってステップを繰り返す。

  4. 両方のクラスタ・ノードで以下のコマンドを実行する。

    iSCSI デバイスが使用可能であることを確認し、後で参照できるようにデバイス名を記録する。

    lsscsi -i | grep "LIO-ORG"
    

    出力例:

    [5:0:0:0]    disk    LIO-ORG  cluster1_sbd     4.0   /dev/sdck  3600140500874d3cfa724e728b77046a3
    [6:0:0:0]    disk    LIO-ORG  cluster1_sbd     4.0   /dev/sdcl  3600140517566c8197884fb9b643b470a
    [7:0:0:0]    disk    LIO-ORG  cluster1_sbd     4.0   /dev/sdcm  36001405c2ed12b15b0a4c7f8d311ab49
    

lsscsi コマンドの出力を使用して、 iSCSI デバイス ID を取得する。

提供されている awk の例では、デバイス ID を抽出し、デバイス名を完成させ、さらに使用するための環境変数定義を用意しています。

lsscsi -i | awk '$3 == "LIO-ORG" { count++; print "export SBD_DEV_" count "=/dev/disk/by-id/scsi-" $7}'

出力例:

lsscsi -i | awk '$3 == "LIO-ORG" { count++; print "export SBD_DEV_" count "=/dev/disk/by-id/scsi-" $7}'
export SBD_DEV_1=/dev/disk/by-id/scsi-3600140500874d3cfa724e728b77046a3
export SBD_DEV_2=/dev/disk/by-id/scsi-3600140517566c8197884fb9b643b470a
export SBD_DEV_3=/dev/disk/by-id/scsi-36001405c2ed12b15b0a4c7f8d311ab49

出力されたデバイス・エントリーを確認し、 eval コマンドを使用して環境変数をエクスポートする。

eval $(lsscsi -i | awk '$3 == "LIO-ORG" { count++; print "export SBD_DEV_" count "=/dev/disk/by-id/scsi-" $7}')

エクスポートされた変数を確認する。

echo $SBD_DEV_1 $SBD_DEV_2 $SBD_DEV_3

出力例:

echo $SBD_DEV_1 $SBD_DEV_2 $SBD_DEV_3
/dev/disk/by-id/scsi-3600140500874d3cfa724e728b77046a3 /dev/disk/by-id/scsi-3600140517566c8197884fb9b643b470a /dev/disk/by-id/scsi-36001405c2ed12b15b0a4c7f8d311ab49

これらの環境変数は、SBDデバイスを作成するために必要である。

クラスタ内のSBDポイズンピルフェンシングの設定

ブロックデバイス上のSBDポイズンピルフェンシングは、ウォッチドッグタイマーデバイスとポイズンピルメッセージを送信するための共有ストレージの両方を必要とする。 フェンシングを有効にするには、クラスタを構成し、共有ストレージ上のSBDデバイスをアクティブにして、クラスタフェンシングを設定します。

クラスタ・ノードのウォッチドッグの設定

pseries_wdt Powerハイパーバイザー・ウォッチドッグは推奨ウォッチドッグで、 IBM Power10 サーバー以降で利用可能です。

仮想サーバーインスタンスを Power9 プロファイルでデプロイする場合、Power ハイパーバイザーのウォッチドッグは使用できません。 別の方法として、ソフトウェア・ウォッチドッグ( softdog )を使うこともできるが、サポートには限りがある。

ウォッチドッグを設定するには、お使いの環境に応じて、以下のセクションのいずれかに記載されている手順に従ってください。

pseries_wdt ハードウェア・ウォッチドッグの設定 ( IBM Power10 以降 )

両方のクラスタ・ノードで以下のコマンドを実行して、ハイパーバイザ・ウォッチドッグ・ドライバがロードされていることを確認します。

lsmod | grep pseries_wdt
# lsmod | grep pseries_wdt
pseries_wdt           262144  0

以下のコマンドを使って、ウォッチドッグ・ドライバーがロードされていることを確認することもできる。

wdctl

出力例:

wdctl
Device:        /dev/watchdog0
Identity:      pseries-wdt [version 0]
Timeout:       15 seconds
Pre-timeout:    0 seconds

softdog ソフトウェア・ウォッチドッグの設定 ( IBM Power9 )

IBM Power9 サーバー上で softdog ソフトウェア・ウォッチドッグを使用する方法もあるが、サポートに制限がある。

両方のクラスタ・ノードで以下のコマンドを実行して、ソフトウェア・ウォッチドッグを実装します。

  1. softdog モジュールをロードする。

    modprobe softdog
    
  2. ノードの再起動後に softdog が自動的にロードされることを確認する。

    echo softdog > /etc/modules-load.d/watchdog.conf
    
  3. systemd モジュールを再起動する。

    systemctl restart systemd-modules-load
    

sbdデバイスの有効化

  1. pcs host authpcs cluster setup などの基本的なクラスタ構成手順を使用します。 その後、両方のノードでクラスタを起動する。

  2. どのクラスタノードでも、以下のコマンドを実行してSBDデバイスを構成し、有効にします。 先に記録した iSCSI デバイス ID を使用して、新しい SBD デバイスを作成します。

    pcs stonith sbd device setup \
        device=${SBD_DEV_1} \
        device=${SBD_DEV_2} \
        device=${SBD_DEV_3} \
        watchdog-timeout=30 \
        msgwait-timeout=60
    

    yes を入力し、デバイスの初期化を確認する。

    出力例:

    # pcs stonith sbd device setup \
         device=/dev/disk/by-id/scsi-3600140500874d3cfa724e728b77046a3 \
         device=/dev/disk/by-id/scsi-3600140517566c8197884fb9b643b470a \
         device=/dev/disk/by-id/scsi-36001405c2ed12b15b0a4c7f8d311ab49 \
         watchdog-timeout=30 \
         msgwait-timeout=60
    
       WARNING: All current content on device(s) '/dev/disk/by-id/scsi-3600140500874d3cfa724e728b77046a3', '/dev/disk/by-id/scsi-3600140517566c8197884fb9b643b470a', '/dev/disk/by-id/scsi-36001405c2ed12b15b0a4c7f8d311ab49' will be overwritten
       Type 'yes' or 'y' to proceed, anything else to cancel: yes
       Initializing devices '/dev/disk/by-id/scsi-3600140500874d3cfa724e728b77046a3', '/dev/disk/by-id/scsi-3600140517566c8197884fb9b643b470a', '/dev/disk/by-id/scsi-36001405c2ed12b15b0a4c7f8d311ab49'...
       Devices initialized successfully
    

    状況を確認します。

    pcs stonith sbd status
    

    出力例:

    # pcs stonith sbd status
    SBD STATUS
    <node name>: <installed> | <enabled> | <running>
    cl1n1: YES |  NO |  NO
    cl1n2: YES |  NO |  NO
    

    SBDデバイスを有効にする。

    pcs stonith sbd enable \
        device=${SBD_DEV_1} \
        device=${SBD_DEV_2} \
        device=${SBD_DEV_3} \
        SBD_WATCHDOG_TIMEOUT=60 \
        SBD_STARTMODE=always \
        SBD_DELAY_START=yes
    

    出力例:

    # pcs stonith sbd enable \
        device=/dev/disk/by-id/scsi-3600140500874d3cfa724e728b77046a3 \
        device=/dev/disk/by-id/scsi-3600140517566c8197884fb9b643b470a \
        device=/dev/disk/by-id/scsi-36001405c2ed12b15b0a4c7f8d311ab49 \
        SBD_WATCHDOG_TIMEOUT=60 \
        SBD_STARTMODE=clean \
        SBD_DELAY_START=yes
    Running SBD pre-enabling checks...
    cl1n2: SBD pre-enabling checks done
    cl1n1: SBD pre-enabling checks done
    Distributing SBD config...
    cl1n1: SBD config saved
    cl1n2: SBD config saved
    Enabling sbd...
    cl1n2: sbd enabled
    cl1n1: sbd enabled
    Warning: Cluster restart is required in order to apply these changes.
    

    クラスタを再起動して変更を有効にします。

    • クラスターを停止する。

      任意のクラスタ・ノードで以下のコマンドを実行する。

      pcs cluster stop --all
      
    • クラスターを開始します。

      各クラスター・ノードで以下のコマンドを実行する。

      pcs cluster start
      

      単一のクラスタ・ノードで pcs cluster start --all を実行すると、タイムアウトになることがあります。

    • sbd デバイスのステータスを確認する。

      pcs stonith sbd status
      

      出力例:

      # pcs stonith sbd status
      SBD STATUS
      <node name>: <installed> | <enabled> | <running>
      cl1n2: YES | YES |  NO
      cl1n1: YES | YES | YES
      Messages list on device '/dev/disk/by-id/scsi-3600140500874d3cfa724e728b77046a3':
      0       cl1n1        clear
      1       cl1n2        clear
      Messages list on device '/dev/disk/by-id/scsi-3600140517566c8197884fb9b643b470a':
      0       cl1n2        clear
      1       cl1n1        clear
      Messages list on device '/dev/disk/by-id/scsi-36001405c2ed12b15b0a4c7f8d311ab49':
      0       cl1n2        clear
      1       cl1n1        clear
      

クラスターフェンシングデバイスの設定

任意のクラスタノードで、 pcs stonith create コマンドを実行してSTONITHデバイスを作成します。 pcmk_reboot_timeout パラメータを設定して、リブートアクションのタイムアウト値を増やす。

pcs stonith create res_fence_sbd fence_sbd \
   devices="${SBD_DEV_1},${SBD_DEV_2},${SBD_DEV_3}" \
   pcmk_reboot_timeout=90

クラスターフェンスをテストする。 その後、他のすべてのクラスタ構成手順に進みます。