サーバーをラックに搭載し、その冗長電源を2つのAPC Smart-UPS 3000 XLMに差し込みました。各UPSは2つの異なる主電源に接続されています。
Apcupsdの2つのインスタンスが実行されており、それぞれが独自のUPSに接続されています。どちらもUPSがバッテリーに接続されていることを検出でき、各UPSはサーバーのシャットダウンをトリガーできます。
質問は:1つのUPSだけがバッテリーを使い果たした場合にシャットダウンしない方法は?
注:Smart-UPS 3000 XLMには、ピアに接続してそのステータスを検出できる「電源同期」機能があります。しかし、そのうちの1つからプラグを抜くと、とにかくシャットダウン命令が送信されました。他のupsがダウンしているかどうかを「apcaccess」でチェックするようにシャットダウンスクリプトを変更することを考えています。これに関する経験をいただければ幸いです。
現在、2つのUPSのいずれかが停止すると、doshutdownイベントがトリガーされ、apccontrolを介してデフォルトのスクリプトが実行されます。 doshutdownスクリプトは、2番目のUPSがイベントに接続されていないため、それらを無視し、通常どおりシャットダウンを続行します。
doshutdownイベントをある程度接続するには、apcupsdの2つのインスタンスに特別にカスタマイズされた構成ファイルが必要です。違いは、イベントスクリプトを実行する必要のあるディレクトリにあります。
/etc/apcupsd/apcupsd.ups0.conf
の最初のアップの主なプロパティ
SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events
そしてups1については、/etc/apcupsd/apcupsd.ups1.conf
で
SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events
各scriptdirは、デフォルトスクリプトのコピーを取得する必要があります。
doshutdownスクリプトをカスタマイズします。このスクリプトは、マシンを直接シャットダウンしませんが、他のUPSがまだオンになっているか、シャットダウンモードになっているかを確認する必要があります。 。
doshutdownスクリプトの上部に、次のようなものを追加できます。
for ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
ups1の場合
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
ステータス99には特別な意味があり、進行中のアクションを停止するようにapccontrolに指示します。 5行は、他のUPS-down-fileが作成されているかどうかを確認します。 noの場合、ダウンファイルはダウンしているアップに対して作成され、終了します。 yesの場合、つまり他のUPSがダウンしている場合、このUPSもダウンしているため、スクリプトを続行してマシンをシャットダウンする必要があります。
ファイル/tmp/usp[01].is.down
は、ups [01]が現在ダウンしているかどうかを示します。
重要:apcupsdのinit.d開始スクリプトは、前のセッションで作成されている場合、これらのファイルを削除する必要があります。
rm -f /tmp/usp[01].is.down
最後に、上記で作成したディレクトリ/ etc/apcupsd/ups [01]には、apcupsdユーザー(またはインスタンスを実行している関連ユーザー)へのアクセス権を付与する必要があります。
chown -R apcupsd /etc/apcupsd/ups[01]
詳細なドキュメント をご覧ください。
edit/tmp/ups[01].is.down
の名前を修正しましたが、.is
がありませんでした。
NUTを見てください。これをうまく処理します。各UPSからの電源の数と必要な電源の数を定義します。 UPSに十分な電源がない限り、シャットダウンはトリガーされません。