vCenter Server Appliance 6.x/7.xで /storage/seat のディスク使用率が 100% になる
search cancel

vCenter Server Appliance 6.x/7.xで /storage/seat のディスク使用率が 100% になる

book

Article ID: 321926

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:
免責事項:これは英文の記事「/storage/seat disk 100% full on vCenter Server Appliance 6.x/7.x (318931) 」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

  • vCenter Server Appliance のサービスの開始に失敗しました。
  • vSphere Web Client を使用して VCSA に接続すると次のようなエラーが表示されます。
    503 Service Unavailable
  • vCenter Server Appliance で df -h を実行すると、/storage/seat にマウントされている /dev/mapper/seat_vg-seat が 95% 以上使用されていることが示されます。
  • /var/log/vmware/vpxd/vpxd.logファイルには次のようなエントリが表示されます:
    <YYYY-MM-DD>T<TIME> warning vpxd [7F447FF7E700] [Originator@6876 sub=Default opID=StatsTruncateExpiredPartitions-7460ee5a]
    [VdbStatement] Connection diagnostic data from driver is HY000:0:110:
    <YYYY-MM-DD>T<TIME> error vpxd[7F44865F3700] [Originator@6876 sub=Default] [VdbStatement] Execute result code: -1
    <YYYY-MM-DD>T<TIME> warning vpxd[7F44865F3700] [Originator@6876 sub=Default] [VdbStatement] SQL execution failed: INSERT INTO
    VPX EVENT (EVENT_ID, CHAIN_ID, EVENT_TYPE, EXTENDED_CLASS, CREATE_TIME, USERNAME, CATEGORY, VM_ID, VM_NAME, HOST_ID, HOST_NAME,
    COMPUTERESOURCE_ID, COMPUTERESOURCE TYPE, COMPUTERESOURCE NAME, DATACENTER_ID, DATACENTER NAME, DATASTORE_ID, DATASTORE NAME,
    NETWORK_ID, NETWORK_NAME, NETWORK_TYPE, DVS_ID, DVS_NAME, STORAGEPOD_ID, STORAGEPOD_NAME, CHANGE_TAG_ID) VALUES (?, ?, ?, ?, ?,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ?, ?, ?, ?)
    <YYYY-MM-DD>T<TIME> warning vpxd[7F44865F3700] [Originator@6876 sub=Default] [VdbStatement] Execution elapsed time: 3 ms
    <YYYY-MM-DD>T<TIME> warning vpxd[7F44865F3700] [Originator@6876 sub=Default] [VdbStatement] Statement diagnostic data from
    driver is 53100:0:7:ERROR: could not extend file "pg_tblspc/16396/PG_9.3_201306121/16384/16641": No space left on device;
    -- > Error while executing the query
  • vCenter Server Appliance 6.7.xの/var/log/vmware/vpxd.logファイルには、次のようなエントリが表示されます:
    yyyy-mm-ddThh:mm:ss info vpxd[24517] [Originator@6876 sub=vpxdVdb] WarningThreshold: 80% ErrorThreshold: 95%.
    yyyy-mm-ddThh:mm:ss error vpxd[24517] [Originator@6876 sub=vpxdVdb] Insufficient free space for the Database (used: 96%; threshold: 95%)
    yyyy-mm-ddThh:mm:ss info vpxd[07808] [Originator@6876 sub=vpxdvpxdSignal] Signal 15 received, exiting
    yyyy-mm-ddThh:mm:ss info vpxd[07808] [Originator@6876 sub=Default] Initiating VMware VirtualCenter shutdown
    yyyy-mm-ddThh:mm:ss info vpxd[07711] [Originator@6876 sub=Default] Shutting down VMware VirtualCenter
  • vCenter Server 7.x の /var/log/vmware/vpxd.log ファイルには、次のようなエントリが表示されます:
    yyyy-mm-ddThh:mm:ss info vpxd[18939] [Originator@6876 sub=vpxdVdb] WarningThreshold: 80% ErrorThreshold: 95%.
    yyyy-mm-ddThh:mm:ss error vpxd[18939] [Originator@6876 sub=vpxdVdb] Space used on storage partition of Database exceeds
    threshold (used: 95%; threshold: 95%). Service-control request will stop vpxd
    yyyy-mm-ddThh:mm:ss info vpxd[18917] [Originator@6876 sub=vpxdvpxdSignal] Signal 15 received, exiting
    yyyy-mm-ddThh:mm:ss info vpxd[18917] [Originator@6876 sub=Default] Initiating VMware VirtualCenter shutdown
    yyyy-mm-ddThh:mm:ss info vpxd[18442] [Originator@6876 sub=Default] Shutting down VMware VirtualCenter

     

