仮想化とは
仮想化とは、CPU、メモリ、ディスクなどのリソースを、物理構成によらずに柔軟に分割したり統合したりする技術である。 1台のマシンを複数台のマシンであるかのように論理的に分割し、それぞれ別のOSやアプリケーションを動作さることができる。 複数台のマシンを用意する場合に比べて物理的資源の管理にかかる手間が省け、資源の配分も状況に応じて柔軟に設定することができるため、資源を有効に利用することができる。ただし、CPU割り当てやメモリ空間のマッピングなど、仮想化にかかるオーバーヘッドの分だけ性能面は劣る。最近のマシンではCPUに仮想化支援機能が搭載され、仮想化ソフトウェアの処理の一部をCPUが分担し高速に処理することができる。
仮想環境を提供するプログラムを動作させて基盤となるOSをホストOS、仮想環境上で動作するOSをゲストOSと呼び区別する。
仮想化は大きく二つに分けることができる。
完全仮想化
ハードウェアをソフトウェアで完全にエミュレートする仮想化方式。アプリケーション感覚でゲストOSを起動することができるため、手軽に利用することができる。ゲストOSの処理はホストOSが必ず介在する必要があるため、性能が充分に出ない場合がある。 代表的なソフトウェアとしてVMWare、VirtualBoxなどが挙げられる。
準仮想化
ゲストOSのカーネルを改修し、ゲストOSから直接ハードウェアを操作できるようにしている。これによってハードウェアエミュレーションのオーバーヘッドを軽減している。 代表的なソフトウェアとしてXenが挙げられる。
仮想化では状況に応じてサーバを増やしたり、リソースの割り当てを増やすことができる拡張性の高さが大きな利点の1つである。そのためサービスのフロント側にあり、アクセスが変動しやすいWebサーバは仮想化環境に向いている。 一方、仮想化では性能の劣化が一番の問題となる場合が多い。CPUやメモリは十分高速であり、仮想化環境においても大きな性能劣化は見られないが、ディスクIOは性能劣化が非常に大きい。ディスクIOがネックとなりやすいデータベースサーバは仮想化環境に不向きである。また、仮想化環境ではゲストOSの時刻がずれることも多い。そのため、時刻のずれが大きく影響するサービスも仮想化環境には向いていない。
【カテゴリ】:仮想化  OS  
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |