2019/07/03 15:40 コメント欄にてご指摘いただいたので
WinNUTへのリンクの修正と権限設定に関して追記しました。



この記事はQNAPから発売しているNASシステム「TurboNAS TS-469 Pro」を購入したNaotenが、
NAS導入に関して奮闘する記録を綴ったものである。

NASとはNetwork Attached Storageの略で、
直訳するとネットワーク接続ストレージとなる。

外付けHDDとの違いは、
外付けHDDの様に接続されたPCが起動していなくても
ネットワークにつながっているので多数のPCからアクセスする事が出来る点や、
データ保護の観点から高い堅牢性を誇る。

Vol.03となる今回は、
ファイルサーバとしての記事を書く予定でしたが、
その前に設定しておくべきUPS(無停電電源装置)と、
TS-469Proの機能の一つであるポートトランキングでハマッてしまった罠に関して記事を書きます。

(以下、追記へ。)

 
まずはUPSについて。

UPSとはUninterruptible Power Supplyの略で、
無停電電源装置を意味する。

無停電電源装置、と聞いてもさっぱり意味がわからないが、
要は停電時に有線電源からの電力が停止した際に作動する電源装置である。

evtmreal.gif
イメージ。

今回Naotenが購入したのはこちら。

CP_CR1200.jpg
CyberPower Backup CR 1200 CP1200SW JP。1200VA、720Wまでをサポート。サイズのわりに重い。


こちらの機種は正弦波と言う電力の出力形式であり、
最近流行りのPFC(力率改善回路内蔵電源)のPCの電源としても信頼性が高い。
UPSの背面にはコンセントの差込口が多数あり、
停電時、そこから電力が供給される、と言う仕組みである。


よし!早速、つなげてみよう!!
っと思った時、ふとした落とし穴に気づいたのである。

それはUPSからの信号は一箇所にしか送信できない、
と言う事である。

信号?なにそれ?電源取るだけじゃ駄目なの?
っと思う方も居ると思われる。

しかし、UPSの電力は無限ではない。
電力を使いきってしまえばその時、接続された機器は電源断となってしまう。

TVやスピーカーはそれでも良いかもしれないが、
ではPCはどうだろうか?
しかももしそのPCがNaoten不在で作業中だったら??

それではUPSはただ問題を先延ばししただけである。

そこでUPSには停電した際に電力を供給する機能の他に、
接続した機器に

 「おい!停電してるぜ!!俺も長くねぇ!!」

と告げる機能も備えているのである。

この通知を受け取ったPCは作業を中断、もしくは保存し、
安全にPCをシャットダウンするのである。


しかしその通知をするのがUSB1本だけなのである。


え?NASに繋げるんでしょう?
その1本で足りるじゃん?

っと言うご意見も至極もっともなのですが、
今回、NaotenはNASの他に常時起動している録画PCも接続しようと考え、
大容量で正弦波に対応したUPSを購入しました。
(もしNASだけで良いのであれば6千円くらいの安価な選択肢もあった。)

諦めるのか?
否、答えは否です。















安西先生



Naotenが注目したのはネットワークUPS機能である。

イメージはこれ。


ups-ts-img.jpg
バッファローから画像を拝借したのでテラステーションとか書いてあるのはご愛嬌。

UPSと直接接続した端末が電源断通知を受け取った場合、
LANを経由して同様の通知を他のPCに送る。

こうする事により、UPSからは直接繋げる端末が1台だとしても、
複数の端末を終了処理出来る。

便宜上、UPSと直接つながっている端末をUPSネットワークマスター、
LANごしにUPSネットワークマスターとつながっている端末をUPSネットワークスレーブと呼称する。

まず、録画サーバーとNASのどちらをUPSネットワークマスターにするかと考えた時、
確実性の部分でNASにしようと考えた。

理由は録画サーバーは録画が無い日に終了したり再起動する事がある点、
よりデータの重要性はNASである点だ。

UPSネットワークマスターと、UPSネットワークスレーブ、
それと忘れずにLANのHUBの電源をUPSに接続しよう。
(通知はLANを経由するので停電でHUBの電源が落ちると通知が届かない。)

またUPSのUSBをNASに接続するのも忘れずに。
NASの管理画面にはUPSがきちんと認識された様だ。


UPS01.jpg
NAS管理ツールの外部デバイス→UPS設定。

UPS02.jpg
接続されたUPSの情報。こう言った情報もUSB経由で渡される。

