今月(2018年10月)リリースされた最新版のvSphere用インストレーションマネージャーを使って手間をかけずに手っ取り早く最小限の2ノードHA仮想化基盤を作ってみます。ウィットネスとか3ノード目のサーバがいらないのが良いです。
サーバ前提条件
- ESXiの起動ディスク以外に未初期化(未使用)のディスク1つ以上があること*(このディスクをストレージ仮想化します)*
- 100GB以上の空きがあるローカルデータストアがあること*(ストレージコントローラVMがのります)*
- インターネット接続があるNICが1つ以上(VMと管理用)、サーバ間直結のNICが2つ(ストレージ用)あること*(ここでは業務LANやvMotionの帯域や可用性は考慮しない)*
- データコアサーバー(ストレージコントローラVMの固有名詞)に使用するOSはWindows2016であること
サーバに最低限の設定をする
サーバ(のBIOS)の時刻をUTCで設定しましょう!!!
このあたりで詳しく解説されています。
これを日本時間にしたままで、仮想マシンがESXiホストと時刻同期をしていると仮想マシンの時刻が数分ごとに9時間行ったり来たりして、のちのち悲惨なことが待ってます。
ESXiをインストール
2台にESXi6.7をインストールしましょう。
自分の場合は、転がっているUSBメモリに**rufusでインストーラーのISOイメージを入れてインストールしてます。BMC(iLOとかiDRAC)の仮想DVDより早いので愛用してます。
繰り返し構築するのであればスクリプト**も活用したいけど、そんなに機会が多くないので後回し。
(途中省略)
最近のバージョンはあっという間に終わりますね。
vCenter Server Applianceをインストール
自分のPC(自分の場合はWindows10)でインストーラーのISOをマウントして、
D:\vcsa-ui-installer\win32\installer.exe(ドライブレターは自分の環境で置き換えて)
を実行してInstallを選択して、流れに沿ってすすめるだけ。

vCenter Server Applianceの設定
https://vcsaのIPアドレス:5480/ を開いて、タイムゾーンとNTPだけ設定しておきましょう。
ESXiのログと時刻が揃っていたほうがいいのでUTCにしちゃいましょう。
NTPも設定しておきましょう。
vCenter Serverまわりの設定
- データセンターを作る
- クラスター(とHA)は共有ディスクができるまで後回しでもいいと思います。
- ESXi2台を登録する
- おまけ:ESXi2号機のデフォルトデータストア名をDatastore2に変更する**(個人的趣味)**
あっという間ですね。
Installation Manager for vSphereでHVSAN(Hyperconverged Virtual SAN の略)を構築
-
さていよいよここからが本番です。
-
初めてさわる人は**ここ**からインストーラーをダウンロードしましょう。
- フォームを入力して、送られてくるメールのリンク先からファイルをダウンロードします。
- "Free DataCore™ Hyperconverged Virtual SAN (PSP8) for vSphere"を選びましょう。
-
ダウンロードしてきたZIPファイルを解凍します。



- スタートメニュー or デスクトップにあるInstallation Manager for vSphereをダブルクリック。


- 少しだけ設定を修正する必要があります。
2台同時にESXiの設定、仮想マシンの作成、ゲストOSのインストール、ソフトウェアのインストールと設定が走り始めます。
正常に完了することを祈りながら待ちましょう。

Finishをクリックして無事に完了。
SATA SSDに対してインストールを実行してDeployボタンから15分くらいでした。
デプロイ直後の状態
データコアサーバー
ここまでの手順でどのような状態で終了しているか順番に見ていきましょう。
データコアサーバにリモートデスクトップ(既に有効になっています)でつないで、デスクトップにあるショートカットからGUIを開いてみます。
- ディスクプールまで作成されています。
- vCenter Serverが登録されています。

- まだ評価版の状態です。




- 細かいパラメータ変更もされていますね。(ここ以外にもBest Practiceではたくさん変更すべき箇所があります。)

