LinuCレベル3 304試験の例題と解説
主題330仮想化
330.4その他の仮想化ソリューション
LinuCレベル3 304試験の出題範囲から「330.4 その他の仮想化ソリューション」についての例題を解いてみます。
このテーマは、OpenVZ・LXCなどの仮想化技術に関する内容が含まれます。各ソフトウェアが持つ機能や特徴などをしっかりと理解しておきましょう。
例題
OpenVZ、VirtualBox、LXC、dockerなどの仮想化技術や関連ツールに関する記述として、最も適切なものを一つ選択してください。
- VirtualBoxは、ホストOS上で動作するコンテナ技術であり、ゲストOSはホストOSのカーネルを共有するため、起動が高速である。
- LXC(Linux Containers)およびdockerは、ハイパーバイザを介してハードウェアをエミュレートする完全仮想化であり、ゲストOSとしてLinux以外のOSも実行可能である。
- packerは、複数のプラットフォーム(VirtualBox、AWS、dockerなど)向けに、単一のソース構成から同一の仮想マシンイメージを作成するためのツールである。
- vagrantは、OSレベルの仮想化技術であるOpenVZのコンテナ管理を専門とするツールであり、主に本番環境での利用を目的としている。
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「3. packerは、複数のプラットフォーム(VirtualBox、AWS、dockerなど)向けに、単一のソース構成から同一の仮想マシンイメージを作成するためのツールである。」です。
packerはHashiCorp社が提供するツールで、Amazon Web Services(AWS)・VirtualBox・Dockerなど多様な環境(プロバイダ)に対して、一つの設定ファイル(単一のソース構成)から同一のイメージファイル(仮想マシンイメージ)を自動で作成することを目的としています。これにより、インフラ構築の「Immutability(不変性)」を実現し、環境間の差異による問題を減らすことができます。
また、その他の選択肢は正しくは以下となります。
- VirtualBoxは、ハードウェアをエミュレートし、独立したゲストOS全体を実行する完全仮想化(ホスト型ハイパーバイザ:タイプ2)です。ホストOSのカーネルを共有するのは、OpenVZ、LXC、DockerなどのOSレベルの仮想化(コンテナ技術)です。
- LXCやdockerは、ホストOSのカーネルを共有するOSレベルの仮想化(コンテナ技術)であり、ハイパーバイザによるハードウェアエミュレーションを行う完全仮想化ではありません。また、ホストOSがLinuxの場合、ゲストOSもLinuxディストリビューションに限定されます(※ただし、WindowsやmacOS上でDockerを動かす場合は、内部でLinux VMを使用しています)。
- vagrantは、仮想環境(VirtualBox、Hyper-V、Dockerなど)の構築と管理を自動化するツールであり、特に開発環境の構築・共有を容易にすることを目的としています。コンテナ管理を専門とするわけではなく、またOpenVZの管理に特化しているわけでもありません。本番環境のインフラ管理には、AnsibleやTerraformなどの別のツールが用いられることもあります。
なお、各ソフトウェアの詳細については、以下で確認が出来ます。
OpenVZ(https://openvz.org/)
VirtualBox(https://www.virtualbox.org/)
LXC(https://linuxcontainers.org/)
docker(https://www.docker.com/)
packer(https://developer.hashicorp.com/packer)
vagrant(https://developer.hashicorp.com/vagrant)
例題作成者
鯨井 貴博 (LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 ゼウスITトレーニングセンター)