続いてUPSサポートを有効にし、電源断の時の振る舞いを選択する。

UPS04.jpg
上が指定時間後シャットダウン。
下が指定時間後、待機モードに移行、通常電源が回復するとNASも再起動する設定。


最後にネットワークUPSサポートを有効にするにチェックを入れ、
IPアドレス1に
UPSネットワークスレーブに設定したい端末のIPを記入する。

UPS03.jpg


ここまでの設定で、UPSとNAS間の停電時の設定は完了した。
適用ボタンを押して、設定を反映する。


続いて停電時に通知を送りたいPCを起動する。

そのPCにWinNUTと言うソフトをインストールする。
(→ダウンロードはこちらから。)

インストール後、起動した画面が以下。



WinNUT01.jpg


Use Timed Shutdownにチェックを入れ、
PCがシャットダウンするまでの秒数を入力する。

WinNUT04.jpg
画像の例では600秒。つまり10分後。Forcedは「強制終了」を意味する。


で、続いて右上にあるEDITボタンを押す。
するとメモ帳かなんかでテキストファイルが表示されるはず。

こんなの↓が。

# Network UPS Tools: example upsmon configuration
#
# This file contains passwords, so keep it secure.

############################################################################
# WinNUT Users
#===============
# I've tried to remove most of the configuration options that don't apply
# when running under windows. Other than those options, the file is the
# same as unix file. And if you have the extra options in this file, it
# shouldn't really cause any problems
#
#

# --------------------------------------------------------------------------
# MONITOR ("master"|"slave")
#
# List systems you want to monitor. Not all of these may supply power
# to the system running upsmon, but if you want to watch it, it has to
# be in this section.
#
# You must have at least one of these declared.
#
# is a UPS identifier in the form @[:]
# like localhost, su700@mybox, etc.
#
# Examples:
#
# - "su700@mybox" means a UPS called "su700" on a system called "mybox"
#
# - "fenton@bigbox:5678" is a UPS called "fenton" on a system called
# "bigbox" which runs upsd on port "5678".
#
# The UPS names like "su700" and "fenton" are set in your ups.conf
# in [brackets] which identify a section for a particular driver.
#
# If the ups.conf on host "doghouse" has a section called "snoopy", the
# identifier for it would be "snoopy@doghouse".
#
# is an integer - the number of power supplies that this UPS
# feeds on this system. Most computers only have one power supply, so this
# is normally set to 1. You need a pretty big or special box to have any
# other value here.
#
# You can also set this to 0 for a system that doesn't supply any power,
# but you still want to monitor. Use this when you want to hear about
# changes for a given UPS without shutting down when it goes critical,
# unless is 0.
#
# and must match an entry in that system's
# upsd.users. If your username is "monmaster" and your password is
# "blah", the upsd.users would look like this:
#
# [monmaster]
# password = blah
# allowfrom = (whatever applies to this host)
# upsmon master (or slave)
#
# "master" means this system will shutdown last, allowing the slaves
# time to shutdown first.
#
# "slave" means this system shuts down immediately when power goes critical.
# WinNUT users: WinNUT should always be a slave since we're not the machine
# talking directly to the ups
#
# Examples:
#
# MONITOR myups@bigserver 1 monmaster blah master
# MONITOR su700@server.example.com 1 upsmon secretpass slave

# --------------------------------------------------------------------------
# MINSUPPLIES
#
# Give the number of power supplies that must be receiving power to keep
# this system running. Most systems have one power supply, so you would
# put "1" in this field.
#
# Large/expensive server type systems usually have more, and can run with
# a few missing. The HP NetServer LH4 can run with 2 out of 4, for example,
# so you'd set that to 2. The idea is to keep the box running as long
# as possible, right?
#
# Obviously you have to put the redundant supplies on different UPS circuits
# for this to make sense! See big-servers.txt in the docs subdirectory
# for more information and ideas on how to use this feature.

MINSUPPLIES 1

