投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2011年8月22日月曜日

【Linux CentOS 5.6】apcupsdを使って無停電電源(APC製)とLinuxとを連動させる準備

更新 2012年12月17日


apcupsdを使って無停電電源(Smart-UPS 1500)とLinuxシステムとを連動させるための準備を行った。

PCのシリアルポートとUPS(Smart-UPS 1500)との接続は専用シリアルケーブル(940-0024C)を用いた。
UPS型番に適合した専用ケーブルを使う必要がある。
(警告)
専用ケーブルを使わなければ大変なことになる。(パシャンという音とともにUPSが非常停止し電源が絶たれ、PCが落ちた!Smart-UPS 1500の場合

また別に、AP9619などのNetwork Management Cardと、apcupsdとの接続も試した。



◇使用したもの◇
・Linuxシステム CentOS 5.6 x86_64
・UPS連携ソフトウェア apcupsd release 3.14.8 (16 January 2010) - redhat
・無停電電源 APC Smart-UPS 1500
・専用ケーブル 940-0024C


◇設定した手順◇
設定の前に、専用ケーブルを使ってPCのシリアルポートとUPSとを接続しておく。
また、yum updateも行っておく。

■yumでapcupsdを導入する■

apcupsdは、rpmforgeリポジトリにあるため、rpmforgeリポジトリを使えるようにする。
[root@localhost ~]# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
[root@localhost ~]# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
apcupsdを、yumでインストールする。
[root@localhost ~]# yum install apcupsd
Total download size: 1.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): libXpm-3.5.5-3.x86_64.rpm                         |  44 kB     00:00
(2/4): pkgconfig-0.21-2.el5.x86_64.rpm                   |  61 kB     00:00
(3/4): gd-2.0.33-9.4.el5_4.2.x86_64.rpm                  | 155 kB     00:00
(4/4): apcupsd-3.14.8-1.el5.rf.x86_64.rpm                | 949 kB     00:06
--------------------------------------------------------------------------------
Total                                           150 kB/s | 1.2 MB     00:08
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : pkgconfig                                                1/4
  Installing     : libXpm                                                   2/4
  Installing     : gd                                                       3/4
  Installing     : apcupsd                                                  4/4
Installed:
  apcupsd.x86_64 0:3.14.8-1.el5.rf
Dependency Installed:
  gd.x86_64 0:2.0.33-9.4.el5_4.2             libXpm.x86_64 0:3.5.5-3
  pkgconfig.x86_64 1:0.21-2.el5

Complete!

■設定ファイル apcupsd.conf を変更する■

ポイントは次の三つである。

1、接続ケーブルの型番に応じて、UPSCABLE項目を設定する。
用意したSmart-UPS 1500専用ケーブルの型番は、940-0024Cであった。
この場合、UPSCABLE項目には、smartもしくは940-0024Cを設定する。
型番によってワイヤーマップは異なるので、専用のものを使う必要がある。 (参考) http://www.apcupsd.com/manual/manual.html


2、連携するUPSに応じて、UPSTYPE項目を設定する。 
今回使用したUPSはSmart-UPS 1500というもので、これは「Smart-UPS」シリーズである。
このシリーズでシリアル専用ケーブルを使う場合には、UPSTYPE項目に apcsmart を次のように設定する。

UPSTYPE apcsmart

正しい値を設定しなければ、apcupsdは起動させようとしてもUPSとの間のシリアル通信エラーのためにすぐに終了してしまう。
そのためapcaccessコマンドでUPSへ接続しようとしても、次のエラーが表示されるだけになる。
Error contacting apcupsd @ localhost:3551: Connection refused

このときのログには次のように記録されていた。シリアル通信ができずにapcupsdがすぐにシャットダウンしていることがわかる。
[root@localhost ~]# tail /var/log/apcupsd.events
2011-08-21 22:38:39 +0900  apcupsd FATAL ERROR in smartsetup.c at line 184
PANIC! Cannot communicate with UPS via serial port.
Please make sure the port specified on the DEVICE directive is correct,
and that your cable specification on the UPSCABLE directive is correct.
2011-08-21 22:38:39 +0900  apcupsd error shutdown completed


