計画停電時の対策 SUSE (SLES11, SLES12,15) XEN/KVM 遮断マニュアル


商業ビルなど600V以上の電源契約の事業者は電気事業法により電源設備の検査が義務付けられており、オフィスビルでは年に1度は計画停電があります。もちろん、先日の胆振東部地震による、大規模ブランクアウトというような致命的な停電も実際あるのです。

UPSも付いているし、UPSが正しく機能すれば、通常は正しくシャットダウンします。そして商用電源が復活すれば、正常に起動することを期待したいものです。

期待すべき事は、設計通りにシステムの自動遮断、復電、サービスの再開が行われることです。

期待通りであればです。

しかしUPS の不具合や、電源投入のタイミングによっては自動起動できないシステムがあったり、思わぬトラブルがサーバーシステム以外にも存在します(実際、復電後、UPS が付いていない HUB が飛んで1フロア全滅というケースがありました)。計画停電の際、都合が良ければシステム管理者は現場に休日出勤でアテンドして経験を積み、不慮の停電の際の運用マニュアルを作っておきたいものです。

また、計画停電の現場にアテンドして UPS に任せて、実際の遮断/復電の際に、どの様な動きや不具合があるかを確認するチャンスです。そこで現実に問題となった場合のインシデントをまとめて、現実に起こりえるアン・アテンド状態でのサーバールームやITシステム全体の弱点を確認、対策を立てる良い機会になります。

ここでは、SUSE Linux 11,12,15 の XEN/KVM 環境での計画停電前の安全な手動でのシステム遮断、システム復帰のケースを考え、オペレーション手段をマニュアル化して、考えられる復電/復電後のトラブルやチェックポイントを確認します。


- X サーバーソフトウェア -

ベアメタルシステムのコンソールを使わないで、Windows 端末から movaXterm もしくは xlaunch X サーバーを使って、各ハイパーバイザーごとに仮想マシンマネージャを起動します。ベアメタルサーバーのコンソールは、ハイパーバイザーの遮断、起動の状態を確認するだけで、できるだけ使わない様にします。



ここでは mobaxterm Home Edition を使って説明しています。

-仮想マシンの安全な遮断-

全て CPU 装置と UPS の停電遮断機能が動作するかチェックして、「放っておいて動作をチェックする」のも一手段ですが、アテンドして停電前に、各システムを安全に遮断します。

Windows からの場合、上のMovaXterm の Session ボタンから、各ホストの IP アドレスを指定して root で接続します。

仮想マネージャ GUI を起動します。

# virt-manager &

もしくは

# yast2 &
 > Virtilization > Virtitual Machine Manager

local host Not Connected の行を右ボタンで "Connect"

計画停電時の対策 SUSE (SLES11, SLES12,15) XEN/KVM 遮断マニュアル_a0056607_09335997.jpg


Connect できたら、稼働中のVMを選んで、右ボタンから "Shut Down" > Shut Down" を選び、確認のダイアログに対して OK ボタンを押します。

計画停電時の対策 SUSE (SLES11, SLES12,15) XEN/KVM 遮断マニュアル_a0056607_09351673.jpg

この処理を各 VM 毎に行い、ハイパーバイザー上の仮想システムを遮断します。

それ以外の VM は、上で動作しているサービスにもよりますが、およそ数十秒~数分(2~3分)以内に遮断します。遮断中の状態は "Open" メニューを開いて仮想コンソールで確認してください。

各VMが正常に停止状態になる事を virt-manager か xm list, virsh list コマンドで確認します。

- 停止しない場合 -

※ Windows7系、Windows2008 系システムは仮想環境で正常に停止(電源OFF状態)にならない場合があります。その際は virt-manager > アクティブなVMを選び右ボタンから > "Open" で仮想VMのコンソールを開きます。 Windows が "シャットダウン中"の最後の状態で 30 秒以上経っても、電源 OFF 状態にならない場合は、仮想 OS が物理的な電源オフを待っている状態なので "Force Off" (destroy) を実行しても構いません。「これ幸い」とばかりに、 Windows Update が走っている場合があるので、要注意です。

Unix/Linux 系システムはサービスの内容によりますが数十秒から数分以内に正常に遮断します。何か異常があって、あるいはサービスによっては10分以上かかる場合もあります。やりたくないのですが Pause するか Force Off するしかありません(復電後が怖いですけど...)。焦らない事です。

※ Reset, Force Reset の二つの操作は行わないでください。再起動してしまいます。万が一、再起動を選んでしまった場合、正常に起動するまで待って、シャットダウンの操作をもう一度行ってください。