インストレーションマネージャー後にやること
- Windowsのアクティベーション
- HVSANのアクティベーション
- vDiskの作成とサーブ
- VMFSデータストアの作成
- もしまだ作ってなかったらクラスターの作成(とHAの設定)
Windowsのアクティベーション
省略
HVSANのアクティベーション
Server Groupを選択し、Licenseタブを開きます。
一番下にあるActivate Product Keysをクリックしてウィザードに従います。
インターネット接続が必要です。
vDiskの作成とサーブ その1パワーシェル
せっかくここはQiitaなのでパワーシェルでやってみましょう。
データコアサーバのデスクトップにあるショートカットからパワーシェルを開きます。
実行する前にデータコアサーバにPowerCLIを予めインストールしてください。
最新版は基本的にはこれを打って指示に従うだけです。
Install-Module -Name VMware.PowerCLI
事前準備はこのあたり?
Set-PowerCLIConfiguration -InvalidCertificateAction ignore
データコア側でvDiskを作って、vCenter Server側でデータストアの作成まで一気にやっちゃいます。
# データコアに接続 自身にログインするから引数なしでOK
Connect-DcsServer
# サーバーグループ内のディスクプールの(本来は同じはずだけど)最小の空き容量でvDisk作成
$FREE = ((Get-DcsPool |Get-DcsPerformanceCounter).BytesAvailable | Measure-Object -Minimum).minimum
$SERVER = Get-DcsServer
$VD = Add-DcsVirtualDisk -Name "DataCore Datastore 1" -Size $FREE -FirstServer $SERVER[0].HostName -FirstPool (Get-DcsPool -Server $SERVER[0]) -SecondServer $SERVER[1].HostName -SecondPool (Get-DcsPool -Server $SERVER[1]) -EnableRedundancy
# サーブ(提供)
Get-DcsClient|where-object { $_.Type -eq "ESX" }|%{Serve-DcsVirtualDisk -Machine $_ -Virtualdisk $VD -EnableRedundancy}
# vCenterServerに接続(引数は自分の環境で置き換えて)
Connect-VIServer -Server x.x.x.x -User administrator@vsphere.local -Password xxxxxxxx
# 全てリスキャン
Get-VMHost | Get-VMHostStorage -RescanAllHBA
$NAA ="naa." + $VD.ScsiDeviceIdString
# エラーにしたくないので電源ONだけ
$VMHOST = get-vmhost|Where-Object{$_.PowerState -like "PoweredOn"}
$DISK = get-view $VMHOST.ExtensionData.ConfigManager.StorageSystem
# ホストの台数分で行列になります
$SCSILUN = Get-ScsiLun -VMhost $VMHOST -CanonicalName $NAA
# ストレージデバイスの名前をvdisk名に変更
# iSCSIは1台で実行すればみんな変わるで[0]で1つだけ実行
$SCSILUN[0] | %{$DISK.UpdateScsiLunDisplayName($_.ExtensionData.Uuid, $VD.alias)}
# vdisk名でデータストアの作成、同じく1台だけでOK
New-Datastore -VMHost $VMHOST[0] -name $VD.alias -path $SCSILUN[0] -Vmfs -FileSystemVersion 6
# 全ホストでラウンドロビンiopsを10に
foreach ($i in $SCSILUN) {$i | Set-ScsiLun -CommandsToSwitchPath 10}
# 切断
Disconnect-DcsServer
Disconnect-VIServer -Confirm:$False
vDiskの作成とサーブ その2 GUI
1.Virtual Disksを右クリックしてCreate Virtual Disks
2.名前とサイズを指定して、Mirroredを選択してNext
3.そのままもう1回Next、最後にFinish
4.作ったvDiskを右クリックしてServe to Hosts
5.ESXi2台を選んでNextをクリック
6.Reduntant pathを選んでNextをクリック
7.Round robinを選択、Create a VMFS datastore on the discovered disk(s).にチェックを入れてFinish
8.vCenter Serverの方から見ると既にVMFS6で2台共有のiSCSIデータストアが作成されています。
9.マルチパスを確認すると合計4パス、その内、自分の中にいるのコントローラへの2パスがアクティブです。データローカリティもバッチリってことですね。通常時は物理ネットワークを超えるコントローラとはI/Oをしません。
必須じゃないけどやったほうがいいこと
- Windowsを日本語化 (このあたりを参考にすると簡単。)
- Windows Update(絶対やろう 理由→ https://www.datacore.com/products/software-defined-storage/tech/prerequisites/ )
- VCSAのアップデート(2018/10/25現在 6.7.0.14000 → 6.7.0.20000)
- VCSAを共有データストアにStorage vMotionしてHAとvMotionできるようにする
- Update Managerを使ってESXiにパッチ適用(ESXiの再起動を伴うため4のあとがいいです)
- 階層化を使うなら必要なディスクをTier1に移動させる(デフォルトはTier2)
VCSAをStorage vMotion
- 対象の仮想マシンを右クリックして移行を選択
- ストレージのみ変更しますを選択して次へ

- さっき作ったDataCoreの共有データストアを選択して次へ、そして完了

まとめ
これがあればベストプラクティスガイドとか読み漁らなくても適切に設定された高可用性の仮想化基盤が簡単に作れますね。
(メモ)このインストレーションマネージャーがけてないと感じたところ。アップデートに期待。
- RDMを使わないからローカルストレージの数だけ使えないデータストアが出来てしまう。
- NVMeもSCSIコントローラのディスクとしてアタッチされてしまう(これでは高い性能が使い切れない)