2021年2月8日月曜日

WSFC / MSFC入門 (Windows Serverのクラスターでファイルサーバーを構築する)


Windows Serverでクラスター構成を行う場合、OS標準の機能であるWSFC (Windows Server Failover Clustering)、別名MSFC (Microsoft Failover Clustering)を使うことが鉄板だろう。クラスターというと、とっつきにくいイメージがあるかもしれないが、一度構築をしてみればそこまで難しいものではない。

本記事では、Windows Server 2016のWSFCを使って、クラスター構成のファイルサーバーを構築する手順を記載するなお、Windows Server 2019であっても、クラスター構成の手順は本記事に記載する手順と大きく変わらないことを確認している。

WSFCの呼び方は複数ある

余談だが、WSFCはOSや時期によって名前が変わってきており、以下のようになっている。
  • MSCS : Windows Server 2003 R2以前
  • WSFC / MSFC : Windows Server 2008 以降

Windows Server 2012 R2のGUI上では、カタカナでフェールオーバークラスターと表記されていたりする。Microsoftのサイトを見る限りでは、WSFCが公式な略称として使用されているようだ。

本記事では、WSFCで記載を統一することにする。

WSFCの前提条件と今回の構成

WSFCを構成する上での前提条件を以下に記載する。
  • 同一ドメインに所属すること、すなわちActive Directoryのドメインコントローラーが必要
  • クラスター用にVIPが1つ、アプリケーション用にVIPが1つ必要
  • クラスター通信用のネットワークは2つ用意することが推奨 (必須ではないが可用性の観点からネットワークの冗長構成が推奨)
  • アプリケーション用に共有ディスクが必要 (今回はiSCSIで構築)
  • クォーラムディスク用に1GB程度の共有ディスクの用意を推奨 (今回はiSCSIで構築)

なお、Windows Server 2016以降でWSFCを構成する場合、ドメインコントローラーが必須ではなくなっている (条件・制約あり)。本記事では説明しないが、詳細は以下のURLを参照いただきたい。

条件をふまえて、今回のサーバー構成は以下の通りとした。

それでは、上記を構成する手順を順に追っていこう。

WSFC構成手順

1. 共有ディスクをマウント・フォーマット

2台のノードで共有するディスクをあらかじめ片方のノードにてマウントし、NTFSでフォーマットをしておく。今回はiSCSIのディスクをマウントしているが、マウントする手順は別記事を参照すること。

ディスクマウント後は以下のようになる。Eドライブをクラスター用の共有ディスクとし、1GBのドライブはクォーラム監視用に使用する。クォーラム用のディスクにドライブレターは不要となる(ドライブレターを付けても問題はない)。

2. フェールオーバークラスタリングの機能を追加

「サーバーマネージャー」の「役割と機能の追加」→「機能の選択」画面にて、「フェールオーバークラスタリング」を両方のノードに追加する。ここは特に難しい設定はなく、ひたすら次へを押していけばよい。
※ちなみに、Windows Serverでは「フェイルオーバー」ではなく「フェールオーバー」と表記されているので注意。

「フェールオーバークラスタリング」選択時に「リモートサーバ管理ツール」の追加確認が表示されるので、「機能の追加」を選択しておく。

フェールオーバークラスタリングの機能追加後、「再起動が保留になっています」のメッセージが表示される場合は、ノードの再起動を実施する。

3. フェールオーバークラスターマネージャーの起動

「サーバーマネージャー」の「ツール」から「フェールオーバークラスターマネージャー」を選択する。

4. クラスターの構成の検証

左ペインの「フェールオーバークラスターマネージャー」を右クリックし、「構成の検証」を選択する。「構成の検証」では、クラスターを組むにあたって、必要な前提条件の確認を一通り検証してくれる。また、「構成の検証」は、必ず一度は実施しなければ、クラスターの作成を行うことができない


「サーバーまたはクラスターの選択」では、クラスターを構成するノードのホスト名を「名前の入力」欄に記載してEnterを押すことで、構成の検証対象のノードを追加できる。今回クラスターに組み込むノードを2台追加する。

「テストオプション」では「すべてのテストを実行する (推奨)」を選択する。

「構成の検証」が始まるので、しばらく待つ。環境にもよるが10分程度で検証は完了する。