# --------------------------------------------------------------------------
# NOTIFYCMD
#
# upsmon calls this to send messages when things happen
#
# This command is called with the full text of the message as one argument.
# The environment string NOTIFYTYPE will contain the type string of
# whatever caused this event to happen.
#
# Note that this is only called for NOTIFY events that have EXEC set with
# NOTIFYFLAG. See NOTIFYFLAG below for more details.
#
# Making this some sort of shell script might not be a bad idea. For more
# information and ideas, see pager.txt in the docs directory.
#
# Example:
# NOTIFYCMD /usr/local/ups/bin/notifyme
# WinNUT users: use the alertPopup.exe found in WinNUT binary distribution
# IMPORTANT NOTE!!!! Backslashes are now escape characters, you must
# now use \\ in the path to get a backslash char.
# Windows Example:
NOTIFYCMD "c:\\Program Files\\WinNUT\\alertPopup.exe"

# --------------------------------------------------------------------------
# POLLFREQ
#
# Polling frequency for normal activities, measured in seconds.
#
# Adjust this to keep upsmon from flooding your network, but don't make
# it too high or it may miss certain short-lived power events.

POLLFREQ 5

# --------------------------------------------------------------------------
# POLLFREQALERT
#
# Polling frequency in seconds while UPS on battery.
#
# You can make this number lower than POLLFREQ, which will make updates
# faster when any UPS is running on battery. This is a good way to tune
# network load if you have a lot of these things running.
#
# The default is 5 seconds for both this and POLLFREQ.

POLLFREQALERT 5

# --------------------------------------------------------------------------
# HOSTSYNC - How long upsmon will wait before giving up on another upsmon
#
# The master upsmon process uses this number when waiting for slaves to
# disconnect once it has set the forced shutdown (FSD) flag. If they
# don't disconnect after this many seconds, it goes on without them.
#
# Similarly, upsmon slave processes wait up to this interval for the
# master upsmon to set FSD when a UPS they are monitoring goes critical -
# that is, on battery and low battery. If the master doesn't do its job,
# the slaves will shut down anyway to avoid damage to the file systems.
#
# This "wait for FSD" is done to avoid races where the status changes
# to critical and back between polls by the master.

HOSTSYNC 15

# --------------------------------------------------------------------------
# DEADTIME - Interval to wait before declaring a stale ups "dead"
#
# upsmon requires a UPS to provide status information every few seconds
# (see POLLFREQ and POLLFREQALERT) to keep things updated. If the status
# fetch fails, the UPS is marked stale. If it stays stale for more than
# DEADTIME seconds, the UPS is marked dead.
#
# A dead UPS that was last known to be on battery is assumed to have gone
# to a low battery condition. This may force a shutdown if it is providing
# a critical amount of power to your system.
#
# Note: DEADTIME should be a multiple of POLLFREQ and POLLFREQALERT.
# Otherwise you'll have "dead" UPSes simply because upsmon isn't polling
# them quickly enough. Rule of thumb: take the larger of the two
# POLLFREQ values, and multiply by 3.

DEADTIME 15

# --------------------------------------------------------------------------
# NOTIFYMSG - change messages sent by upsmon when certain events occur
#
# You can change the stock messages to something else if you like.
#
# NOTIFYMSG "message"
#
# NOTIFYMSG ONLINE "UPS %s is getting line power"
# NOTIFYMSG ONBATT "Someone pulled the plug on %s"
#
# Note that %s is replaced with the identifier of the UPS in question.
#
# Possible values for :
#
# ONLINE : UPS is back online
# ONBATT : UPS is on battery
# LOWBATT : UPS has a low battery (if also on battery, it's "critical")
# FSD : UPS is being shutdown by the master (FSD = "Forced Shutdown")
# COMMOK : Communications established with the UPS
# COMMBAD : Communications lost to the UPS
# SHUTDOWN : The system is being shutdown
# REPLBATT : The UPS battery is bad and needs to be replaced
# NOCOMM : A UPS is unavailable (can't be contacted for monitoring)

# --------------------------------------------------------------------------
# NOTIFYFLAG - change behavior of upsmon when NOTIFY events occur
#
# By default, upsmon sends walls (global messages to all logged in users)
# and writes to the syslog when things happen. You can change this.
#
# NOTIFYFLAG [+][+] ...
#
# NOTIFYFLAG ONLINE SYSLOG
# NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
#
# Possible values for the flags:
#
# SYSLOG - Write the message in the syslog
# WALL - Write the message to all users on the system
# EXEC - Execute NOTIFYCMD (see above) with the message
# IGNORE - Don't do anything
#
# If you use IGNORE, don't use any other flags on the same line.

