vSphere仮想環境でFC-SANやiSCSI-SANの共有ディスク上に作ったVMFSデータストアがあり、そこにあるvSphere仮想マシンのバックアップを行う場合の手法はいくつかある。
・SAN
・HotAdd
・NBD/NBDSSL
ここらを解説してる資料があるかなーと探してみると
vSphere 5時代の「Virtual Disk Transport Methods」だと絵付きで解説されてるんですが、現状のVMware公式記述はVMware Virtual Disk Development Kit Programming Guide 8.0の「Virtual Disk Transport Methods」で一覧としてのページには絵はないが個別ページ(SAN Transport)には絵がある。
じゃあ、とバックアップソフト側を探すといろいろでてくる
その中でも、Veritas NetBackup「VMware のトランスポートモード: ベストプラクティスとトラブルシューティング」が分かりやすいかなぁ、と感じた。
SAN Transport
SAN Transportについて、何の変哲もないiSCSIストレージを、ESXiサーバとWindowsサーバの両方につなげただけでも使えるのかな、と検証してみようとした。
(上記画像はVMwareから転載)
まあ、実機の環境がなかったので、vSphere仮想マシンのWindowsサーバからiSCSI接続して構築してみたところ、commvaultの場合は「SAN access is only supported for physical machines.」というメッセージでバックアップさせてくれなかった。
Event Code: 91:248
Severity: Minor
Program: vsbkp
Description:
Unable to open the disks for virtual machine [仮想マシン名] for SAN access. SAN access is only supported for physical machines.
なにを設定すればごまかせるかな?と試行錯誤・・・とりあえず以下の設定で仮想マシンを作ってみたものの駄目だった。
CPU:ハードウェア仮想化 ハードウェアアシストによる仮想化をゲストOSに公開
IOMMU:IOMMUをゲストOSに公開
パフォーマンスカウント:仮想CPUパフォーマンスカウンタの有効化
SCSIコントローラ:LSI Logic SAS
ネットワークアダプタ:E1000e
ゲストOS:その他 その他(64ビット)
VMware-toolsインストールなし
結局のところ、普通に作ってから、[構成パラメータ]で「smbios.reflecthost」を「TRUE」とするだけで成功した。以下は実際に使った設定。
SCSIコントローラ:LSI Logic SAS
ネットワークアダプタ:E1000e
ゲストOS:Windows Windows Server 2016以降
VMware-toolsインストールあり
構成パラメータ: smbios.reflecthost 「TRUE」
どうやらBIOS stringにVMwareの文字列が入っているかどうかで判定していた模様。
今回はCommvaultバックアップでの事例だったけど、NetBackupなど他のバックアップソフトウェアでもvSphere環境へのアクセスはVDDK経由で行っているので、おそらく同じような制限がかかっているのではないかと想定している。
2023/11/22追記: NetBackup 8.1.1環境があったので試してみたら、こちらは偽装しなくてもそのまま動いた