VMwareESXi5.1にてwindows server2012R2 &color(magenta){Standard Edition};なマシンを2台を用意して
フェールオーバークラスタを作ってみた。
windows server2008R2までは&color(red){Enterprise Edition};でないとクラスターを作れなかったが、
2012からは&color(magenta){Standard Edition};でもOKになったみたい。
フェールオーバークラスタにはwindows ActiveDirectoryが必須なのだが、ここではsamba4で用意してみた。
&ref(2014y05m31d_133522434.png,nolink,noborder);
結論であるが、samba4ADを使ってフェールオーバークラスタは構築できました。
quorum等の共有ディスクはQNAPのiSCSIなら使えます。NAS4FreeとかFreeNAS由来のiSCSIだと無理っぽい。
quorum等の共有ディスクはQNAPのiSCSIなら使えます。
&color(red){*};NAS4FreeとかFreeNAS由来のiSCSIだと「SCSI-3 永続的な予約の検証」でエラーが発生
|BGCOLOR(YELLOW):マシン名|BGCOLOR(YELLOW):IP|BGCOLOR(YELLOW):備考|
|c.cerius.local|192.168.0.3|samba4ADドメインコントローラ|
|wsfc1.cerius.local|192.168.0.31, 10.64.0.1|node1(1cpu,4GB,40GBHDD)|
|wsfc2.cerius.local|192.168.0.32, 10.64.0.2|node2(1cpu,4GB,40GBHDD)|
|cl.cerius.local|192.168.0.34|クラスター管理用アクセスポイント|
|nas.cerius.local|192.168.0.30|共有ドライブ(quorum, share)|
***ハートビート用のネットワーク [#x79348d4]
2台のwindowsマシンを相互監視するハートビート用のネットワークをvSphereClientで作る。
vSphereClientの「構成」タブで、左上欄ハードウエアから「ネットワーク」項目を選択して、右上部の「ネットワークの追加...」をクリックする。
&ref(2014y05m31d_135005032.png,nolink);
新たに表示された「ネットワークの追加ウィザード」画面で、
&ref(2014y05m31d_135149047.png,nolink);
接続タイプ選択画面で、「仮想マシン」を選択
ネットワークアクセス選択画面で、「vSphere標準スイッチの作成」を選択
ポートグループのプロパティー画面で、
ネットワークラベルは「wsfc向けハートビート」
VLAN ID(任意)はなし(0)
を選択して新しいネットワークを作成する
&ref(2014y05m31d_135652526.png,nolink);
ESXi内のwindowsマシンに2枚目のNICを追加させ、その2枚目にこの「wsfc向けハートビート」を割り当てる。
&ref(2014y05m31d_140050047.png,nolink);
***windows server 2012R2 [#h6b27103]
ESXiにて構築するwindows server2012R2は、2core、4GB mem、40GB HDDとして、samba4ADDCに繋がるネットワーク回線(service lan)の他にクラスタ内のnode同士で通信する回線(heartbeat)も用意した。
service lanに付与した要件は
Microsoftネットワーク用クライアント
Microsoftネットワーク用ファイルとプリンター共有
インターネットプロトコルバージョン4(TCP/IPv4)[DNSへの登録有効、NetBIOS over TCP/IPは無効]
&ref(2014y06m01d_180224249.png,nolink);
の2項目とした。一方heartbeat側は
インターネットプロトコルバージョン4(TCP/IPv4)[DNSへの登録無効、NetBIOS over TCP/IPは無効]
&ref(2014y06m01d_180236553.png,nolink);
のみ有効にした。
この状態でsamba4AD(cerius.local)にドメイン参加を行い、再起動後ドメインのadministratorでログインを行う
***共有ドライブ [#s5f4948a]
FreeNASでiSCSIターゲットとなるquorum領域とshare領域の2つのドライブを用意した。
windows server 2012R2に付随しているiSCSIイニシエーターを使ってこれらのドライブと接続する。
まず、サーバーマネージャの上部メニュー欄[ツール]から[iSCSIイニシエーター]を起動
&ref(2014y05m31d_140929623.png,nolink);
&color(red){*};初回起動時だと、iSCSIのサービスが動いていないぞと言われ、再起動後も有効にするなら「はい」を選択せよと掲示が出される。ここは「はい」を選択する
&ref(2014y05m31d_141035591.png,nolink);
表示された「iSCSIイニシエーターのプロパティ」画面の「ターゲット」タブでiSCSIターゲットを提供するサーバの検索を行う。
&ref(2014y05m31d_173254928.png,nolink);
提示されたiSCSIターゲットから目的のiSCSIターゲットを選択して、「接続」ボタンをクリックする。
&ref(2014y05m31d_174025776.png,nolink);
目的のiSCSIターゲットに接続が完了したら、サーバーマネージャの上部メニュー欄[ツール]から[コンピュータの管理]を起動する。
表示させた「コンピュータの管理」画面の左メニューツリーを展開させ、「コンピュータの管理(ローカル)」->「記憶域」->「ディスクの管理」を選択する。iSCSI由来のデバイスをオンラインにする。
&ref(2014y05m31d_175018279.png,nolink);
quorum領域は1GBと定義した。これに該当するHDDをNTFSでフォーマットして、Qドライブに相当させる
share領域は20GBと定義した。これに該当するHDDをNTFSでフォーマットして、Sドライブに相当させる
&ref(2014y05m31d_180413968.png,nolink);
定義が完了したら、これら2つの領域はオフラインにする。
次に、もう片方のクラスターノードを立ち上げて、同様に[iSCSIイニシエーター]でFreeNASのiSCSIターゲットを接続します。
そこではNTFSへのフォーマットは行わず、単に[オンライン]にして、Qドライブ、Sドライブへの割り当てのみを行います。
windows2012R2はESXiで作り、共有ドライブらを提供するiSCSIターゲットは別途用意した。
&color(red){*};初め、iSCSIターゲットをFreeNASでESXiで用意したら失敗した。qnapによるiSCSIターゲットでは成功済み
***フェールオーバークラスターマネージャのインストール [#k7745736]
クラスターを構成するwindowsマシンにそれぞれインストールします。
サーバーマネージャの上部メニュー欄[管理]から[役割と機能の追加]を起動する。
「機能」を選択する画面で「フェイルオーバークラスタリング」を選択します。
&ref(2014y05m31d_181622615.png,nolink);
選択すると関連する管理ツールのインストールも伺われるがこれらもインストールします。
***samba4ADの調整 [#md0624a0]
wsfc構築途中に「構成の検証...」を行う場面がある。
特に処置を施していないと「IP 構成の検証」項目にて下記のような&color(white,red){テストの実行中にエラーが発生しました。}; と表示され、これ以上進めなくなる。
#code(nonumber){{
ネットワーク テストを初期化中にエラーが発生しました。
サーバー側のエージェントを作成中にエラーが発生しました (CPrepSrv)。
CLSID {E1568352-586D-43E4-933F-8E6DC4DE317A} を含む COM コンポーネントのインスタンスを
IClassFactory から作成中に、次のエラーが発生しました: 80070721。
}}
解決方法は下記URLに提示されていて、
http://www.curriegrad2004.ca/2013/05/samba-4-active-directory-domain-controller-for-a-microsoft-failover-cluster/
&color(magenta){msfcの検証、msfcの''構築ユーザ''};にservicePrincipalNameを持たせる必要があるみたい。
ここではmsfc検証をcerius\administratorで行いたかったので、このユーザにspnを追加した。spnは何でもいいみたく、HOSTのPrincipalとして HOST/msfc.cerius.local を追加した。DNSに存在するマシンでも架空のマシンでもいいみたい。
#code(nonumber){{
[root@c ~]# /opt/samba/bin/samba-tool spn list administrator
administrator
User CN=Administrator,CN=Users,DC=cerius,DC=local has no servicePrincipalName
[root@c ~]#
[root@c ~]# /opt/samba/bin/samba-tool spn add HOST/msfc.cerius.local administrator
[root@c ~]# /opt/samba/bin/samba-tool spn list administrator
administrator
User CN=Administrator,CN=Users,DC=cerius,DC=local has the following servicePrincipalName:
HOST/msfc.cerius.local
[root@c ~]#
}}
とHOST/msfc.cerius.localなservicePrincipalNameをcerius\administratorに追加した。
&color(red){*};msfcを構成するホストがservicePrincipalNameを持つのではなく、msfc検証やmsfc構築のユーザに持たせることが必須みたい
windowsのADSIエディッタ―で見ると
&ref(2014y05m18d_005244341.png,nolink); が、&ref(2014y05m18d_044235325.png,nolink); となる。
&color(red){*};過去、これが解決できなくてずっと停滞していた。。。
***フェールオーバークラスターマネージャ(クラスタ検証) [#h6dbaa69]
どちらか一方のマシンのフェールオーバークラスターマネージャを立ち上げます。
サーバーマネージャの上部メニュー欄[ツール]から[フェールオーバークラスターマネージャ]を起動。
表示された「フェールオーバークラスターマネージャ」画面の右側に「操作」として「構成の検証(L)...」がある。
&ref(2014y05m31d_190700888.png,nolink);
これを使ってクラスタの検証を行います。
クリックすると、新たに「構成の検証ウィザード」画面が開いて、「開始する前に」項目では「次へ」ボタンをクリックして、「サーバまたはクラスタの選択」項目で構築した2台の仮想マシンを指定して「次へ」ボタンをクリックします。
&ref(2014y06m01d_000823945.png,nolink);
テスト項目を選べるが、ここではすべてのテスト項目を実行させます。
&ref(2014y06m01d_000909264.png,nolink);
「確認」項目でテスト内容を確認して「次へ」ボタンをクリックします。
これでクラスター構築に向けての検証が始まります。
&color(red){共有フォルダにFreeNAS 9.2.1.5のiSCSIターゲットを利用したらエラーが発生した};
「SCSI-3 永続的な予約の検証」でエラーが発生
現象として、検証が完了するとiSCSIターゲット由来のHDDがRAWファイルシステムに代わってしまった
&ref(2014y06m01d_092930159.png,nolink);
&color(red){共有フォルダにNAS4Free 9.2.0.1のiSCSIターゲットを利用してもエラーが発生した};
こちらも「SCSI-3 永続的な予約の検証」でエラーが発生
&color(green){qnapのiSCSIターゲットを利用するとエラーは発生しない。成功する};
検証に成功すると「構成はクラスタリングに適しています」と表記される。
&ref(2014y06m01d_002459698.png,nolink);
***フェールオーバークラスターマネージャ(クラスタ構築) [#s7deb07a]
検証に成功したので、次は実際にクラスターを構築します。
「フェールオーバークラスターマネージャ」画面の右側に「操作」内にある「クラスターの作成(C)...」をクリックする。
&ref(2014y06m01d_002840593.png,nolink);
「クラスターの作成ウィザード」画面が新たに開いて、「開始する前に」項目では「次へ」ボタンをクリックする。
「サーバの選択」項目で、2台のクラスターノードを入力して「次へ」ボタンをクリックします。
&ref(2014y06m01d_003238408.png,nolink);
「クラスター管理用アクセスポイント」項目で、クラスター名は「cl」として、そのIPアドレスは「192.168.0.34」として、「次へ」ボタンをクリックする
&ref(2014y06m01d_113557017.png,nolink);
「確認」項目でクラスター構成を確認する
クラスタ:cl
ノード:wsfc2.cerius.local
ノード:wsfc1.cerius.local
IPアドレス:192.168.0.34
そして、「使用可能な記憶域を全てクラスターに追加する」を有効にして「次へ」ボタンをクリックする。
クラスターの構築が完了すると、「概要」項目で
&ref(2014y06m01d_114316847.png,nolink);
と明記される。
これでクラスターの構築は完了。
「フェールオーバークラスターマネージャ」画面は下記のようになる。
&ref(2014y06m01d_114601265.png,nolink);
***フェールオーバークラスターマネージャ(クラスタ削除) [#i9c5d5a3]
作ったクラスターを削除、元に戻してみます。
サーバーマネージャの上部メニュー欄[ツール]から[フェールオーバークラスターマネージャ]を起動
表示された「フェールオーバークラスターマネージャ」画面の右側のツリーを展開して、構築したクラスター「cl.cerius.local」を選択します。
&ref(2014y06m01d_122056063.png,nolink);
選択後、「フェールオーバークラスターマネージャ」画面の左側「操作」欄の項目に「他のアクション」が見えるようになる。
この「他のアクション」をクリックすると、評されるサブ項目に「クラスターの破棄...」がある。
&ref(2014y06m01d_122259687.png,nolink);
これを選択すると下記のような画面が表示される。「はい」ボタンをクリックします。
&ref(2014y06m01d_122440896.png,nolink);
これでOKみたいだけど、サーバーマネージャの「すべてのサーバ」にクラスター構成時の自分以外のマシンが残留しているとエラーが発生する。そこらを取り除けばいいだけみたい。