お盆真っ盛り、みなさまいかがお過ごしでしょうか?
夏休みの方も多いと思いますが、もし停電が起きて、システムやIT機器が停止してしまったら、休日返上で今すぐ出勤せざるを得ないという方もいらっしゃるかもしれません。
せっかくのお休みなのに!!
そんなエンジニアの皆さんが安心して休日を満喫できるためにも、今日の記事を是非ご覧いただければと思います。

はじめに

弊社では以前「Mac miniを停電から守り、OSを安全にシャットダウンさせてみた!」というタイトルでブログを書きました。
https://www.amulet.co.jp/shop-blog/?p=6961
あれから5年、次々と季節もソフトウェアもOSも移り変わりましたが、今回は「安全にシャットダウンさせてみた! 〜Windows & Ubuntuバージョン〜」を執筆していきたいと思います。

経緯

落雷による停電、電源ケーブルに足を引っかけてコンセントが抜けてしまった、タコ足配線でつながった複数のパソコンを同時に立ち上げたら電力供給が不安定になり、電源が落ちて作成途中の資料が消し飛んでしまった、などなど、電源のトラブルは数え切れません…。

もしあのとき、突然停電しても、しばらくの間は電力供給してくれるUPSがあれば…!

そして、その間にきちんとした手順で安全にパソコンを停止することができたら
…!
また1から資料を作り直さずに済んだのに…!休日出勤しなくて済んだのに…!
あのあと徹夜で作業する羽目にならなかったのに…!
あんなことにならなかったのに…!

機器が安全に停止していれば、電源スイッチを入れれば何事もなかったかのように、いつもどおりに動作することができます。
しかし機器を安全に停止することができなかった場合、データの破損・消失や、ハードウェアの故障(そしてそれに伴う機器の買い替え費用やデータ復元にかかる膨大な手間など)を覚悟しなければなりません…。

こういった状況を防ぐため、弊社ではUPSの設置をおすすめしております。
(※「UPSってなに?」という方はこちらのページを参考にどうぞ)

UPSがあることの心強さや安心感を皆さんに知って頂きたく、今回はUPSを使ってパソコンを安全に停止させる方法をご紹介します。
さらに、UPSの性能を駆使して復電後の自動起動までチャレンジしました!

目次

今回の目標
機器構成
UPSの準備作業
パソコンの準備作業
実際にやってみた
結果と考察

今回の目標

今回の実験では、UPSに設定を施すことで以下の動作が正常に実行されるかどうか、検証していきます。

(1)UPSを設置して、突然停電が発生しても機器を強制終了させない
(2)停電発生後、機器が自動的に安全なシャットダウンを行う
(3)機器がシャットダウンしたあと、UPSも自動的に停止する
(4)復電後、UPSが再起動する
(5)UPS再起動後、自動的に機器も再起動する

この流れで動作してくれれば、誰もいない深夜に職場で停電が起きて機器類が止まったとしても、UPSが色々頑張ってくれるおかげで翌朝出勤したときにはいつもと変わらずに業務ができるわけです!

機器構成

機器一覧

まずは今回の実験で使用する機器をご紹介します。

(1)対象OS

前回はMacOSXでしたので今回は
・Windows10 Pro
・Ubuntu 20.04 LTS

以上、2つの最新OSを対象としました。

(2)安全に停止させたいパソコン

下記2台のアミュレット製パソコンにそれぞれOSをインストールし、UPSからリモートで安全に停止させます。

POWERSTEP VESA T3(小型デスクトップPC)にWindows10 Proをインストール

高さ36mm。薄い…!


POWERSTEP Cube(キューブ型PC)にUbuntu 20.04 LTSをインストール。

(3)UPS サンケン電気株式会社 SMU-HG751

(4)電源管理I/F(インターフェース)ボード FNA-03S

ネットワーク経由で、UPSと停止させるパソコンを通信させる装置です。これがあると停電時に安全に自動停止、そして復電後の自動起動の設定ができるのです。上記UPSに組み込みます。

ネットワーク構成

UPSに装着された電源管理I/Fボードと、安全に停止させたいパソコンを同じネットワークで接続します。

電源構成

1台のUPSに、停止させたいパソコンの電源ケーブルをつなぎます。

これで機材の準備はOKです!

UPSの準備作業

(1)電源管理I/Fボードの組み込み

UPSに電源管理I/Fボードを装着します。電源管理I/Fボードと安全に停止させたいパソコンとの間のネットワーク結線をします。

(2)シャットダウンシーケンスの作成

設定作業の前に「シャットダウンシーケンス」を決める必要があります。

★シャットダウンシーケンスとは?

UPSを取り扱う際によく出てくる言葉に、「シャットダウンシーケンス」というものがあります。これは、安全に停止(シャットダウン)させたいパソコンに対して、UPSが指令を出してからシャットダウンを実行するまでの一連のプロセスを指します。シャットダウンシーケンスは運用中のサービスやシステムの稼働状況を考慮して組み立てなくてはならず、個々の状況によって設定値が大きく異なることもあります。

シャットダウンシーケンスを組み立てるときに必要な情報例

●対象機器への通信方法
シリアルなのか、専用ソフトウェアを使うのか、ネットワーク経由なのか、などなど。今回の実験では、全てネットワーク経由で行います。 
●対象OS
●シャットダウン方法
専用ソフトウェアを使うのか、シャットダウンコマンドを実行するか、シェルスクリプトを実行するか、などなど。
●シャットダウンする際に必要な処理
バッチファイルやシェルスクリプトの実行など
●UPSから複数台電源供給されている場合は、シャットダウンの優先順位
などなど。

情報収集や整理がすこし手間に思えるかもしれませんが、突然電源が落ちてデータが全部飛んで、心が折れたあとの徹夜の作業に比べれば、このくらいなんてことありませんっ!

さて、必要な情報を整理したら、さっそくUPSに組み込んだ電源管理I/Fボードに、シャットダウンシーケンスを設定していきましょう。

(1)UPSに装着された電源管理I/FボードにWebブラウザでアクセスします。

https://192.168.10.100

↑工場出荷時のアドレスをブラウザのURLバーに入力してアクセスすると…

こんな感じの画面になります。

(2)シャットダウンシーケンス設定

画面の「停電シャットダウンシーケンス設定」をクリックします。

「接続方法:SSHv2ログイン」を選択し、先に決めたシャットダウンシーケンスの値を入力します。

(3)シャットダウンシーケンス動作確認

Webブラウザから停電シャットダウンシーケンスのテストを実行し、パソコンが停止したことを確認します。

停止させたいパソコンの準備作業

停止させたいパソコン側は、sshログイン復電後のOS自動起動の設定をします。

Windows10でのssh設定

はい、今回のメインディッシュ(?)であるWindowsでの手順です!!
Windows 10 バージョン1803から、OpenSSHクライアントおよびサーバ機能が組み込まれたそうです。
1803以前はWSL(Windows Subsystem for linux)を利用し、Linuxディストリビューションをインストールしないとsshログインができませんでした。
しかしバージョン1803からは、なんとOpenSSHサーバーのインストールと設定だけで、リモートからsshでWindowsマシンにログイン可能です!!便利〜!!
同様に、WindowsServer 2019 StandardでもOpenSSHクライアントおよびサーバ機能が組み込まれたそうです。

ここでは、Windows10で、OpenSSHサーバーを使うための手順を説明します。なお、ほぼ同様の手順でWindowsServer 2019 StandardでもOpenSSHサーバーの利用が可能です。

Windows10で、OpenSSHサーバーを使う。

(1)OpenSSHサーバーインストール

■リンク先:Windows Server 2019 および Windows 10 用 OpenSSH のインストール

Windows10に、OpenSSHサーバーをインストールします。
設定⇒アプリ⇒アプリと機能⇒オプション機能⇒機能の追加⇒OpenSSH サーバー選択⇒インストール

(2)OpenSSHサーバー設定

■リンク先:SSH サーバーの初期構成

OpenSSHサーバーを自動起動に設定します。
インストールが完了すると、サービス名「sshd」、表示名「OpenSSH SSH Server」でWindowsのサービスに登録されます。サービスのスタートアップを、「自動」にします。
あわせて、UPSからのsshログイン用アカウントを作成しておくのがおすすめです(もちろん、シャットダウン可能な権限でお願いします)。

(3)再起動

サービス起動は、下記コマンドで実行します。