- コマンドラインでの操作 -

アテンドして、手動で操作する場合、覚えておくべきテキストコマンドラインです。リモートのテキストコンソールしか使えないケースや GUI が使えない環境ではこれらのコマンドラインツールを使います。

SUSE Linux (SLES) 11 の XEN 環境の場合

xm shutdown myvm .... myvm を正常シャットダウンします。
xm destroy myvm .... myvm を強制シャットダウン(電源OFFと同じ)します。
xm reboot myvm .... myvm を正常シャットダウンしてリブート(再起動)します。
xm create -f /etc/xen/vm/myvm .... myvm を指定された VM ファイルから起動します。
xm list .... リストされている vm の状態(動作中か、稼働中か)を表示します。
xm console myvm_or_vmID .... myvmmyvm(もしくは ID No.) のテキストコンソールに切り替えます。Windows では使えません。"Ctrl+]" キーでエスケープします。

SUSE Linux (SLES12, SLES15) の XEN/KVM 環境の場合

virsh shutdown myvm .... myvm を正常シャットダウンします。
virsh destroy myvm .... myvm を強制シャットダウン(電源OFFと同じ)します。
virsh reboot myvm .... myvm を正常シャットダウンしてリブート(再起動)します。
virsh create -f /etc/libvirt/qemmu/myvm.xml .... myvm を指定された VM.xml ファイルから起動します。
virsh list .... リストされている vm の状態(動作中か、稼働中か)を表示します。
virsh console myvm_or_vmID .... myvm(もしくは ID No.) のテキストコンソールに切り替えます。Windows では使えません。"Ctrl+]" キーでエスケープします。

virsh cosole コマンドが使えない場合は次の対策が必要です(VM の再起動が必要です)

KVM on SUSE Linux(SLES12) virsh console が起動/接続できない

Accessing the VM Guest via Console

- 自動起動の設定(共通) -

VM の自動起動は virt-manager の "Details" > "Boot options" にある "AutoStart" をチェックしておきます(KVM/XEN共通)。

計画停電時の対策 SUSE (SLES11, SLES12,15) XEN/KVM 遮断マニュアル_a0056607_09424510.jpg

SLES11 の XEN 環境では /etc/xen/auto に /etc/xen/vm/MyVm のシンボリックリンクが作成されます。

SLES12,15 KVM 環境では /etc/libvirt/qemu/autostart に MyVm.xmlのシンボリックリンクが作られます。

sles15:~ # ls /etc/libvirt/qemu/autostart/ -l
total 4
lrwxrwxrwx 1 root root 26 Feb  4 13:12 dns3.xml -> /etc/libvirt/qemu/dns3.xml
sles15:~ #

※ CD/DVD メディアから起動しないよう、CD/DVD 仮想ドライブは remove しておきます。もし CD/DVD 仮想ドライブがあり、ISO ファイルがマウントされている状態で、メディアファイル(install 用.ISO) を削除したり移動すると、仮想 VM は起動させることができません。

仮想 VM は、ハイパーバイザーが起動した後、一斉に起動します。各 VM の起動にそれぞれ遅延を入れたい場合、/etc/sysconfig/libvirt-guests START_DELAY 項目に遅延時間(秒)を設定します。デフォルトは 0 で AutoStart 指定の VM は同時起動です。

VM の起動順序の制御するパラメータは無いようです。

sles15:~ # cat /etc/sysconfig/libvirt-guests | grep DELAY
START_DELAY=0
sles15:~ #

Novell 時代の XEN の資料です。

Virtualization with SUSE Linux Enterprise 11 SP2 Lecture

- ハイパーバイザーの停止 -

ベアメタルハイパーバイザー SLES OS を停止( halt )します。

- 共通事項 -

- バックアップソフトウェア -

もちろん計画停電前には、重要なデータのバックアップを取ります。

バックアップが終わったらバックアップソフトウェアを停止させます。バックアップジョブが完了しているかを確認してください。バックアップジョブが走っている状態で、停電になると、どのような結果となるか想像がつきません。特に壊れやすいオートローダーには要注意です。計画停電がある場合、その時間帯に想定されるジョブは、サスペンド状態にしておくべきです。

Dell Software の NetVault の場合

# /etc/init.d/netvault stop

を実行します。

- ベアメタルハイパーバイザーの停止 -

# shutdown -h 0

でシャットダウンを開始します。正常に遮断しているかどうかの状態の確認は、リモートコンソールではなく、実コンソールで確認します。

