【VMware Hands on Labで検証シリーズ】vCenter Server データベースのディスク領域枯渇について【事象紹介/再現テスト/監視方法など】
まえがき
vSphere Troubleshootはじめました。
今週は、今日から金曜日まで”vSphere Troubleshooting”コース登壇(Dell Technologies社員向けですが)
— Yamato/VMware黒本著者(Microsoft認定トレーナー応募期間待ち) (@lab8010) May 29, 2022
私にとって初開講、かつ国内では開催してるんだろうか?(滅多に開講を見ない)https://t.co/KZ9Id3HlPm pic.twitter.com/E2gRfUTBw6
という事で、コース内でvCenter Serverのデータベース ディスク枯渇関連の質問があったのでまとめてみます。なお、この記事ではvSphere 7を想定して記述をしますので、vSphere6.xまで存在をしましたWindows ServerベースのvCenter Serverやその環境で使用することが出来たMicrosoft SQLやOracleには一切触れませんのでご容赦ください。
vCenter Serverのデータベース ディスク枯渇とは
vCenter Serverは、データベースを使用して環境に関する情報を管理します。データベース保存のためのディスク空き容量が一定量を下回る場合、vCenter Serverのコアサービスである”vpxd”を停止するという事象があります。
これは、vCenter Serverがこれ以上の書き込みを行うとディスクスペースの空きが無くなるため、書き込み処理を受け入れないようにする目的で”vpxd”を停止するというものです。
管理者はこの間に、/storage/dbパーティションの空き容量拡張の作業を行う必要があります。
上記のロジックを理解できてない場合、ユーザーの目に見える形で症状に当たるのが、”vSphere Clientの画面が次のような表示となり、仮想マシンもESXiホストも見えなくなる”という状態です。
本症状をテクニカルサポートにお問い合わせされる際の注意点
本症状を次のように伝えてしまうと、正しく伝わらなくなってしまうので注意しましょう。
- 正確では無い症状の伝え方 そのホスト、ESXi、仮想マシンがダウンしました!
- これはダウンではありません。画面上に表示されていないだけです。
- 本記事で紹介する内容だけであれば、仮想マシンのサービスは継続的に動いているはずです。
- VMware Host ClientやDell iDRACなどのサーバリモート制御ツールに接続が出来るはずです。
- VMwareの画面が繋がりません!
- これはvSphere Clientです。VMware Host Clientや後述のvCenter Server Management Interface(旧称VAMI)には接続が出来るはずです。
- 正しくインターフェイス名をご説明頂けると助かります。
テクニカルサポートでは、(サポート契約やその組織の体制に依存)一人でも多くのお客様に満足頂くサポート体験をして頂くために、緊急度の高い案件に対してよりプライオリティを高めて対応する場合があります。
正しくない情報の伝え方は、双方にとって不要な時間がかかってしまうリスクがあります。
この事象にあった場合は、事前に次のことを確認してからサポートに問い合わせをされるとよいです。
- 当該vSphere環境で仮想化しているワークロードへのアクセス可否確認
ファイルサーバならファイル共有アクセスが出来るかや、RDP、SSHなどゲストOSに対しての通信可否の確認を確認します - vCenter Server Management Interfaceへのアクセス可否確認
https://vCenter ServerのFQDNまたはIPアドレス:5480/にアクセスし、rootとパスワードでログインが出来るかを確認します。 - 管理しているESXiホストの管理IPアドレスへのアクセス可否確認
ping 及び ブラウザ経由でVMware Host Clientにアクセスが出来るかを確認します - 物理サーバが持つリモートアクセスコントローラーへのアクセス可否確認
Dell Technologiesの場合はPowerEdgeやVxRailには”iDRAC”というリモートアクセスコントローラーが搭載されていますので、その管理IPへのping及びブラウザアクセス可否を確認します
これらの情報があれば、概ねサポート担当者も状況判断がしやすくなります。
また、上記1から3について、いずれも異常が無い場合は後述している症状が発生している可能性が高く、
逆に上記のいずれかにも異常がある場合は別症状も考えられます。
関連する外部情報(KB, ブログ など)
タイトルとリンク | 内容 |
List of VMDKs/Partitions for a vCenter Server 7.0 – Size Mount point and Purpose (78515) | vCenter Server に接続される仮想ハードディスクのレイアウトと各ドライブの役割 |
“Insufficient free space for the Database” error causes vpxd services to shut down during upgrade failure or report VC Database Health Alarm (2147467) | /storage/dbの空き容量不足に伴うvpxd停止についての解説 |
Stopping, Starting or Restarting VMware vCenter Server Appliance 6.x & above services (2109887) | コマンドでvCenter Server内のサービスの開始、停止、ステータス確認をする方法の解説 |
/storage/seat disk 100% full on vCenter Server Appliance 6.x/7.x (2119809) | /storage/seatの空き容量不足時の対処法の解説 |
使用する環境について
今回は、VMware社提供のHands on Labを使用して障害テストを実施します。使用するラボは”Virtualization 101″です。
VMware Hands on Labを使用した事が無い方は、以下のリンクを参照頂ければ使い方が分かります。
vCenter Serverのディスク構成について
vCenter Serverは、複数の仮想ハードディスクを持ちます。各役割と容量、パーティショニングについては次のKBを参考としてください。
List of VMDKs/Partitions for a vCenter Server 7.0 – Size Mount point and Purpose (78515)
本番環境で展開されているvCenter Serverでは、以下のように10個以上の仮想ハードディスクが視認できます。ちなみに今回の
なお、VMware Hands on Lab環境内ではDisk構成が上図とは異なります。
(ラボ用にカスタマイズされている模様)
検証作業 – 現象再現のための作業
今回の検証方法は、vCenter Serverに接続された仮想ハードディスク内に、ddコマンドでファイルを作成して疑似的に空き容量枯渇を発生させます。
なお、この検証は本番環境では行わないようにしてください。vSphere基盤の運用監視に悪影響を及ぼす可能性が高いので、行いたい場合は必ずテスト環境はVMware Hands on Labなどを使用してください。
また、ファイル配置をしてから5分から15分ほど待たないと、vSphere ClientやvCenter Server Management Interface上で警告やエラーを観測できませんので、その点もご注意ください。
下準備
環境の確認を行いましょう。
まずはVMware Hands on Lab内のvCenter Serverのディスク使用率と構成を確認します。
df -hでは、/storage/dbの利用率が5%である事が確認出来ます。
ls -lにて中に保存されているファイルを確認してみます。
vCenter Server Management Interfaceで観測したDBの容量は5%未満です。
(本当はオレンジ色のラインの数値を見たかったのですが、SEATの方にフォーカスが当たっていました)
ダミーファイルを/storage/dbに配置し、データベース ディスクの”警告”を誘発する (/storage/db 使用率80%以上の場合)
上記で確認した/storage/dbに対して、ddコマンドを使ってファイルサイズが大きいファイルを配置します。
- /storage/dbの最大容量が4.9G
- 4.9 * 0.8 = 3.92
- 既に213Mのファイルが保存されており、3.92-0.21=3.7
つまり3.7G相当のファイルを配置すれば80%となる
次のコマンドをvCenter Server Appliance Shellで実行すれば、凡そdb領域を80%まで圧迫可能です。dd if=/dev/zero of=/storage/db/PleaseDeleteMe bs=1M count=3720
容量使用率80%越えのはずが。
どうやら、df -hでの表示とVAMIとでは誤差がある模様。(df: 84% / VAMI: 79.2%)
但し、この状況であってもvSphere Client上での警告表示は確認が出来ました。
ダミーファイルを/storage/dbに配置し、データベース ディスクの”エラー”を誘発する (/storage/db 使用率95%以上の場合)
上記と同じ手順となりますが、上記のディスク使用率80%ではなく、95%を目指します。
dd if=/dev/zero of=/storage/db/PleaseDeleteMe bs=1M count=4300
条件を満たしたのでvSphere Clientの画面を更新すると、以下のエラーメッセージが表示されていました。
No view available because the object does not exist.
現時点のvCenter Server Management Interface上のデータベース ディスクの占有率状況は次の通りです。
vCenter Server Management Interfaceでのサービスステータスを見ても、vpxdがダウンしています。
試しに上記画面内上部の”START”で起動を試すと、起動に成功し、vSphere Clientへの接続も出来ました。
但し、データベースの健全性については警告ではなくアラートが表示されています。
しかし、5分と経たないうちに再度事象が再現します。(上図と下図の右下の時刻をご覧ください。)
他のディレクトリにも巨大ファイルを配置して観測してみた。
各キャプチャ画像はクリックすると大きくなります。
vCenter Server Management Interface | vSphere Client | |
/storage/dblog |
Summaryにて警告が表示される。(Database) |
vSphere Clientにはアクセス出来る。 |
/storage/log |
Summaryにて警告が表示される。(Storage) |
vSphere Clientにはアクセス出来る。 |
/storage/core |
Summaryにて警告が表示される。(Storage) |
vSphere Clientにはアクセス出来る。 |
/storage/seat |
Summaryにて警告が表示される。(Database) |
vSphere Clientにはアクセス出来る。 |
これらの症状が発生した場合に、通知する方法
vSphere Client内で設定可能な”アラーム機能”を使用することで、メール通知やSNMPトラップ送付が出来るので、本記事内でvSphere Client内で発生しているアラームイベントにこれらのアクションを関連づければ通知を受けることは出来ます。
コメント