govcの小ネタ: VMのディスクを確認する
またgovcの小ネタ集やります。今回はディスクについて。
TL; DR
VMのディスクを確認するには
$ govc device.info -vm myvm disk-*
Name: disk-1000-0
Type: VirtualDisk
Label: Hard disk 1
Summary: 512,000 KB
Key: 2000
Controller: pvscsi-1000
Unit number: 0
File: [datastore1] myvm/myvm.vmdk
ディスクのパスから確認するには
$ govc datastore.disk.info -ds datastore1 myvm/myvm.vmdk
Name: myvm/myvm.vmdk
Type: eagerZeroedThick
Parent:
はじめに
ディスク取得コマンドはいろいろあってややこしいので、整理のためにまとめておきます。
VMのデバイス取得 govc device.info
NICやディスク等、VMに接続しているデバイスがすべて取得できます。
govc device.info -vm myvm
Name: ide-200
Type: VirtualIDEController
Label: IDE 0
Summary: IDE 0
Key: 200
Devices:
Name: ide-201
Type: VirtualIDEController
Label: IDE 1
Summary: IDE 1
Key: 201
Devices:
Name: ps2-300
Type: VirtualPS2Controller
Label: PS2 controller 0
Summary: PS2 controller 0
Key: 300
Devices: keyboard-600, pointing-700
Name: pci-100
Type: VirtualPCIController
Label: PCI controller 0
Summary: PCI controller 0
Key: 100
Devices: video-500, vmci-12000, pvscsi-1000, ahci-15000, ethernet-0, ethernet-1
Name: sio-400
Type: VirtualSIOController
Label: SIO controller 0
Summary: SIO controller 0
Key: 400
Devices:
Name: keyboard-600
Type: VirtualKeyboard
Label: Keyboard
Summary: Keyboard
Key: 600
Controller: ps2-300
Unit number: 0
Name: pointing-700
Type: VirtualPointingDevice
Label: Pointing device
Summary: Pointing device; Device
Key: 700
Controller: ps2-300
Unit number: 1
Name: video-500
Type: VirtualMachineVideoCard
Label: Video card
Summary: Video card
Key: 500
Controller: pci-100
Unit number: 0
Name: vmci-12000
Type: VirtualMachineVMCIDevice
Label: VMCI device
Summary: Device on the virtual machine PCI bus that provides support for the virtual machine communication interface
Key: 12000
Controller: pci-100
Unit number: 17
Name: pvscsi-1000
Type: ParaVirtualSCSIController
Label: SCSI controller 0
Summary: VMware paravirtual SCSI
Key: 1000
Devices: disk-1000-0
Name: ahci-15000
Type: VirtualAHCIController
Label: SATA controller 0
Summary: AHCI
Key: 15000
Devices: cdrom-16000
Name: cdrom-16000
Type: VirtualCdrom
Label: CD/DVD drive 1
Summary: Remote device
Key: 16000
Controller: ahci-15000
Unit number: 0
Connected: false
Start connected: false
Guest control: true
Status: untried
Name: disk-1000-0
Type: VirtualDisk
Label: Hard disk 1
Summary: 512,000 KB
Key: 2000
Controller: pvscsi-1000
Unit number: 0
File: [datastore1] myvm/myvm.vmdk
Name: ethernet-0
Type: VirtualVmxnet3
Label: Network adapter 1
Summary: VM Network
Key: 4000
Controller: pci-100
Unit number: 7
Connected: false
Start connected: true
Guest control: true
Status: untried
MAC Address: 00:50:56:a1:d6:86
Address type: assigned
Name: ethernet-1
Type: VirtualVmxnet3
Label: Network adapter 2
Summary: DVSwitch: 50 21 44 2c 15 ff a7 d2-28 b0 2a c5 2c 26 45 5d
Key: 4001
Controller: pci-100
Unit number: 8
Connected: false
Start connected: true
Guest control: true
Status: untried
MAC Address: 00:50:56:a1:bc:fd
Address type: assigned
ディスクの名前は disk-
ではじまるので、名前で絞り込めば冒頭のようにディスクだけ取得できます。
$ govc device.info -vm myvm disk-*
Name: disk-1000-0
Type: VirtualDisk
Label: Hard disk 1
Summary: 512,000 KB
Key: 2000
Controller: pvscsi-1000
Unit number: 0
File: [datastore1] myvm/myvm.vmdk
データストア内のディスク確認 datastore.disk.info
こちらはデータストアに紐づいた情報なので、プロビジョニングポリシーが確認できます。
$ govc datastore.disk.info -ds datastore1 myvm/myvm.vmdk
Name: myvm/myvm.vmdk
Type: eagerZeroedThick
Parent:
# UUIDも確認できる
$ govc datastore.disk.info -uuid -ds datastore1 myvm/myvm.vmdk
Name: myvm/myvm.vmdk
UUID: 60 00 C2 93 88 2a d7 97-99 19 52 74 93 fa 1f 3c
Type: eagerZeroedThick
Parent:
First Class Diskの取得: disk.ls
一見すると govc disk.ls
が一番手っ取り早そうですが、VMのディスクは取れません。
# 何も出ない?
$ govc disk.ls
このコマンドは、VMに紐づかないFirst Class Disk (FCD)を取得するものでした。
vRealize Automation Cloud の First Class Disk ストレージで実行できること
どうやらk8sのPVC等、「VM以外の単位でディスクを管理したい」際に使うようです。
vSAN 6.7 U3 What’s New その1 – エディションの追加とk8s 連携 – – virtual pantry
せっかくなのでFCDを作って確認してみます。
$ govc disk.create -size 10M mydisk
[21-03-22 09:47:58] Creating mydisk...OK
0e62faf6-4420-4aba-b9bb-67f34a03d1c4
今度はちゃんと確認できました。
$ govc disk.ls
0e62faf6-4420-4aba-b9bb-67f34a03d1c4 mydisk
作成したディスクはVMに紐づかないので /fcd
配下に格納されます。
$ govc datastore.ls /fcd
d870784bfa58431084602b9e1644a75c-flat.vmdk
d870784bfa58431084602b9e1644a75c.vmdk
$ govc datastore.disk.info fcd/d870784bfa58431084602b9e1644a75c.vmdk
Name: fcd/d870784bfa58431084602b9e1644a75c.vmdk
Type: thin
Parent:
vSphere Client上でもディスクが確認できます。
おわりに
ディスク取得コマンドのおさらいをすることで、vSphereの新しい機能も知ることができました。govcネタはまだいくつかありそうなので、もう少しお付き合いください。