われらが Azure界の抱かれたい男No.1 こと ぶちさんが Windows Server 2016 & System Center 2016 Technical Preview 3 ほか で紹介されていますが、TP3 が提供されました。
クラスター系の大きな更新として、Workgroup and Multi-domain clusters in Windows Server 2016? が TP3 で追加されているようです。
TP3 全体の機能については Windows Server 2016 Technical Preview 3、TP3 で追加された機能については、What’s New in Windows Server 2016 Technical Preview 3、ワークグループ環境での WSFC については、Workgroup and Multi-domain clusters を参照するとよいかと。
今までのクラスターは、各ノードが同一のドメインに参加している必要があり、マルチドメインやワークグループの環境についてはサポートされていませんでした。
これが TP3 では緩和されるようです。
マルチドメイン / ワークグループ環境のクラスターでサポートされる機能としては、以下のようなものがあるようです。
SQL Server のサポート / ファイルサーバー, Hyper-V サーバーについてはサポートされますが機能については限定される、推奨はしていないという形になるようですね。(Kerberos がらみがNGなのでしょうかね)
今まで意識していなかったのですが、機能としては Windows Server 2012 R2 で追加がされた、Active Directory からデタッチされたクラスターを展開する を拡張したようなものになるかと。
2012 R2 で追加された機能は、AD DS 上にコンピュータアカウントを作成せずにクラスターを作成するというものでしたが、これが AD DS も不要になったのが TP3 で実装された機能かと。
というか、2012 R2 のこの機能、知りませんでした。。。。
AD に参加していない環境で作成する場合、相手のコンピューターの名前解決ができる環境が必要となってきます。
ワークグループ環境でのクラスターの構築準備としては、
- DNS で解決ができるように DNS を準備
- WSFC のノードの DNS サフィックスを設定し、DNS でコンピューター名で名前解決をできるようにする
- 各ノードのAdministrators グループに所属している同一ユーザー名/同一パスワードのユーザーを追加し、そのユーザーで作業を実施する。
BUILTIN\Administrator が同一のパスワードであればそれで作業することもできます。
Administrators に追加したローカルアカウントで作業を実施する場合は「LocalAccountTokenFilterPolicy」を 1 にする設定が必要となる。
が必要になってくるようです。
hosts ベースの名前解決でも構築はできましたが、「Cluster Name」のリソースが「Failed」になってしまいましたので、DNS は必要かと。
クラスター名の DNS の正常性検知 (StatusDNS) がパスできていない、クラスターの「DNSSuffix」が設定されていないのが原因だと思いますが。
各ノードの準備としては、以下のような、PowerShell を実行すれば、環境が整うかと思います。
Add-WindowsFeature -Name Failover-Clustering -IncludeManagementTools $DNSSuffix = "wsfc.local" Set-ItemProperty registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name "NV Domain" -Value $DNSSuffix Register-DnsClient Restart-Computer -Force
WSFC の機能と管理用ツール (WSFC のマネージャーと PowerShell のコマンドレット) を追加し、DNS サフィックスを設定した後に、DNS に登録をし、再起動を行っています。
今回、DNS については、動的に登録ができるようなゾーンを作成しているので「Register-DnsClient」で登録ができていますが、動的更新ができない環境では手動で登録する必要があるかと思います。
これで、準備は完了なのですが、TP3 の問題として、「C:\Windows\System32\WindowsPowerShell\v1.0\Modules\FailoverClusters\Microsoft.FailoverClusters.PowerShell.psm1」を修正する必要があります。
このファイルの内容が一部壊れていて、WSFC の管理機能を追加しても WSFC 関連のコマンドレットが使えないという悲しい状態になっています。
このファイルですが、デフォルトでは「TrustedInstaller」が所有者となっており、Administrators グループには、変更するための権限がありませんので、以下の作業を実施して、ファイルを編集できるようにします。
この作業をすることでファイルを編集して保存することができるようになりますので、以下の個所を修正します。
74行目 $Message = $Message + ・・cmdlet was cancelled・ ↓ $Message = $Message + "cmdlet was cancelled" 96行目 ShowError("Wrong OS Version - Need at least Windows Server 2012 R2 or Windows 8.1. You are running '" + $OS.Name + "'・ ↓ ShowError("Wrong OS Version - Need at least Windows Server 2012 R2 or Windows 8.1. You are running '" + $OS.Name + "'")
この修正を実施することで、以下のコマンドレットを実行するとワークグループ環境で WSFC が構築できるようになります。
New-Cluster -Name TP3-WSFC -StaticAddress 10.106.0.1 -node TP3-01,TP3-02 -AdministrativeAccessPoint Dns
DHCP 環境の場合は「-StaticAddress」を指定しなければ DHCP による割り当てになります。
これでワークグループ環境で WSFC を構築することができます。
クラスタークォーラムについては、2016 では、Azure ストレージを使用した、Cloud Witness を使用することができますので、
- 共有ディスク
- Cloud Witness
- ノード
のどれかを使用することになるかと思います。
(ワークグループ環境では、共有フォルダーのアクセス権は設定できないはずですので。)
ワークグループ環境の WSFC では、現状、管理コンソールを使用することができませんので、操作はすべて PowerShell で実施することになります。
(WSFC の管理コンソールはドメインユーザーでないと起動できないので。)
クラウドウィットネスを設定する場合は、WSFC の構築後に、
Set-ClusterQuorum -CloudWitness -AccountName <ストレージアカウント名> -AccessKey <ストレージアカウントキー>
で設定することができます。
ワークグループ環境の WSFC の構築ですが、手間をかけずに構築できるのは良いですね。