深夜のディスク容量不足の恐怖と、Storage DRSによる「救世主」
200台以上の仮想マシン(VM)を抱えるvSphere本番環境を管理し始めてから、最大の悪夢はハードウェアの故障ではありませんでした。それは、午前2時にTelegramに鳴り響く「データストア使用率」のアラートです。Veeamバックアップが巨大なスナップショットを作成したり、開発チームが50GBの一時ディスクを消し忘れたりするだけで、データストアは真っ赤になり、仮想マシン全体がフリーズするリスクに直面します。
**Storage DRS (SDRS)** を6ヶ月間稼働させた結果、これが非常に忠実な「倉庫番」であることが分かりました。vSphere DRSがホスト間のCPU/RAMのバランスを整えるなら、SDRSはデータストア間のデータ(VMDK)の配置を調整してくれます。特定のディスクだけが「遊休状態」になることも、逆に特定のディスクが過負荷で悲鳴を上げることもなくなります。
徹底比較:手動管理か、自動化か?
SDRSを有効にする前、私は「手動vMotion職人」として生きるか、アルゴリズムに任けるべきか悩みました。実際に運用してみると、その差は歴然でした。
- 手動ストレージ管理: 株式チャートをチェックするようにvCenterの画面を監視し続けなければなりません。容量が不足しそうになると、何度もクリックしてVMを別の場所に移動させます。コントロールしている感覚はありますが、非常に手間がかかり、実際の容量計算を誤ると局所的なボトルネックが発生しやすくなります。
- Storage DRS (データストアクラスター) の利用: 同一タイプ(例:1.92TBのSSD)のデータストアを一つのクラスターにまとめます。vCenterがIOPSと容量を自動的に計算し、最適な移動案を提示してくれます。
比較表
| 評価項目 | 手動 Storage vMotion | Storage DRS (SDRS) |
|---|---|---|
| 容量のバランス調整 | 事後対応(リアクティブ) | 事前防止(プロアクティブ) |
| I/O レイテンシ | 手動での監視はほぼ不可能 | ミリ秒単位での自動計測 |
| 新規VMのデプロイ | 最も空いているディスクを自分で探す | システムが最適な場所を自動指定 |
本番環境での180日間の「試練」を経て分かったメリットとデメリット
優れたツールは快適ですが、安易に導入すると痛い目を見る「罠」もあります。適用ボタンを押す前に、以下の点に注意してください。
大きなメリット
- 「空きすぎ・埋まりすぎ」の状態にさらば: あるデータストアには2TBも空きがあるのに、隣のディスクは残り10GBで深刻な容量不足、といった不均衡が解消されます。
- I/O ボトルネックを瞬時に解消: 月末の集計処理などでデータベースのIOPSが急増し、レイテンシが閾値(15msなど)を超えると、SDRSがそれを検知します。そして、負荷の低い他のVMを別のデータストアへ自動的に移動させ、データベースのための帯域を確保してくれます。
- ダウンタイムなしのメンテナンス: 故障したディスクをストレージから抜きたい場合、メンテナンスモードを有効にするだけで、データはクラスター内の他のディスクへ自動的に退避されます。
考慮すべきリスク
- ストレージネットワーク帯域の消費: 1Gbpsの回線で500GBのVMDKを移動させるのは時間がかかり、負荷も高くなります。SDRSをスムーズに動作させるには、10Gbps以上のインフラが必要です。
- ライセンスの制約: この機能は vSphere Enterprise Plus エディションでのみ利用可能です。これが最大の導入障壁かもしれません。
- 「一つのカゴに卵を盛る」リスク: ルールを適切に設定しないと、SDRSがSQLクラスターの3つのノードをすべて同じ物理データストアにまとめてしまう可能性があります。そのストレージが故障すれば、システム全体が停止します。
Storage DRS 導入のステップバイステップ・ガイド
まずは、以下の実用的な手順で データストアクラスター を作成しましょう。
ステップ1:クラスターの設定
- vSphere Client -> ストレージビューに移動します。
- データセンターを右クリック -> 新規データストアクラスター を選択します。
Tier1-SSD-Clusterのような分かりやすい名前を付け、Storage DRS を有効にする をオンにします。
ステップ2:自動化モードの選択
機械を完全に信じ込むのは禁物です。以下の点に留意してください。
- 手動モード (Manual Mode): システムが推奨案を提示し、管理者が承認して初めて実行されます。最初の2週間はこのモードで「賢さ」を検証することをお勧めします。
- 完全自動化 (Fully Automated): 信頼が深まったら、vCenterにすべてを任せて、浮いた時間でコーヒーを楽しみましょう。
ステップ3:閾値 (Threshold) の設定(極めて重要)
無闇なデータ移動を防ぐための、システムの「魂」となる設定です。
- 利用率の閾値 (Utilization Threshold): 私は通常80%に設定しています。この値に達するとSDRSが対策に乗り出します。
- I/O レイテンシの閾値: オールフラッシュ(All-Flash)なら10msに下げましょう。古いHDDを使用している場合は、誤検知による不要な移動を防ぐために20〜25ms程度に設定します。
- 不均衡の閾値 (Imbalance Threshold): スライダーを感度高くしすぎないでください。さもないと、仮想マシンが頻繁に移動を繰り返し、ストレージ帯域を無駄に消費してしまいます。
PowerCLIによるクイック監視術
Webインターフェースの動作が重いときは、スクリプトでクラスターの状態を素早くチェックします。以下のコードを使えば、どのディスクがいっぱいか一目で分かります。
# vCenterに接続
Connect-VIServer -Server vcenter.itfromzero.vn
# 特定のクラスターを確認
$dsCluster = Get-DatastoreCluster -Name "Tier1-SSD-Cluster"
$dsCluster | Get-Datastore | Select-Object Name,
@{Name="Capacity_GB"; Expression={[Math]::Round($_.CapacityGB,0)}},
@{Name="Free_GB"; Expression={[Math]::Round($_.FreeSpaceGB,0)}},
@{Name="Used_Percent"; Expression={[Math]::Round((($_.CapacityGB - $_.FreeSpaceGB)/$_.CapacityGB)*100,1)}}
# 承認待ちの移動推奨案があるか確認
Get-SRMRecommendation -StorageDRSCluster $dsCluster
各ディスク間の Used_Percent の差が15%以内であれば、理想的なバランスと言えます。
痛恨の教訓:「象とネズミ」を混ぜるな
私が犯した最大のミスは、SSDとHDDを同じクラスターに混在させたことです。vCenterが「HDDは遅い」と判断し、仮想マシンを次々とSSDへ移動させたため、SSDはパンパンになり、HDDは空の状態という本末転倒な結果になりました。**黄金律:** 同じ速度、同じRAID構成のデータストアのみをグループ化すること。
また、データベースのマスター・スレーブのような構成の仮想マシンには、必ず **非アフィニティルール (Anti-Affinity Rules)** を適用してください。これにより、SDRSはそれらを異なる物理データストアに配置することを強制し、データの安全性を最大限に高めることができます。
Storage DRSの運用は難しくありません。大切なのは、自分のインフラの特性を正しく理解することです。設定を成功させ、皆さんが深夜にぐっすり眠れることを願っています!

