仮想マシンを作ってLinuxが起動するまで
仮想マシンのイメージから仮想ハードウェアを作り、Linuxとサービスが起動するまでを追います。
このレッスンのメニュー
クラウドの管理画面で「作成」を押したあと、コントロールプレーンが仮想マシンを用意し、その中でいくつもの処理が順番に進みます。 どこまで進んだかがわかると、「仮想マシンは動いているのにWebサイトを見られない」といった問題を切り分けられます。
このページを終えると、仮想マシンの電源、Linuxカーネル、初期化処理、サービスの起動を別々の状態として確認できます。
まず仮想マシンの部品を決める
仮想マシンを作るときは、次の情報を指定します。
- 何個のvCPUを使うか
- メモリを何GB使うか
- どのイメージから起動ディスクを作るか
- どのネットワークへ仮想NICをつなぐか
- 初回起動時に渡す設定は何か
仮想NICは、仮想マシンへ取り付ける仮想的なネットワークインターフェースです。
仮想マシンのイメージは、OSや初期ファイルを入れた起動前のひな型です。 同じイメージから複数の仮想マシンを作っても、起動後の変更は仮想マシンごとの仮想ディスクへ書かれます。
OSが起動する順番
仮想マシンに電源が入ると、最初に動くファームウェアが起動するディスクを探します。 続いてブートローダーというプログラムがLinuxカーネルを読み込み、カーネルがCPU、メモリ、ディスク、NICを使える状態にします。 最後に初期化処理が各種サービスを起動します。
クラウドでは、初回起動時にホスト名、利用者、公開鍵、ネットワーク設定などを渡す仕組みがよく使われます。 この処理が失敗すると、OSは起動していても、想定した利用者でログインできなかったり、ネットワークにつながらなかったりします。
仮想マシンの作成からWebサーバーの起動までを確認する
| 確認する状態 | わかること | まだ保証されないこと |
|---|---|---|
| 仮想マシンが作成済み | 設定と仮想ディスクが存在する | 電源が入っている |
| 仮想マシンが稼働中 | 仮想CPUが実行されている | Linuxの起動完了 |
| Linuxが起動済み | カーネルと初期化処理が動いた | Webサーバーの起動 |
| サービスが起動済み | プロセスが待ち受けを始めた | 外部からの通信成功 |
Linuxの起動結果を読む
Linux Labで次を実行します。
uptime -s
systemd-analyze
systemctl is-system-running
systemctl --failed --no-legend --no-pager
journalctl -b -n 15 --no-pager
uptime -s はLinuxが起動した時刻、systemd-analyze はカーネルと初期化処理にかかった時間を表示します。
systemctl --failed に何も表示されなければ、systemdが管理するサービスに失敗状態はありません。
journalctl -b の -b は、現在の起動以降に記録されたログだけを読む指定です。
この確認でわかるのは「Linuxとサービス管理がどこまで進んだか」です。 外部からWebサイトへ接続できることまでは証明していません。
どの段階まで進んだかを読む
次の表示から、どの段階まで進んだとわかるか考えてみます。
- 管理画面に「仮想マシンを作成しました」と表示された
- Linuxのログイン画面が表示された
- Webサーバーの開始メッセージが表示された
上から順に「仮想マシンが存在する」「Linuxが起動した」「サービスが起動した」と判断できます。 後ろの段階まで進んでいても、外部から接続できるとはまだ限りません。
このレッスンは完了
このページで扱った流れを確認したら、次の内容へ進みます。