2014/05/26

PowerCLI: 無償利用のESXiにNFSデータストアを操作

PowerCLIからNFSデータストアを追加する方法を紹介する。
有償ライセンスでは、New-Datastoreコマンドレットを使うが、無償ライセンスではエラーになってしまう。これをvSphere CLI (ESXCLI)を使って回避する。

まず、作業対象のESXiに接続する。
PowerCLI vis:¥> Connect-VIServer esxi02 -User 管理者ユーザ名 -Password '管理者パスワード'

Name                           Port  User
----                           ----  ----
esxi02                         443   管理者ユーザ名


PowerCLI vis:¥>

コマンドレットGet-Datastoreを使って、現状のデータストアを確認する。
PowerCLI vis:¥> Get-Datastore

Name                               FreeSpaceGB      CapacityGB
----                               -----------      ----------
datastore2                              49.182         535.000
datastore1                             113.814         131.000


PowerCLI vis:¥>
現状では、datastore1およびdatastore2が接続されているのが判る。

ここにNFSデータストアを追加する。NFSサーバのホスト名をnfs01.local、パスを/var/vmwareでエクスポートされているものをNFSdatastore1という名前で追加するものとする。

有償ライセンスではNew-Datastoreコマンドレットを使うが、無償ライセンスではエラーになる。
PowerCLI vis:¥> New-Datastore -Name NFSDatastore1 -Path /var/vmware -NfsHost nfs01.local
New-Datastore : 2014/05/21 23:13:20    New-Datastore        Current license or ESXi version prohibits execution of the requested
operation.
発生場所 行:1 文字:1
+ New-Datastore -Name NFSDatastore1 -Path /var/vmware -NfsHost nfs01.local
+ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
    + CategoryInfo          : NotSpecified: (:) [New-Datastore], RestrictedVersion
    + FullyQualifiedErrorId : Client20_VmHostServiceImpl_NewNfsDatastore_ViError,VMware.VimAutomation.ViCore.Cmdlets.Commands.Ho
   st.NewDatastore

PowerCLI vis:¥>

代わりに、EsxCLIオブジェクトを利用して、vCLIコマンドを実行する。
EsxCLIオブジェクトを取得する。
PowerCLI vis:¥> $esxcli = Get-EsxCli
PowerCLI vis:¥> 

データストアに関しては、ESXCLIでは、storage.nfs以下のメソッドを使う。
PowerCLI vis:¥> $esxcli.storage.nfs

==================
EsxCliElement: nfs

   Methods:
   --------
   boolean add(string host, boolean readonly, string share, string volumename)
   NasMount[] list()
   boolean remove(string volumename)



PowerCLI vis:¥>

メソッドlist()を使って一覧を表示する。
PowerCLI vis:¥> $esxcli.storage.nfs.list()


Accessible           :
HardwareAcceleration :
Host                 :
Mounted              :
ReadOnly             :
Share                :
VolumeName           :



PowerCLI vis:¥>
前に確認したdatastore1およびdatastore2は、どちらもNFSデータストアではないため、ここでは何も表示されない。

メソッドadd()を使って、NFSデータストアを追加する。
PowerCLI vis:¥> $esxcli.storage.nfs.add('nfs01.local',$false,'/var/vmware','NFSDatastore1')
true
PowerCLI vis:¥>

確認する。
PowerCLI vis:¥> $esxcli.storage.nfs.list()


Accessible           : true
HardwareAcceleration : Not Supported
Host                 : nfs01.local
Mounted              : true
ReadOnly             : false
Share                : /var/vmware
VolumeName           : NFSDatastore1



PowerCLI vis:¥> Get-Datastore

Name                               FreeSpaceGB      CapacityGB
----                               -----------      ----------
datastore2                              34.628         535.000
datastore1                             113.643         131.000
NFSDatastore1                           59.960         139.490


PowerCLI vis:¥>

なお、データストアの中身は、PSドライブvmstore:もしくはvmstores:から確認することができる。
PowerCLI vis:¥> dir vmstores:¥esxi02@443¥ha-datacenter¥NFSDatastore1


   Datastore path: [NFSDatastore1]

            LastWriteTime            Type       Length Name
            -------------            ----       ------ ----
     2013/06/16     21:51    IsoImageFile   4193079296 9431.0.WINMAIN_BL...


PowerCLI vis:¥>

0 件のコメント: