サーバーを正しい順序で再起動するようにUPSを構成する方法は?


12

ここにはいくつかのサーバーがあり、ほとんどのサーバーには専用のUPSがあります。それらの間には依存関係があるため、正しい順序でオンにする必要があります。最終的に、電源に重大な問題が発生しているため、サーバーがシャットダウンされ、電源が回復するとランダムな順序で再起動されます。停電中にサーバーの電源がオフになった場合でも問題はありません。電源が復旧した後、人手を介さずにサーバーが正しく機能することが重要です。

UPSは非常に安価であり、私の目標に役立つ唯一の構成パラメーターはpower the load xx seconds after power is restoredです。理論上、各UPSに適切な遅延を設定することで、サーバーの再起動の順序を修正できますが、UPSが期待どおりに動作することを信頼していません。

それは正しい道ですか?
高レベルUPSには、再起動シーケンスを修正する他のオプションがありますか?
最後の注意点:Upsは1000-2200 VAの範囲です


1
これはsystemd、スタートアッププロセスで適切な依存関係を定義する機能によって提供される優れた機能の1つです。サービスXが利用可能になるまで待ってから、サービスYを開始して
ください。– MSalters

1
@MSalters AFAIK systemd依存関係管理は、ユニットが同じsystemdインスタンスによって処理される場合にのみ機能し、完全に異なるサーバーで実行されているサービスに対しては機能しません
...-HBruijn

1
@HBruijn:インスタンスのネットワークマウントは、サーバー間で機能します。つまり、server1がserver2によってホストされるファイルシステムをマウントする場合、マウントに依存するserve1のサービスは、server2がそれらのサービスを開始するまで一時停止します。また、IIRCでは、サーバーにDHCPを待機させることもできます(サーバーがDHCPを使用する理由を聞かないでください。ただし、回答で言及されています)
-MSalters

回答:


25

これに対する標準的な答えは「まったくない」です。ソフトウェアを修正して、再起動をランダムな順序で処理します。いくつかのサーバーを最初に起動する必要がある場合(例:Active Directory)、それらをUSVに配置します。低電力の原子ベースのサーバーはActive Directoryコントローラーとして十分であり、小さなUSVで1日生き残ります。

高レベルUPSには、再起動シーケンスを修正する他のオプションがありますか?

いいえ。一般的に、プログラマーは問題を適切に回避するのに十分な能力があると想定されています。

あなたがすべきことは:

  • サーバーを「ランダムに」起動させます。DHCP / Active Directoryを除き、修正できない順序を実際に要求するものはありません。
  • 一定時間(5分)後に制御サーバーを使用して、さまざまなマシンで正しい順序でサービスを開始します。

このタイプのセットアップはもっと一般的だと思います。私は、サーバーが特定の順序(純粋なインフラストラクチャの外部)で起動することを要求するソフトウェアは、壊れていてビジネスに適さないと呼びます。

ちょうど注意:私たち自身のセットアップは、ネットワークの「ルート」として機能するマシン(およびバックアップマシン)のスレーブ2000VA USVを備えた、サーバー用の低コスト20kva USV(使用したため低コスト)です。スレーブとは、USVが大きい方の後ろにあることを意味します。したがって、大きい方(コンピューティンググリッドのオンライン状態に応じて30分から8時間続く)が端末シャットダウンになったときにのみ、バッテリーに切り替わります。


2
私はこれは時々言うよりも簡単だと思います(あなたが言うように、ADは明白な例です)が、私は同意します。正しい解決策は、サーバーやサービスの開始順序などの依存関係を排除することです。それ以外の場合は、たとえば、Webアプリで「バックエンドに接続できない場合、ひどくクラッシュするのではなく、「スリープ」して後で再試行する」というコードを記述できるはずです。
ロブ・モア

ADの問題はADでさえありません-ほとんどがIPv4 DHCPであり、dhcpサーバーの前にコンピューターがオンラインになるように準備されていません。Ipv6がこれを処理します;)
TomTom

それは本当だ。IPv4は苦痛です...そして、私はまだここに「なぜこの新しいIPv6のごみ」に煩わされる必要があるのか​​と尋ねられます。
ロブ・モイア

1
「一般的にプログラマーは問題を回避するのに十分な能力があると想定されています」-プログラミングをあまりしてはいけません!いいえ、すべての深刻さにおいて、システムを特定の順序で起動する必要があるかもしれない膨大な理由があります。はい、ソフトウェアは「正常に失敗」し、切断された接続を再試行する必要がありますが、常に可能であるとは限りません。私が思い出すところから、素敵なPDUのいくつかは個々のポートを開始/停止する能力を持っているので、おそらくそこで何かができるでしょう。
SnakeDoc

1
「USV」を検索する必要があり、「無人水上車両」を見つけました。私はこれが間違っていることを知っていますが、正しいことを望んでいます。
Braiam

14

(UPSではなく)マネージドディストリビューションユニットは、多くの場合、電源が再開された後に個々のコンセントを有効にする際のカスタマイズされた遅延をサポートします。

通常、これは、電源が復旧した直後にシステムでいっぱいのキャビネットが同時に起動したときに回路ブレーカーがトリップするのを防ぐためですが、システムの依存関係の起動順序を維持するためにも使用できます。


ええ正しいです これは高度な機能であり、USVが実際にサーバーに接続されているとは想定されていませんが、PDUを使用して詳細を処理するラックに電力を供給しています。
トムトム

6

私はこの正確な問題を抱えていました。唯一の違いは、頑丈なラックマウント型APC電源ユニット(APC SmartUPS 3000など)に投資したことです)です。APC PowerChuteネットワークシャットダウンソフトウェア(PowerChute Network Shutdownソフトウェア)を使用すると、特定の順序でサーバーをシャットダウンおよび起動できます。ソフトウェアのもう1つの便利な機能は、サーバーを最後の最後にシャットダウンするように設定することでした。つまり、APCユニットのバッテリー残量を計算し、サーバーの電源を切るのではなく、適切にシャットダウンするのに十分な時間でサーバーをシャットダウンしました。

ソフトウェアは...ユーザーフレンドリーではありませんが、それを理解するのに時間がかかる場合は難しくありません。インフラストラクチャにもっと投資することに興味があるなら、これは間違いなく進むべき道です。


1
Apc Smart Upsもありますが、そのうちのいくつかは比較的古く、おそらくバッテリーが弱いです。それらは本番環境にあるため、いくつかのテストを行うことは困難です。異常な負荷が不足していることに加えて、問題なく突然の電源切断に耐えることができる負荷を意味します。それは、停電をシミュレートするたびに、UPSが予想とは異なる動作をするたびに、構成の誤りが原因である可能性がありますが、私の考えでは、これらのUPSの信頼性はあまり高くありません。
フィリッポ

@Filippoは確かにYMMVですが、PowerChuteソフトウェアを使用して3年間にわたって複数のサイトでSmartUPS 3000と3000XLMを混在させており、ソフトウェアを理解した後、確かに学習曲線があり、いくつかのテストが必要です、それはかなり堅実です。
ウィンスキーテック

2

UPSユニットは低コストで、電源が回復した後の特定の出力オン待機時間に設定できないようです(一部のハイエンドユニットはそうです)。同じ機能を得るには、特定のホストを選択して、常にすぐに電源をオンにし(おそらくどのシステムでもいつでも起動できるようにします)、他のすべてのサーバーを電源オフ状態のままにします(BIOSで電源に戻るように構成します) ACが適用されるとオフになり、Wake On Lanマジックパケットを尊重して、オンに指示されたときに電源がオンになります)。次に、起動するメインホストで、スクリプト/ユーティリティを実行して、各ホストへのWOLマジックパケットの送信のタイミングを計ります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.