...
起動後、右ペインからサーバに接続をクリックし、「別のコンピュータ」から上記でセットアップしたマシンのホスト名を入れます。
正しく設定されていれば、ログインしているアカウントの認証情報を利用して接続できるはずです。
つづく
OSインストール→ドメイン参加を必要台数分実行します。
クラスタのセットアップ
まずは、クラスタの作成までを行います。
クラスタ機能の追加
Powershellの機能追加コマンドレットより追加します。クラスタ参加するマシン全てで実行します。
コード ブロック |
---|
PS C:\Users\administrator.DEV> Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
True No Success {フェールオーバー クラスタリング, リモート... |
VMSwitchを作成する
VMSwitchのセットアップを行います。クラスタノード全てで同じスイッチ名にしてください。
上記Hyper-V Managerが接続されていれば、そこから仮想スイッチマネージャを通して作成することも出来ます。
Get-NetAdapterコマンドレットで利用可能なNICを確認します。利用したいNICのnameを確認してください。
コード ブロック |
---|
PS C:\Users\administrator.DEV> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
イーサネット 4 Intel(R) Ethernet Connection I218-V 7 Up C0-3F-D5-6D-49-84 1 Gbps |
この場合はNameがイーサネット 4 なので、VMSwitch作成時にはイーサネット 4 を指定します。そのVMSwitchでホストOSの通信も行いたい場合(NICが1つしかない場合)、-AllowManagementOS に$Trueをつけます。指定後、リモデが一瞬切れます。
コード ブロック |
---|
PS C:\Users\administrator.DEV> New-VMSwitch "VMS1" -NetAdapterName "イーサネット 4" -AllowManagementOS $True
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
VMS1 External Intel(R) Ethernet Connection I218-V |
これをクラスタ台数分実行します。
テストを実行する
Powershellからtest-clusterコマンドレットを実行し、動くかどうか確認します。
クラスタに属す予定のマシンのいずれかで実行します。今回セットアップしたのがhv03とhv04というホスト名です。
コード ブロック |
---|
PS C:\Users\administrator.DEV> Test-Cluster -Node hv03,hv04
警告: 記憶域 - ディスクを一覧表示: テストの失敗が報告されました。。
警告: インベントリ - ソフトウェア更新プログラムの一覧表示: テストの失敗が報告されました。。
警告: システムの構成 - すべてのドライバーの署名の検証: テストでいくつかの警告が報告されました。。
警告: システムの構成 - ソフトウェア更新プログラム レベルの検証: テストの失敗が報告されました。。
警告: ネットワーク - IP 構成の検証: テストの失敗が報告されました。。
警告: ネットワーク - クラスター ネットワーク構成の検証: テストの失敗が報告されました。。
警告:
テスト結果:
HadUnselectedTests, HadFailures, ClusterConditionallyApproved
選択されたテストは完了しました。1
つ以上のテストで、構成がクラスタリングに適さないことが示されています。すべてのクラスター検証テストが実行され、すべての
テストが成功した場合にのみ (警告の有無は問いません)、Microsoft はクラスター ソリューションをサポートします。
テスト レポート ファイルのパス: C:\Users\administrator.DEV\AppData\Local\Temp\2\検証レポート 2017.05.05 (23.09.43).htm
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2017/05/05 23:10 533111 検証レポート 2017.05.05 (23.09.43).htm |
Coreなマシンでhtmlを見る術はないので、レポート の確認にはネットワークドライブにコピーするなどしてください(Notepad.exeとかtypeコマンドで生データを見ることは可能)。警告レベルであれば作成できるようです。
RSATを入れたマシンがあれば、RSATに含まれるフェールオーバークラスターマネージャの「構成の検証」からも実行できます。
クラスタを作成する
まずは、HyperV Serverにリモートデスクトップ等からドメインのユーザでログインします。また、このコマンドだけはPowershellから実行する必要があります。Samba4をバックエンドとして使う場合、クラスタ用のComputerはADに作成されるのですが、IPの更新がされません。そのため、静的アドレスを指定する必要があります。普通のADなら動的でOKです。
コード ブロック |
---|
PS C:\Users\administrator.DEV.000> New-Cluster -name HVC2 -Node hv03,hv04 -StaticAddress 192.168.1.114
警告:
クラスター化された役割の作成中に問題があったため、役割を開始できない可能性があります。詳細については、以下のレポート
ファイルを参照してください。
警告: レポート ファイルの場所: C:\windows\cluster\Reports\クラスターの作成ウィザード HVC2 on 2017.05.07 At 06.37.24.htm
Name
----
HVC2 |
警告は出ますが、動くようです。
色々検証していたら、クラスタを作成しようとしても「クラスターを作成しているときにエラーが発生し、ノードがクリーンアップされます。しばらくお待ちください...」となり作成出来なくなった事があったので、もしうまく動かなくなったらSambaを初期化してみてください。と言っても、1日悩んだ結果、結局ADをOSレベルから作り直してしまったので、どのようにクリーンアップすればいいかというのは不明ですが…。また、作れなくなった原因も何が起因だったのかは不明です。
フェールオーバークラスターマネージャから接続する
クラスタが作成できたら、フェールオーバークラスターマネージャから接続してみます。
この際に、Samba4がバックエンドの場合、クラスタ名を指定しても接続できないので、上記でStaticAddress に指定したIPを指定します。
正しく接続できれば、ノードの一覧に指定したホストがいるはずです。
Clustering Shared Volumeのセットアップ
ここまででかなりお腹いっぱいになって胃もたれしてきた感がありますが、Clustering Shared Volume(CSV)を作成します。ターゲットにはiSCSIを利用します。
Linux上で、iSCSIターゲットを作成する
targetcliを利用し作成します。apt-get install targetcliでインストールできますが、バージョンが古いためSCSI-3 に対応しておらず、ディスクをオンラインに出来ません。
そのため、targetcliでSRPターゲットを作るを参考にtargetcliをgitから落とし、ビルドしてください。(これで3時間くらいはハマった)
コード ブロック |
---|
#ディスクの置き場を作る
root@debian:~# mkdir /vmdk
#targetcliを起動する
root@debian:~# targetcli
targetcli 3.0.pre4.3~g0fba804 (rtslib 3.0.pre4.9~g6fd0bbf)
Copyright (c) 2011-2014 by Datera, Inc.
All rights reserved.
#ディスクイメージを作成する
/> /backstores/fileio create name=vdisk1 file_or_dev=/vmdk/vdisk1.img size=10G
Created fileio vdisk1 with size 10737418240
#iscsiのWWNを作る。createだけすればよしなにランダムに作ってくれる
/> iscsi/ create
Created target iqn.2003-01.org.linux-iscsi.debian.x8664:sn.8d895396ee6f.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
#作成したWWNのtpg1まで下りる
/> iscsi/iqn.2003-01.org.linux-iscsi.debian.x8664:sn.8d895396ee6f/tpg1/
#LUNにディスクイメージを割り当てる
/iscsi/iqn.20...5396ee6f/tpg1> luns/ create /backstores/fileio/vdisk1
Created LUN 0.
#portalを作成する。
/iscsi/iqn.20...5396ee6f/tpg1>portals/ create
Using default IP port 3260
Automatically selected IP address 192.168.1.111.
Created network portal 192.168.1.111:3260.
#内容の確認
/iscsi/iqn.20...5396ee6f/tpg1> ls
o- tpg1 ..................................................................................................... [no-gen-acls, no-auth]
o- acls ................................................................................................................ [ACLs: 0]
o- luns ................................................................................................................ [LUNs: 1]
| o- lun0 ..................................................................................... [fileio/vdisk1 (/vmdk/vdisk1.img)]
o- portals .......................................................................................................... [Portals: 1]
o- 192.168.1.111:3260 ....................................................................................... [OK, iser disabled]
#CHAP等を使わない誰でも接続できるLUNを作成する。
/iscsi/iqn.20...5396ee6f/tpg1> set attribute demo_mode_write_protect=0 demo_mode_discovery=1 generate_node_acls=1 cache_dynamic_acls=1 authentication=0
Parameter demo_mode_discovery is now '1'.
Parameter generate_node_acls is now '1'.
Parameter authentication is now '0'.
Parameter demo_mode_write_protect is now '0'.
Parameter cache_dynamic_acls is now '1'.
#保存する
/iscsi/iqn.20...5396ee6f/tpg1> / saveconfig
Last 10 configs saved in /etc/rtslib-fb-target/backup.
Configuration saved to /etc/rtslib-fb-target/saveconfig.json
#終了する
/iscsi/iqn.20...5396ee6f/tpg1> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/rtslib-fb-target/backup.
Configuration saved to /etc/rtslib-fb-target/saveconfig.json
|
HyperV ServerからiSCSIに接続する
例によってPowershellからです。まずはStart-Service MSiSCSIでサービスを起動し、New-IscsiTargetPortalコマンドレットで前述で作成したターゲットに接続します。
コード ブロック |
---|
PS C:\Users\administrator.DEV.000> Start-Service MSiSCSI
PS C:\Users\administrator.DEV.000> Set-Service MSiSCSI -StartupType auto
PS C:\Users\administrator.DEV.000> New-IscsiTargetPortal -TargetPortalAddress debian
InitiatorInstanceName :
InitiatorPortalAddress :
IsDataDigest : False
IsHeaderDigest : False
TargetPortalAddress : debian
TargetPortalPortNumber : 3260
PSComputerName : |
ポータルに接続後、このままではディスクはマウントされないのでLUNに接続します。正しくポータルにログインできていれば、get-iscsiTargetで利用可能なノードが見えます。
ノード確認後、 Connect-IscsiTargetでノードに接続し、LUNをマウントします。
コード ブロック |
---|
PS C:\Users\administrator.DEV.000> Get-IscsiTarget
IsConnected NodeAddress PSComputerName
----------- ----------- --------------
False iqn.2003-01.org.linux-iscsi.debian.x8664:sn.8d895396ee6f
PS C:\Users\administrator.DEV.000> Connect-IscsiTarget -NodeAddress iqn.2003-01.org.linux-iscsi.debian.x8664:sn.8d895396ee6f
AuthenticationType : NONE
InitiatorInstanceName : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress : iqn.1991-05.com.microsoft:hv03.dev.lan
InitiatorPortalAddress : 0.0.0.0
InitiatorSideIdentifier : 400001370000
IsConnected : True
IsDataDigest : False
IsDiscovered : True
IsHeaderDigest : False
IsPersistent : False
NumberOfConnections : 1
SessionIdentifier : ffff810ea953f010-4000013700000002
TargetNodeAddress : iqn.2003-01.org.linux-iscsi.debian.x8664:sn.8d895396ee6f
TargetSideIdentifier : 0100
PSComputerName |
これをクラスタノード全てで行います。Invoke-Commandを利用して一括設定しても可能です。
ディスクのフォーマット
iSCSIボリュームのマウントが完了したら、今度はディスクフォーマットします。diskpartでも可能です。
Powershell編
コード ブロック |
---|
PS C:\> Get-Disk
Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition
Style
------ ------------- ------------- ------------ ----------------- ---------- ----------
1 Msft Virtu... Healthy Online 12 GB MBR
0 SanDisk Ul... 4C530001141015116300 Healthy Online 14.32 GB MBR
2 LIO-ORG FI... 9680ec2f-0340-47c1-9cbb-20114... Healthy Offline 10 GB RAW
#今回は2番が対象
#ディスクをオンラインにする
PS C:\> Set-Disk -IsOffline $False -Number 2
#ディスクのリードオンリーを消す
PS C:\> Set-Disk -IsReadOnly $false -Number 2
#フォーマット(MBRでもOK)
PS C:\> Initialize-Disk -Number 2 -PartitionStyle GPT -PassThru | New-Partition -DriveLetter X -UseMaximumSize | Format-Volume -FileSystem ntfs
DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining Size
----------- --------------- ---------- --------- ------------ ----------------- ------------- ----
X NTFS Fixed Healthy OK 9.92 GB 9.97 GB |
diskpart編
コード ブロック |
---|
#diskpart起動
PS C:\Users\administrator.DEV.000> diskpart
Microsoft DiskPart バージョン 10.0.14393.0
Copyright (C) 1999-2013 Microsoft Corporation.
コンピューター: HV04
#disk一覧を取得。今回は2番がiscsiボリューム
DISKPART> list disk
ディスク 状態 サイズ 空き ダイナ GPT
### ミック
------------ ------------- ------- ------- --- ---
ディスク 0 オンライン 14 GB 0 B
ディスク 1 オンライン 12 GB 0 B
ディスク 2 オフライン 10 GB 10 GB
#操作対象にディスク2を選択
DISKPART> select disk 2
ディスク 2 が選択されました。
#iscsiボリュームは最初オフラインなのでオンラインにする
DISKPART> online disk
DiskPart は選択されたディスクをオンラインにしました。
#iscsiボリュームは最初リードオンリーなので書き込めるようにする
DISKPART> attributes disk clear readonly
ディスクの属性が正しく消去されました。
#ここから先は最初のノードで1回のみ実行
#パーティション作成
DISKPART> create partition primary
DiskPart は指定したパーティションの作成に成功しました。
#パーティションのフォーマット対象選択
DISKPART> select partition 1
パーティション 1 が選択されました。
#フォーマット
DISKPART> format fs=ntfs quick
100% 完了しました
DiskPart は、ボリュームのフォーマットを完了しました。
DISKPART> exit |
この動作は、最初のノードだけで実行すればOKです。
CSVマウント
セットアップが完了したら、フェールオーバークラスターマネージャからCSVを作成します。
記憶域→ディスク→ディスクの追加 を選択し、セットアップが起動したら、今回作成したiSCSIディスクが出てくるはずです。
OKを押せば、ディスクがマウントされるはずです。
その後、クラスターの共有ボリュームへの追加をクリックし、各マシンへマウントします。
その後、ボリュームがC:\ClusterStorage\VolumeXにマウントされたことを確認してください。
下記スクリーンショットはそれを忘れてあれこれしたせいでVolume2になっていますが普通はVolume1になるはずです。
動作確認
最後に、VMを作成し、動作確認を行います。フェールオーバークラスターマネージャの役割から仮想マシンを選択し、仮想マシンの新規作成を行います。
どちらで作成するか選択します。
名前と場所の指定の際に、ディスクの保存先をCSVに指定します。C:\ClusterStorage\VolumeXがそうです。
あとはいつも通りに作成すれば、VMが作成できると思います。
VMが作成できたら、移動→クイックマイグレーション→ノードの選択 を選択し、移動するホストを選択します。
ライブマイグレーションを選択すると失敗するので、更に何かあるようですが進展があれば追記します。
2台しかないので空きの1台が出てきます。
実行後、所有者ノードが移動すれば完了です。
以上です。
情報 |
---|
必要なことを見つけるまでの道のりが過酷でつらかった |
...