このページでは、シンプロビジョニングなどのストレージの仮想化と、ホスト型・ハイパバイザ型・コンテナ型のサーバの仮想化、関連する技術がわかります。
- 一言で言うと:
- 「本物(物理)の構成と違う見せ方(論理)をする」技術の話。ストレージを大きく見せたり、1台のサーバを何台にも見せたりする。
ストレージを仮想化 → サーバを仮想化 → 動かしたまま引っ越す・切り替える(関連技術)
覚え方の軸
- 仮想化=物理構成とは違う論理構成を見せること
- ストレージ仮想化は「見せる容量と実際の容量の差(シンプロビジョニング)」と「速さで置き場所を変える(自動階層化)」
- サーバ仮想化の3方式は「仮想化ソフトがどこに乗っているか」で並べる:
- OSの上(ホスト型)、ハードウェアの上(ハイパバイザ型)、OSの上に区画だけ(コンテナ型)
- 重さの順番:
- ホスト型(オーバヘッド大)> ハイパバイザ型 > コンテナ型(軽い。ただし全部同じOS)
ストレージ仮想化:容量を賢く使う
- 仮想化技術:
- 物理構成とは違う論理構成を提供する技術の総称
- ストレージ仮想化:
- 複数のストレージデバイスを論理的に統合して、1つのストレージとして扱う技術
- シンプロビジョニング:
- 利用者には要求された容量の仮想ボリュームを見せ、実際には使っている分だけ物理容量を割り当てる。物理容量を減らせる
- 例:
- 要求容量40TB、実使用量10TB → 仮想ボリューム40TBを見せ、物理ディスクは10TBだけ割り当てる。物理ディスクは要求の1/4で済む
- 40TBをそのまま割り当てたら、30TBが使われずに無駄になる
- ストレージの集約(プール化)と併用すると、利用効率がさらに上がる
- ストレージ階層化:
- 性能の違うストレージを組み合わせて階層を作り、利用目的や利用頻度などのデータ特性に応じて置き場所を変える考え方
- 手動だと、データ特性を集めて分析し、手で移動させる必要があり、運用に手間がかかる
- ストレージの性能とコストはトレードオフ。階層化でコストを抑えながら必要な性能を確保できる
- ストレージ自動階層化:
- 階層化の制御を自動化したもの。ストレージ階層を仮想化し、アクセス頻度が高いデータは上位の高速な階層へ、低いデータは下位の低速な階層へ自動的に移す
サーバ仮想化:1台のサーバを何台にも見せる
- サーバ仮想化:
- 1台の物理サーバの上で、複数の仮想的なサーバを動かす技術
- サーバコンソリデーション:
- 複数台の物理サーバを1台に統合すること。期待できる効果は2つ
- サーバの管理コストの削減
- コンピュータリソースの利用率の向上
- 3つの方式
| 方式 | 構造(下から) | 長所 | 短所 |
|---|---|---|---|
| ホスト型 | ハードウェア → ホストOS → 仮想化ソフトウェア → 仮想サーバ(ゲストOS+アプリ) | 仮想サーバ環境を手軽に作れる | 仮想化ソフトがハードウェアをエミュレートするので、オーバヘッドが大きく処理速度が出にくい |
| ハイパバイザ型 | ハードウェア → ハイパバイザ → 仮想サーバ(ゲストOS+アプリ) | ハイパバイザがハードウェアを直接制御するので、資源を効率よく使え、ホスト型より速い。ホストOSが要らない | ― |
| コンテナ型 | ハードウェア → ホストOS → コンテナ管理ソフトウェア → コンテナ(ライブラリ+アプリ) | オーバヘッドが少なく、軽量で高速 | 同じOSの上で動くので、すべてのコンテナが同じOSしか使えない |
- ハイパバイザ:
- 仮想サーバ環境を作るための制御プログラム。ハードウェアの上で直接動き、ハードウェアリソースを細かく分けて複数のユーザに割り当てる。仮想OSとも呼ばれる。OSより上位の制御プログラム
- コンテナ:
- ホストOS上の論理的な区画。アプリの動作に必要なライブラリなどを含み、独立したサーバのように振る舞う
- ホストOSから見ると1つのコンテナは1つのプロセス、ユーザから見ると独立した個別サーバに見える
- コンテナはホストOS上の他のアプリとリソースを共有する
- Docker:
- コンテナ型の仮想環境を作る(アプリの構築・実行・管理を行う)プラットフォームを提供するOSSの一つ
- その他の関連技術
- ライブマイグレーション:
- 仮想サーバ上のOSやアプリを止めずに、別の物理サーバへ移して処理を続ける仕組み
- 仮想サーバのメモリイメージをそのまま移すので可用性を損なわず、利用者は移動に気づかない
- ハードウェアのメンテナンスや部品交換のときに有効
- クラスタソフトウェア:
- 仮想サーバを冗長化したクラスタシステムを管理・制御し、高可用性を実現するソフトウェア
- OS、アプリ、ハードウェアの障害に対応し、障害のないサーバに自動的に処理を引き継ぐ。切替え時間の短い安定運用が必要なときに有効
- ライブマイグレーション:
混同しやすいペア
- シンプロビジョニング(見せる容量より少なく実際に割り当てる)/ストレージ自動階層化(アクセス頻度で置き場所を自動で変える)
- ホスト型(ホストOSの上、エミュレートで遅い)/ハイパバイザ型(ハードウェアの上、ホストOS不要で速い)
- ハイパバイザ型(仮想サーバごとに別のOSが使える)/コンテナ型(軽いが、全部同じOS)
- ライブマイグレーション(動かしたまま引っ越す)/クラスタソフトウェア(障害時に自動で引き継ぐ)
- 仮想マシン(ゲストOSを持つ)/コンテナ(ゲストOSを持たず、ホストOSから見ると1プロセス)