7 YaSTクラスタモジュールの使用 #
YaSTクラスタモジュールでは、クラスタを手動で設定するか、既存のクラスタのオプションを変更することができます。
7.1 用語の定義 #
YaSTクラスタモジュールおよびこの章で使用されているいくつかの主要な用語を以下に定義します。
- バインドネットワークアドレス(
bindnetaddr) Corosyncエグゼクティブのバインド先のネットワークアドレス。クラスタ間の設定ファイルの共有を簡素化するため、Corosyncはネットワークインタフェースネットマスクを使用して、ネットワークのルーティングに使用されるアドレスビットのみをマスクします。たとえば、ローカルインタフェースが
192.168.5.92でネットマスクが255.255.255.0の場合、bindnetaddrは192.168.5.0に設定します。ローカルインタフェースが192.168.5.92でネットマスクが255.255.255.192の場合は、bindnetaddrを192.168.5.64に設定します。ringX_addrを含むnodelistが/etc/corosync/corosync.confで明示的に設定されている場合、bindnetaddrは厳密には必要ありません。注記: すべてのノードのネットワークアドレスすべてのノード上で同じCorosync設定が使用されるため、ネットワークアドレスは、特定のネットワークインタフェースのアドレスではなく、
bindnetaddrとして使用します。conntrackツールカーネル内の接続トラッキングシステムとやり取りできるようにして、iptablesでのステートフルなパケット検査を可能にします。SUSE Linux Enterprise High Availabilityによって使用され、クラスタノード間の接続ステータスを同期します。詳細については、https://conntrack-tools.netfilter.org/を参照してください。
- Csync2
クラスタ内のすべてのノード、およびGeoクラスタ全体に設定ファイルを複製するために使用できる同期ツールです。Csync2は、同期グループ別にソートされた任意の数のホストを操作できます。各同期グループは、メンバーホストの独自のリストとその包含/除外パターン(同期グループ内でどのファイルを同期するか定義するパターン)を持っています。グループ、各グループに属するホスト名、および各グループの包含/除外ルールは、Csync2設定ファイル
/etc/csync2/csync2.cfgで指定されます。Csync2は、認証には、同期グループ内でIPアドレスと事前共有キーを使用します。管理者は、同期グループごとに1つのキーファイルを生成し、そのファイルをすべてのグループメンバーにコピーする必要があります。
Csync2の詳細については、https://oss.linbit.com/csync2/paper.pdfを参照してください。
- 既存のクラスタ
「既存のクラスタ」という用語は、1つ以上のノードで構成されるクラスタを指すものとして使用されます。既存のクラスタは、通信チャネルを定義する基本的なCorosync設定を持ちますが、必ずしもリソース設定を持つとは限りません。
- ヒューリスティックス
QDeviceは一連のコマンド(「heuristics」)をサポートしています。コマンドは、クラスタサービスの起動時、クラスタメンバーシップの変更時、QNetdサーバへの接続の成功時にローカルで実行されるか、オプションで定期的に実行されます。
すべてのコマンドが正常に実行された場合にのみ、ヒューリスティックスは合格したとみなされ、そうでない場合は、失敗したとみなされます。ヒューリスティックスの結果は、QNetdサーバに送信され、そこでクォーラムに達するパーティションを決定するための計算に使用されます。
- マルチキャスト
ネットワーク内で一対多数の通信に使用される技術で、クラスタ通信に使用できます。Corosyncはマルチキャストとユニキャストの両方をサポートしています。
注記: スイッチとマルチキャストクラスタ通信にマルチキャストを使用するには、ご使用のスイッチがマルチキャストをサポートしていることを確認します。
- マルチキャストアドレス (
mcastaddr) Corosyncエグゼクティブによるマルチキャストに使用されるIPアドレス。このIPアドレスはIPv4またはIPv6のいずれかに設定できます。IPv6ネットワークを使用する場合は、ノードのIDを指定する必要があります。プライベートネットワークでは、どのようなマルチキャストアドレスでも使用できます。
- マルチキャストポート(
mcastport) クラスタ通信に使用されるポート。Corosyncでは、マルチキャストの受信用に指定する
mcastportと、マルチキャストの送信用のmcastport -1の、2つのポートを使用します。- QDevice
Corosyncとともに実行されている各クラスタノード上のsystemdサービス(デーモン)。これはQNetdサーバのクライアントです。その主な用途は、クラスタが標準のクォーラムルールが許可するよりも多くのノード障害に耐えることができるようにすることです。
QDeviceはさまざまなアービトレータと連携するように設計されています。ただし、現在では、QNetdのみがサポートされています。
- QNetd
クラスタの一部ではないsystemdサービス(デーモン、「QNetdサーバ」)。systemdサービスは、QDeviceデーモンに投票を提供します。
セキュリティを向上させるため、QNetdはTLSで動作してクライアント証明書を確認することができます。
- 冗長リングプロトコル(RRP)
ネットワーク障害の一部または全体に対する災害耐性のために、複数の冗長ローカルエリアネットワークが使用できるようになります。この方法では、1つのネットワークが作動中である限り、クラスタ通信を維持できます。Corosyncはトーテム冗長リングプロトコルをサポートします。信頼できるソートされた方式でメッセージを配信するために、論理トークンパスリングがすべての参加ノードに課せられます。ノードがメッセージをブロードキャストできるのは、トークンを保持している場合のみです。
Corosyncに定義済みの冗長通信チャネルを持つ場合、RRPを使用してこれらのインタフェースの使用方法をクラスタに伝えます。RRPでは次の3つのモードを使用できます(
rrp_mode)。activeに設定した場合、Corosyncは両方のインタフェースをアクティブに使用します。ただし、このモードは非推奨の機能です。passiveに設定した場合、Corosyncは代わりに使用可能なネットワークを介してメッセージを送信します。noneに設定した場合、RRPは無効になります。
- ユニキャスト
1つのあて先ネットワークにメッセージを送信する技術Corosyncはマルチキャストとユニキャストの両方をサポートしています。Corosyncでは、ユニキャストはUDP-unicast (UDPU)として実装されます。
7.2 YaSTモジュールの起動 #
YaSTを起動して、 › を選択します。コマンドラインでこのモジュールを起動することもできます。
#yast2 cluster
初めてクラスタモジュールを起動した場合は、モジュールが、ウィザードのように、基本設定に必要なすべてのステップをガイドします。そうでない場合は、左パネルのカテゴリを選択して、ステップごとに設定オプションにアクセスします。
次のリストは、YaSTクラスタモジュールで使用可能な画面の概要を示しています。この画面には、クラスタセットアップの成功に必要なパラメータが含まれているかどうか、またはそのパラメータがオプションであるかどうかも説明されています。初回のガイド付き設定に従った場合、次のリストに示す順序で画面が表示されます。
- 通信チャネル(必須)
クラスタノード間の通信に1つまたは2つの通信チャネルを定義できます。転送プロトコルとして、マルチキャスト(UDP)またはユニキャスト(UDPU)のいずれかを使用します。詳細については、7.3項 「通信チャネルの定義」を参照してください。
重要: 冗長通信パスサポートされるクラスタセットアップでは、2つ以上の冗長通信パスが必要です。推奨される方法は、ネットワークデバイスボンディングを使用することです。使用できない場合は、Corosync内に2つ目の通信チャンネルを定義する必要があります。
- Corosync QDevice (オプション。ただし、偶数ノードのクラスタの場合は推奨)
QDeviceをQNetdサーバのクライアントとして設定し、クォーラムの決定に参加できるようにします。これは、ノード数が偶数であるクラスタ、特に2ノードクラスタの場合に推奨されます。詳細については、7.4項 「クォーラムの決定のためのアービトレータの設定」を参照してください。
- セキュリティ(オプションだが推奨)
クラスタの認証設定を定義できます。共有シークレットが必要なHMAC/SHA1認証を使用して、メッセージを保護し、認証することができます。詳細については、7.5項 「認証設定の定義」を参照してください。
- Csync2の設定(オプションだが推奨)
Csync2では、設定変更を追跡して、クラスタノード間でファイルの同期を取ることができます。初めてYaSTを使用してクラスタを設定する場合は、Csync2を設定することを強くお勧めします。Csync2を使用しない場合は、すべての設定ファイルを最初のノードからクラスタ内の残りのノードに手動でコピーする必要があります。詳細については、7.6項 「ファイルを同期するためのCsync2の設定」を参照してください。
- conntrackdの設定(オプション)
ユーザスペース
conntrackdを設定できます。conntrackツールは、iptablesに対するステートフルなパケット検査のために使用します。詳細については、7.7項 「クラスタノード間の接続ステータスの同期」を参照してください。- サービス(必須)
クラスタノードをオンラインにするためにサービスを設定できます。ブート時にクラスタサービスを開始するかどうか、およびノード間の通信に必要なポートをファイアウォールで開くかどうかを定義します。詳細については、7.8項 「サービスの設定」を参照してください。
YaSTクラスタモジュール内の特定の設定は、現在のノードにのみ適用されます。他の設定はCsync2を使用してすべてのノードに自動的に転送できます。これについての詳しい情報は次のセクションを参照してください。
7.3 通信チャネルの定義 #
クラスタノード間で正常な通信を行うには、少なくとも1つの通信チャネルを定義します。YaST画面で定義されるすべての設定は、/etc/corosync/corosync.confに書き込まれます。マルチキャストとユニキャストの設定のサンプルファイルは/usr/share/doc/packages/corosync/にあります。
IPv4アドレスを使用する場合、ノードIDはオプションです。IPv6アドレスを使用する場合、ノードIDは必須です。各ノードにIDを手動で指定する代わりに、YaSTクラスタモジュールには、クラスタノードごとに固有のIDを自動的に生成するオプションが含まれています。
次の手順で説明されるように、転送プロトコルとしてマルチキャスト(UDP)またはユニキャスト(UDPU)のいずれかを使用します。
マルチキャストを設定するには、 手順7.1「最初の通信チャネルの定義(マルチキャスト)」を使用します。
ユニキャストを設定するには、 手順7.2「最初の通信チャネルの定義(ユニキャスト)」を使用します。
2つ目の冗長チャンネルも定義する必要がある場合は、上記のいずれかの手順で最初のチャンネルを設定し、 手順7.3「冗長通信チャネルの定義」に進みます。
SUSE Linux Enterprise High Availabilityをパブリッククラウドプラットフォームに展開する場合は、転送プロトコルとしてユニキャストを使用してください。クラウドプラットフォームでは、一般的にマルチキャストでの通信がサポートされていません。
マルチキャストを使用する場合、すべてのクラスタノードに同じbindnetaddr、mcastaddr、およびmcastportが使用されます。クラスタ内のすべてのノードは同じマルチキャストアドレスを使用することで互いを認識します。別のクラスタは、別のマルチキャストアドレスを使用します。
既存のクラスタを変更する場合は、カテゴリに切り替えます。
初期セットアップウィザードに従っている場合は、カテゴリを手動で切り替える必要はありません。
プロトコルを
Multicastに設定します。を定義します。クラスタマルチキャストに使用するサブネットに値を設定します。
を定義します。
を定義します。
クラスタノードごとに一意のIDを自動的に生成するには、を有効にしたままにします。
を定義します。
の数を入力します。これは、パーティションされたクラスタでCorosyncがクォーラムを計算する場合に重要です。デフォルトでは、各ノードには
1票が割り当てられています。の数は、クラスタ内のノード数と一致する必要があります。Corosyncで冗長な通信チャンネルを定義する必要がある場合は、手順7.3「冗長通信チャネルの定義」に進みます。
それ以外の場合は、(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。
既存のクラスタを変更する場合は、カテゴリに切り替えます。
初期セットアップウィザードに従っている場合は、カテゴリを手動で切り替える必要はありません。
プロトコルを
Unicastに設定します。を定義します。
ユニキャスト通信では、Corosyncはクラスタ内のすべてのノードのIPアドレスを認識する必要があります。各ノードで、を選択し、次の詳細情報を入力します。
(Corosyncで2つ目の通信チャンネルを使用する場合にのみ必要)
(オプションが無効になっている場合にのみ必要)
クラスタメンバーのアドレスを変更または削除するには、またはボタンを使用します。
すべてのクラスタノードに対して一意のIDを自動的に生成するには、を有効にしたままにします。
を定義します。
の数を入力します。これは、パーティションされたクラスタでCorosyncがクォーラムを計算する場合に重要です。デフォルトでは、各ノードには
1票が割り当てられています。の数は、クラスタ内のノード数と一致する必要があります。Corosyncで冗長な通信チャンネルを定義する必要がある場合は、手順7.3「冗長通信チャネルの定義」に進みます。
それ以外の場合は、(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。
ネットワークデバイスボンディングが何らかの理由で使用できない場合、第2の選択は、Corosyncに冗長通信チャネル(2つ目のリング)を定義することです。この方法では、2つの物理的に分かれたネットワークが通信に使用できます。1つのネットワークが失敗しても、クラスタノードは、もう一方のネットワークを介して通信できます。
Corosync内の追加の通信チャネルは2つ目のトークンパスリングを形成します。設定した最初のチャンネルはプライマリリングで、リング番号0を取得します。2つ目のリング(冗長チャネル)はリング番号1を取得します。
/etc/hosts Corosync内で複数のリングが設定されている場合、各ノードが複数のIPアドレスを持つことができます。これはすべてのノードの/etc/hostsに反映する必要があります。
最初のチャンネルを手順7.1「最初の通信チャネルの定義(マルチキャスト)」または手順7.2「最初の通信チャネルの定義(ユニキャスト)」の説明に従って設定します。
を有効にします。冗長チャネルは、定義した最初の通信チャネルと同じプロトコルを使用する必要があります。
マルチキャストを使用する場合は冗長チャンネル用に次のパラメータを入力します: 使用する、、および。
ユニキャストを使用する場合は次のパラメータを定義します: 使用する、および。の下で、各エントリを して 、クラスタの一部となる各ノードのを追加します。
Corosyncに、異なるチャンネルを使用する方法とタイミングを伝えるには、使用するを選択します。
通信チャンネルが1つだけ定義されている場合、は自動的に無効化されます(値
none)。activeに設定した場合、Corosyncは両方のインタフェースをアクティブに使用します。ただし、このモードは非推奨の機能です。passiveに設定した場合、Corosyncは代わりに使用可能なネットワークを介してメッセージを送信します。
RRPの使用時に、SUSE Linux Enterprise High Availabilityは現在のリングの状態を監視し、障害発生後に冗長リングを自動的に再度有効化します。
または、
corosync-cfgtoolを使用してリングの状態を手動で確認します。使用可能なオプションは-hで参照できます。(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。
7.4 クォーラムの決定のためのアービトレータの設定 #
QDeviceおよびQNetdはクォーラムの決定に参加します。アービトレータcorosync-qnetdからの支援により、corosync-qdeviceは設定可能な投票数を提供するため、クラスタは標準のクォーラムルールで許可されているよりも多くのノード障害に耐えることができます。ノード数が偶数であるクラスタ、特に2ノードクラスタについては、corosync-qnetdおよびcorosync-qdeviceの展開をお勧めします。詳細については、第18章 「QDeviceおよびQNetd」を参照してください。
QDeviceを設定する前に、QNetdサーバを設定する必要があります。18.3項 「QNetdサーバのセットアップ」を参照してください。
既存のクラスタを変更する場合は、カテゴリに切り替えます。
初期セットアップウィザードに従っている場合は、カテゴリを手動で切り替える必要はありません。
をアクティブにします。
フィールドに、QNetdサーバのIPアドレスまたはホスト名を入力します。
のモードを選択します。
TLSが必須ではなく、試行する必要がない場合は、を使用します。
を使用すると、TLSでの接続を試みますが、TLSが利用できない場合はTLSなしで接続します。
TLSを必須にするには、を使用します。TLSが利用できない場合、QDeviceはエラーで終了します。
とでは、デフォルト値を受け入れます。これらの値を変更する必要がある場合は、クラスタの設定が完了した後に、コマンド
crm cluster init qdeviceを使用して変更できます。を選択します。
ヒューリスティックスを無効にするには、を使用します。
ヒューリスティックスをで設定した間隔で定期的に実行するには、を使用します。
起動時、クラスタメンバーシップの変更時、およびQNetdへの接続時にのみヒューリスティックスを実行するには、を使用します。
をまたはに設定する場合は、ヒューリスティックコマンドをリストに追加します。
を選択します。新しいウィンドウが開きます。
コマンドのを入力します。
フィールドにコマンドを入力します。単一のコマンドまたはスクリプトへのパスを入力でき、Shell、Python、Rubyなどの任意の言語で記述できます。
を選択して、ウィンドウを閉じます。
(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。
7.5 認証設定の定義 #
クラスタの認証設定を定義するには、HMAC/SHA1認証を使用できます。共有シークレットが必要なHMAC/SHA認証を使用して、メッセージを保護し、認証する必要があります。指定した認証キー(パスワード)が、クラスタ中のすべてのノードで使用されます。
既存のクラスタを変更する場合は、カテゴリに切り替えます。
初期セットアップウィザードに従っている場合は、カテゴリを手動で切り替える必要はありません。
をアクティブ化します。
新しく作成したクラスタの場合は、を選択します。認証キーが作成され、
/etc/corosync/authkeyに書き込まれます。ご使用のマシンを既存のクラスタに参加させたい場合、新しいキーファイルは生成しないでください。代わりに、いずれかのノードから
/etc/corosync/authkeyを(手動またはCsync2によって)ご使用のマシンにコピーします。(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。YaSTが設定を
/etc/corosync/corosync.confに書き込みます。
7.6 ファイルを同期するためのCsync2の設定 #
設定ファイルをすべてのノードに手動でコピーする代わりに、csync2ツールを使用して、クラスタ内のすべてのノードにレプリケートします。Csync2では、設定変更を追跡して、クラスタノード間でファイルの同期を取ることができます。
操作に対して重要なファイルのリストを定義できます。
(他のクラスタノードに対して)これらのファイルの変更を表示できます。
1つのコマンドで複数の設定済みファイルの同期を取ることができます。
~/.bash_logoutの単純なシェルスクリプトを使用して、システムからログアウトする前に、同期化されていない変更について通知できます。
Csync2の詳細については、https://oss.linbit.com/csync2/とhttps://oss.linbit.com/csync2/paper.pdfにアクセスしてください。
Csync2は変更のみをプッシュします。Csync2はマシン間でファイルを絶えず同期しているわけではありません。同期が必要なファイルを更新する際はいつも、変更をその他のマシンにプッシュする必要があります。csync2を使用して変更をプッシュする方法については、YaSTを使用したクラスタ設定が完了した後に説明します。
既存のクラスタを変更する場合は、カテゴリに切り替えます。
初期セットアップウィザードに従っている場合は、カテゴリを手動で切り替える必要はありません。
同期グループを指定するには、グループでを選択し、クラスタ内のすべてのノードのローカルホスト名を入力します。ノードごとに、
hostnameコマンドから返された文字列を正確に使用する必要があります。ヒント: ホスト名解決ホスト名解決がネットワークで正しく機能しない場合は、各クラスタノードのホスト名とIPアドレスの組み合わせを指定することもできます。この指定には、HOSTNAME@IP文字列(たとえば、
alice@192.168.2.100)を使用します。Csync2は、接続時にIPアドレスを使用します。を選択して、同期グループのキーファイルを生成します。キーファイルは、
/etc/csync2/key_hagroupに書き込まれます。すべてのノード間で、通常、同期される必要のあるファイルをリストに入れるには、を選択します。
同期するファイルのリストからファイルを、、またはするには、該当する各ボタンを使用します。ファイルごとに絶対パス名を入力する必要があります。
を選択して、Csync2をアクティブ化します。これにより、ブート時にCsync2 が自動的に起動するようになります。
(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。YaSTがCsync2の設定内容を
/etc/csync2/csync2.cfgに書き込みます。
7.7 クラスタノード間の接続ステータスの同期 #
iptablesに対してステートフルなパケット検査ができるようにするには、conntrackツールを設定して使用します。これには、次の基本手順を必要とします。
conntrackdの設定 #
YaSTクラスタモジュールを使用して、ユーザスペースconntrackdを設定します(図7.6「YaST - conntrackd」を参照してください)。これには、その他の通信チャネルに使用されていない専用のネットワークインタフェースが必要です。デーモンは後でリソースエージェントによって起動できます。
既存のクラスタを変更する場合は、カテゴリに切り替えます。
初期セットアップウィザードに従っている場合は、カテゴリを手動で切り替える必要はありません。
を選択して、接続ステータスを同期します。選択したインタフェースのIPv4アドレスが自動的に検出され、YaSTに表示されます。これはすでに設定済みで、マルチキャストをサポートしている必要があります。
接続ステータスの同期に使用するを定義します。
で、接続ステータスを同期させるグループのID番号を定義します。
を選択して、
conntrackdの環境設定ファイルを作成します。既存のクラスタでオプションを変更した場合、変更を確認して、クラスタモジュールを終了します。
(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。
conntrackツールを設定したら、これをLinux Virtual Serverで使用できます(負荷分散を参照してください)。
conntrackd #7.8 サービスの設定 #
YaSTクラスタモジュールで、ブート時にノード上で一定のサービスを開始するかどうか定義します。サービスを手動で開始または停止するためにモジュールを使用することもできます。クラスタノードをオンラインにし、クラスタリソースマネージャを起動するには、Pacemakerをサービスとして実行する必要があります。
このセクションのこの設定は、すべてのクラスタノードではなく、ご使用のマシンにのみ適用されます。
既存のクラスタを変更する場合は、カテゴリに切り替えます。このセクションのオプションを使用して、このノード上のクラスタサービスを開始および停止できます。
初期セットアップウィザードに従っている場合は、カテゴリを手動で切り替える必要はありません。クラスタサービスは後で開始するので、ステップ 5までスキップしても構いません。
このクラスタノードがブートするたびにクラスタサービスを開始するには、を選択します。を選択する場合は、このノードがブートするたびに手動でクラスタサービスを開始する必要があります。
クラスタサービスを直ちに開始または停止するには、またはを選択します。
QDeviceを直ちに開始または停止するには、またはを選択します。
クラスタ通信に必要なポートをファイアウォールで開くには、をアクティブにします。
(セットアップウィザード)または(既存のクラスタ)をクリックして変更を確認します。
初期セットアップウィザードに従っている場合は、これで初期設定が完了し、YaSTが終了します。7.9項 「すべてのノードへの設定の転送」に進みます。
7.9 すべてのノードへの設定の転送 #
YaSTによるクラスタ設定が完了したら、csync2を使用して設定ファイルを残りのクラスタノードにコピーします。ファイルを受信するには、ノードが手順7.6「YaSTによるCsync2の設定」で設定したグループに含まれている必要があります。
Csync2を初めて実行する前に、次の準備をする必要があります。
ノード間にパスワード不要のSSHが設定されていることを確認します。これはクラスタ通信に必要です。
ファイル
/etc/csync2/csync2.cfgをクラスタ内のすべてのノードに手動でコピーします。ファイル
/etc/csync2/key_hagroupをクラスタ内のすべてのノードに手動でコピーします。このファイルは、Csync2による認証で必要になります。ただし、すべてのノードで同じファイルでなければならないので、他のノードではファイルを再生成しないでください。すべてのノード上で次のコマンドを実行して、サービスを今すぐ有効にして開始します。
#systemctl enable --now csync2.socket
次の手順を使用して、設定ファイルをすべてのクラスタノードに転送します。
すべてのファイルを一度同期させるには、設定のコピー元であるマシン上で次のコマンドを実行します。
#csync2 -xvこれによって、すべてのファイルをその他のノードにプッシュすることで、一度に同期を行います。すべてのファイルが正常に同期されると、Csync2がエラーなしで終了します。
同期対象の1つ以上のファイルが(現在のノードだけでなく)他のノード上で変更されている場合は、Csync2から、以下のものと同様の出力との衝突が報告されます。
While syncing file /etc/corosync/corosync.conf: ERROR from peer hex-14: File is also marked dirty here! Finished with 1 errors.
現在のノードのファイルバージョンが「最良」だと確信する場合は、そのファイルを強制して再同期を行い、競合を解決できます。
#csync2 -f /etc/corosync/corosync.conf#csync2 -xv
Csync2オプションの詳細については、次のコマンドを実行してください
#csync2 --help
Csync2は変更のみをプッシュします。Csync2はマシン間でファイルを絶えず同期しているわけではありません。
同期が必要なファイルを更新する際はいつも、変更を加えたマシン上でcsync2 -xvを実行することで、変更をその他のマシンにプッシュする必要があります。変更されていないファイルが配置された他のマシン上でこのコマンドを実行しても、何も起こりません。
7.10 クラスタをオンラインにする #
最初のクラスタ設定が完了した後、すべてのクラスタノード上でクラスタサービスを開始し、スタックをオンラインにします。
既存のノードにログインします。
すべてのクラスタノード上でクラスタサービスを開始します。
#crm cluster start --allこのコマンドにはノード間のパスワード不要のSSHアクセスが必要です。
crm cluster startを使用して個々のノードを起動することもできます。クラスタのステータスを
crm statusコマンドで確認します。すべてのノードがオンラインの場合、出力は次のようになります。#crm statusCluster Summary: * Stack: corosync * Current DC: alice (version ...) - partition with quorum * Last updated: ... * Last change: ... by hacluster via crmd on bob * 2 nodes configured * 1 resource instance configured Node List: * Online: [ alice bob ] ...この出力は、クラスタリソースマネージャが起動し、リソースを管理できる状態にあることを示しています。
サポートされるには、SUSE Linux Enterprise High AvailabilityクラスタでSTONITH (ノードフェンシング)が有効になっている必要があります。ノードフェンシングメカニズムは、物理デバイス(電源スイッチ)でも、SBDのようなメカニズムとウォッチドッグを組み合わせたものでも構いません。クラスタの使用を続ける前に、1つ以上のSTONITHデバイスを第16章 「フェンシングとSTONITH」または第17章 「ストレージ保護とSBD」の説明に従って設定してください。
![[通信チャンネル]画面には、Corosync通信チャンネルを設定するための設定が表示されます。この例では、[マルチキャスト]が選択されています。バインドネットワークアドレスとマルチキャストアドレスが追加されていますが、クラスタ内の各ノードのメンバーアドレスは必要ありません。 [通信チャンネル]画面には、Corosync通信チャンネルを設定するための設定が表示されます。この例では、[マルチキャスト]が選択されています。バインドネットワークアドレスとマルチキャストアドレスが追加されていますが、クラスタ内の各ノードのメンバーアドレスは必要ありません。](images/yast_cluster_comm_mcast.png)
![[通信チャンネル]画面に、Corosync通信チャンネルを設定するための設定が表示されています。この例では、[ユニキャスト]が選択されています。バインドネットワークアドレスとマルチキャストアドレスは必要ありませんが、クラスタ内の各ノードのメンバーアドレスを追加する必要があります。 [通信チャンネル]画面に、Corosync通信チャンネルを設定するための設定が表示されています。この例では、[ユニキャスト]が選択されています。バインドネットワークアドレスとマルチキャストアドレスは必要ありませんが、クラスタ内の各ノードのメンバーアドレスを追加する必要があります。](images/yast_cluster_comm_ucast.png)
![[Corosync QDevice]画面に、QDeviceを設定するための設定が表示されています。Corosync QDeviceの有効化チェックボックスがアクティブ化されていて、カーソルはQNetdサーバホストフィールドにあります。 [Corosync QDevice]画面に、QDeviceを設定するための設定が表示されています。Corosync QDeviceの有効化チェックボックスがアクティブ化されていて、カーソルはQNetdサーバホストフィールドにあります。](images/yast_cluster_qdevice.png)
![[セキュリティ]画面に、Corosyncの認証を設定するための設定が表示されています。[セキュリティ認証を有効にする]チェックボックスがアクティブ化されていて、ハッシュ方式と暗号化方式のタイプを選択できます。[認証鍵ファイルの生成]を選択するオプションもあります。 [セキュリティ]画面に、Corosyncの認証を設定するための設定が表示されています。[セキュリティ認証を有効にする]チェックボックスがアクティブ化されていて、ハッシュ方式と暗号化方式のタイプを選択できます。[認証鍵ファイルの生成]を選択するオプションもあります。](images/yast_cluster_security.png)
![[Csync2の設定]画面に、ノード間のファイル転送を設定するための設定が表示されています。左側には[同期ホスト]リストがあり、ここにすべてのクラスタノードを追加する必要があります。右側には[同期ファイル]リストがあり、設定ファイルが自動的に入力されます。Generate Pre-Shared-KeysおよびTurn Csync2 ONを選択するオプションもあります。 [Csync2の設定]画面に、ノード間のファイル転送を設定するための設定が表示されています。左側には[同期ホスト]リストがあり、ここにすべてのクラスタノードを追加する必要があります。右側には[同期ファイル]リストがあり、設定ファイルが自動的に入力されます。Generate Pre-Shared-KeysおよびTurn Csync2 ONを選択するオプションもあります。](images/yast_cluster_sync.png)
![[conntrackdの設定]画面に、conntrackツールを設定するための設定が表示されています。専用インターフェイスを選択し、マルチキャストアドレスとグループ番号を入力して、/etc/conntrackd/conntrackd.confファイルを生成します。 [conntrackdの設定]画面に、conntrackツールを設定するための設定が表示されています。専用インターフェイスを選択し、マルチキャストアドレスとグループ番号を入力して、/etc/conntrackd/conntrackd.confファイルを生成します。](images/yast_cluster_conntrackd.png)
![[サービス]画面では、サービスを開始または停止できます。ブート時にクラスタを有効化または無効化したり、PacemakerとCorosyncを開始または停止したり、QDeviceを開始または停止したりできます。必要なファイアウォールポートを開くこともできます。 [サービス]画面では、サービスを開始または停止できます。ブート時にクラスタを有効化または無効化したり、PacemakerとCorosyncを開始または停止したり、QDeviceを開始または停止したりできます。必要なファイアウォールポートを開くこともできます。](images/yast_cluster_services.png)