isLandcenter 非番中

ブログトップ | ログイン

apcupsd の apctest にはバッテリーの Calibration 機能があります。キャリブレーションとは、"補正"の事です。

バッテリーは長期間使用していると性能が劣化します。そこで初期状態から数か月、数年経つ毎に劣化状態をテストしなければ、バッテリー運転の稼働可能な時間が変化します。また、システムに追加があると、当然負荷状態も変化します。

まぁ、スマートフォンも時々、完全放電させないと、正常なバッテリー残量が出てこないのと同じですね。

ということで、機器の追加、変更があった場合や定期的にスケジュールを決めてバッテリーをテストして、稼働可能な時間を補正するのが、キャリブレーション機能です。キャリブレーションチェックをして、実際にバッテリーの負荷と、稼働時間を修正する機能です。

SLES11sp3 での apcupsd と UPS の制御パラメータ


重要なポイントは二つ

1) 100 % 充電状態から実施すること

さもないと、正確な時間が判りません。

2) 年に1、2度は行う事。

やりすぎはバッテリーの寿命に影響します。かと言ってバッテリーそのものの劣化の判断をするには、ある程度キャリブレーションをしなければならないという事です。

個人的に他にキャリブレーションテストで指摘しておきたいのは

1) 放電するのでピーピー鳴ります。

あまり気持ちのいいものではないので、人が居ない時間帯に行うのがいいでしょう。私の様に、外部の業者が黙ってやってしまうとお客様に怒られます。

2) その他の商用電源に負荷が掛かっていない時間帯を選ぶ事。

キャリブレーション中は、当たり前ですが、UPSが作動するような、ブランクアウトやサージなどが起こらない時間帯を選ぶのがコツです。例えば古いビルで冬の早朝の出勤時間帯(みんなで電気ヒーターを使い始める)や、工場などで、ビジナスアワーのフル操業状態と深夜、休日では商用電源の状態が著しく変化します。工場などは下手をすると休日中に電圧が上がりすぎる場合があります。そうなるとUPS運転に切り替わる可能性があるので、そんな時間帯は避けることです。

という事で一番いいのは、ビジネスアワーを避けて、バッチ処理も終わる夜明け頃がベストですが、残念ながら apctest ではパラメータを指定して cron 実行という事はできない様です。結局、

「今日は大きなシステムイベントの予定がないな」

という日を選んで実行する事になります。特に、バッテリーに機器を追加したり変更したら、キャリブレーションテストを一度はすることをお勧めします。

キャリブレーションテストが終わったら、イベントのログを確認して、何分間バッテリー運転していたかを確認する事です。これで大体のUPSの稼働時間、負荷状態の余裕が見えてきます。

SUSE Linux の場合、apcupsd のデーモンを停止して行います。 apcupsd stop ではapctest は有効に動作しないので、プロセスを確認して、kill してから実行します。


sles11:~ # ps ax | grep apcups
13962 ? Ss 0:00 apcupsd start
13965 pts/11 S+ 0:00 grep apcups
sles11:~ # kill 13962 <--- apcupsd のプロセスを止める


sles11:~ # apctest


2015-05-08 11:19:10 apctest 3.14.4 (18 May 2008) suse
Checking configuration ...
Attached to driver: apcsmart
sharenet.type = DISABLE
cable.type = CUSTOM_SMART

You are using a SMART cable type, so I'm entering SMART test mode
mode.type = APCSMART_UPS
Setting up the port ...
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing Smart UPSes.
Please select the function you want to perform.

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 2 <---- キャリブレーションの開始

First ensure that we have a good link and
that the UPS is functionning normally.
Simulating UPSlinkCheck ...
Wrote: Y Got: SM
Attempting to use smart_poll() ...
Sent: Y Got: SM Good -- smart_poll() works!.

Checking estimated runtime ...
Current runtime is 35 minutes
Checking for battery level ...
Battery level is 100.0 -- OK

The battery calibration should automatically end
when the battery level drops below about 25, depending
on your UPS.

I can also optionally monitor the progress
and stop the calibration if it goes below 10. However,
in the case of a new battery this may prematurely end the
calibration loosing the effect.

Do you want me to stop the calibration
if the battery level goes too low? (y/n): y
 <--- バッテリー運転に切り替えるため確認


Sending Battery Calibration command. ...
UPS has initiated battery calibration.
Monitoring the calibration progress ...
To stop the calibration, enter a return.

