VMware ESXiは VMware Infrastructure Clientというクライアントソフトからサーバに接続して色々オペレーションを行いますが、コマンドラインからのインタフェースもサポートされています。具体的には
# vmkfstools --createvirtualdisk 200m /vmfs/volumes/[datastore]/hogehoge.vmdk
などと入力して仮想ディスクを作成する、などですね。
コマンドラインからオペレーションするにはVMware Infrastructure Remote CLI(Command Line Interface)というライブラリをインストールする必要があります。中身はPerlでできているようで、Perlなどの実行環境(Active Perlとか)が一緒にインストールされるようです。
さて、リモートCLIの利用環境ですが、
の二種類の方法があります。
ESXiが稼働しているサーバにsshログインを許可していれば、ESXiサーバにログインして同じコマンドを実行できるので、正確には三種類の方法があるといえますね。
VMware Infrastructure 3 のダウンロードより、VMware Infrastructure Remote CLI をダウンロードします。
インストールもダウンロードしたアーカイブをLinuxやWindowsで普通にインストールするか、もしくはVMware Infrastructure ClientでESXiにイメージをImportするだけです。
簡単に利用するには、既存の環境をいじらないでよいVirtual appliance のESXi組み込みがよさそうです。あらかじめSSHが起動しているのでTeraTerm?などでログインすれば普通のLinuxと同様に使用可能です。うちは主にMacOSを利用しているので、Windows上の VMware Infrastructure ClientでESXiにVirtual applianceをimportし、あとはMacのTerminalから利用しています。
あ、ちなみに Virtual appliance はRootログインとパスワードログインが許可されていないので、許可するようにsshの設定変更が必要です。sshの設定についてはこちらをご参照ください。
色々コマンドを実行してみました。
vaos:~# vicfg-nas --username [acount] --password [password] --server 192.168.xx.xx --list /vmfs/volumes/hogehoge <-マウントしているディレクトリ macnfs is /Users/hogehoge/nfs from 192.168.xx.zz mounted <-macnfsって名前でマウント nfs is /media/nfs from 192.168.xx.yy not mounted <-このディレクトリはマウントしてない vaos:~#
vaos:~# vmkfstools [いつもの接続パラメタ(ID/PASS/ESXi ServerのIP)] --queryfs /vmfs/volumes/hogehoge VMFS-3.31 file system spanning 1 partitions. Capacity : 119990648832, 97430536192 avail File system label : hogehoge UUID : 495b36ea-2c8f382e-191a-0022157cc754 path : /vmfs/volumes/495b36ea-2c8f382e-191a-0022157cc754 Partitions spanned: vmhba33:0:0:1 vaos:~#
vmkfstoolsを使用して、仮想ディスクを作成します。
vmkfstools [いつもの接続パラメタ(ID/PASS/ESXi ServerのIP)] --createvirtualdisk 10G /vmfs/volumes/[hogehoge]/test/test.vmdk
上記コマンドで、仮想ディスクのサイズが10GBのファイルが作成されました。ただこの指定だと仮想ディスクのサイズも10GB、実体のファイル自体も10GBになってしまいます。他のVMware 製品のように、使用するごとにファイルサイズが大きくなっていく、ファイル自体のサイズは可変な仮想ディスクを作成するには、次のように -d thin というオプションを付けてvmkfstoolsを実行します。
vmkfstools [いつもの接続パラメタ(ID/PASS/ESXi ServerのIP)] --createvirtualdisk 10G -d thin /vmfs/volumes/[hogehoge]/test/test.vmdk
createvirtualdiskオプションは新規で仮想ディスクを作成しますが、すでにある仮想ディスクのファイルフォーマットを固定から可変に変更することもできます。
vmkfstools [いつもの接続パラメタ(ID/PASS/ESXi ServerのIP)] -i test.vmdk -d thin /vmfs/volumes/hogehoge/test/test.vmdk
VMware Serverから移行した仮想ディスクが、どうしてもファイルサイズ固定になってしまうようで困っていたのですが、上記コマンドでファイルフォーマットを変更することができました。
~ # vim-cmd Commands available under /: hostsvc/ proxysvc/ vimsvc/ help internalsvc/ solo/ vmsvc/ ~ #
さらに
~ # vim-cmd vmsvc
などでvmsvc下のコマンドを一覧できます。
vim-cmd help [コマンド]
で、ヘルプを見ることができます。たとえば
~ # vim-cmd help vmsvc/login Usage: login [username] [password] Logs in to host, creating a new session. If no password is specified, will use a local authentication mechanism.
こんな感じです。
~ # vim-cmd vmsvc/getallvms Vmid Name File Guest OS Version Annotation 368 hoge [hogehoge] hoge/hoge.vmx rhel5Guest vmx-04 384 fuga [hogehoge] fuga/fuga.vmx rhel5Guest vmx-04 400 RCLI [hogehoge] RCLI/RCLI.vmx otherLinuxGuest vmx-04 ~ #
~ # vim-cmd vmsvc/power.on `vim-cmd vmsvc/getallvms| awk '/vm名/ {print $1;}'` ~ # vim-cmd vmsvc/power.getstate `vim-cmd vmsvc/getallvms| awk '/vm名/ {print $1;}'`
vmsvc/power.on の引数はVMIDですが、vim-cmd vmsvc/getallvms などでIDを検索してます。
~ # vim-cmd hostsvc/maintenance_mode_enter ~ # vim-cmd hostsvc/maintenance_mode_exit
この記事は
現在のアクセス:78447