ESXi 5.1サーバーの束をリモートオフィスに発送し、APC UPSを介して電力を供給します。
UPSに接続されたサーバーのシャットダウンをトリガーさせたい-次に、ESXi構成に依存して、ホストされているVMのシャットダウン/一時停止を処理します。
APCには解決策があることがわかります PowerChute Network Shutdownを使用して文書化 ですが、これにはオフィスごとに追加のサーバーを設定する必要があり、各UPSにネットワークカードが必要です。通常、UPSはネットワークカードなしで使用しています(Back-UPS Proなど)。USBコネクタが付属しており、オフィスのある場所ですぐに利用できます。
UPSをUSB経由でESXiホストに接続し、ESXiに停電を検出させ、それに応じて動作させるにはどうすればよいですか?誰かがこれをどうにかして持っていますか?.
APCによると、これは不可能であり、Powerchute Networkのシャットダウンが必要です。 USBでこれを何度も試しましたが、解決策は見つかりませんでした。
VMWare には、APC承認済みソリューションの使用に関する情報があります。
また、SmartUPSがより良い選択であり、ネットワークカードに適合できると思いますか。当然より多くのお金がかかりますが、サーバーがまったく重要である場合、そのコストはそれだけの価値があります。また、リモートサイトで役立つ可能性のあるより多くの監視とアラートを提供します。すべてのVMが完全にシャットダウンしてからホストをシャットダウンするのに十分なランタイムを確保する必要もあります
はい、可能です。これが私の同様の設定の詳細です。
ハードウェア構成:USBを介してESXi 5.1ホストに接続されたAPC Smart-UPS 1500。このESXiホストで実行されているLinux仮想マシン。 UPSは、ESXi USBパススルーオプションを使用してこのVMに接続されています。
ソフトウェア構成:VMで実行されているNUT(ネットワークUPSツール)マスター、およびESXiホストで実行されているネイティブESXi NUTスレーブ.
シャットダウンロジック:VMは、UPSとの通信を担当するUPSドライバーusbhid-upsを実行していますUSB経由。 upsdプロセスは、usbhid-upsドライバーを介してUPSに接続し、UPSの状態を監視します。同じマシンで実行されているupsmonマスタープロセスがupsdに接続し、シャットダウンを開始します。 ESXiホストは、upsmonの2番目のインスタンスを実行しています。これは、内部ネットワーク経由で同じVMupsdにも接続します。
電源障害時には、次のシーケンスが行われます。
ダウンロード:
LinuxのNUTはパッケージからインストールできます。
ESXiサーバーのネイティブNUTクライアントは、このページの最後のリンクを使用してダウンロードできます。 http://www.networkupstools.org/download.html
いくつかの私のスクリプトとconfファイルはここにあります(変更された行のみが表示されます): http://Pastebin.com/KkEeanK1
注:
もちろん、もっと詳細な情報があり、私がこれを適切に機能させるのに少し時間がかかりました。しかし、現在は非常にうまく機能しています。このシステムは、監視VMを内部からシャットダウンした場合(vmware-toolsスクリプトは実行されません)、またはESXiホストが開始した場合VMシャットダウン(/ etc以外)の場合を考慮します。/killpowerフラグ。UPSはオフになりません)、またはESXiシャットダウンの場合(同じ)。唯一重要なのは、ホストの起動後にこのVMをできるだけ早く実行し、最後にシャットダウンすることです(そのため、ホストのダウンタイムは予測可能です-上記のように、私にとっては約1分、予約してから2分です)万一に備えて)。
私のUPS監視Linux VMは、バックアップストレージ用のSamba/NFS共有サーバー、VM用のNAT/DHCPサーバー、その他の軽量サービスでもあります。アイドル時は、約22MHzのESXi CPU共有と約10MBのアクティブRAMが必要です。 NUTを使用することで、必要に応じて同じUPSからより多くのデバイスに電力を供給でき、すべてのデバイスを正常にシャットダウンできます。 PowerChuteや高価なネットワークモニターカードは必要ありません。
スーパー質問。実際、これをかなりうまく行うことは可能です-少なくともいくつかの設定では。多くのESXi 5.5ホストで次のレシピを試しました。基本的に、解決策は次のようになります。
dmesg
にctrl urb status -62
のようなエラーが表示される場合は、物理コントローラーがVMのコントローラーと一致していない可能性があります。それらが一致する場合、それは問題です。私にはこの種の問題がある1つのセットアップがあり、それに対する実際の解決策はありません。apcupsd
をインストールVM-Ubuntuでは、Sudo apt-get install apcupsd
を実行して最新バージョンをインストールできます。NUTプロジェクトも素敵ですが、私は伝統主義者です。Sudo apt-get install PuTTY-tools
を実行してplinkユーティリティをインストールしますplink root@<your ESXi Host IP>
を実行して、ESXIホストに接続します。接続をすぐに閉じることができます。目的は、ホストキーを保存して、スクリプトで実行したときにplinkが再度プロンプトを表示しないようにすることです。/etc/apcupsd/apcupsd.conf
を編集し、以下の項目を変更して一致させます:UPSNAME < the name you'd like your UPS to have > UPSCABLE usb UPSTYPE usb # DEVICE DIRECTIVE should be blank for USB DEVICE
また、/etc/default/apcupsd
にISCONFIGURED=yes
があることを確認してください/etc/apcupsd/apccontrol
を編集し、doshutdown
ケースまでスクロールします。次のようにします:doshutdown) echo "UPS ${2} initiated Shutdown Sequence" | ${WALL} # Shut down indirectly by triggering the ESXi Host to do the # shutdown via VMWare tools /usr/bin/plink root@< your ESXi Host IP > -pw < your root pw > "/sbin/shutdown.sh && /sbin/poweroff" ;;
Sudo service apcupsd restart
を使用してapcupsdを再起動し、apcaccess
を呼び出して問題が発生していないか確認します。そうでない場合は、ログとdmesgを確認してくださいvCenter -> <your Host> -> Manage -> Settings -> VM Startup/Shutdown
に移動します)。シャットダウンアクションがシャットダウンすることを確認しますゲストOS。これらを実行すると、電源障害時にステップ8のdoshutdown
スクリプトレットが呼び出されます。次に、ESXiホストでshutdown.shスクリプトを呼び出します。これにより、ホストの各VMWare ToolsパッケージにVMがゲストOS経由でクリーンシャットダウンするように通知されます。私の経験では、 APCのPowerChuteソフトウェアよりもうまく機能します。
VMから監視したい場合は、マスターUPS制御Linux VMに接続するスレーブapcupsdインスタンスをそれらにセットアップできます。スレーブのapcupsd.confファイルには、次のようなエントリが必要です。UPSTYPE net < your UPS control VM IP >:3551
この場合、UPSCABLE
などのエントリは重要ではありません。これは、Windowsバージョンのapcupsd
(使用可能 here )でも機能します。付属のapctray.exe
を使用して、現在の状況を確認できます。
これでほぼカバーできると思います。
UPSの状態を監視でき、ESXiホストでシャットダウンをトリガーできるPowerChuteまたはその他のソフトウェアを実行しているゲストに SBデバイスパススルー機能 を使用することを検討してください(例 apcupsd )。 ESXi 公式には、パススルー用の非常に限られた数のUSBデバイスのみをサポートしています ですが、人々はしばらくの間、さまざまなクラスのデバイスを接続して通過しており、すでにさまざまな成功を収めていますが、APC UPS USBは正常に機能するようです Windows VMのこのウォークスルー または CentOS Linux VMのこのウォークスルー に。
ここ からvSphere Management Assistant(vMA)を見てください。私たちは、オフィスであなたがしようとしていることを行うために使用していますが、Smart-UPSがBack-UPSではなくUSB経由で接続されています。
(おそらく/一般的に)可能ですが、バッテリー電源でのコンピューターの自動シャットダウンはお勧めしません。それを行う場合は、最も実用的な目的と目的のために、バッテリでバックアップされたUPSの費用を節約し、停電によってマシンがシャットダウンされるようにする必要があります。 (当然のことながら、完全なシャットダウンは停電よりも常に望ましいですが、給電を失ったときにすべてのものを自動的にシャットダウンした場合、バッテリー時間が数分を超えるという点で見落としているようです。 )
私が常に対処してきた方法は、電源が落ちたときに監視にSAにアラートを通知することです。これにより、SAは灰色の問題を使用して、サーバーをシャットダウンするタイミングを決定できます。短時間の停止の場合は、サーバーをシャットダウンすることはまったくお勧めできません。または、一部のサーバーをできるだけ長く稼働させておき、バッテリーがなくなる前にのみシャットダウンすることもできます。私にとっては、単純なルールよりも人間に適した意思決定タスクのように思えます。
ベアメタルインストールの昔、APC PowerChute Plusは私のインストールプロセスの不可欠な部分でした。単純なシリアル信号ケーブルと Red Hatのみのバイナリ を使用すると、ローカルに接続されたサーバーを管理するルールを簡単に設定できました。 UPCバッテリーイベント、ライン電源イベント、シャットダウンアクションの基本的な電子メール通知が利用可能でした:
POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:
UPS on battery: Blackout 000.0 V.
そして
POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:
Normal power restored: UPS on line.
または
POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:
Shutdown started.
さらに、何が起こっているのかを確認するための合理的なインターフェース...
そのソフトウェアは最終的に商用化されました(またはAPC Webサイトに埋め込まれました)。同様の何かを提供するためにいくつかのオープンソースのアプローチがありました。しかし、これはすべて、単一のVMWare ESXiホストでは複雑になります。
これは、VMWareがベースハイパーバイザーに組み込む必要があるもののようです。これは基本的なものであり、ユーザーに適切なレベルの保護を提供できます。私が今目にする最も一般的な救済策は、専用VMへのUSBパススルー、ネットワークデーモンアプローチ、または私が行うことです。自動シャットダウンまたはバッテリーシャットダウンを設定しない...
確かに、私は通常、システム負荷を1時間以上サポートできるUPSを使用しますが、長時間の停止が発生します。たぶん代替案は、いくつかの低コストまたは再生されたネットワークインターフェイスカードを収集し、少なくともSmartUPSデバイスを購入することを計画することです...
私はMrMajestykソリューションを使用し、rsa公開鍵を使用したパスワードなしのsshアクセスでplinkを介したsshアクセスのみを変更しました。 apcupsd VMで生成されたrsaキーは、VMwareホストの/ etc/ssh/keys-root/authorized_keysに含まれている必要があります。
次のリンクをチェックしてください 。最もエレガントなソリューションではありませんが、非常に実用的で非常に簡単なソリューションです。セキュリティの点で考えられる欠点があります(特定のネットワーク設計、ホストにロードされたゲスト、およびそれらのゲストに対するユーザーのアクセス権によって異なりますが、その呼び出しを行うことができます)。