Battery charge 100 <--- 現在 100%
Remaining runtime is 34 minutes
<--- とりあえず34分間の予定の模様
<-- この間UPSはピーピー鳴り始めます --

User input. Terminating calibration ...

Attempting to abort calibration ...
Response to abort request: OK
On battery 20 sec or 0m20s.

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 4 <--- モニターをしてみる

Monitoring the calibration progress ...
To stop the calibration, enter a return.

Battery Runtime Calibration terminated by UPS.
Checking estimated runtime ...
Remaining runtime is 35 minutes <--- ここでは 35 分間の予定

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 3
<-- やっぱりお客さんに怒られた。キャンセルしてみる


CAUTION! Don't use this command unless the UPS
is already doing a calibration.
Are you sure? (yes/no): yes <--- キャンセルの確認


Attempting to abort calibration ...
Response to abort request: OK

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 7 <--- 終了

2015-05-08 11:20:27 End apctest.

ログを見てみる

sles11:~ # tail /var/log/apcupsd.events
Fri May 08 11:18:36 JST 2015 apcupsd error shutdown completed
Fri May 08 11:18:52 JST 2015 apcupsd exiting, signal 15
Fri May 08 11:18:52 JST 2015 apcupsd shutdown succeeded
Fri May 08 11:19:07 JST 2015 apcupsd exiting, signal 15
Fri May 08 11:19:07 JST 2015 apcupsd shutdown succeeded
sles11:~ #


※とても重要 - apctest をする際は apcupsd を止めます。終わったら忘れずにデーモンを起動しましょう。

--
NetWare 版の PowerChute では、キャリブレーションを月に一度実行できるようなパラメータが
ありました。土日はシステムに何等かの変更をかけるようなイベントが予測されるので、火曜とか水曜の朝5時ごろに月イチに、まだ担当者が出勤してこない時間帯に、キャリブレーションを実行するように設定していました。

UPSは正常に動いている様に見えていても、キャリブレーションをかけると放電しますから、その後、普段負荷が掛かっていないバッテリーが見事に御臨終されている事もよくあります。

UPSは基本的に「壊れる」事で大事な機器を守る機能があるので、故障は嬉しい事ではなくても、壊れるものだと割り切る事も必要です。。

キャリブレーションで「バッテリーを壊してしまった」というより、もう寿命が来ているバッテリーが「壊れている」事を確認する作業でもあります。この後、赤ランプが付いて、バッテリーの交換だね、という事になりますから、キャリブレーションテストは数か月に一度はやっておくべき作業です。




by islandcenter | 2015-05-08 20:34 | SUSE | Comments(0)

APC-UPS を SUSE Enterprise Server で使うには - apcupsd

の続き(補足)です。

SLES11sp2 までは標準で apcupsd がサポートされていましたが、 Novell/SUSE の事業部門が分けられてからは openSUSE より apcupsd をダウンロード、インストールするようになりました。

http://software.opensuse.org より search ボックスから apcupsd を探し

a0056607_1551274.jpg


パッケージをダウンロードして yast でインストールするか、 1 Click インストールします。

SUSE で 1 Click インストールができない場合、YaSTにないメニューを追加

インストール後のUPSとの接続、起動、動作確認は上の記事を参考にしてください。


--
ここでは /etc/apcupsd/apcupsd.conf の UPS 制御パラメータについて説明します。ほとんどデフォルトでも問題はないと思いますが、それぞれの電源監視ポリシーに従ってポリシーを設定し直す必要がある場合があるかもしれません。

apcupsd のパラメータの抜粋

#
# ======== Configuration parameters used during power failures ==========
#

のセクション

# The ONBATTERYDELAY is the time in seconds from when a power failure
# is detected until we react to it with an onbattery event.
#
# 以下略、この数字は、商用電源が切れてから、実際に「あ、これは停電だな」と
# UPSが認識して、「じゃぁシャットダウンの準備を始めようか」と
# アクションを開始する時間(秒)です。
ONBATTERYDELAY 6

#
# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so
# the first that occurs will cause the initation of a shutdown.
#
# 以下略、この数値は%です。UPSの余力が5%を切った時にシャットダウンを開始する
# という意味です。-1 を設定すると、この数値は無効化されます。
BATTERYLEVEL 5


