さくらのクラウドの「シャットダウン」と「強制停止」は何が違う?使い分けと注意点

コンピューティング , さくらのクラウド # シャットダウン # 強制停止

こんにちは。NERです!

さくらのクラウドでサーバの電源操作をクリックすると、シャットダウン強制停止 という項目があります。

どちらもサーバを停止するための操作ですが、「何が違うの?」「サーバを止めたいだけなら、どちらを選んでも同じでは?」と思ったことはないでしょうか。

実は、この2つはサーバを停止するまでの動作が異なります。
「シャットダウン」はOSの終了処理を行ってからサーバを停止するのに対し、「強制停止」はOSの終了処理を待たず、その時点でサーバの電源を切る操作です。
そのため、普段のサーバ停止であれば基本的には「シャットダウン」を使用し、「強制停止」はOSのフリーズなどによって正常にシャットダウンできない場合に使用します。

今回は、さくらのクラウドの「シャットダウン」と「強制停止」の違いや、使い分けについて書いていきたいと思います。

さくらのクラウドには「シャットダウン」と「強制停止」がある

ご存じかと思いますが、さくらのクラウドでは、コントロールパネルからサーバの電源操作を行うことができます。
対象のサーバを選択して「電源操作」を開くと、「起動」「シャットダウン」「強制リブート」「強制停止」といった操作が表示されます。

「起動」は停止しているサーバを起動する操作なので分かりやすいですね。
少し迷いやすいのが「シャットダウン」と「強制停止」です。
どちらもサーバを停止するための操作ですが、サーバが停止するまでの動作に違いがあります。

電源操作については、公式のマニュアルでもまとめられています。

電源操作|さくらのクラウド マニュアル

ここからは、「シャットダウン」と「強制停止」がそれぞれどのような操作なのか、違いを確認していきます。

「シャットダウン」とは?

さくらのクラウドの「シャットダウン」は、サーバを正常な手順で停止するための操作です。

コントロールパネルから「シャットダウン」を実行すると、物理マシンの電源ボタンを押す動作がエミュレートされます。
ACPIに対応したOSであれば、この操作を受け取ったOSがシャットダウン処理を開始し、処理が完了するとサーバの電源がOFFになります。

イメージとしては、以下のような流れです。

コントロールパネルから「シャットダウン」

OSがシャットダウン処理を開始

OSの終了処理が完了

サーバの電源がOFF

つまり、「シャットダウン」を選択した瞬間にサーバの電源が切れるわけではなく、OS側で必要な終了処理を行ってから停止します。
通常のサーバ停止では、基本的にこちらの「シャットダウン」を使用します。

「強制停止」とは?

さくらのクラウドの「強制停止」は、OS側のシャットダウン処理を行わず、サーバを強制的に停止する操作です。

コントロールパネルから「強制停止」を実行すると、通常のシャットダウンとは異なり、OSの終了処理を待たず、その時点でサーバの電源がOFFになります。

イメージとしては、以下のような流れです。

コントロールパネルから「強制停止」

サーバの電源がOFF

すぐにサーバを停止できる一方で、OS側で正常なシャットダウン処理が行われないため注意が必要です。
さくらのクラウド公式マニュアルでも、強制停止を行うとディスクの不整合などが発生し、次回起動時に不具合が発生する可能性があると案内されています。
そのため、通常時のサーバ停止には使用せず、OSがフリーズしてシャットダウンできない場合など、正常な方法で停止できないときに使用する操作と考えておきましょう。

「シャットダウン」と「強制停止」の違いを比較

ここまで紹介した「シャットダウン」と「強制停止」の違いを、改めて比較してみます。

比較項目シャットダウン強制停止
OSの終了処理行われる行われない
停止方法電源ボタン押下をエミュレートその時点で電源断
データへのリスク比較的低い不整合等の可能性あり
通常時の利用原則使用しない
主な利用場面通常のサーバ停止OSフリーズなど

違いとしては、「OSのシャットダウン処理を行ってからサーバを停止するかどうか」です。
基本的には「シャットダウン」を使用し、「強制停止」はOSのフリーズなどによって正常にシャットダウンできない場合の最終手段と考えると分かりやすいですね。

強制停止はどんなときに使う?

ここまで説明したとおり、「強制停止」はOSの正常なシャットダウン処理を行わずにサーバの電源を切る操作です。
具体的な例をいくつか挙げていきます。

OSが高負荷やフリーズ状態になっている

OSが高負荷やフリーズ状態になると、SSHなどでサーバへ接続できなくなったり、接続できてもシャットダウンの操作が正常に実行できなくなったりする場合があります。
このように、OS側から正常にサーバを停止できない場合は、「強制停止」を使用するケースのひとつです。

コントロールパネルから「シャットダウン」しても停止しない

