今回は、「Linux教科書LinuCレベル1」の以下の部分を勉強しましたので、その内容を著作権を侵さない範囲で紹介します
・1.2.1 仮想マシンとコンテナ
仮想マシンとしては普段からViretualboxを使用しているので理解しやすいと思ったのですが、Virtualbox関係以外の仮想化について書かれていたため、これまでの知識がほとんど役に立ちませんでした
次の章から「内容を理解するために必要な用語などの解説」「勉強した内容や感想など」を紹介します
基本的には教科書を順番に勉強していきますが、文中に「参考」として別のページが示されている場合は、それも含めて勉強しています
また、勉強の前に必ず読むことにしている「試験直前チェックシート」の読み込み時間は9分43秒でした
内容を理解するために必要な用語などの解説
前回同様、まずは勉強する範囲にある用語を調べましたので、そのすべてを紹介します
用語を調べてから教科書を読み直すと、書かれている内容がすんなりと理解することがきるようになります
みなさんはこの章を見ていただければ用語の意味は調べなくてもわかりますので、時短になります
ぜひご活用ください
仮想マシン(VM(Virtual Machine))
1台の物理的なコンピュータの中に、1つもしくは複数の仮想的なコンピュータを作り出す技術
仮想化されたそれぞれのOSを仮想マシンと表現することもある
ホストOS
コンピュータに元々入っているOSのこと
ゲストOS
仮想マシンとして入れる(入っている)OSのこと
仮想化管理機構
仮想マシンを動作・管理するための仕組みのこと
ハイパーバイザーの機能を拡張し、より高度な管理機能を提供する
リソース
ソフトウェアやハードウェアを動作させるために必要なHDD容量やメモリ容量、CPUの処理速度などの能力のこと
システム開発に必要な人員や資金、資金や設備、資料や情報源もリソースといわれる
ハイパーバーザー
仮想化管理機構の基盤となるソフトウェアで、
・物理ハードウェアのリソースを仮想化し、仮想マシン(VM)に割り当てる
・複数のVMを同時に実行し、互いに隔離する
・VMの起動、停止、移行などの基本的な操作を行う
ハイパーバイザーには以下の2種類の方式があり、いずれもゲストOSはそれぞれ独立して操作することが可能
<ハイパーバイザー型(タイプ1)>
ベアメタル型とも言われ、ハードウェア上で直接動作し、ホストOSの代わりとなってゲストOSを管理する方式
このため、ホストOSを必要としない
サーバーやクラウド環境、業務システムでよく使われる
代表的なハイパーバイザー型は以下の2つ
・KVM(Linuxに実装されている)
・Xen(かつてLinuxに実装されていた)
<ホスト型(タイプ2)>
ホストOS上で動作し、その中でゲストOSを実行する方式
ホストOSのリソースを借りて、仮想マシンを管理する
個人PCやソフトウェアの検証用環境として使われる
代表的なホスト型はOracle VM Virtualbox
オーバーヘッド
ある処理を行う際に、付加的、間接的処理など、本来の目的以外の処理にかかる付加のこと
仮想化支援機能
仮想化技術の性能を向上(オーバーヘッドを低減)させるために、ハードウェアやCPUがサポートする機能のこと
Intel社製CPUに搭載されている仮想化支援機能が「VT-x」
AMD社製CPUに搭載されている仮想化支援機能が「AMD-V」
コンテナ
仮想化技術の一種だが、正確には仮想マシンとは別の技術
コンテナにはゲストOSが必要ない
アプリケーションとその動作に必要な環境をまとめてパッケージング(コンテナ)し、どこでも動かせるようにする技術
ただし、Linuxで作成したコンテナにWindowsのアプケーションをインストールしても、OSが違うので動作しない
デプロイ
開発したアプリケーションやシステムをサーバー上に配置・展開して、ユーザーが使用できる状態にすること
クラウド基盤
クラウドサービスを提供・運用するためのITインフラのこと
クラウド上でサーバーやネットワーク、ストレージ、仮想マシン(VM)などを管理・提供する
代表的なクラウド基盤はAWSやAzure
勉強した内容や感想など
仮想化技術は、大きく分けて次の2種類に分類されます
・仮想マシン(VM)
・コンテナ
そして、仮想マシンには次の2つの方式があります
・ハイパーバイザー型(タイプ1型)※ベアメタル型ともいう
・ホスト型(タイプ2型)
ハイパーバイザー型仮想マシンとホスト型仮想マシン、コンテナの違いは以下のとおり
ハイパーバイザー型仮想マシン | ホスト型仮想マシン | コンテナ | |
---|---|---|---|
仮想化の仕組み | ハードウェア上での直接仮想化 | ホスト上のソフトウェアでの仮想化 | ホストOSを共有その他必要なものはコンテナにパッケージング |
ホストOS | なし | 必要 | 必要 |
ゲストOS | 必要 | 必要 | なし |
使用目的 | サーバー運用やクラウド基盤 | 個人のテスト環境や異なるOSの利用 | アプリ開発・テスト・デプロイ |
代表例 | KVM | Virtualbox | Docker |
そして、「1.2.1 仮想マシンとコンテナ」の仮想マシンの内容には、ハイパーバイザー型仮想マシンのことが主に書かれていました
Linuxには、KVMというLinuxに最適化された仮想化技術がLinuxカーネルに標準搭載され、サーバー運用やクラウド基盤で主に利用されているのですから、当然のことでしょう
そして、コンテナもアプリやシステムの開発によく使われ、それらをユーザーが使用できるようにするにはサーバーに展開する必要があるため、開発者だけでなく、サーバー管理者もコンテナについて知っておくべきだと理解しました
いつも用語や勉強範囲のわからない部分を調べる前に、最低1度は教科書の本文を読んでいます
上の内容を理解したうえで教科書を読むと、最初に教科書の本文を読んだときより深く理解していることが実感できました
「教科書の内容がむずかし」と感じた方は、上記の内容を理解してからもう一度、教科書を読んでみてください