さて、関東では電力不足の影響を受け、断続的な計画停電が実施されております。停電したりしなかったりとまだ運用が安定していない状態でITインフラ屋には頭の痛い事だと思います。
システム運用は自動化が当たり前ですが、運用の中で自動化しにくいのが「システムの完全停止と完全停止からの起動」だと思ってます。
どんな企業でもシステムを完全に停止する機会は平時であれば数年に一回の法定点検に伴う停電くらいしかないので、自動化されていないところがほとんどだと思います。
停止に関してはOSのタスクやcronを用いることで比較的簡単に自動停止させられますが、OSの自動起動はいざ実施しようとすると意外に難しく、ハードルが高くなります。
OSの自動起動が難しい要因として、
1.そもそもあまり実施する必要性がないので方法が一般化していない
2.起動時にサーバ間の依存関係を解決する必要がある
3.仮想化による複雑化
というのがあると思います。
今回はサーバの自動起動させる場合にちょっと使えるかもしれないOSの遅延起動方法について紹介します。
やり方は簡単で、OSのブートローダ―の設定を少し変更するだけです。
■Windowsの場合、c:\boot.ini を編集します。
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows .NET Standard Server" /fastdetect↓
[boot loader] timeout=120 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows .NET Standard Server" /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows .NET Standard Server" /fastdetectWindowsは起動の選択肢が1つしかないと選択画面が表示されないので、1行しかない場合は全く同じ内容を2行書くことで起動選択の待ち画面を表示させることができる。
またbootcfgというコマンドや、msconfigからも設定できる(msconfigは時間の設定のみ)
Windowsのboot.iniは編集ミスるとリカバリが面倒なので、気をつけてください。
■RHELの場合、/boot/grub/grub.conf を編集します。
default=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu↓
default=1
timeout=120
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
この「待ち時間」を変更することで、同時に電源ONされたサーバの起動タイミングを自由に設定できます。
例えばこんな感じです。
こんな風に設定しておけば、認証サーバの起動を待ってからDBをON、DBが完全に起動したらゲストを・・・なんて、マシンに張り付いて作業する必要がなくなるので、これだけでも楽になるんじゃないかと思います。
この方法のいい点
1.追加のソフト等が必要ないので影響が最小限
2.誤った起動を抑止できる可能性がある(間違って起動しても選択画面で電源OFFできる
3.手動で起動する場合は、選択画面でEnterしてやれば即起動
デメリット
1.設定を確認するのに再起動が必要
2.リモートからしかつながらない環境だと、リブート時に待ち時間が長くなり不安になる
こんな感じです。使えそうであれば試してみてください。
その他、電源を自動的にONする方法としては、
1.電源供給が開始された時の挙動をBIOSで設定する。
2.ブレードサーバ等の場合、ブレード管理モジュールの設定
3.Wake on LAN
等があります。大抵は1,2のどちらかになると思います(Wake on LANはあんまりいいイメージが無いです)
この辺りは、サーバやUPSのメーカーに依存することが多いので詳しい解説はしません。提供元に確認してみてください。