Virtualization on IBM System x3950 Server(Draft edition)

IBMよりハイエンドサーバを使用した仮想化が書かれたRedbookのドラフト版が公開されています。
Chapter1. Introduction
Chapter2. The IBM System x3950 Server
Chapter3. VMware ESX Server
Chapter4. Microsoft Virtual Server
Chapter5. Management with IBM Director

簡単にChapter1.の概要をまとめてみました。
斜め読み和訳なので間違っている箇所もあるかも、です。

  • 1.1 なぜ仮想化が必要なのか
  • サーバ統合とサーバ増加の抑制
  • 柔軟な開発・テスト環境
  • より簡単な惨事復旧
  • より素早いアプリケーション開発
  • WindowsLinuxの標準化と信頼性
  • 1.2 仮想化のコンセプト
    • 1.2.1 エミュレーションvsバーチャリゼーション(仮想化)
  • 仮想化は物理サーバと同一のCPUを直接ゲストOSに参照させるために仮想化レイヤーのオーバーヘッドは小さい
  • エミュレーションはゲストOSに対して仮想CPUを参照させるためオーバーヘッドが非常に大きい(もちろん異なるCPUをエミュレーションして提供できることはメリットでもある)
    • 1.2.2 ホストソリューションvsハイパーバイザーソリューション
  • Microsoft Virtual Serverは仮想レイヤーの下にホストOSを必要とする"ホストソリューション"
  • VMware ESX Servrは仮想レイヤーがOSとして動作する"ハイパーバイザーソリューション"

※ESX Serverでは管理コンソールを使用して仮想レイヤーを管理する

    • 1.2.3 OSバーチャライゼーション
  • OS機能による仮想化には"User Mode Linux"や、"SUN containers"、"HP vPars"などがある
    • 1.2.4 完全仮想化vs擬似仮想化
  • 完全仮想化とはゲストOSからは完全に仮想化されたx86ハードウェアが認識される方式
  • 擬似仮想化とはゲストOS側で仮想化に対応することによって仮想レイヤーを認識する方式
    • XENはこの方式
  • なぜ擬似仮想化方式があるのか
    • 歴史的にIAサーバは仮想化に対応していないため、IAサーバを完全仮想化するためにはバイナリトランスレーションなどのハードウェアシュミレーションが必要になるなど複雑な仕組みが必要となる
    • 擬似仮想化方式の場合、完全仮想化方式と比較してよりオーバーヘッドを減らすことが出来るためパフォーマンスを向上させやすい
    • 1.2.5 32bit vs 64bit

64bitに対応したCPUを搭載したハードウェアを用いれば64bitの仮想サーバを構築することも可能になる

  • VMware Workstationはすでに64bitのゲストOSに対応している
    • 1.3 使用可能な仮想化製品

各製品の説明は省略

Intel VT技術を用いることによってWindowsをゲストOSとすることにも対応

製品 VMware
Workstation
VMware
Server
VMware
ESX Server
Microsoft
Virtual PC
Microsoft
Virtual Server
Xen
用途 個人用途 小規模用途 大規模用途 個人用途 中規模?用途 -
完全仮想化 Yes Yes Yes Yes Yes -
擬似仮想化 - - - - - Yes
ホストOS 必要 必要 不要 必要 必要 その他
64bitゲストOS 対応 × × × × ×
  • 1.4 スケールアップvsスケールアウト

多くのローエンドサーバにスケールアウトするか、1台のハイエンドサーバにスケールアップするか

  • Bladeサーバを用いたスケールアウト
  • ハイエンドサーバ(x3950など)を用いたスケールアップ
    • 1.4.1 スケールアップ
  • x3950はモジュラー型で最大32CPUまで拡張することが出来る

ex)32CPUの1台のESX Serverを構築して全ての仮想マシンを載せる
ex)16CPUの2台のESX Serverを構築してVirtualCenterを併用してスケールアップしつつVMotionなど高可用性・メンテナンス性を確保する

メリット

  • 自動的なリソース管理
  • 少ない台数のESX Serverの管理
  • VMotionを使用することによるスタンバイ機の不要化
  • VMwareにかかるコストの削減
  • インフラコストの削減(Ethernet Switch, SAN Switch etc...)

