iSCSIストレージ上のvSphere仮想マシンのSANバックアップを仮想マシン上で実験する


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環境があったので試してみたら、こちらは偽装しなくてもそのまま動いた

ONTAP 9.6以前からONTAP 9.7以降にアップデートする際に容量の問題が発生する可能性


ONTAP 9.5P5シミュレータ環境をONTAP 9.7にアップデートした場合には問題なかったのに、運用中のONTAP 9.5P10環境をアップデートしようとしたところ、firmwareアップロードの段階で「THe request body must have content type multipart/form-data with a field named file」というエラーとなった。

確認すると、ONTAP 9.5P10, ONTAP9.6~ONTAP 9.6P6で発生するというえらくピンポイントな仕様問題だった。(System Manager ONTAP 9.7 image upload fails with multipart/form-data error)

ファイルをアップロードする領域が2GBと設定されているが、ONTAP 9.7では2GBでは足らなくなったためエラーになる、という問題だった。

webのアップロード用パラメータを2GBから4GBに変更することで対処できるとのことで実施した。

まず、diagモードに切り替えて現在の設定確認

netappcluster::> set diag

Warning: These diagnostic commands are for use by NetApp personnel only.
Do you want to continue? {y|n}: y

netappcluster::*> system services web file-uploads config show
Node              Size
----------------- ------------
netappcluster-01  2GB
netappcluster-02  2GB
2 entries were displayed.

netappcluster::*>

次に変更を実施

netappcluster::*> system services web file-uploads config modify -node * -size 4GB

Warning: Files already uploaded or are being uploaded will be lost. Starting a
         file upload before the resize operation is finished will cause the
         uploaded file to be unavailable.
Do you want to continue? {y|n}: y
[Job 14002] Job is queued: Web File Upload Resize Node Job.
[Job 14003] Job is queued: Web File Upload Resize Node Job.
2 entries were modified.

netappcluster::*> 

すぐに反映されないので、上記で出力されたジョブIDのステータスを確認する。


netappcluster::*> job show -id 14002
                            Owning
Job ID Name                 Vserver    Node           State
------ -------------------- ---------- -------------- ----------
14002  Web File Upload Resize Node Job netappcluster netappcluster-01 Success
       Description: Web File Upload Resize Node Job

netappcluster::*> job show -id 14003
                            Owning
Job ID Name                 Vserver    Node           State
------ -------------------- ---------- -------------- ----------
14003  Web File Upload Resize Node Job netappcluster netappcluster-02 Success
       Description: Web File Upload Resize Node Job

netappcluster::*>

「Success」が含まれていれば変更が完了している。(変更途中は Running )

ただ、変更が終わったあとの設定表記は4GBとならずに「0B」となるが、これで正常とのこと

netappcluster::*> system services web file-uploads config show
Node              Size
----------------- ------------
netappcluster-01  0B
netappcluster-02  0B
2 entries were displayed.

netappcluster::*>

KBには「system node systemshell -node * -command df -h /mroot/etc/upload」を実行して /mroot/etc/upload に割り当てられた容量を確認する、という記載がある。

ここで使っているsystemshellコマンドは最近のONTAP OSでは標準で使えない状態に変更されているため「Error: command failed: Error: Account currently locked. Contact the storage administrator to unlock it.」というエラーとなる場合がある。その場合は、ロックを解除する必要がある。手順については「NetApp ONTAPから他サーバに気軽にsshできる穴がふさがれてしまった」を参考のこと

で、ONTAP 9.13.1ぐらいになってくると状況によっては4GBより必要な可能性もあるようで、最近になって「System Manager fails to upload ONTAP image due to insufficient space」というKBが追加されていた。こちらは7GBに変更するとあるが、2023年11月時点ではこの問題が発生する状況が未公開となっているため、4GBのままで良さそうである。