SSHなどから停止できない場合でも、まずはコントロールパネルの「シャットダウン」を試してみましょう。
ただし、OSの高負荷やフリーズなどの状態によっては、コントロールパネルから「シャットダウン」を実行しても反応せず、サーバが停止しないことがあります。
このように、OS側からの操作だけでなく、コントロールパネルからも正常にシャットダウンできない場合に、「強制停止」が選択肢となります。

どうしてもサーバを停止する必要がある

メンテナンスなどのためにサーバの停止が必要な状況で、通常の方法ではシャットダウンできない場合にも、「強制停止」を使用することがあります。
ただし、「すぐにサーバを停止したい」という理由だけで強制停止を使用するのは避けましょう。

強制停止は、あくまで通常の方法ではサーバを停止できない場合に使用する操作です。
まずはOS側やコントロールパネルから正常なシャットダウンを試し、それでも停止できない場合に「強制停止」を検討しましょう。

実際に「シャットダウン」と「強制停止」を試してみる

ここまで「シャットダウン」と「強制停止」の違いについて説明してきました。
それでは、実際にサーバを停止したとき、OS側ではどのような違いがあるのか見ていきましょう。

まずは、サーバを起動させます。

今回は、AlmaLinux 9のサーバを使用して、さくらのクラウドのコントロールパネルから「シャットダウン」と「強制停止」をそれぞれ実行し、停止前のログを比較してみます。

「シャットダウン」を実行してみる

まずは、コントロールパネルから「シャットダウン」を実行します。

サーバが停止したことを確認したあと再度起動し、journalctl でシャットダウン時のログを確認しました。

~~~
systemd[1]: Reached target System Shutdown.
systemd[1]: Finished System Power Off.
systemd[1]: Reached target System Power Off.
systemd[1]: Shutting down.
systemd-shutdown[1]: Syncing filesystems and block devices.
systemd-shutdown[1]: Sending SIGTERM to remaining processes...
systemd-journald[1315]: Journal stopped
~~~

ログを見ると、「System Shutdown」「System Power Off」と処理が進み、ファイルシステムとブロックデバイスの同期や、残っているプロセスへの終了シグナルの送信などが行われています。
最後には「Journal stopped」と記録されており、OS側でシャットダウン処理を行ったうえで停止していることが確認できました。

「強制停止」を実行してみる

続いて、サーバを起動した状態でコントロールパネルから「強制停止」を実行します。

停止後にサーバを再度起動し、強制停止前のログを確認したところ、最後に記録されていたのは以下のログでした。

systemd[1]: systemd-hostnamed.service: Deactivated successfully.

通常のシャットダウンで確認できた「System Shutdown」や「System Power Off」といったOSの終了処理を示すログは記録されておらず、通常の稼働中のログを最後に途切れていることが確認できました。
なお、「systemd-hostnamed.service: Deactivated successfully.」は強制停止を示すログではありません。
今回の検証環境で、強制停止する前にたまたま最後に記録されていたログです。

ログを比較して分かったこと

今回の検証では、「シャットダウン」ではOS側で正常な終了処理を行ったうえでサーバが停止しているのに対し、「強制停止」ではそのような終了処理を経ずにサーバが停止していることをログから確認できました。
どちらも最終的にはサーバが停止しますが、OS側で行われる処理には大きな違いがありますね。

おわりに

今回は、さくらのクラウドの「シャットダウン」と「強制停止」の違いや使い分けについてご紹介しました。

どちらもサーバを停止するための操作ですが、「シャットダウン」はOS側で正常な終了処理を行ってから停止するのに対し、「強制停止」はその処理を行わず、その時点でサーバの電源を切るという違いがあります。
実際に、AlmaLinux 9の環境で検証したところ、シャットダウンではOSの終了処理を示すログが記録されましたが、強制停止ではそのようなログは記録されず、稼働中のログを最後に途切れていることも確認できました。

基本的には、通常のサーバ停止では「シャットダウン」を使用するという考え方で良いかと思います。
「強制停止」は、OSの高負荷やフリーズなどによって正常にシャットダウンできない場合の最終手段として覚えておきましょう。
それぞれの違いを理解したうえで、状況に応じて適切に使い分けていきましょう!

また、弊社でのサーバ監視運用業務においても、基本的にはシャットダウンを使用しています。
このような、サーバ運用における対応や判断に迷ったり困っていたりする場合は、弊社にお任せください!

それでは、また。

この記事を書いた人

NER

ネットアシスト運用チーム マネージャー

さくらのクラウド検定 2024年 第2回試験 合格

【取得資格】

・LinuC Level-1 Certification

・LinuC Level-2 Certification

・AWS Certified Cloud Practitioner

・AWS Certified Solutions Architect - Associate