NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

VCSA6.7 で「503 Service Unavailable」エラー

VCSA6.7 へ Web アクセスした際、以下のエラーが発生して接続できない事象がありました。

503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x0000562eebf99a50] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe)

このエラーがでた場合、vpxd のサービスが落ちている可能性があります。
vpxd のサービスのステータスは、VCSA へ SSH へログインして、以下の手順で確認します。

> shell
# service-control --status
Stopped:
 vpxd

vpxd サービスが Stopped となっている場合、以下のコマンドで Running にします。

# service-control --start vpxd
# service-control --status vpxd
Running:
 vpxd

私が経験した事象では、vpxd を上記手順及び、VCSA 再起動により起動しても、すぐに Stopped になりました。
原因はデーターベースの肥大化に起因するものと判明しました。対処方法は以下のとおりです。

/storage/seat 領域を確認

# df -h /dev/mapper/seat_vg-seat
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/seat_vg-seat  9.8G   73M  9.2G   1% /storage/seat

本例では Use% が 1% となっていますが、95% 以上となっている場合は、vpxd が起動不可となります。

postgres データベースへ接続

# cd /opt/vmware/vpostgres/current/bin 
# ./psql -d VCDB -U postgres 

肥大化しているテーブルを確認

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 5; 
           relation           | total_size
------------------------------+------------
 vc.vpx_host_vm_config_option | 5032 kB
 vc.vpx_event_arg_72          | 2552 kB
 vc.vpx_event_arg_83          | 2480 kB
 vc.vpx_task                  | 2432 kB
 vc.vpx_event_arg_75          | 2352 kB
(5 rows)

肥大化しているテーブルを削除(本例では、vc.vpx_task を削除)

truncate table vc.vpx_task cascade;

上記を、Use% が 90% 以下となるまで実施後、VCSA を再起動することで vpxd が起動できました。

なお、再発防止のため、肥大化しているテーブルがタスク/イベント関連の場合、イベント保持期限日数を調整する必要があるかもしれません。

参考:データベース設定の構成

以上