3、利用できるシリアルポートのデバイスファイル名を、DEVICEに設定する。
 Linuxシステムで利用できるシリアルポートのデバイスファイルを調べて、これをDEVICE項目に設定する。
この例では、/dev/ttyS0 であることがわかる。
[root@localhost ~]# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

三つのポイントを踏まえて、次のように設定ファイルを構成した。
三つの項目以外はデフォルトのままである。
[root@localhost ~]# vim /etc/apcupsd/apcupsd.conf

UPSCABLE smart
UPSTYPE apcsmart
DEVICE /dev/ttyS0
LOCKFILE /var/lock
SCRIPTDIR /etc/apcupsd
PWRFAILDIR /etc/apcupsd
NOLOGINDIR /etc
ONBATTERYDELAY 6
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0


◎ところで、Network Management Card AP9619などを用いる場合は、次のように設定する。

上記の必須3項目について、次のように置き換える。
UPSCABLE ether
UPSTYPE pcnet
DEVICE 192.168.1.2:apc:admin user phrase
ただし、AP9619 に設定されている情報は次の通り
IPアドレス・・・ 192.168.1.2
ユーザー名・・・ apc (※デフォルト)
パスワード・・・ admin user phrase (※デフォルト) apc ではないので注意

また、AP9619 のWEB GUIを用いて、「Add PowerChute® Clients」に、
apcupsdがAP9619との通信で用いるNICのIPアドレスを登録しておく必要がある。

(参考)
・PowerChute Network Shutdown Driver (PCNET)
< http://www.apcupsd.com/manual/manual.html#powerchute-network-shutdown-driver-pcnet >
2012年12月17日



■apcupsdを起動する■

今回、apcupsdはyumで導入しているので、serviceコマンドで起動可能である。
[root@localhost ~]# service apcupsd start
Starting UPS monitoring:                                   [  OK  ]
ログには、次のように記録される。
[root@localhost ~]# tail /var/log/apcupsd.events
2011-08-22 00:24:41 +0900  apcupsd exiting, signal 15
2011-08-22 00:24:41 +0900  apcupsd shutdown succeeded
2011-08-22 00:24:43 +0900  apcupsd 3.14.8 (16 January 2010) redhat startup succeeded


■UPSの状態確認を行ってみる■

次のコマンドで、UPSの状態を確認することができる。うまく表示されれば、接続は成功している。
[root@localhost ~]# apcaccess
APC      : 001,050,1213
DATE     : 2011-08-22 13:01:45 +0900
HOSTNAME : localhost.localdomain
VERSION  : 3.14.8 (16 January 2010) redhat
UPSNAME  : UPS_IDEN
CABLE    : Custom Cable Smart
MODEL    : Smart-UPS 1500
UPSMODE  : Stand Alone
STARTTIME: 2011-08-22 12:49:06 +0900
STATUS   : ONLINE
LINEV    : 100.8 Volts
LOADPCT  :  25.3 Percent Load Capacity
BCHARGE  : 100.0 Percent
TIMELEFT :  52.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 30 Seconds
MAXLINEV : 101.5 Volts
MINLINEV : 100.0 Volts
OUTPUTV  : 100.0 Volts
SENSE    : High
DWAKE    : 000 Seconds
DSHUTD   : 180 Seconds
DLOWBATT : 02 Minutes
LOTRANS  : 092.0 Volts
HITRANS  : 108.0 Volts
RETPCT   : 090.0 Percent
ITEMP    : 39.6 C Internal
ALARMDEL : 5 seconds
BATTV    : 27.1 Volts
<略>

とりあえず、UPSと、apcupsdとが接続できた。

(参考)
UPSを利用した電源対策 < http://www.itmedia.co.jp/help/howto/linux/ups/index.html > 2011/08/22

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad