LoginSignup
0
0

More than 1 year has passed since last update.

vcsimの小ネタ: disk作成

Posted at

(この記事は、個人ブログの再投稿です)

はじめに

引き続きvcsimの小ネタです。今回はディスク作成のシミュレーション機能について紹介します。

これまでの記事

バージョン

$ vcsim version
Build Version: 0.27.4
Build Commit: 285e80cd
Build Date: 2022-02-11T04:56:04Z

$ govc version
govc 0.27.4

まずはvcsim起動

デフォルトでは以下のURLで起動します。

$ vcsim
export GOVC_URL=https://user:pass@127.0.0.1:8989/sdk GOVC_SIM_PID=191563
  • GOVC_URL=https://user:pass@127.0.0.1:8989/sdk
  • GOVC_INSECURE=true

を環境変数に設定すれば、govcからvcsimにリクエストできます。

$ govc about
FullName:     VMware vCenter Server 6.5.0 build-5973321 (govmomi simulator)
Name:         VMware vCenter Server
Vendor:       VMware, Inc.
Version:      6.5.0
Build:        5973321
OS type:      linux-amd64
API type:     VirtualCenter
API version:  6.5
Product ID:   vpx
UUID:         dbed6e0c-bd88-4ef6-b594-21283e1c677f

データストアとディスクを確認

vcsimでははじめからホストやvm等が作成されており(個数はオプションで指定可能)、vmにもdiskが1つささった状態になっています。

$ govc find .
/
/DC0
/DC0/vm
/DC0/vm/DC0_H0_VM0
/DC0/vm/DC0_H0_VM1
/DC0/vm/DC0_C0_RP0_VM0
/DC0/vm/DC0_C0_RP0_VM1
/DC0/host
/DC0/host/DC0_H0
/DC0/host/DC0_H0/DC0_H0
/DC0/host/DC0_H0/Resources
/DC0/host/DC0_C0
/DC0/host/DC0_C0/DC0_C0_H0
/DC0/host/DC0_C0/DC0_C0_H1
/DC0/host/DC0_C0/DC0_C0_H2
/DC0/host/DC0_C0/Resources
/DC0/datastore
/DC0/datastore/LocalDS_0
/DC0/network
/DC0/network/VM Network
/DC0/network/DVS0
/DC0/network/DVS0-DVUplinks-9
/DC0/network/DC0_DVPG0
$ govc device.info -vm DC0_H0_VM0 disk-*
Name:           disk-202-0
  Type:         VirtualDisk
  Label:        disk-202-0
  Summary:      10,485,760 KB
  Key:          255511522
  Controller:   pvscsi-202
  Unit number:  0
  File:         [LocalDS_0] DC0_H0_VM0/disk1.vmdk

ディスクはこちらのデータストア LocalDS_0 に入っています。

$ govc datastore.info
Name:        LocalDS_0
  Path:      /DC0/datastore/LocalDS_0
  Type:      OTHER
  URL:       /tmp/govcsim-DC0-LocalDS_0-312572150
  Capacity:  10240.0 GB
  Free:      10200.0 GB

vm関連のファイル

実は、ディスク等vm関連のファイルは、上記データストアのURLにちゃんと作成されています

# データストアのURLはディレクトリパスに対応している
$ ls -l /tmp/govcsim-DC0-LocalDS_0-312572150
合計 16
drwx------ 2 syuparn syuparn 4096  2月 23 10:20 DC0_C0_RP0_VM0
drwx------ 2 syuparn syuparn 4096  2月 23 10:20 DC0_C0_RP0_VM1
drwx------ 2 syuparn syuparn 4096  2月 23 10:20 DC0_H0_VM0
drwx------ 2 syuparn syuparn 4096  2月 23 10:20 DC0_H0_VM1

$ ls -l /tmp/govcsim-DC0-LocalDS_0-312572150/DC0_H0_VM0
合計 4
-rw-r--r-- 1 syuparn syuparn   0  2月 23 10:20 DC0_H0_VM0.nvram
-rw-r--r-- 1 syuparn syuparn   0  2月 23 10:20 DC0_H0_VM0.vmx
-rw-r--r-- 1 syuparn syuparn   0  2月 23 10:20 disk1-flat.vmdk
-rw-r--r-- 1 syuparn syuparn   0  2月 23 10:20 disk1.vmdk
-rw-r--r-- 1 syuparn syuparn 118  2月 23 10:20 vmware.log

(中身こそ空ですが)vmxファイルやvmdkファイルが作成されています。ログファイルには、vcsim起動準備時の動作ログも記載されています。

$ cat /tmp/govcsim-DC0-LocalDS_0-312572150/DC0_H0_VM0/vmware.log
vmx 2022/02/23 10:20:30 created
vmx 2022/02/23 10:20:30 running power task: requesting poweredOn, existing poweredOff

逆に、この仕様のために存在しないディレクトリをデータストアパスに指定することはできません
(以前ハマりました)。

# ok
$ ls myds
$ govc datastore.create -type local -path ~/myds DC0_H0
# ng
$ govc datastore.create -type local -path ~/notfoundds DC0_H0
govc: ServerFaultCode: stat /home/syuparn/notfoundds: no such file or directory

また、ブロックストレージを用いるVMFSデータストアもファイル格納方式を再現できないため非対応です。

$ govc datastore.create -type vmfs -path ~/myds DC0_H0
govc: ServerFaultCode: HostDatastoreSystem:hostdatastoresystem-15 does not implement: QueryAvailableDisksForVmfs

参考: create vmfs datastore using govc · Issue #1511 · vmware/govmomi

おわりに

以上、vcsimでディスク作成機能を触ってみた紹介でした。
ご覧いただいたように、vCenterの動作の再現度はかなり高いです。シングルバイナリで気軽に立てられるので、ツールの検証等に活用していきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0