久しぶりに検証する時間が取れたのでファイル共有マジョリティの設定方法をまとめてみたいと思います。
ファイル共有マジョリティは Windows Server 2008 から追加されたクラスタクォーラムの設定です。
下図のような構成になり、ノード 1 / ノード 2 / 共有ディレクトリの三か所にクォーラム情報を保持します。
設定は
- 共有ディレクトリの設定
- クォーラムの設定
の 2 つの手順で行います。
今回は以下の環境でファイル共有マジョリティを設定して見たいと思います。
※コンピュータアカウントに対してアクセス権を設定します。
そのため、共有ディレクトリを設定するサーバーはドメインに参加させる必要があります。
共有ディレクトリの設定
- ディレクトリを作成します。
- 作成した共有ディレクトリに以下の権限を設定します。
[クラスタの仮想コンピュータ名] の [フルコントロール]
[クラスタの各ノード] の [フルコントロール]
?
コンピュータアカウントはユーザーの追加時に [オブジェクトの種類] で [コンピュータ] を選択する必要があります。
# デフォルトでは [コンピュータ] は選択されていません。
- 作成したディレクトリを共有ディレクトリにします。
- 共有ディレクトリのアクセス権として以下の権限を設定します。
[クラスタの仮想コンピュータ名] の [フルコントロール][クラスタの各ノード] の [フルコントロール]
?
?
こちらもオブジェクトの種類でコンピュータを選択する必要があります。
以上で共有ディレクトリ側の設定は終了です。
次はこの共有ディレクトリを使用してクォーラムを設定します。
ファイル共有マジョリティ クォーラムの設定
- [フェールオーバー クラスタの管理] を実行します。
- クラスタの仮想コンピュータ名を選択します。
- [その他のアクション] → [クラスタ クォーラム設定の構成]を選択します。
- ウィザードが起動したら [次へ] をクリックします。
- [ノードおよびファイル共有マジョリティ] を選択し、[次へ] をクリックします。
- [参照] をクリックします。
- 共有ディレクトリを選択し、[OK] をクリックします。
?
今回はクラスタアドミニストレータを起動しているユーザーには共有ディレクトリのアクセス権は設定していません。
そのため、共有ディレクトリの [+] をクリックして展開しようとすると以下のエラー画面になりますが無視して進めます。
?
共有ディレクトリの階層が深い場合は前の画面の [共有フォルダ パス] にパスを直接入力して指定します。 - [共有フォルダ パス] の設定を確認し、[次へ] をクリックします。
- 解決策は現在調査中なのですが、ここまでの設定ではおそらく以下のエラーが発生すると思います。
?
共有ディレクトリ、実ディレクトリにフェールオーバークラスタの管理を実行しているユーザーのフルコントロールを
設定しても回避できませんでした…。共有ディレクトリを作成しているサーバーの [Power Users] または [Administrators] グループにフェールオーバークラスタの管理を
実行しているユーザーを追加するとエラーは回避することができます。ローカルセキュリティポリシーで権限をいろいろと付与してみたのですが具体的な権限まで突き止めることができませんでした。
今回は [Power Users] グループに追加して検証を進めていきます。
# 設定終了後は削除可能ですので一時的に [Power Users] に追加するという方法であれば通常運用上も許可される範囲だと考えています。 - [次へ] をクリックしてクォーラムを設定します。
- [完了] をクリックして設定を完了します。
- これでクォーラムの設定がファイル共有マジョリティに設定されます。
?
設定終了後は [Power Users] または [Administrators] に追加したフェールオーバークラスタの管理の実行ユーザーは
不要になりますのでグループから削除します。
以上で、ファイル共有マジョリティを使用したクォーラムを構成することができます。
コマンドでファイル共有マジョリティをクォーラムに設定する場合は以下のコマンドプロンプトで以下のコマンドを実行します。
# コマンドプロンプトは管理者として実行します。
cluster /cluster:<クラスタ名> res "<リソース名(任意の名称)>" /create /group:"クラスタ グループ" /type:"File Share Witness" /priv Sharepath="<共有フォルダのパス>" cluster res "<設定したリソース名>" /online cluster :<クラスタ名> /quorum:"<設定したリソース名>" |
改行されている個所は 1 行で入力します。
実行結果は以下のようになります。
>cluster /cluster:2008-WSFC-01.lab.local res "File Share Witness (UNCPath)" /create /group:"クラスタ グループ" /type:"File Share Witness" /priv Sharepath="2003-stg-01SharedFolder" リソース ‘File Share Witness (UNCPath)’ を作成しています… リソース???????????? グループ???????????? ノード????????? 状態 >cluster res "File Share Witness (UNCPath)" /online リソース ‘File Share Witness (UNCPath)’ をオンラインにしています… リソース???????????? グループ???????????? ノード????????? 状態 >cluster 2008-WSFC-01.lab.local /quorum:"File Share Witness (UNCPath)" > |
コマンドで実行した場合は [Power Users] グループ等に追加しなくても設定ができます。
この動きをみていると共有ディレクトリのアクセス権も間違ってはなさそうなんですけどね~。
Sysinternals の Procmon.exe を使用してファイルアクセスのトレースを取得してもこれといって失敗は検知されていませんでした。
日本語の情報はなさそうですので時間を見て英語の情報を探してみたいと思います。
ファイル共有マジョリティの設定はいったんここまでで。
次はクラスタのログについて投稿したいと思っています。