正常に halt を実行した場合は、system halted ... の後、主電源が切れます。system halted .... の後、電源が切れない場合はメインスイッチで電源を落としてください。
また、

誤って halt ではなく Reboot を行った場合、 再起動してすぐの BIOS チェックのステージで電源を切ります。放置してしまい OS の起動ステージまで行った場合は、システムが完全に起動してから、再びVMの遮断から halt までの手続きを行ってください。時間がかかりますので要注意です。


- 考慮すべき事 -

- 一度に電源を入れない -

アンアテンドで復電してしまった場合、電源が一斉に入るため、UPS やフロアの電源ラインに一斉に負荷がかかります。できるだけ、コピーや複合機、エアコンと言った、電源容量の大きな装置は、アテンドできるなら事前に主電源を切っておくかコンセントを抜いておくべきでしょう。

ちょうど自宅でブレーカーが落ちた時、エアコンや電子レンジといった機器のコンセントを抜いてから、ブレーカーを上げるようなものです。

また、各ベアメタルサーバーのBIOSメニューの中に、復電後の電源 ON のディレイ(遅延)パラメータを設定できるものがあります。「松竹梅」の「竹クラス」以上のサーバーハードウェアにはこのディレィを設定できたり、復電後に自動的にランダムに遅延起動する機能があります。また、周辺機器(例えばテープのオートローダーやiSCSI SAN ストレージなど)にも起動に時間がかかるものがあるため、電源 ON のディレイタイマーが利用できるなら設定しておくべきです。ラック内のシステムにランダムに起動がかかるようにすれば、UPS や電源ラインに余計な負荷をかけずに復電作業ができます。

- 復電後の自動起動は正しく動作するか -

BIOS の設定状態によっては、停電後、電源ボタンを操作しないと復電できない設定のものがあります。アンアテンドで、停電してしまうと、これらの装置は実際に出向いてスイッチを押さなければなりません。「松竹梅」の「梅クラス」のハードウェアには良くある話です。インフラ経験の少ないソフトウェア専門の SIベンダーのサポートを受けているお客様で、その問題に悩んでいる方がいらっしゃいました。

また、私がテストで使っているような「梅以下」の安物ハードウェアでは、モニタの電源が入っいない、マウス、キーボードが付いていない、などで BIOSチェックで停止してしまうものがあります。

また SUSE の様に手堅いシステムでは、長時間安定運用しているため、fsck が行われていません。SLES11 までは ext3 なので、fsck します。大抵の場合、fsck してデータのチェックのシーケンスに入ります。ここも焦らずじっくり付き合う必要があります。

SLES12 以降はルートパーティションが BtrFS で、fsck はしないはずです。

- プリンタ、複合機 -

復電後、プリンタ、複合機と言った電力を食う周辺機器の主電源を投入します。この作業は分担として、利用者部門に任せても構わないかも知れません。計画停電と言っても、実際電源工事やビル点検の際に、作業が完全に終わらなくても復電してしまい、また急遽、主電源が切られる場合もあります。こうした起動後のチェックに時間がかかり物理的な動作をする機器は、物理動作をする部品が急に電源が切られて故障する場合もあります。

プリンタや複合機、Wifi のアクセスポイントなどで snmp 監視ができる機能が搭載されていれば、有効にすべきです。zabbix などの監視ツールのコンソールから snmpwalk を実行して、返事が返ってくればシステム管理者の側では問題なしと判断できます。物理的に故障していない事を祈ります。

snmpwalk でデバイスの snmp 状態を確認する


--
他にも、エレベータが使えないとか、電源が切られて、セキュリティ装置が動かず、サーバールームにカードで入れない。内線もつかえなければトイレすら使えない(!)と言った、システム以外に想定、憂慮すべきモンダイと言うものが、全館計画停電というイベントには含まれます。

停電、復電というプロセスは意外と想定外の現象が出てくるものです。実際にビル全館停電がある場合は、実際にアテンドして、停電を体験してみることも重要なのです。BCPプランの策定に役立つでしょう。

また、ビルメンテナンスの業者の担当者や関係者の間で携帯電話の番号を交換しあうことも重要です。トイレに閉じ込められて出られない、なんて笑って済む問題から、行きたいのにトイレに入れないと言ったもっと生理的にもっと深刻な問題まで、店子と業者との間で十分コミュニケーションをとる事も大事なのです。





--
SUSE, SLES, KVM, XEN, 仮想化, ハイパーバイザー, 計画停電, BCP, マニュアル






by islandcenter | 2018-10-17 09:47 | SUSE | Comments(0)