SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

2012 R2 以降で Azure File Storage をファイル共有監視のクラスター クォーラムとして利用する

leave a comment

先日、Azure File Storage が GA しました。
Azure File Storage の一般提供を開始
Azure File Storage を Windows Server 2012 R2 の WSFC のクラスター クォーラムとして利用する方法をまとめてみたいと思います。
今回の投稿では Azure File Storage をファイル共有監視として使用しています。
また、今回は使用できるかの検証を実施しているため、サポートされるかどうかは必ず各自でご確認ください。
私のほうでは設定検証のみでサポートについては一切確認をしていません。
# 2015/12 時点では Windows で Azure File Storage を使用する方法 でサポートされていないことが明記されています。

今回は、自分の検証環境から実施しています。オンプレミス環境で使用する場合、TCP / UDP 445 のアウトバウンドが許可されているかを確認する必要があります。
Azure File Storage を使用しようとした場合、Windows Server 2012 R2 以降の必要があります。
これは、Active Directory からデタッチされたクラスターを展開する の方法を使用するためです。
といっても、Windows Server 2016 では、Cloud Witness が使用できますので、Azure File Stoarge を使用する必要はありませんが。
Active Directory からデタッチされたクラスターは GUI から作成することができないので、以下のような PowerShell で作成する必要があります。

New-Cluster -Name 2012R2-WSFC -Node 2012R2-WSFC-01,2012R2-WSFC-02 -AdministrativeAccessPoint Dns

 
Windows Server 2012 R2 からは、AD 上に WSFC のコンピューターアカウントを作成せずにクラスターを構築することができます。
Windows Server 2016 で実装される、ワークグループクラスターについてもこの方法を使用しています。
コンピューターアカウントを有効にした WSFC の環境では、WSFC のコンピューターアカウントを使用して、ファイル共有監視にアクセスが行われます。
image
Active Directory からでタッチされたクラスターを使用した場合、「rhs.exe」のプロセスを起動している「NT AUTHORITY\SYSTEM」でファイル共有監視にアクセスが行われます。
image
通常のファイル共有監視であれば、共有フォルダーにコンピューターアカウントのフルコントロール等を設定することで、WSFC から共有フォルダーにアクセスできるように設定をするのですが、Azure File Storage の共有フォルダーは現状、ACL の設定をすることができません。
# SAS を使ってごにょごにょはできるようですが、共有フォルダーにエクスプローラーでアクセスする場合には使えないでしょうし。
 
そこで、Azure File Storage へのアクセスに使用する資格情報を登録することで、共有フォルダーへのアクセスを自動で実施できるようにします。
Azure File Storage の利用ですが、サンプルでは「net use」を使用した例が公開されていますが、Azure File Storage への接続情報については、資格情報マネージャーに登録された内容でもアクセスをすることができるため、これを使用して、「NT AUTHORITY\SYSTEM」で Azure File Storage の共有フォルダーにアクセスができるようにします。
SYSTEM に資格情報を登録するための方法は、いくつかあるかと思いますが、今回はタスクスケジューラーを使用して登録を行ってみます。
以下のようなタスクスケジューラーを登録します。
imageimage
ファイル共有監視へのアクセスは重要ですので、定期的に PowerShell のスクリプトで接続状態を確認するようなタスクを設定するのが良いかとは思いますが、今回は手抜きをして、「cmdkey」コマンドを使用しています。
コマンドとしては、以下のようなコマンドを実行しています。
資格情報の登録は WSFC に参加しているノードすべてで実行しておく必要があります。

cmdkey /add:<ストレージアカウント>.file.core.windows.net /user:<ストレージアカウント> /pass:<ストレージアカウントキー>

設定が終わったら、タスクを実行して SYSTEM に Azure File Storage の接続に使用する資格情報を登録します。
登録が終わったら GUI か以下のようなコマンドでファイル共有監視を設定します。

Set-ClusterQuorum -FileShareWitness \\<ストレージアカウント>.file.core.windows.net\<共有名>

SYSTEM に資格情報が登録されていることで、SYSTEM から Azure File Storage にアクセスができるようになるため、ファイル共有監視として、Azure File Storage が使用できるようになります。
image
この構成がサポートされるようになると、Azure 上で 2012 R2 の WSFC を組む際に、3 台目のノードが不要になっていいのですけどね。

Share

Written by Masayuki.Ozawa

10月 10th, 2015 at 10:25 pm

Leave a Reply