近々 vSphere 用のバックアップ システムをリプレースすることになるので,少しバックアップ関連のネタを書いてみます.仮想マシンが稼働している ESXi ホストには,通常複数の物理 NIC が搭載されているかと思います.バックアップ用 API である VADP (vSphere API for Data Protection) を使う場合,VMDK を読み出す際に NBDSSL (Network Block Device over SSL) 上で NFC (Network File Copy) を使ってデータ転送するわけですが,デフォルトだとこのトラフィックは Management 用の VMkernel adapter を経由することになります.せっかく複数の物理 NIC があるので,vSphere Backup NFC を活用してバックアップのトラフィックを分離してみましょう.
まず最初に vSphere Client から新しい VMkernel adapter を追加します.対象の ESXi ホストを選択し,Configure -> Networking の VMkernel adapters 画面で "ADD NETWORKING..." をクリックします.
Connection type で "VMkernel Network Adapter" を選択して "NEXT" をクリックします.
今回は既存の仮想スイッチを使うので,"Select an existing standard switch" をチェックし,バックアップのトラフィックを流す仮想スイッチを選択して "NEXT" で進みます.
Port properties で Network label はわかりやすく "BackupNFC" と入れ,VLAN ID を指定,TCP/IP stack は Default のまま Available services の "vSphere Backup NFC" のみにチェックを入れて "NEXT" をクリックします.
IP アドレスは固定で割り振るので,"Use static IPv4 settings" を選択して,IPv4 address, Subnet mask を入力し,"Override default gateway for this adapter" にチェックを入れて,ゲートウェイの IP アドレスを入力します.
"Ready to complete" 画面で設定内容を確認したら "FINISH" します.
これで "vSphere Backup NFC" 専用の VMkernel adapter vmk4 が用意できました.クラスタ内の他の ESXi ホストにも同様の手順で VMkernel adapter を追加したら準備完了です.
では,仮想マシンのバックアップを実行してみます.使うのはもちろん Rubrik です.実は Rubrik CDM には esxSubnets と呼ばれる機能があるそうで,CLI で設定すると ESXi の特定の VMkernel adapter をバックアップデータ転送用に指定することが可能です.ただし,vSphere Backup NFC が有効な VMkernel adapter が存在する場合は,その VMkernel adapter が優先的に使われるので,今回 Rubrik 側の esxSubnets を設定する必要はありません.
RSC 経由で仮想マシンの On-Demand snapshot を取得してみます.
ジョブの開始後,Activity Detail を参照すると,データの Fetch が始まったことが確認できます.
データ転送されている間に,該当の ESXi ホストで tcpdump-uw を使えば vmk4 にトラフィックが流れていることが確認できます.
[root@xsem01:/] tcpdump-uw -i vmk4 port 902 tcpdump-uw: verbose output suppressed, use -v[v]... for full protocol decode listening on vmk4, link-type EN10MB (Ethernet), snapshot length 262144 bytes 05:04:37.787441 IP 10.9.9.162.56670 > 10.9.9.122.authd: Flags [.], ack 1325127300, win 131, options [nop,nop,TS val 3923918036 ecr 2277037092], length 0 05:04:37.788769 IP 10.9.9.162.56670 > 10.9.9.122.authd: Flags [P.], seq 0:89, ack 1, win 131, options [nop,nop,TS val 3923918037 ecr 2277037092], length 89 05:04:37.788780 IP 10.9.9.122.authd > 10.9.9.162.56670: Flags [P.], seq 1:90, ack 89, win 11940, options [nop,nop,TS val 2277037095 ecr 3923918037], length 89 05:04:37.788788 IP 10.9.9.122.authd > 10.9.9.162.56670: Flags [P.], seq 90:127, ack 89, win 11940, options [nop,nop,TS val 2277037095 ecr 3923918037], length 37 05:04:37.797164 IP 10.9.9.160.42072 > 10.9.9.122.authd: Flags [.], ack 1785046872, win 705, options [nop,nop,TS val 750077581 ecr 2415022703], length 0 05:04:37.797570 IP 10.9.9.160.42072 > 10.9.9.122.authd: Flags [P.], seq 0:112, ack 1, win 705, options [nop,nop,TS val 750077581 ecr 2415022703], length 112 05:04:37.797578 IP 10.9.9.122.authd > 10.9.9.160.42072: Flags [P.], seq 1:62, ack 112, win 8587, options [nop,nop,TS val 2415022706 ecr 750077581], length 61 05:04:37.799798 IP 10.9.9.161.50566 > 10.9.9.122.authd: Flags [.], ack 3056742922, win 141, options [nop,nop,TS val 1780275114 ecr 3518238666], length 0 05:04:37.800475 IP 10.9.9.159.53534 > 10.9.9.122.authd: Flags [.], ack 1924560888, win 778, options [nop,nop,TS val 3737188292 ecr 2388133792], length 0 05:04:37.800752 IP 10.9.9.159.53534 > 10.9.9.122.authd: Flags [.], ack 14966, win 775, options [nop,nop,TS val 3737188292 ecr 2388133792], length 0 05:04:37.800760 IP 10.9.9.159.53534 > 10.9.9.122.authd: Flags [.], ack 27998, win 773, options [nop,nop,TS val 3737188292 ecr 2388133792], length 0 05:04:37.800766 IP 10.9.9.159.53534 > 10.9.9.122.authd: Flags [.], ack 31379, win 776, options [nop,nop,TS val 3737188292 ecr 2388133792], length 0 05:04:37.800773 IP 10.9.9.159.53534 > 10.9.9.122.authd: Flags [.], ack 47792, win 772, options [nop,nop,TS val 3737188292 ecr 2388133792], length 0 05:04:37.800780 IP 10.9.9.159.53534 > 10.9.9.122.authd: Flags [.], ack 64205, win 768, options [nop,nop,TS val 3737188292 ecr 2388133792], length 0 05:04:37.800797 IP 10.9.9.161.50566 > 10.9.9.122.authd: Flags [P.], seq 0:89, ack 1, win 141, options [nop,nop,TS val 1780275115 ecr 3518238666], length 89 05:04:37.801075 IP 10.9.9.159.53534 > 10.9.9.122.authd: Flags [P.], seq 0:89, ack 64205, win 778, options [nop,nop,TS val 3737188292 ecr 2388133792], length 89 05:04:37.801108 IP 10.9.9.122.authd > 10.9.9.161.50566: Flags [P.], seq 1:90, ack 89, win 11940, options [nop,nop,TS val 3518238669 ecr 1780275115], length 89 (以下略)
バックアップソリューションとの相性で挙動がおかしい場合は,VMkernel adapter の "vSphere Backup NFC" のチェックを外すだけで簡単に切り戻しができるので,気軽に試せるかと思います.