Windows Server 2008 R2 でのフェールオーバークラスター(WSFC) 実践めも その3
Windows Server 2008 R2 でのフェールオーバークラスターについて学びなおしたので、
整理してメモしておく。
目次は以下の通り。
0.概要
1.物理設計
2.論理設計
3.運用管理
【0.概要】
物理面
複数のノードからなる。
ホットスタンバイ構成であり、基本は1ノードのみアクティブで残りのノードはパッシブである。
(もちろん、クラスター関連モジュールは全ノードで常に動作している。各ノードは、ローカルのレジストリにクラスタ構成データベース(CLUSDB)を持っており、常に同期をとっている)
ただし、どのノードで動作するかはグループ単位で決まるため、複数ノードがアクティブ状態になることもある。
また、共有ストレージやIPアドレスなどのリソースについても、グループ単位で割り当てる。
死活監視はノードレベル(ハートビート(UDPユニキャスト、ポート:3343))とリソースレベル(リソースDLL)で行われる。
論理面
複数のグループ(≒サービス)からなる。
グループには複数のリソース(IPアドレスリソースやディスクリソースなど)が所属する。
クォーラムモード
以下の4つのモードがある。
- ノードマジョリティ(ノード数が奇数の場合のデフォルト)
- ノードおよびディスクマジョリティ(ノード数が偶数の場合のデフォルト)⇒この場合のみクォーラムディスク(Witness Disk)を用いる
- ノードおよびファイル共有マジョリティ
- マジョリティなし:ディスクのみ
【1.物理設計】
一般的な構成
- ノード数:2 (※一般的には、2ノードで稼働率「99.99%」を達成できるため。「99.999%」を達成するためにはノードを増やす必要がある)
- ノード間のネットワーク、共有ディスクへのパスを2重化(※ネットワーク機器は(サーバと違って)可用性がかなり高いので、2重にすれば99.999…になる)
- 電源装置の2重化
- 共有ディスクは、ベーシックディスク(ダイナミックディスク未対応のため)、FC-SAN接続、RAID10で構成
- フェールバックしない
- IPアドレスは(DHCPではなく)手動設定
なお、災害対策も視野に入れるなら、マルチサイトクラスタを検討する。
グループ
- IPアドレス
- ディスクドライブ
全般(プロパティ)
フェールオーバー(プロパティ)
- 指定した期間内の最大エラー数(デフォルト:ノード数-1):このグループの不具合時、この指定回数分の再起動またはフェールオーバーを試みる
- 期間(時間)(デフォルト:6):(上記の期間を指定)
- フェールバックを許可する(デフォルト:禁止):上記で設定した最優先所有者が復活した際に、動作ノードをそちらに戻す場合はONにする
- フェールバックのタイミング(デフォルト:今すぐ):今すぐ OR 時間帯指定
リソース
全般(プロパティ)
- リソース名
- (その他、リソース毎の独自設定)
依存関係(プロパティ)
- リソース間の依存関係を定義する。ANDかORで指定できる。オンライン-オフライン切替時に、依存関係を考慮して切替順番が決定される。また、リソース間のバインディングの定義でもある。
ポリシー(プロパティ)
- リソースエラーへの対応
- 保留タイムアウト時間
詳細なポリシー(プロパティ)
- 実行可能な所有者(デフォルト:全ノード):このリソースを実行可能なノードを指定する
- 基本的なリソース正常性チェックの間隔(デフォルト:リソースの種類間隔)
- 完全なリソース正常性チェックの間隔(デフォルト:リソースの種類間隔)
- このリソースを別のリソースモニターで実行する(デフォルト:OFF):(基本的には2つのリソースモニタープロセスでリソースの死活監視をしているが、)このリソース専用に第3のリソースモニタープロセスを立ち上げて監視する場合は設定する
※リソースの死活監視は以下の構成で実施される。
リソース コントロール マネージャー⇔リソースホストサブシステム(リソースモニター(rhs.exe))⇔リソースDLL⇔リソース
リソースDLLは、リソース毎に独自のステータスチェック方法を定義したプログラムである。
なお、クラスター未対応のリソース(特定のミドルウェア製品など)については、リソースDLLを自作するか、プロセス有無での判定のみとする(=汎用アプリとして登録する)しかない。
【3.運用管理】
管理ツール
コマンド
- Cluster.exe
- group グループ一覧
- resource リソース一覧
- /prop 各種設定の確認および設定
- group /moveto 手動フェールオーバー(※既定のグループ(「クラスター グループ」、「使用可能記憶域」)の移動はGUIからはできない(Windows Server 2012 では可能))
- PowerShellのモジュール「FailoverClusters」
ログ
概要ログ
イベントビューアで以下を確認できる
- 重大、エラー、警告ログ:システムログ(FailoverClusteringで絞ると見易い)に記録される
- 情報:アプリケーションとサービスログに記録される
ただし、ログは、そのイベントが起こったノードのローカルにしか記録されていないため、イベントビューアで参照した場合は、そのノードで起こったイベントのログしか確認できない。
そこで、
フェールオーバー クラスター マネージャー>クラスターイベント>クエリー を用いれば、選択した全てのノードのログを収集して参照できる。
詳細ログ
以下の通り、イベントトレース ログが出力されている。
(※上記パスは、パフォーマンスモニタ>データコレクタセット>システム>イベントトレースセッション>EventLog-Microsoft-Windows-FailoverClustering-Diagnostic のプロパティで確認できる)
- ログサイズ:100MB(デフォルト)
- ログファイルの世代:3世代(001〜003)
- ログレベル:6段階(0〜5)(デフォルトは3)
バイナリファイルであるため、以下の方法で変換して参照する。
- Tracerpt.exe を用いて、イベントビューアで参照できる形式で出力
tracerpt -lr <ログファイル名> -o <出力ファイル名> -of <出力形式(evtx など)>
- Cluster.exe を用いて、テキスト形式で出力(/copyオプションで、全ノードのログを収集可能)
cluster [クラスタ名] log /gen /copy
各種レポート
- %windir%\Windows\Cluster\Reports 配下