# --------------------------------------------------------------------------
# RBWARNTIME - replace battery warning time in seconds
#
# upsmon will normally warn you about a battery that needs to be replaced
# every 43200 seconds, which is 12 hours. It does this by triggering a
# NOTIFY_REPLBATT which is then handled by the usual notify structure
# you've defined above.
#
# If this number is not to your liking, override it here.

RBWARNTIME 43200

# --------------------------------------------------------------------------
# NOCOMMWARNTIME - no communications warning time in seconds
#
# upsmon will let you know through the usual notify system if it can't
# talk to any of the UPS entries that are defined in this file. It will
# trigger a NOTIFY_NOCOMM by default every 300 seconds unless you
# change the interval with this directive.

NOCOMMWARNTIME 300

# --------------------------------------------------------------------------
# FINALDELAY - last sleep interval before shutting down the system
#
# On a master, upsmon will wait this long after sending the NOTIFY_SHUTDOWN
# before executing your SHUTDOWNCMD. If you need to do something in between
# those events, increase this number. Remember, at this point your UPS is
# almost depleted, so don't make this too high.
#
# Alternatively, you can set this very low so you don't wait around when
# it's time to shut down. Some UPSes don't give much warning for low
# battery and will require a value of 0 here for a safe shutdown.
#
# Note: If FINALDELAY on the slave is greater than HOSTSYNC on the master,
# the master will give up waiting for the slave to disconnect.
#
### WinNUT users - this was previously the ALERTTIME variable
#

FINALDELAY 5



そしたらその中の

# MONITOR myups@bigserver 1 monmaster blah master
# MONITOR su700@server.example.com 1 upsmon secretpass slave

の下あたりの空白行に

MONITOR qnapups@xxx.xxx.xxx.xxx:3493 1 aaaa bbbb slave

と入力する。

で、注意としては
xxx.xxx.xxx.xxxはUPSネットワークマスターのIPアドレス、
aaaaはNASの管理者権限のユーザーID、
bbbbはNASの管理者権限のパスワードにそれぞれ書き換える事。

ここまでやったらメモ帳を保存。

*注意
NASの管理者権限のIDとパスをテキストファイル上に書くと言う事は、
一定のセキュリティ上の危険性もあるので、自己責任でお願いいたします。
また、もしかしたらNAS上で権限のほぼ無い捨てユーザーを作成し、
同様のことも可能かも知れませんが試していません。
もし試した方がいらっしゃいましたらコメント頂けると助かります。


2019/07/03 15:40追記
コメント欄にて有用な情報を頂きましたので追記します。
鯖管の作業日誌さんの記事によれば
MONITORディレクティブには
/etc/config/ups/upsd.usersにて定義されている権限情報を記載すると良いとの事です。

ただ当記事は7年前のものとなっており、
当記事で掲載しているUPSは耐用期限を過ぎてしまい買い替えを検討している状況で
権限情報を切り替えての電源断テストが出来ず確かな事が書けません。
(その為、現在NASはファイルをバックアップする時のみ起動する運用となっています。)

大変恐縮ではございますが
鯖管の作業日誌さんの権限設定方法を参考にして頂ければ幸いです。


元の画面に戻ってApply and Start WinNUTボタンを押す。

すると監視プロセスが稼働し、StatusがNot Runningから
Running as Applicationに変更される。

WindowsNTやWindows2000だと、
Install As Serviceからサービスをインストールできるみたいだけれど、
そんなOS、なかなか現役で使ってる人居ないと思うので、
元となるプロセスのショートカットをスタートアップフォルダにでも突っ込んでおいて、
PCの再起動後もプロセスが走るようにしておく。

ちなみにプロセスを実行するexeは、
インストールフォルダ内にある「WinNUTUpsMon.exe」


WinNUT03.jpg
こいつのショートカットをスタートメニュー→プログラム→スタートアップフォルダに入れておけば、
Windowsが起動した際に、プロセスが自動起動する。


さて、それではここでUPSの電源を抜いてみよう。
設定がうまく行っていればWinNUTが電源断のアラートダイアログを表示し、
設定した時間待機した後、強盛シャットダウンするはずだ。
(あえてテストの為に60秒以下に設定すると解りやすいかも知れない。)

ここにたどり着くまで永かった…。
Naotenが調査した事が皆さんのお力になれば幸いです。


で、今回、やっちまった2つ目の事象。
それがNASのポートトランキング機能。


ある端末Aから400MbpsでNASにデータを読みに着ていたとする。
他の端末Bからも同様に400Mbpsだ。