# If during a power failure, the remaining runtime in minutes
# (as calculated internally by the UPS) is below or equal to MINUTES,
# apcupsd, will initiate a system shutdown.
# ランタイム残を指定する(分)です。
# つまり実際には ONBATTERY 状態がデフォルトの6秒続くと、その3分後には
# シャットダウンの儀式が始まるということです。
MINUTES 3

# If during a power failure, the UPS has run on batteries for TIMEOUT
# many seconds or longer, apcupsd will initiate a system shutdown.
# A value of 0 disables this timer.
#
# 以下略、シャットダウンまでのタイムアウト、0はデフォルトで無効
# MINUTES パラメータで設定すべき数値で無効のままで問題はないはずです。
TIMEOUT 0

※補足:間違いのご指摘いただきました。
MINUTES は、残存バッテリー容量と消費電力から計算されるバッテリー切れまでの残存時間でシャットダウンのタイミングを指定します。つまり軽い負荷であれば、この設定で長時間、運用を続けられます。TIMEOUT が停電検出からの時間にあたります。

すなわち、残存余力が5分切ったらシャットダウン、しかし停電から10分経過するか、バッテリー残量が 10% を切ったら必ずシャットダウンする、という設定は
BATTERYLEVEL 10
MINUTES 5
TIMEOUT 600


という事だそうです。UPSのバッテリーの残量を調べるには定期的にキャリブレーションテストを行う必要もある、という事にもなります。

SUSE Linux: apcupsd のキャリブレーションチェック

補足ここまで

# 上の BATTERYLEVEL, MINUTE, TIMEOUT はシャットダウン時間を決める重要なポイントです。

# Time in seconds between annoying users to signoff prior to
# system shutdown. 0 disables.
# ユーザにサインアウトを促すメッセージの時間(その間中促し続ける)時間
ANNOY 300

# Initial delay after power failure before warning users to get
# off the system.
# ANNOY を開始する遅延時間、商用電源が Delay で切れたと判断して、警告を
# 発生させる遅延時間
ANNOYDELAY 60

# The condition which determines when users are prevented from
# logging in during a power failure.
# NOLOGON [ disable | timeout | percent | minutes | always ]
# 商用電源が切れてからユーザのサインインを許可するかどうか
NOLOGON disable

# If KILLDELAY is non-zero, apcupsd will continue running after a
# shutdown has been requested, and after the specified time in
# seconds attempt to kill the power. This is for use on systems
# where apcupsd cannot regain control after a shutdown.
# KILLDELAY 0 disables
# 通常0でいい。シャットダウンを開始してからデーモンが稼働し続ける時間
KILLDELAY 0


-Keyword-

SUSE Linux SLES APC-UPS apcupsd 設定 apcupsd.conf

追加情報はこちら
islandcenter.jp

by islandcenter | 2014-08-27 15:24 | SUSE | Comments(0)

APC-SmartUPS と Share UPS と 940-0024C ケーブルで接続します。このため UPS から直接ステータスを読み込んだり、UPS本体を制御することはありません。UPSからの電源異常の通知を受け取ってシャットダウンを行う機能のみ組み込みます。

/etc/apcupsd/apcupsd.conf は次の行を変更します。

UPSCABLE smart
UPSTYPE dumb
DEVICE /dev/ttyS0


# apcaccess status

またはブラウザで http://MyServer/cgi-bin/multimon.cgi

を開いてステータスを確認することができます。

Novell Suse Linux Enterprise Server, SLES11, APCUPSD, 0024C ケーブル

Visit Mysite
by islandcenter | 2010-09-01 14:01 | SUSE | Comments(0)

APC UPS は SLES10 では Not Support in Japan というふざけた形態です。おそらく APC Japan には自社製品に詳しくて日本語がしゃべれるヒトがいないからでしょうか?英語版やドイツ語では動いて、日本語環境ではサポートしてくれないようです。

ということで SLES10 には標準的なパッケージとして apcupsd が付属していますので、こちらを使いましょうということ。

このパッケージは、純正の APC の PCBE Linux Agent より30倍くらい賢いので、上手に使えば、DMZのスタンドアローンの環境や、インターネットへのむき出しの環境でも利用できるのでお勧めです。

apcupsd のインストール

YaST > System > Software Management から Filter > Package Groups を選び、 Hardware + UPS をクリックすると apcupsd パッケージが選択できます。チェックを入れて Accept するとインストールが開始されます。要求されたCDまたはDVDを用意してください。
a0056607_19112843.gif


