LinuCレベル3 304試験の例題と解説
330.4その他の仮想化ソリューション
■トピックの概要
このトピックの内容は以下の通りです。
<330.4 その他の仮想化ソリューション>
重要度 3
<説明>
XenおよびKVM以外の仮想化技術についての基本的知識と経験。
<主要な知識範囲>
・OpenVZ と LXCの基本知識
・その他の仮想化技術についての認知
・その他の仮想化技術に関する基本的な技術的知識
<重要なファイル、用語、ユーティリティ>
・OpenVZ
・VirtualBox
・LXC
・docker
・packer
・vagrant
■例題
dockerの説明として、適切なものを選択してください。
1. dockerは、ハイパーバイザ型の仮想環境である
2. dockerコンテナは、ホストOSと同じカーネルで動作する
3. dockerのコンテナに追加された情報は、コンテナ停止時に自動的に保存される
4. dockerコンテナは、コンテナ起動時にOSを起動する
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「2. dockerコンテナは、ホストOSと同じカーネルで動作する」です。
XenやKVMなどの仮想化ソフトウェアでは、仮想的にハードウェアをエミュレートし仮想マシンを作成します。
そして、仮想マシンの中でOSを動かすという動きをします。
この方法は、仮想マシンで動作するOSをホストOSから完全に分離できるというメリットがあります。
ただ一方でハードウェアのエミュレートやOSの起動に時間がかかるため、ホストOSに高い負荷がかかることや、起動に時間がかかるということもあります。
dockerは、コンテナと呼ばれるプロセスを起動し、アプリケーションを動作させます。
コンテナは、ハードウェアをエミュレートする必要がなく、単一プロセスの起動で済むため、OSにかかる負荷は比較的低く、起動が早いという特徴があります。
しかし、全てのコンテナが同じカーネルで動作するため、完全にホストOSとは異なる環境を構築したい場合には、不向きです。
以下は例題の解説です。
1. dockerは、ハイパーバイザ型の仮想環境である
dockerはハイパーバイザ型ではありません。
ハイパーバイザ型は、OSとして直接ハードウェアにインストールして動作させるタイプの仮想環境です。代表的なものとしてVMware ESXiなどが挙げられます。
またKVMやXenなどは、一つのソフトウェアとしてインストールして動作させるタイプの仮想環境です。
2. dockerコンテナは、ホストOSと同じカーネルで動作する
上記したとおり、dockerコンテナはホストOSと同じカーネルで動作します。
3. dockerのコンテナに追加された情報は、コンテナ停止時に自動的に保存されるdockerコンテナは、dockerイメージから起動します。
起動したコンテナへの更新情報は、基本的にコンテナの停止時に破棄されます。更新情報を残したい場合、コンテナから新しいイメージを作成するか、またはコンテナに永続ボリュームを設定し、ボリュームに情報を保存する必要があります。
4. dockerコンテナは、コンテナ起動時にOSを起動する
dockerコンテナは、起動時にコンテナに含まれるファイルを利用して、必要なアプリケーションのみを起動します。
dockerは、XenやKVMとは全く別の仮想環境です。
単なる仮想化技術のひとつとして捉えるのではなく、しっかりと特徴を理解してから、利用するようにしましょう。
■例題作成者 株式会社デージーネット ソリューション開発部 森 彰吾 氏