1か月ほど前に雇用主から購入したホームサーバー(HP Proliant ML310 G4)があります。サーバーはDebian Linuxを実行しており、私はそれをほぼすべてに使用しています。私のニーズはそれほど厳しいものではないので、これを行うことで逃げることができます。そのため、サーバーが常に高負荷になることはほとんどありません。このサーバーには、Sambaを介してネットワーク経由でファイルを共有するために使用するmdadmによって管理される2 TB RAID1アレイ(1つのホットスペア付き)があります。OSをアレイの一部ではない小さなハードドライブで実行しています。
小さな255ワットのUPSを介してサーバーに電力を供給しています。これは、サーバーがダウンすることなくわずかな電力変動に耐える必要があるためです。これは非常に重要です。突然のクリーンなシャットダウン(電源の低下または停電による)がRAIDアレイを台無しにする可能性があるためです。
停電が発生した場合、UPSには10〜15分の電力しかないと推定しています。もっとあるかもしれませんが、私は自動的に存在すると仮定したくありません。これは、数分以内の停電を乗り切るのに十分です。ただし、電源が数時間ダウンした場合、UPSの電源が落ちる前にサーバーが自動的に適切にシャットダウンする必要があります。これにより、こうした状況でRAIDの整合性が損なわれないようにすることが期待されます。
この種のことは、バッテリ電源で実行されているかどうかを判断するセンサーを内蔵したラップトップb / cでは簡単ですが、このサーバーはそうではありません(私の知る限り)。DSLモデムがルーターとは別の、異常なネットワーク設定があります。ルーターもUPS上にあります。これにより、ラップトップからSSHで接続し、電源障害が発生した場合にサーバーをシャットダウンできます。残念ながら、これは、私がそれをやろうとしているときにだけ機能します。介入するかどうかにかかわらず、常に機能するソリューションが必要です。
私のDSLモデムはUPSにないため、電源に障害が発生すると、他のすべてのモデムがダウンします。この問題を解決する方法についてアイデアがあるので、意図的にそのように設定しました。google.comまたは他の高トラフィック/高可用性サイトにpingを実行するスクリプトを書くことを考えていました。pingが正常に完了すると、サーバーは稼働し続けます。pingが失敗すると(モデムがオフになっているため)、スクリプトは電源がオフであると判断し、サーバーにシャットダウンするよう指示します。スクリプトをCronに追加し、5分ごとに実行します。これにより、UPSの電源が切れる前にサーバーがシャットダウンするのに十分な時間が与えられます。
スクリプトを作成する手間をかける前に、必要なことを行うより良い方法があるかどうかを知りたいと思います。助けてくれてありがとう。