起動

  パッケージのインストールができたら、 YaST > System > Runlevel を開き Expert Mode をチェックします。
 パッケージがインストールされている事を確認したら、 Runlevel 3, 5 でスタートするようにチェックし、Start/Stop/Refresh ボタンから Start させます。Running が Yes になれば起動完了です。


a0056607_19115927.gif


Smart ケーブル確認

  apcaccess status コマンドでUPSを確認します。 以下の例は、 Smart ケーブル(通称黒ケーブル)で UPS 本体背面のシリアルポートとサーバを直接接続した例です。

mysles-1:/etc/apcupsd # apcaccess status
APC : 001,051,1207
DATE : Thu Dec 27 17:39:20 JST 2007
HOSTNAME : mysles-1
RELEASE : 3.12.1
VERSION : 3.12.1 (06 January 2006) suse
UPSNAME : UPS_IDEN
CABLE : Custom Cable Smart
MODEL : Smart-UPS 3000 RM
UPSMODE : Stand Alone
STARTTIME: Thu Dec 27 17:04:00 JST 2007
STATUS : ONLINE
LINEV : 100.8 Volts
LOADPCT : 19.5 Percent Load Capacity
BCHARGE : 100.0 Percent
TIMELEFT : 44.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
MAXLINEV : 101.5 Volts
MINLINEV : 100.8 Volts
OUTPUTV : 100.8 Volts
SENSE : High
DWAKE : 000 Seconds
DSHUTD : 090 Seconds
DLOWBATT : 02 Minutes
LOTRANS : 092.0 Volts
HITRANS : 108.0 Volts
RETPCT : 000.0 Percent
ITEMP : 27.4 C Internal
ALARMDEL : 5 seconds
BATTV : 55.1 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT : 0 seconds
CUMONBATT: 0 seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI : 336
STATFLAG : 0x07000008 Status Flag
REG1 : 0x00 Register 1
REG2 : 0x00 Register 2
REG3 : 0x00 Register 3
MANDATE : 12/19/06
SERIALNO : JS0652005362
BATTDATE : 12/19/06
NOMOUTV : 100
NOMBATTV : 48.0
EXTBATTS : 0
FIRMWARE : 655.6.A
APCMODEL : FWA
END APC : Thu Dec 27 17:39:50 JST 2007


BackUPSの確認

 BackUPS(通称グレーケーブル)でAPC-UPSの増設拡張ボードとシリアル接続している場合は、 /etc/apcupsd/apcupsd.conf の UPSCABLE にケーブルの型番を追加設定します。

CPU側の D-SUB コネクタに型番が書いてあるので型番を確認してください。

# UPSCABLE
# Defines the type of cable connecting the UPS to your computer.
#
# Possible generic choices for are:
# simple, smart, ether, usb
#
# Or a specific cable model number may be used:
# 940-0119A, 940-0127A, 940-0128A, 940-0020B,
# 940-0020C, 940-0023A, 940-0024B, 940-0024C,
# 940-1524C, 940-0024G, 940-0095A, 940-0095B,
# 940-0095C, M-04-02-2000
#
#UPSCABLE smart <----- コメントアウト
UPSCABLE 940-0020B <----- Add This line

#UPSTYPE smartups <---- コメントアウト
UPSTYPE dumb <---- グレーケーブルでエクスパンダーカードにつないだ場合

BackUPSで動作している場合、 apcaccess status は次のように表示されます。

mysles-2:/etc/apcupsd # apcaccess status
APC : 001,013,0352
DATE : Fri Dec 28 10:55:57 JST 2007
HOSTNAME : mysles-2
RELEASE : 3.12.1
VERSION : 3.12.1 (06 January 2006) suse
UPSNAME : mysles-2
CABLE : APC Cable 940-0020B
MODEL : BackUPS
UPSMODE : Stand Alone
STARTTIME: Fri Dec 28 10:54:46 JST 2007
LINEFAIL : OK
BATTSTAT : OK
STATFLAG : 0x07000008 Status Flag
END APC : Fri Dec 28 10:55:57 JST 2007
mysles-2:/etc/apcupsd #


USB ケーブルでつながっている場合

usb の A コネクタを使って、APC Smart UPS の B コネクタにつなげる場合 apcupsd.conf は以下のように3行を変更します。

UPSCABLE usb
UPSTYPE usb
DEVICE 空欄


イベントの確認
  電源のイベントは /var/log/apcupsd.events に書き込まれます。

