NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE で vDisk のデータ配置を表示してみる。

Nutanix の分散ストレージ ファブリックでは、vDisk のデータ(主に VM の仮想ディスク)をノード/ディスクに分散配置しています。

Nutanix Bible で紹介されている CVM のコマンドを利用して、実際にデータ配置の様子を表示してみます。

Nutanix Bible - Advanced CLI Information

https://nutanixbible.com/#anchor-book-of-acropolis-advanced-cli-information

対象の VM

今回は、vm01 という VM で確認します。

vDisk 1つと、CDROM 1つをもつ VM です。

CVM$ acli vm.disk_list vm01
Device bus  Device index
ide         0
scsi        0

このうち、ゲスト OS がインストールされる vDisk は、SCSI(scsi.0)の方です。

CVM$ acli vm.disk_get vm01 disk_addr=scsi.0
scsi.0 {
  addr {
    bus: "scsi"
    index: 0
  }
  container_id: 11
  container_uuid: "7807366b-db07-4126-8882-1a0c684a409b"
  device_uuid: "bd331241-a1a7-494f-8322-8e1a18a240c1"
  naa_id: "naa.6506b8d4dda6f8102fa5192c57124326"
  vmdisk_size: 17179869184
  vmdisk_uuid: "43007eb1-6bbb-4014-b47b-3a0508e6a052"
}

このうち、vmdisk_uuid をもとに情報を取得してみます。

CVM$ acli vm.disk_get vm01 disk_addr=scsi.0 | grep vmdisk_uuid
  vmdisk_uuid: "43007eb1-6bbb-4014-b47b-3a0508e6a052"

vdisk_id の確認

vdisk_config_printer で、vmdisk_uuid をもとに vDisk の vdisk_id を確認します。この vDisk は、「vdisk_id: 5990」でした。

CVM$ vdisk_config_printer | grep 43007eb1-6bbb-4014-b47b-3a0508e6a052 -C5
last_modification_time_usecs: 1584785968283381

vdisk_id: 5990
vdisk_name: "NFS:2:0:367"
vdisk_size: 17179869184
iscsi_target_name: "iqn.2010-06.com.nutanix:vmdisk-43007eb1-6bbb-4014-b47b-3a0508e6a052"
iscsi_lun: 0
container_id: 11
creation_time_usecs: 1584786946119197
vdisk_creator_loc: 9
vdisk_creator_loc: 4479
vdisk_creator_loc: 195717
nfs_file_name: "43007eb1-6bbb-4014-b47b-3a0508e6a052"
scsi_name_identifier: "naa.6506b8d4dda6f8102fa5192c57124326"
vdisk_uuid: "59d46087-2eb4-4451-b240-f59904b79b2e"
chain_id: "2ddfa3b0-8448-46d4-b67b-35894b0664c7"
last_modification_time_usecs: 1584786946155577

データ配置の表示

vdisk_usage_printer で、vdisk_id を指定して、データ配置を表示できます。1つの vDisk が、実際には細かく分割されて配置されている様子がわかります。データの再配置やリビルドも、vDisk 全体ではなく、この粒度で効率よく処理できます。

f:id:gowatana:20200323001400p:plain

コマンド出力例の全文はこちらをどうぞ。

Nutanix CVM のコマンド出力例。CVM$ vdisk_usage_printer -vdisk_id=5990 > vdisk_usage_printer_5990.txt · GitHub

データ配置を読みとく

「Replicas(disk/svm/block/rack)」列の表示を、少し拡大して見てみます。

この vDisk は データが2重化される(RF2:Replication Factor 2)のストレージ コンテナに配置されているので、[disk/svm/block/rack] 形式の情報が2列になっています。ちなみに RF3 の場合は、これが 3列になります。

ここでの svm とは、CVM のことです。1つ目のデータ レプリカが、ちょうどいい感じに 1つの CVM のディスクに配置されています。

そして 1つ目のデータが配置されているディスクは、Disk ID 50 と 51 になっています。

f:id:gowatana:20200323001929p:plain

ここからは、Prism から確認してみます。

「仮想マシン」→「テーブル」を開くと、この vDisk をもつ vm01 は、NTNX-32f93d08-A という AHV ホストで起動しています。

f:id:gowatana:20200323002810p:plain

「ハードウェア」→「テーブル」→「Host」を開くと、この AHV ホストの IP アドレスは、192.168.20.21 です。(じつのところ「仮想マシン」画面でもホストの IP アドレスはわかります。)

f:id:gowatana:20200323003222p:plain

そして「Disk」を開くと、Disk ID 50 と 51 は、AHV ホスト 192.168.20.21 のディスク(というか SSD)でした。

f:id:gowatana:20200323003501p:plain

2重化された vDisk のデータの 1つが VM の起動しているノードに配置されている、いわゆるデータ ローカリティの様子が見られました。

以上。

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。