デメリット

  • 高額なH/Wコスト
  • ノード障害時の大きなインパク
  • ハードウェア的な制限(CPU選択など)
    • 1.4.2 スケールアウト
  • BladeCenterには最大14台のHS20を搭載することが出来る

ex)14台のHS20にESX Serverを構築して分散して仮想マシンを載せる
※VirtualCenter/VMotionを使用することによって柔軟な仮想マシン配置を行う

メリット

  • 低額のH/Wコスト
  • ノード障害時のインパクトの最小化
  • 様々なハードウェア選択(CPU選択など)

デメリット

  • 分散されたリソースの管理
  • VMotionによる手動での仮想マシンの管理
  • 多くのESX Serverの管理
  • 多くのVMwareを必要とすることのコスト
  • 高額なインフラコスト(Etnerhet Switch, SAN Switch, Module etc...)
  • 1.5 サーバ統合
  • サーバ統合に対して仮想化は非常に有用なアプローチである
  • 仮想化によるサーバ統合を実施することによって、結果として少ないIAサーバでITインフラを構成できるようになる
  • 時代の流れ
    • 1970-1980 強力なメインフレームを用いることによる中央集中型のシステム
    • 1980-2000 メインフレームからIAサーバへの分散と転換(クライアントサーバ型)
    • 2000- IAサーバ導入によりサーバ導入の初期コストは低下したが多くのマシンを管理することによる管理コストが増大
    • 1.5.1 スケールアウトするべきか、スケールアップするべきか

対象の範囲と規模から考えていく
ex)たとえば30台のサーバを仮想化技術を使用して統合化することになり、全体で8CPUの環境を用意する必要があることになったとする。

  • 4CPUのサーバ2台で構成することも出来るが、もし一方のマシンに障害が発生した場合、使用できるリソースは半分になってしまうことを考慮する必要がある
  • 2CPUのサーバ4台で構成した場合、もし1台のマシンに障害が発生したとしても減少するリソースは25%で済む

→この場合はスケールアウトの方がメリットがあるのではないだろうか
ex)たとえば300台のサーバを仮想化技術を使用して統合化することになり、全体で80CPUの環境を用意する必要があることになったとする。※例1の10倍

  • 8CPUのサーバ10台で構成した場合、もし1台のマシンに障害が発生したとしても減少するリソースは10%で済む
  • 2CPUのサーバ40台で構成した場合、1台に障害が発生した場合に減少するリソースはより小さくなるが、せっかくサーバ統合を行うのにいまだに40台ものサーバを管理するコストが必要となる

→この場合はスケールアップの方がメリットがあるのではないだろうか

    • 1.5.2 サーバの抑制

ITインフラの新しい管理標準を定める場合には現在の環境に基づいた適切な技術を合理的に選択するべきです。しかし、ビジネス環境の変化や新しいプロジェクトなどにより、今後もこれまでと同様にIT環境が推移していくとは限りません。仮想サーバ環境であれば、もし急に追加のサーバが必要になったとしても、仮想サーバをすぐに提供することができます。新しいハードウェアを調達したりする必要はありません。

1つのソケットに2つのCPUコアを接続できるデュアルコアCPUが登場してきている

構造 処理リソース オンボードキャッシュ システムバス コア周波数 CPUあたりスレッド数
Legacy CPU 排他 排他 排他 排他 1
CPU w/HT 排他 共有 共有 共有 2
Dual-core CPU 排他 排他 排他 共有 4(w/HT)
Four-core CPU 排他 排他 共有 共有 中・低 8(w/HT)

マルチスレッドに対応したアプリケーションを使用する場合には、マルチコアを使用するとシングルコアの場合と比較してより高速に処理を行うことができるようになる。

  • 1.7 仮想化の将来
    • 1.7.1 Intel VT(Virtualization Technology)

これまではCPU上では以下のように動作していた

  • Ring3 Applications
  • Ping2
  • Ring1
  • Ring0 OS

それに対して、VTに対応したCPUでは以下のように動作する

  • Ring3 Applications
  • Ring1/3 Guest OS
  • Ring0 Virtualization Layer
    • 1.7.2 仮想化ソフトウェア
  • セキュリティ
  • 信頼性