Start-Service sshd

(4)動作確認  

別のパソコンから、sshログインができることを確認します。  
コマンドラインなら ssh ユーザー名@IPアドレス
グラフィカルな画面が良ければTera termなどのターミナルソフトからログインします。

ログインできたらシャットダウンコマンドを実行し、正常にシャットダウンすることを確認します。

復電後のOS自動起動設定

通常は電源供給が再開しても自動起動しませんが、BIOS/UEFIで自動的にOSが起動するよう設定を行います。
BIOS/UEFIの電源設定は、機種によって項目名や場所も異なるため、ここでは詳しい説明は省かせて頂きます。
ご自分で設定する際は、マニュアルを確認しながら進めてください。

実際にやってみた。

それでは準備が整ったので、疑似停電を発生させたあとにUPSとパソコンがどうなるか、復電後にちゃんと自動起動までできるのか、見ていきましょう。

稼働中のUPS。写真はラックマウントタイプのSMU-HG302

①停電発生
UPSの入力電源コンセントを抜いて、疑似停電を発生させます。(この状態を「UPS一次側入力電源断」と呼びます)

②停電が発生すると、UPSのブザーが鳴り始めます。

動画では電源ケーブルを抜いて、擬似的に停電を発生させています。

③パソコン停止
設定時間が経過すると、UPSからの命令を受けてパソコンが停止します。
停止したパソコンは、電源LEDが消えます。
この状態では、UPSからの電源供給はまだ続いていますので、パソコンの電源ボタンを押せば起動はします。ただしUPS側はカウントダウン中なので、何もせずそのまま時間経過を待ちます。

④UPS停止
さらに設定時間が経過するとUPSが停止します。UPSのLEDが全て消え、ブザーも止まり、UPSからの電源供給も停止します。

ここまでが、いわゆる「シャットダウンシーケンス」の設定に基づいた動作です。これより後は、復電時の動作になります。

⑤復電開始
UPSの入力電源コンセントを戻して、停電復旧(復電)させます。
約60秒ほど待つと、UPSのLEDが点灯し、UPSからの電源供給が再開されます。

⑥パソコン自動起動
UPSからの電源供給が始まるとすぐにパソコンの電源LEDが点灯しました。無事に自動起動に成功しました!    

結果と考察

結果

●今回対象とした2つのOSでは、停電発生を検知したUPSからネットワーク経由で安全に停止させることができました。

●復電時のOS自動起動は、2台のパソコンどちらでも、正常に起動することを確認できました。

考察

●上記結果から、夜間休日外出中など、設置場所に誰もいないときに停電が発生しても、UPSがあれば稼働中の機器も安全に停止することができることがわかります。

●さらに復電後にはOSが自動起動します。起動後は今までと変わらずに稼働してくれます。

●UPSからネットワーク経由で停止させる仕組みは単純なので、sshでのリモートログインに対応しているOSであれば、どれでもほぼ問題なく動作すると思われます。

●今回の方法であれば、シャットダウン用のソフトウェアを購入する必要がないのでコストを抑えられます。全てsshを使用しており、停止させたいパソコン同士で設定を共有できます。

●sshでのログインは、オリジナルのバッチファイルやシェルスクリプトの実行などもできるため、シャットダウンのタイミングを調整するといった自由度も高く、特殊な環境でも臨機応変に対応することができます。

●この自由度の高さを利用して、停電時におけるシャットダウンだけでなく遠隔地の無人施設で電源OFF・ONをリモート操作を行う電源管理ツールとしても利用可能です。

まとめ

色んな可能性を秘めたUPS。
せっかくならば停電時の予備電源としてだけでなく、復電後の自動起動の設定を加えたり、リモート操作で電源ON・OFFを行ったり、普段から電源管理ツールとして使用するなど、今まで以上に有効活用してみるのはいかがでしょうか?
UPSの性能をあますことなく発揮できれば、エンジニアの皆さんも機器やサーバの電源トラブルを心配することなく、心置きなく休日を満喫できますよ!

UPSを活用した電源管理にご興味ございましたらぜひ一度弊社担当までお問い合わせください!
活用事例などをご紹介せていただきます。

アミュレットのUPSソリューション
★自分にぴったりなUPSを調べる