PCNS
=PowerChute NetworkShutdown
電源障害の際にネットワークを介してホストやら仮想マシンを落としてくれるやつです。
構成
・ESXiv6.7ホスト×3(3号機はHA退避先)上のVCSAにPCNS仮想アプライアンスをデプロイし、SmartUPS3000×2でそれぞれ冗長構成で接続。
・DNSサーバーはAD兼用で仮想マシンとして存在。
流れ
・UPSが電源障害を検知
↓
・UPSと連携されているPCNS仮想アプライアンスがvCenterに接続し、各仮想マシン・ホストを設定に従って落としていく。
という流れです。
公式マニュアル
https://download.schneider-electric.com/files?p_Doc_Ref=SPD_PMAR-9DNLQK_JA
どおりにセットアップし、ホストの電源を引っこ抜いてみると。。。
出たわね。
シャットダウンシーケンスが走ってはいるものの、仮想マシンはシャットダウンされている状態でホストで失敗し、止まっています。
また、この後全部復旧させてもPCNS上でvCenterに接続できなくなったので、仮想アプライアンスから構築しなおしとなりました。。
名前解決のためにhostsファイル編集とユーザー作成が必要
構成として、名前解決のためのサーバーがゲストOSとして存在していたことがポイントです。
・PCNSのシャットダウンシーケンス によって、DNS仮想マシンが落ちた。 ↓ ・名前解決ができなくなり、PCNS仮想アプライアンスがvCenterに接続できなくなったことで各ホストのシャットダウンに失敗した。かつ、 ・VCSAシャットダウン後、PCNSに接続されているVCSAユーザー情報がESXiのものと違っていたため、認証できなくなった。というのが原因でした。
てことで、各コンポーネントのhostsファイルを編集し、シャットダウンタスク実行のための共通ユーザーを作成します。これがマニュアルには書かれてなかったんですね~
hosts編集
ESXi、VCSA、PCNSにSSHログインし、
/etc/hostsにすべてのすべてのESXiとVCSAのエントリを追加しておきます。
※PCNS仮想アプライアンスのOSはCentOSです。
ローカルアカウント作成
内部での仕組みが明記されているわけではありませんが、PCNSはVCSAへシャットダウンの命令は出すものの、実際に実行するのはPCNSに接続したVCSAのユーザーです。
で、DNSが落ちるのと同じようにVCSAも仮想アプライアンスのため落ちるので、最後はESXiが自らホストシャットダウンを実行します。
そのため、PCNSで設定するVCSA接続ユーザー・パスワードと同じものを、各ESXiにも作成する必要があります。
VCSAのrootに合わせてもいいのですが、全パスワードを統一しないといけないのでセキュリティ上よろしくありません。
てことで、ESXi,vCenterでPCNS接続用のユーザーを作成します。
ESXi
webクライアントから、【管理】⇒【ユーザー】⇒【ユーザーの追加】
その後、ホスト右クリック【権限】でシステム権限をつけておきます。
VCSA
SSHログインし、以下コマンドをshellモードで実行
shell.set --enabled true
useradd ユーザー名
passwd ユーザー名
パスワードを入力
必ずESXiと同じユーザー名・パスワードで作成してください。
その後、
・webクライアントにて【ホーム】⇒【管理】⇒【ユーザーおよびグループ】を選択。
【グループ】タブに移動し、administratorsを選択後、【メンバーの追加】をクリックします。
・【ドメイン】をlocalosに変更して作成したユーザーを追加します。
PCNSのvCenter接続設定の編集
デプロイ前であれば【セットアップ:vCenter Serverの詳細】画面、
デプロイ後なら左ペインの【通信設定】⇒【vCenter Serverの詳細】画面で、前項で作成したユーザー情報を入力します。接続できればOKです。
これで、再度電源を引っこ抜いてもホストまでシャットダウン完了できます。
ちなみに、"作成したPCNSとVCSA,ESXiを繋ぐためのユーザー"と、
"PCNS管理コンソールのユーザー=UPS本体のManagementCardの管理ユーザー"を混同しがちなので注意です。
【vCenter Serverの詳細】が今回作成したユーザー、
【PowerChuteセキュリティ】がPCNS管理コンソールのユーザー=UPS本体のManagementCardのユーザーです。
以上。