NutaNice Xperience

主にNutanix製品を検証したり触ったりした結果をつづっています。※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。実際に製品を使用される場合は、メーカードキュメントの手順に従い実施してください。

AHVで仮想マシンのカテゴリ単位でのストレージポリシーを設定してみる -Nutanix AOS 6.1(Prism Central pc.2022.1)の新機能

2022年2月24日に新しいAOSのSTSバージョンであるAOS 6.1がリリースされました。今回はAOS 6.1と同時にリリースされた、Prism Central pc.2022.1の新機能の1つとして、AHV環境における仮想マシンのカテゴリ単位でのストレージポリシーを設定してみました。

この新機能では、仮想マシンカテゴリ単位でのデータの暗号化、圧縮、またスループットやIOPSといったQoSを定義できます。ちなみに、仮想マシン単位でのストレージポリシーを設定するには、Prism Centralが必要となります。

目次

1. 今回の環境

Platform: NX-1465-G5
AOS: 6.1 STS
AHV: 20201105.30142
Prism Central: pc.2022.1
検証用VM1: WS2019-test01(Windows Server 2019)
検証用VM2: WS2019-test01(Windows Server 2019)

2. カテゴリの作成

Prism Centralでは、カテゴリと呼ばれる、キーと値のペアによるグループを作成し、管理しているNutanixクラスターの仮想マシンに関連付けて個別に様々なポリシーを割り当てることが可能です。

新機能のストレージポリシーにおいても、このカテゴリを利用して特定の仮想マシンへ作成したポリシーを割り当てる事になります。

カテゴリを作成するためには、Prism Central Web Consoleにて「管理」→「Categories」メニューを選択します。
f:id:tomomartin:20220228155445p:plain

カテゴリ画面では、デフォルトで作成されている様々なカテゴリが確認できますが、今回はストレージポリシー用のカテゴリを新たに作成してみます。

「New Category」を選択します。
f:id:tomomartin:20220228155704p:plain

今回は「Eval-Policies」という名前のカテゴリを作成し「Storage-Policy-Eval-VMs」という値を1つ追加しました。
f:id:tomomartin:20220228155958p:plain

カテゴリ画面で、作成したカテゴリが確認できます。
f:id:tomomartin:20220228160050p:plain

3. カテゴリへ仮想マシンを割り当て

続いて作成したカテゴリへ対象の仮想マシンの関連付けを実施します。Prism Central Web Consoleより「仮想インフラ」→「仮想マシン」を選択します。
f:id:tomomartin:20220228160415p:plain

仮想マシン画面にて、リストタブより対象の仮想マシンへチェックを入れて、「アクション」→「カテゴリを管理」の順に選択します。今回は「WS2019-test02(Windows Server 2019)」という仮想マシンを選択しました。f:id:tomomartin:20220228160717p:plain

仮想マシンカテゴリの管理画面で、先ほど作成した「カテゴリ名+値」のペアで検索し、追加したら「保存」を選択します
f:id:tomomartin:20220228160927p:plain

設定した仮想マシンの詳細画面、カテゴリタブにて、仮想マシンとカテゴリが関連付けられていることが確認できます。
f:id:tomomartin:20220228161244p:plain

ここまでできたら、ストレージポリシー作成の準備完了です。

4. ストレージポリシーの作成

ストレージポリシーを作成するには、Prism Central Web Consoleより「仮想インフラ」→「Storage Policies」の順に選択します。
f:id:tomomartin:20220228161521p:plain

Storage Policies画面で「+ Create Storage Policy」を選択します。
f:id:tomomartin:20220228161633p:plain

ストレージポリシー作成のダイアログでは、暗号化、圧縮、QoSが設定できます。今回は、以下のように設定してみました。設定後「次へ」をクリックします。

  • ストレージポリシー名: 「test-storage-policy-01」
  • 暗号化:「有効化」
  • 圧縮:「ポストプロセスで有効化」
  • QoS:「IOPS」の値を「2,000」で制限

f:id:tomomartin:20220228162610p:plain

次に、作成するポリシーと既存カテゴリとの関連付けの画面が表示されます。先ほど作成し対象の仮想マシンと紐づけたカテゴリ名と値のペアを検索して選択します。選択できたら「保存」をクリックして、ストレージポリシーの作成を完了します。
f:id:tomomartin:20220228163045p:plain

完了後、Storage Policies画面のリストへ作成したストレージポリシーが表示されます
f:id:tomomartin:20220228163317p:plain

カテゴリ画面でも、ポリシーとカテゴリ、そして対象の仮想マシンとの関連付けが確認できました。「1仮想マシン」という文字をクリックすると、関連付けられている仮想マシンが確認できます。
f:id:tomomartin:20220228163453p:plain

これで、ストレージポリシーの作成と、今回の対象の仮想マシンである「WS2019-test02(Windows Server 2019)」への関連付けは完了です。

5. 制限したIOSPを測定してみる

設定したストレージポリシーが実際に機能しているのか確認するため、例としてIOPSが設定した値で制限されているか検証してみました。

今回は、Microsoft社のディスクベンチマークツールであるDISKSPDを使用し、対象VMのディスクのIOPS性能を測定してみます。

テスト方法としては、ストレージポリシーを割り当てたVMと、割り当てていないVMを1台ずつ準備し、IOPSのパフォーマンス測定結果を比較します(OS、CPUコア数、メモリ容量、ストレージ容量はすべて同一)。
f:id:tomomartin:20220228175501p:plain

それぞれのVMへDISKSPDをインストール後、Power Shellにて、DISKSPDの実行ファイルがあるフォルダへ移動し、以下のコマンドを実行します。

.\diskspd -t2 -b4k -r4k -w50 -d120 -Sh -L -c50M <作成先のフォルダパス>\test01.dat > <出力先のフォルダパス>\test01.txt

このコマンドでは、ターゲットごとに2つのスレッド(-t2)、ブロックサイズを4K(-b4K)、指定されたサイズ に対応したランダム I/O(-r4k)、50%のWrite I/Oと50%のRead I/O(-w50)、測定期間120秒(-d120)、ハードウェアとソフトウェアのキャッシュを無効(-Sh)、待機時間の統計を測定(-L)とし、サイズが50MBのファイルを「test01.dat」へ作成後、内容を「test01.txt」へ出力するようにしています。

それぞれの仮想マシンで実行後に、テキストファイルへ出力された内容は以下の通りです。

f:id:tomomartin:20220228171533p:plain

このように、ストレージポリシーを割り当てていないVMでは5,000以上のIOPSが計測されているのに対して、ストレージポリシーを割り当てたVMは設定どおり2,000以下の値で IOPSが計測されました。

余談ですが、Prism Web Consoleからでも、このテスト中に計測されたIOPSを仮想マシン単位でのCVMのIOPSとして確認することができます。
f:id:tomomartin:20220228172241p:plain

Prism Centralで設定したIOPSの値のとおりに機能しているようですね。

6. 要件や制限事項など(抜粋)

  • 機能を利用するにはPrism Centralが必要
  • 仮想マシン単位でのストレージポリシー設定はAHVのみでサポートされる
  • ボリュームグループ単位のストレージポリシーはサポートされない
  • Prism Centralの構成に関係なく、最大100のストレージポリシーが作成可能
  • ストレージポリシーはVMのvDiskとそのvDiskのスナップショットに適用される
  • 特定のスナップショットのみへはストレージポリシーは適用できない

7. 参考資料

今回はこの辺で。