終了後に、「レポートの表示」ボタンを押すことで、ブラウザで表示可能なレポートを出力することができる。「カテゴリ別の結果」が、すべて「成功」となっていることを確認しておこう。


5. クラスターの作成

検証が終わったら、再度、左ペインの「フェールオーバークラスターマネージャー」を右クリックし、「クラスターの作成」を選択する。

「サーバーの選択」では、「構成の検証」と同様、クラスターに組み込むノードを2台追加する。

「クラスター管理用のアクセスポイント」では、WSFC管理用のVIPとなるクラスター名とIPアドレスを設定する。ここで設定したクラスター名とIPアドレスは、Active Directory及びDNSに登録される。

「確認」で表示される「使用可能な記憶域をすべてクラスターに追加する」は、チェックしたままとする。これによって、WSFCを構成するノードで共有されているディスクが自動的にクラスターディスクとして追加され、さらには最も容量が小さいディスクがクォーラムディスクとして設定される

クラスターの作成終了後に、「レポートの表示」ボタンを押すことで、ブラウザで表示可能なレポートを出力することができる。特に警告なく完了していることを確認しておこう。


6. クラスターディスクの確認

左ペインの「フェールオーバークラスターマネージャー」→「クラスター名」→「記憶域」→「ディスク」を選択し、クラスターの作成時にディスクが追加されていることを確認する。

20GBのディスクの適用先が「使用可能記憶域」、1GBのディスクの適用先が「クォーラム内のディスク監視」となっていれば想定通りとなる。

追加されたディスクは、デフォルトではディスクの名前が「クラスター ディスク X」という名前となっており判別しづらいので、右クリック→「プロパティ」から名前を変更しておくと管理が楽になる。
※今回は検証目的だったので、そのままの名前で進めることにする。

7. ファイルサーバーの役割を追加

クラスターの役割として、「ファイルサーバー」を構成することにする。まず、「サーバーマネージャー」の「役割と機能の追加」→「役割の選択」画面にて、「ファイルサーバー」を追加しておく。

その後、「フェールオーバークラスターマネージャー」→「クラスター名」→「役割」を右クリックし、「役割の構成」を選択する。

「役割の選択」では「ファイルサーバー」を選択する。

「ファイルサーバーの種類」では「汎用ファイルサーバー」を選択する。

「クライアントアクセスポイント」では、CIFSによるファイルサーバーアクセス用のVIPとなる名前とIPアドレスを設定する。ここで設定した名前とIPアドレスは、Active Directory及びDNSに登録される。

「記憶域の選択」では、ファイルサーバーとして使用する共有ディスクを選択する。

役割の構成終了後に、「レポートの表示」ボタンを押すことで、ブラウザで表示可能なレポートを出力することができる。特に警告なく完了していることを確認しておこう。


以上にて、構成された役割の「リソース」タブを選択すると、VIP (サーバー名)、共有ディスク (記憶域)、ファイルサーバーサービス (ファイルサーバー)の3つが、クラスターリソースとして構成されていることがわかる。

8. フェールオーバーの動作確認

動作確認のため、実際にフェールオーバーさせてみよう。まずは、事前に共有ディスクにアクセスできることを確認しておく。確認用に、テキストファイルを1つ作成する。作成時点のタイムスタンプは15:52となっている。


現在ファイルサーバーの役割が動作しているノード「t1121wind」のOSをシャットダウンさせ、フェールオーバーを発生させる。先ほどまで所有者ノードが「t1121wind」だったものが、「t1122wind」に自動でフェールオーバーしていることがわかる。

フェールオーバー後も、共有ディスクに問題なくアクセスすることができることを確認する。さらに、作成しておいたテキストファイルに追記を行うと問題なく書き込みも成功し、タイムスタンプが15:59に更新されることを確認できた。

まとめ

以上でクラスターの構成は終了となる。実際は細かい設定 (エラー時の再起動の試行回数や、各クラスターリソースの依存関係の設定)など、各種チューニング要素はあるものの、比較的少ない手順でクラスターを組むことができた。

更新履歴

  • 2017/6/7 新規作成
  • 2021/2/9 Windows Server 2016のWSFC構築手順に全面的に内容を更新。クラスターの役割を汎用アプリケーションからファイルサーバーに変更して手順を更新

人気の投稿