GUI
http://localhost/cgi-bin/multimon.cgi
からブラウザで開くことができます。

a0056607_1156312.gif


設定の変更などはここからではできません。

apctest

apctest は UPS のステータスをチェックしたりキャリブレーションテストを行うプログラムです。一旦 APCUPSD を停止させて実行します。

mysles-1:~ # /etc/init.d/apcupsd stop <--- 止めてから
Shutting down apcupsd power management done
mysles-1:~ # apctest <-- テストを起動


2014-08-26 13:47:25 apctest 3.14.4 (18 May 2008) suse
Checking configuration ...
Attached to driver: apcsmart
sharenet.type = DISABLE
cable.type = CUSTOM_SMART

You are using a SMART cable type, so I'm entering SMART test mode
mode.type = APCSMART_UPS
Setting up the port ...  <---- ちょっと待っててね。
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing Smart UPSes.
Please select the function you want to perform.

1) Query the UPS for all known values <-- 1) のUPSのクエリを実行
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 1

I am going to run through the series of queries of the UPS
that are used in initializing apcupsd.

Simulating UPSlinkCheck ...
Wrote: Y Got: SM
Attempting to use smart_poll() ...
Sent: Y Got: SM Good -- smart_poll() works!.

Going to ask for valid commands...
Protocol version is: 3
Alert characters are: !$%+?=#|
Command characters are: ^A^N^Z+-789>@ABCDEFGKLMNOPQRSUVWXYZ'abcefgjklmnopqrsuxyz~^M

Now running through apcupsd get_UPS capabilities().
NA indicates that the feature is Not Available

UPS Status: 08
Line quality: FF
Reason for last transfer to batteries: S
Self-Test Status: NO
Line Voltage: 100.7
Line Voltage Max: 100.7
Line Voltage Min: 099.4
Output Voltage: 100.7
Batt level percent: 099.0
Batt voltage: 55.05
UPS Load: 034.8
Line freq: 50.00
Runtime left: 0033
UPS Internal temp: 040.5
Dip switch settings: 00
Register 1: 00
Register 2: 00
Register 3: 00
Sensitivity: H
Wakeup delay: 000
Sleep delay: 180
Low transfer voltage: 090
High transfer voltage: 110
Batt charge for return: 00
Alarm status: 0
Low battery shutdown level: 05
UPS Name: UPS_IDEN
UPS Self test interval: 336
UPS manufacture date: 01/25/06
UPS serial number: QS0605110406
Date battery replaced: 01/25/06
Output voltage when on batteries: 100
Nominal battery voltage: 048
Percent humidity: NA
Ambient temperature: NA
Firmware revision: 92.15S.A
Number of external batteries installed: 000
Number of bad batteries installed: NA
UPS model as defined by UPS: OWA
UPS EPROM capabilities string: uD43132135138129uM43229234239224uA43110112114108uI43253264271280lD43103100097106lM43177172168182lA43090092081085lI43196188208204e44200155090oI43230240220225oD13115oJ13100oM13208s441HMLLq44202050710p443020180300600k4410TLNr443000060180300E443336168ON OFF
The EPROM string is 253 characters long!
Hours since last self test: NA

That is all for now.

1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) Quit

Select function number: 7 <-- 終了

2014-08-26 13:47:44 End apctest.

mysles-1:~ # /etc/init.d/apcupsd start <-- APCUPSD を再起動

その他
 その他の設定は /etc/apcupsd/apcupsd.conf を書き換えて、変更しますが、多くの場合、デフォルト値で十分と思われます。
マニュアルその他最新版の情報は

http://www.apcupsd.com

より入手できます。


APC純正の Power Chute Bussines Edition(PCBE) は Windows の管理用サーバを必要としますが、 apcupsd は管理用サーバも不要ですし、ネットワークシャットダウンやシリアルケーブルもサポートしているので、 SUSE Linux を APC-UPS で運用するには一番楽な方法でしょう。

追加、補足
SLES11sp3 での apcupsd と UPS の制御パラメータ

SUSE Linux: apcupsd のキャリブレーションチェック

一部のパッケージで apc-upsd が入っていない場合 opensuse の software.opensuse.org から1クリックインストールできます。
https://software.opensuse.org/package/apcupsd

[検索キーワード]
SLES SUSE apcupsd smart-ups back-ups APC UPS

isLandcenter.jp






by islandcenter | 2008-12-18 13:52 | SUSE | Comments(0)