VMware SPBMをマスターする:手動管理から脱却し、ポリシーベースで仮想マシンストレージを管理する

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

課題:ストレージ管理が「悪夢」に変わる時

8台のESXiホストと200台以上の仮想マシン(VM)で構成されるVMwareクラスターを引き継いだばかりの頃、私はストレージ管理の「混乱」に陥っていました。当時のシステムは、データベース用のAll-Flash NVMeと、ファイル保存用の7.2K RPM HDDが混在した構成でした。新しいVMを作成するたびに、Excelの管理表をひっくり表して、どのデータストアに空きがあるか、どれがRAID 10でどれがRAID 5で動いているかを確認しなければなりませんでした。

このような手動管理は極めてリスクが高いものです。同僚がうっかりデータベースVMを低速なHDDに移動させてしまうだけで、システムはすぐにボトルネックに陥ります。さらに悪いことに、vCenterはこのパフォーマンスの不一致について何の警告も出しません。その時、私はStorage Policy Based Management (SPBM)が単なるオプションではなく、必須の機能であると確信しました。

なぜ今すぐSPBMを導入すべきなのか?

SPBMがない状態では、vCenterはすべてのデータストアを同一のデータコンテナとして扱います。SPBMを導入することで、そこに「インテリジェンス」を付与できます。データストアAやBを直接指定する代わりに、「このVMはSSD上で動作し、高い冗長性を持たせたい」と要求するだけで済むようになります。システムは自動的にその基準を満たす場所を探し出します。もしデータストアに障害が発生し、ポリシーが維持できなくなった場合、vSphereはアラート(赤色表示)を出し、迅速な対応を促します。

タグベースのストレージポリシー設定(従来のSAN/NAS向け)

FCやiSCSI経由の外部ストレージを使用しているシステムでは、タグ(Tags)を使用するのが最も効果的な分類方法です。以下に、私が実際に運用で適用している手順を紹介します。

ステップ1:タグによるデータストアの分類

データストアを無秩序なままにしないでください。まずはラベルを貼ることから始めましょう。

  1. vSphere Clientにログインし、[タグおよびカスタム属性]を選択します。
  2. Storage_Performanceという名前の新しいカテゴリを作成します。
  3. Gold_Tier(SSD用)とSilver_Tier(HDD用)の2つのタグを作成します。
  4. [ストレージ]セクションで、各データストアを右クリックし、[タグの割り当て]を選択して対応するラベルを付けます。

ステップ2:仮想マシンストレージポリシーで「ルール」を定義する

これは、仮想マシンの基準を設定するステップです。

  1. [ポリシーおよびプロファイル] -> [仮想マシンストレージポリシー] -> [作成]に移動します。
  2. Critical_DB_Policyのような分かりやすい名前を付けます。
  3. [ポリシー構造]セクションで、[「タグベース」ストレージのルールを有効化]にチェックを入れます。
  4. [タグベースのルール]タブで、カテゴリStorage_PerformanceとタグGold_Tierを選択します。
  5. [ストレージの互換性]セクションで互換性のあるデータストアの一覧を確認し、設定が正しいことを確認します。

ステップ3:仮想マシンへのポリシー適用

VMをデプロイする際、[ストレージ]セクションでデフォルト設定の代わりに作成したポリシーを選択します。vSphereは基準を満たさないデータストアを自動的に除外するため、誤って低速なドライブを選択してしまうミスを防げます。

# PowerCLIでポリシー一覧を素早く確認
Get-SpbmStoragePolicy | Select Name, Description

# 時間短縮のため、スクリプトでVMにポリシーを割り当てる
$vm = Get-VM "Production_DB_01"
$policy = Get-SpbmStoragePolicy -Name "Critical_DB_Policy"
Set-SpbmEntityConfiguration -Configuration $vm -StoragePolicy $policy

vSANポリシーによる管理の高度化

vSANを運用している場合、SPBMはさらに強力になります。データが物理ディスクに書き込まれる方法を詳細に制御できます。

私の経験では、極めて低いレイテンシが必要なアプリケーションにはRAID-1 (Mirroring)を使用します。逆に、テスト環境のVMやファイルサーバーにはRAID-5 (Erasure Coding)を使用します。RAID-5を使用すると、データの安全性を確保しながら、RAID-1と比較して容量を最大33%節約できます。

注意:RAID-1からRAID-5への変換は、データの再計算のためにI/Oリソースを消費します。アプリケーションへの影響を避けるため、この変更はオフピーク時間帯(例:午後10時以降)に行うことをお勧めします。

コンプライアンス(遵守状況)の監視

SPBM의最も価値のある機能は、自己監視能力です。VMが正しい場所に配置されているかどうかを推測する必要はありません。

  • 準拠 (Compliant): VMは正しい場所にあり、設定したポリシーに従っています。
  • 非準拠 (Non-compliant): データが誤った場所にあるか、データストアに問題(容量不足、接続断など)が発生しています。

ポリシーに違反しているすべてのVMをスキャンするには、以下のPowerCLIコマンドをよく使用します。

# 非準拠(Non-compliant)状態のVMを検索
Get-VM | Get-SpbmEntityConfiguration | Where-Object {$_.ComplianceStatus -ne "Compliant"}

実戦経験からのまとめ

SPBMは巨大なデータセンターのためだけのものだと思われがちですが、実際には3台構成の小規模なクラスターであっても、SPBMは救世主となります。

以前、ストレージコントローラーの1つが故障し、ハードウェアの冗長機能が一時的に失われたことがありました。SPBMのおかげで、vCenterは即座に重要なVMに対して期限切れ (Out of Date)ステータスの警告を出しました。ポリシーからの正確な提案により、わずか数分でそれらを安全な領域に移動させることができました。もし手動で管理していたら、間違いなくいくつかのVMを見落としていたでしょうし、その時のデータ損失のリスクは非常に大きかったはずです。

SPBMを献身的な門番だと考えてください。一度ルールを設定すれば、あとはすべてが正しい軌道で動き続けることを保証してくれます。

Share: