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 での表示ですが・・・こんな構成です。

nutanix-ce-01.png


ただ、Community Edition とはいえ HW 要件が高めで、

複数台のクラスタを構成してみる物理リソースがありませんでした。

 

そこで、せっかくなので PowerCLI の知見をもとに

CE でも試せるであろう Nutanix 用の PowerShell コマンドレット「Nutanix Cmdlets」を試してみました。

Nutanix の Web UI である「Prism」から、インストーラ「NutanixCmdlets.msi」をダウンロードできます。

nutanix-ce-02.png

 

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

 

ここまでで、こんな感じになります。

nutanix-ce-cmdlets-00.png

 

追加されるたのは、「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 を使用してみた話でした。