: ​上記のログの抜粋は一例です。日時や環境変数はお使いの環境によって異なる場合があります。



Environment

VMware vCenter Server Appliance 6.7.x
VMware vCenter Server Appliance 6.0.x
VMware vCenter Server Appliance 6.5.x
VMware vCenter Server 7.0.x

Cause

この問題は、vCenter Server Appliance で収集された大量のイベントがデータベースを満たすことで発生します。デフォルトでは、領域が 95% 以上になっていると、データベースが破損するのを防ぐために、重要なサービスである vmware-vpxd サービスの実行が許可されません。

発生原因として最もよく見られるものは Excessive Hardware health alarms being triggered for "Sensor -1 type" on ESXi hosts running vSphere 6.7/6.5 です。

Resolution

この問題を解決するには、イベントテーブルをいっぱいにしている ESXi がどれであるかを見つける必要があります。それが終わったら、イベント テーブルを切り詰める必要があります。
 
  • イベントを生成している ESXi ホストを見つけるには:
    1. VCDB のバックアップを取得します。Back up and restore vCenter Server Appliance/vCenter Server 6.x vPostgres database を参照してください。
    2. vCenter Server Applianceのスナップショットを取得します。
    3. コンソール経由または SSH セッションと root の認証情報を使用して vCenter Server Appliance に接続します。
    4. 次のコマンドを実行して、シェルを有効にします。
      shell.set --enabled true
    5. シェルに入るには、shell と入力して、Enter キーを押します。
    6. 次のコマンドを実行して、vpxd サービスとコンテンツライブラリサービスを停止します:
      service-control --stop vmware-vpxd, service-control --stop vmware-content-library
    7. 次のコマンドを実行して、vCenter Server Appliance のデータベースにログインします:
      /opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres 
    8. 次のクエリを実行して、イベントのソースを特定します:

      vCenter Server Appliance 6.0

      SELECT COUNT(EVENT_ID) AS NUMEVENTS, EVENT_TYPE, USERNAME FROM VPX_EVENT GROUP BY EVENT_TYPE, USERNAME ORDER BY NUMEVENTS DESC LIMIT 10;

      vCenter Server Appliance 6.5/6.7/7.0

      SELECT COUNT(EVENT_ID) AS NUMEVENTS, EVENT_TYPE, USERNAME FROM VPXV_EVENT_ALL GROUP BY EVENT_TYPE, USERNAME ORDER BY NUMEVENTS DESC LIMIT 10;


      以下のような出力が表示されます:

      vmfs.heartbeat.timedout |192.0.2.1 | 12191576
      vim.event.UserLogoutSessionEvent |192.0.2.1 | 1219121
      vim.event.VmAcquiredTicketEvent |192.0.2.1 | 15568

       

    9.  スペースを取り戻すには、shellから次のコマンドを実行します。

      su -c "/opt/vmware/vpostgres/current/bin/vacuumdb -d VCDB -e -v -f -U postgres > /tmp/vacuumdb.log"
      • 注: rootユーザでログインしている場合は、"su -c" は必要ありません。
    10.  上記の例では、IP が 192.0.2.1 の ESXi ホストから、vmfs.heartbeat.timedout に関連する 12191576 イベントが生成されています。
    11. 報告されている問題を解決するには、このホストをさらに調査する必要があります
  • vCenter Server Applianceデータベースのイベントをクリーンアップするには、VCSA 仮想マシンのスナップショットを取得した後、以下を実施します:
    1. vCenter Server Applianceに接続されたコンソールまたはSSHセッションから、イベントテーブルのデータを切り捨てるために以下のコマンドを実行します:
      vCenter Server Appliance 6.0:
      truncate table vpx_event cascade;
      truncate table vpx_event_arg cascade;

      vCenter Server Appliance 6.5/6.7/7.0:

      VCDB# SELECT nspname || '.' || relname AS "relation", pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size" FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE nspname NOT IN ('pg_catalog', 'information_schema') AND C.relkind <> 'i' AND nspname !~ '^pg_toast' ORDER BY pg_total_relation_size(C.oid) DESC LIMIT 20;

      上記によりvCenter Serverデータベース内の最大テーブルの上位20個が表示されます。大きなテーブルは個別に切り捨てます。
      例:

      VCDB=# truncate table vc.vpx_event_1 cascade;​​​

      注:この KB のソリューションでは、vc.vpx_event_x テーブルのみを切​​り捨てます。


       
    2.  以下のコマンドを実行して、vCenter Server Appliance データベースを終了します。
      \q
    3. 次のコマンドを実行して、vpxd サービスを開始します:
      service-control --start vmware-vpxd
    4. df -h コマンドを実行して、スペースが確保されていることを確認します。
      以下のような出力が表示されます。

Additional Information