🍑あわもり教室🫧 クラウドの「手前」を、ちゃんとやる。 はじめる
SET 0325分

仮想マシンを作ってLinuxが起動するまで

仮想マシンのイメージから仮想ハードウェアを作り、Linuxとサービスが起動するまでを追います。

このレッスンのメニュー

クラウドの管理画面で「作成」を押したあと、コントロールプレーンが仮想マシンを用意し、その中でいくつもの処理が順番に進みます。 どこまで進んだかがわかると、「仮想マシンは動いているのにWebサイトを見られない」といった問題を切り分けられます。

このページを終えると、仮想マシンの電源、Linuxカーネル、初期化処理、サービスの起動を別々の状態として確認できます。

仮想マシンの設定、仮想ハードウェア、ファームウェア、ブートローダー、Linuxカーネル、初期化処理、サービスの順に起動する流れ
電源が入ったことと、LinuxやWebサーバーが使えることは別の状態です。

まず仮想マシンの部品を決める

仮想マシンを作るときは、次の情報を指定します。

  • 何個の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サイトへ接続できることまでは証明していません。

どの段階まで進んだかを読む

次の表示から、どの段階まで進んだとわかるか考えてみます。

  1. 管理画面に「仮想マシンを作成しました」と表示された
  2. Linuxのログイン画面が表示された
  3. Webサーバーの開始メッセージが表示された

上から順に「仮想マシンが存在する」「Linuxが起動した」「サービスが起動した」と判断できます。 後ろの段階まで進んでいても、外部から接続できるとはまだ限りません。

このレッスンは完了

このページで扱った流れを確認したら、次の内容へ進みます。