▼特別企画
UPSを利用した電源対策

Linuxに限らず,OSにとって最もシステム自体にダメージを与えてしまうのが突然の電源断だ。ファイルが壊れてしまうと,最悪の場合起動すらしなくなってしまう可能性がある。近年のOSは,ファイルの読み書きをキャッシュしてバックグラウンドで処理しているため,正しい終了プロセスをせずに突然電源をオフすることは避けたい。
だからこそLinuxを利用する場合には,電源をオフにする際,shutdownコマンドなどを使い正しく電源オフ(シャットダウン)させることが必須なわけだ。しかし,停電などによる突然の電源断はこの方法では防ぐことができない。
停電などによる突然の電源断に備えるのがUPS(Uninterruptible Power Supply:無停電電源装置)だ。無停電電源装置を利用すれば,搭載されているバッテリによって通電ができ,停電時でもしばらくの間コンピュータを動かしておける


UPSによる自動シャットダウン

 不意の電源断を防止するためには,無停電電源装置(UPS)を利用するのが効果的だ。一見難しい仕組みになるかと思われるかもしれないが,さして難しくはない。コンピュータの電源ケーブルを直接コンセントに接続するのではなく,UPSを通じて接続すればよいだけだ。

 しかしバッテリによる通電は,当然ながら永続的ではない。数分間の停電に備えるだけならばよいが,数時間に渡る停電の場合にはバッテリが空になれば通電停止してしまう。そこでこの問題を回避するために,一般的にはUPSと利用するコンピュータとをシリアルケーブルなどで接続し,コンピュータ側でUPSの電源状態を知ることが機能の一部になっている(Fig.1)。

 利用するUPSの機種にもよるが,Fig.1のように接続した場合コンピュータ上からは「商用電源での動作かバッテリ動作か」,「バッテリの残量がどのぐらいか」などを知ることができる。コンピュータ上でUPSの状態を監視し,「バッテリ動作になったならば何分後にシャットダウンする」,「バッテリの残量が10%を下回ったならばシャットダウンする」などの設定にしておくとよい。

 このようにすれば,停電時でもバッテリが空になる前に安全にコンピュータをシャットダウンできるのだ。

One Point!

近年の電源事情から考えると,多くの場合停電は数分程度であるし,家庭内では停電というよりむしろブレーカーが落ちてしまったために電源が止まってしまうというケースのほうが多いだろう。よってバッテリは数分間持続できれば十分といえる。しかし,ビル内では定期的な法定点検があるため,点検のために数時間に渡って停電することも珍しくない。オフィスビルにコンピュータを設置する場合には,UPSとコンピュータとを接続し安全にシャットダウンする機構は必須といえるだろう。


UPSの選定

 基本的にUPSを選ぶ場合には,希望するバッテリの容量(すなわちバッテリの持続時間)と価格との兼ね合いから機種を選定することになる。さらに,Fig.1に示したようにコンピュータとUPSとを接続し,バッテリ動作への切り替え感知や残量を把握するためには,利用するOSに対応しているUPS製品を選ぶ必要があるのだ。

 今回は,次に挙げる価格が比較的手頃なAPC社BK 500を選択してみた(Photo.1)。

 BK 500には,コンピュータと接続するためのシリアルケーブルが付属されている。付属のシリアルケーブルを利用してコンピュータとの接続することになる(Photo.2)。

One Point!

BK 500は正式にはLinuxをサポートしていない。詳細は後述する。



One Point!

BK 500と同等製品として,バッテリ容量が小さく安価なBK 350というモデルもある。しかし,BK 350には、シリアルケーブルは付属しないため,シリアルケーブルを別途購入するとBK 500とほぼ同じ価格になってしまう。前もってシリアルケーブルを使った自動シャットダウンを実現するのであればBK 500のほうをおすすめする。


APCUPSD

 さてここからが本題だ。UPSのバッテリ状態を監視するためには,前述のようにUPSの制御ソフトをインストールしなければならない。Linuxの場合には,UPSの制御ソフトをデーモンとして動作させることで状態を常に監視し,バッテリ状態に切り替わったり,残量が少なくなった場合にはシャットダウンさせる設定が必要だ。

 無停電電源装置を販売するAPCは,同社のUPS用にPowerChute plusと呼ばれるソフトウェアを提供している。しかし,残念なことにPowerChute plusは同社のSmart-UPSと呼ぶシリーズしかサポートされてなく,今回挙げるBK 500も含まれていない。そこで,別途何らかのUPS制御用のソフトが必要となる。APC製以外のUPSでも利用できる手段としても参考になるようあえてBK 500を取りあげ,ここでは次のような選択を行った。

 UPSを制御するソフトは幾つかあるが,比較的広く使われているのがフリーソフトのAPCUPSDだ。APCUPSDは,APC社のほとんどのUPS製品をサポートするUPS監視デーモンである。このAPCUPSDは,Linuxだけでなく,FreeBSDやWindowsもサポートされている。

 さらに,ネットワークを通じてほかのコンピュータにバックアップ電源の状態を伝えることもできる。このため,1台のUPSに複数台のコンピュータを接続している場合でも,1台がUPSとをシリアルケーブルで接続されていれば,残るコンピュータへはネットワーク経由でバッテリ状態を伝えることが可能だ(Fig.2)。

APCUPSDをインストールする

 それではAPCUPSDをインストールする手順を追っていこう。APCUPSDのFTPサイトからダウンロードが可能だ。

 配布形態としては,RPMパッケージTARパッケージWindows版の3種類が用意されている。Red Hat Linuxで利用するのであれば,RPMパッケージを利用するのが容易だ。

 原稿執筆時点ではバージョン3.8.5が最新版となっている。このRPMパッケージは,ftp://ftp.apcupsd.org/pub/apcupsd/stable
/rpm/3.8.5/RH
に置かれている。このディレクトリには,幾つかのファイルがあるが,Red Hat Linux 7.2であれば,apcupsd-3.8.5-1.i386.RH7.1.rpmファイルを利用すればよい。

 apcupsd-3.8.5-1.i386.RH.7.1.rpmファイルをダウンロードしたならば、次のようにrpmコマンドを実行することでインストールできる。

rpm -i apcupsd-3.8.5-1.i386.RH7.1.rpm

 インストール後は,以下に示すファイル群がコピーされる。

ファイルまたはディレクトリ名

解説

/etc/apcupsdディレクトリ

APCUPSDの各種設定ファイル

/sbin/apcaccess

apcupsdからUPSの状態を取得し,そのステータスを表示するプログラム

/sbin/apcnisd

ネットワーク経由でほかのコンピュータにUPSの状態を伝えるデーモン

/etc/rc.d/init.d/apcupsd

APCUPSDを起動したり停止したりするためのスクリプト

/sbin/apctest

APCUPSDの動作を確認するためのバイナリプログラム

/sbin/apcupsd

APCUPSDの本体。デーモンとして起動させる

/usr/share/doc/apcupsd-3.8.5ディレクトリ

APCUPSDのドキュメント類


One Point!

上記以外にも幾つかのファイルがコピーされる。全ファイルの一覧は,“rpm -qlp RPMパッケージ名”で参照が可能だ。正確なコピー先およびコピーされるファイルは,念のため各自確認しておいてほしい。


      | 1 2 3 4 | 次のページ