VMware とは直接関係ありませんが、
Nutanix の Community Edition (Nutanix CE)が公開されました。
Nutanix Community Edition (Public Beta)
http://www.nutanix.com/products/community-edition/
ESXi の上に、Nutanix CE をインストールすることも可能なので、私もためしてみました。
この場合、Nutanix のハイパーバイザと、
その上の CVM(コントロール VM)をまとめて 1つの VM として構築します。
PowerCLI での表示ですが・・・こんな構成です。
ただ、Community Editionとはいえ HW 要件が高めで、
複数台のクラスタを構成してみる物理リソースがありませんでした。
そこで、せっかくなので PowerCLI の知見をもとに
CE でも試せるであろう Nutanix 用の PowerShell コマンドレット「Nutanix Cmdlets」を試してみました。
Nutanix の Web UI である「Prism」から、インストーラ「NutanixCmdlets.msi」をダウンロードできます。
Nutanix Cmdlets のインストール。
インストールは簡単なので省略・・・
Nutanix Cmdlets 環境の準備。
Nutanix Cmdlets をインストール後、
普通に Windows のスタートメニューなどから「NutanixCmdlets」を起動するか、
もしくは、PowerShell を起動後に Nutanix の コマンドレットを読み込むと
Nutanix Cmdlets が実行できるようになります。
今回は、手動でコマンドレットを読み込んでみます。
まず、気分を出すために見た目(背景とプロンプト)を変更してみます。
PS> $Host.UI.RawUi.WindowTitle = "Nutanix Cmdlets"
PS> $Host.UI.RawUi.BackgroundColor = "black"; Clear-Host
PS> function prompt{Write-Host "NTNX" -NoNewLine -ForegroundColor Blue; Write-Host ">" -NoNewLine -ForegroundColor Green;" "}
NTNX>
Nutanix のコマンドレットを読み込みます。
ついでに、Cmdlets のバージョンも確認しておきます。
NTNX> Add-PSSnapin NutanixCmdletsPSSnapin
NTNX> Get-NutanixCmdletsInfo | ft -AutoSize
Key Value
--- -----
version 4.1.2-ce
BuildVersion 1.1.2-release4.1.2-dev-04282015
RestAPIVersion v1
ここまでで、こんな感じになります。
追加されるたのは、「NutanixCmdletsPSSnapin」というモジュールのコマンドレットです。
結構、たくさん(なんと255個も)あります。
NTNX> (Get-Command -Module NutanixCmdletsPSSnapin).Count
255
Nutanix Cmdlets の実行。
Nutanix CE に接続してみます。
PowerCLI での 「Connect-VIServer」 に相当するします。
接続先の IP アドレス「192.168.1.92」 は、CVM のものです。
※証明書エラーを回避するため、「-AcceptInvalidSSLCerts」を付けています。
※赤字部分は、手入力しています。
NTNX> Connect-NTNXCluster -AcceptInvalidSSLCerts
コマンド パイプライン位置 1 のコマンドレット Connect-NTNXCluster
次のパラメーターに値を指定してください:
(ヘルプを表示するには、「!?」と入力してください。)
Server: 192.168.1.92
UserName: admin
Password: ★パスワードを入力
[Warning]: Cluster version[2015.07.16] and Cmdlets version[4.1.2-ce] do not match. This might cause some cmdlets to not
function correctly. Do you still want to continue [Y/N]?: Y
Server : 192.168.1.92
UserName : admin
Password : ********
AcceptInvalidSSLCerts : True
ParameterSetName : __AllParameterSets
MyInvocation : System.Management.Automation.InvocationInfo
PagingParameters :
InvokeCommand : System.Management.Automation.CommandInvocationIntrinsics
Host : System.Management.Automation.Internal.Host.InternalHost
SessionState : System.Management.Automation.SessionState
Events : System.Management.Automation.PSLocalEventManager
JobRepository : System.Management.Automation.JobRepository
JobManager : System.Management.Automation.JobManager
InvokeProvider : System.Management.Automation.ProviderIntrinsics
Stopping : False
CommandRuntime : Connect-NTNXCluster
CurrentPSTransaction :
CommandOrigin : Runspace
IsConnected : True
NTNX>
冒頭の PowerCLI で表示した Nutanix CE の VM は、
Nutanix Cmdlets で見ると、このような感じになります。
※ESXi 上に作成した VM が、Nutanix CE のホストです。
NTNX> Get-NTNXHost | select name, state, numCpuCores, memoryCapacityInBytes, HypervisorFullName, blockModelName, hypervisorType, serviceVMExternalIP, hypervisorAddress
name : NTNX-5f45a488-A
state : NORMAL
numCpuCores : 4
memoryCapacityInBytes : 16658726912
hypervisorFullName : Nutanix 20150513
blockModelName : CommunityEdition
hypervisorType : kKvm
serviceVMExternalIP : 192.168.1.92
hypervisorAddress : 192.168.1.91
VM の一覧を表示してみました。
この環境には、Nutanix で必須の CVM と、それとは別に 2 つの VM(合計 3 VM) を作成してあります。
PowerCLI のコマンドレットでは、取得できる情報がデフォルトで省略(要約)されて表示されることが多いですが、
Nutanix Cmdlets の場合は、省略なしで表示されるようです。
※VM 名だけ、赤字にしてみました。
NTNX> Get-NTNXVM
vmId : 0005199c-36eb-1100-1146-005056a0691e::090bca93-e455-401f-9a74-622789d0cda7
powerState : off
vmName : vm01
guestOperatingSystem :
ipAddresses : {}
hypervisorType : kKvm
hostName :
hostId :
clusterUuid : 0005199c-36eb-1100-1146-005056a0691e
memoryCapacityInBytes : 536870912
memoryReservedCapacityInBytes : 1073741824
numVCpus : 1
cpuReservedInHz :
numNetworkAdapters : 1
containerIds : {0005199c-36eb-1100-1146-005056a0691e::758}
nutanixVirtualDisks : {/st-cont-01/.acropolis/vmdisk/b5238c04-678d-4f0c-ad98-6c6ea7a77f97}
nutanixVirtualDiskIds : {0005199c-36eb-1100-1146-005056a0691e::b5238c04-678d-4f0c-ad98-6c6ea7a77f97}
vdiskNames : {0005199c-36eb-1100-1146-005056a0691e::NFS:22}
vdiskFilePaths : {/st-cont-01/.acropolis/vmdisk/b5238c04-678d-4f0c-ad98-6c6ea7a77f97}
diskCapacityInBytes : 8589934592
protectionDomainName :
consistencyGroupName :
nonNdfsDetails :
isControllerVm :
isDisplayable :
isAcropolisVm :
isRunningOnNdfs :
vmId : 0005199c-36eb-1100-1146-005056a0691e::0cf38f50-bfcc-46a4-af74-aefb0c2504a1
powerState : on
vmName : NTNX-5f45a488-A-CVM
guestOperatingSystem :
ipAddresses : {192.168.1.92}
hypervisorType : kKvm
hostName : NTNX-5f45a488-A
hostId : 0005199c-36eb-1100-1146-005056a0691e::2
clusterUuid : 0005199c-36eb-1100-1146-005056a0691e
memoryCapacityInBytes : 12884901888
memoryReservedCapacityInBytes : 12884901888
numVCpus : 2
cpuReservedInHz :
numNetworkAdapters : 2
containerIds :
nutanixVirtualDisks : {/dev/sdb}
nutanixVirtualDiskIds : {0005199c-36eb-1100-1146-005056a0691e::0cf38f50-bfcc-46a4-af74-aefb0c2504a1:scsi.0}
vdiskNames : {0005199c-36eb-1100-1146-005056a0691e::/dev/sdb}
vdiskFilePaths : {/dev/sdb}
diskCapacityInBytes : 0
protectionDomainName :
consistencyGroupName :
nonNdfsDetails : VM is a Nutanix CVM
isControllerVm :
isDisplayable :
isAcropolisVm :
isRunningOnNdfs :
vmId : 0005199c-36eb-1100-1146-005056a0691e::f150b578-11f8-414f-8e4f-62c67946000e
powerState : on
vmName : vm02
guestOperatingSystem :
ipAddresses : {192.168.1.5}
hypervisorType : kKvm
hostName : NTNX-5f45a488-A
hostId : 0005199c-36eb-1100-1146-005056a0691e::2
clusterUuid : 0005199c-36eb-1100-1146-005056a0691e
memoryCapacityInBytes : 536870912
memoryReservedCapacityInBytes : 536870912
numVCpus : 1
cpuReservedInHz :
numNetworkAdapters : 1
containerIds : {0005199c-36eb-1100-1146-005056a0691e::758}
nutanixVirtualDisks : {/st-cont-01/.acropolis/vmdisk/d58f6410-008d-4083-ab32-b7ff2af1721d}
nutanixVirtualDiskIds : {0005199c-36eb-1100-1146-005056a0691e::d58f6410-008d-4083-ab32-b7ff2af1721d}
vdiskNames : {0005199c-36eb-1100-1146-005056a0691e::NFS:57174}
vdiskFilePaths : {/st-cont-01/.acropolis/vmdisk/d58f6410-008d-4083-ab32-b7ff2af1721d}
diskCapacityInBytes : 8589934592
protectionDomainName :
consistencyGroupName :
nonNdfsDetails :
isControllerVm :
isDisplayable :
isAcropolisVm :
isRunningOnNdfs :
NTNX>
下記のように、いくつかのプロパティに絞ると見やすいかもしれません。
NTNX> Get-NTNXVM | select vmName,PowerState,numVCpus,memoryCapacityInBytes | sort vmName | ft -AutoSize
vmName powerState numVCpus memoryCapacityInBytes
------ ---------- -------- ---------------------
NTNX-5f45a488-A-CVM on 2 12884901888
vm01 off 1 536870912
vm02 on 1 536870912
ちなみに、PowerCLI の Get-VM での VM 一覧取得 だと、デフォルトだと下記のような感じで表示され、
逆に、詳細な情報がほしい場合はオプションを付けてコマンドレットを実行します。
こういった違いに、ツールの個性を感じます・・・
PowerCLI> Get-VM
Name PowerState Num CPUs MemoryGB
---- ---------- -------- --------
vm01 PoweredOn 1 1.000
vm02 PoweredOn 1 0.500
vm03 PoweredOff 1 0.500
とりあえず、vm01 をパワーオンしてみます。
NTNX> Get-NTNXVM -SearchString "vm01" | Set-NTNXVMPowerOn
taskUuid
--------
2789a91f-9a98-4f50-bd88-d010bd54fc98
NTNX> Get-NTNXVM | select vmName,PowerState,numVCpus,memoryCapacityInBytes | sort vmName | ft -AutoSize
vmName powerState numVCpus memoryCapacityInBytes
------ ---------- -------- ---------------------
NTNX-5f45a488-A-CVM on 2 12884901888
vm01 on 1 536870912
vm02 on 1 536870912
とりあえず、ここまでです。
PowerCLI ユーザ的な Nutanix Cmdlets の感想。
まだ使い込めていませんが、
普段使っている PowerCLI よりも、玄人志向なツールな感じがしました。
同じ PowerShell ベースのツールなのですが、コマンドレットの使い勝手が結構ちがい、
「PowerCLI ができるから Nutanix Cmdlets も使える」 とまではいかない印象をうけました。
本気で(実務で)扱うとなると、シミュレータとして CE のようなツールがあるのは重要になるだろうと思います。
今回の発見をいくつか・・・
- だいたいのコマンドレットは 名詞(Noun)部分が NTNX から始まる。
関係あるコマンドレットか判別しやすく、一般のコマンドレット、PowerCLI コマンドレットなどと混在していても見分けやすい。 - Get- 系コマンドレットで参照できるプロパティの名前でも、PowerCLI とは結構違いがある。
参照だけでも、多少、慣れがいるかもしれない。 - いろいろ PowerShell ベースのツールを使いこなすためには、
PowerCLI ばかりでなく PowerShell 自体の勉強も大事だと思った。
以上、PowerCLI ユーザが Nutanix CE & Cmdlets を使用してみた話でした。