しかしNASの回線も同様に400Mbpsしか出力がされないのであれば、
端末AとBは200Mbpsまで速度が落ちてしまう。

ポートトランキング機能と言うのは2本のLANケーブルを備えるTS-469Proが、
その2本を1本(IPも1つ)として利用する事により、
「速度も倍だぜ!!」になれる機能。

これには非常に期待していたのだけれど、
これに対応するにはHUBが
ポートトランキング機能(トランク機能とも言う)に対応して
いなければならなかったのである。

この機能を備えるHUBは最低でも2万円以上するのであった。

Naotenが2,000円台で購入したHUBにそんな機能がある訳もなく、
現在は2つのLANポートに別々のIPを割り当てて、
端末Aが既にアクセスしていたら
端末Bからはアクセスする際には別のIP経由で接続。

ってな具合で使っています(ーー;

これは大変誤算だったけれど、
今後、WEB経由のアクセスはどちらかのLANポートで専有して、
もう片方をローカルで専有しようと思っているので、
まぁ、問題ってほど問題では無いのだけれど、
一応、この機能に期待して買う方もいるかも知れないので今回、記事にいたしました。


そんな訳でダラダラと長文失礼しましたが、
UPS関連では相当苦労しましたので、
これが皆様の助力になれば幸いです。


よりよいネットライフを目指して。
それではまた!

 

コメント

通りすがりの名無し :

NASのユーザーアカウントの設定の箇所ですが、
QNAPの場合では、/etc/config/ups 配下、
upsd.usersに記載されている情報を用いるようです。

参考:Qnapに接続したUPSとの連携(WinNUT)
https://blogs.yahoo.co.jp/a_mackerel_manager/47615945.html


また、WinNUTの取得元ですが、リンクされているページが
動作していないため、下記の通り更新されたほうが良いかも
しれません。

https://code.google.com/archive/p/winnut/downloads

Naoten(ナオテン)Re: タイトルなし

◯通りすがりの名無しさん

有用な情報をありがとうございます。
頂いたコメントを元に、記事を修正しました。

> NASのユーザーアカウントの設定の箇所ですが、
> QNAPの場合では、/etc/config/ups 配下、
> upsd.usersに記載されている情報を用いるようです。

過去、記事を書いた時にテストした際は
正常に動作したと記憶していますが、
不完全な情報だった様で申し訳ありません。

ただ記事中にも書いた通り、
現在、自分自身で動作を確認出来る状況になく、
少々、投げっぱなしな訂正方法になっております事をご了承下さい(;´д⊂)


> また、WinNUTの取得元ですが、リンクされているページが
> 動作していないため、下記の通り更新されたほうが良いかも
> しれません。

リンク先を修正しました!

色々と助かりました!
ありがとうございました!

コメントを投稿
名前
タイトル
メール
URL
コメント
パスワード
管理者にだけ表示を許可する


トラックバック

この記事のトラックバックURL
 

この記事にトラックバックする (FC2 blog user only!)
 
この記事へのトラックバック


カレンダー
プルダウン 降順 昇順 年別

07月 | 2019年08月 | 09月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


カウンター
AMAZON
  ご入用の際は是非、こちらから!

記事検索フォーム
シリーズまとめ
アナログゲームライフロゴ
アナログゲームライフ
 ボードゲームやカードゲームを楽しく遊ぶ
 嗜好で至高な思考の日々。

艦これ戦記
艦これ戦記
 勝利を信じて戦った艦娘と提督、
 そして戦友(とも)達との物語。

MH3(トライ)冒険記
MH3(トライ)冒険記
 ココットの牙Naotenと、
 その仲間達の冒険の軌跡。

魔界通信(マカ通)
勇者のくせになまいきだ:3D
魔界通信(マカ通)

 破壊神様と私、こと魔王の
 愛と憎しみと酒と泪と男と女の物語。

Oblivion日記
Oblivion日記 (MANAの冒険)
 オブリビオンの世界から愛を込めて。
 冒険者MANAが綴るオリジナルの物語。

リンク
Sound Optimize
我が親友2x4氏のサイト。
ゲーム音楽等に使用するのにぴったりな楽曲を著作権フリーで使えるシリーズ、「Sword & Magic - 剣と魔法の世界」を展開中。
試聴も出来るので是非、サイトへ足をお運び下さい!また、氏のブログはディープな話題でいっぱい!
ブログはこちら→SineWaveに乗せてって
人気ページランキング