Xen 3.0のユーザマニュアル勝手訳(適当)
訳したところから順次公開。かなり適当な訳なので間違っていたらごめんなさい。
Chapter1
Introduction
enterprise-gradefunctionality,including:
Xenはx86アーキテクチャ向けのオープンソースの準仮想化バーチャルマシンモニタ(VMM)あるいはハイパーバイザです。Xenは一つの物理システム上で複数の仮想マシンをセキュアに、かつネイティブに近いパフォーマンスで実行することができます。Xenは以下のようなエンタープライズレベルの機能を提供します。
* ネイティブなハードウェアと遜色ないパフォーマンスを出せる仮想マシン
* 仮想マシンを実行したままでの物理ホスト間のミグレーション
* VCPUホットプラグ対応で、最大32cpuを仮想マシンに割り当てる機能
* x86/32, x86/32withPAE,and x86/64プラットフォームサポート
* Intel Virtualization Technologyを利用しし、修正なしにゲストOSを動かす機能(Microsoft Windows含む)
* 充実したハードウェアサポート(ほとんどのLinuxデバイスドライバをサポート)
1.1 Usage Scenarios
Xenでは以下のようなシナリオを想定している。
サーバの整理統合:パフォーマンスを維持したままあるいは仮想マシンによって他ホストへの影響を及ぼすことなく複数のサーバを一つのホストに。
ハードウェアからの独立:古いオペレーティングシステムあるいはアプリケーションを全く新しいハードウェアで稼動
OSの複数設定:開発やテスト用に複数のOSを同時に起動
カーネル開発:サンドボックス化された仮想マシン内でのカーネルに加えた修正のテストとデバッグ -別のテスト気は必要ありません。
カーネル開発: カーネルに入れた修正のテストやデバッグをsandboxの下で行えます。テスト機を用意する必要がありません。
クラスタコンピューティング:特にロードバランシングをシステムなどでは、VM管理の粒度により物理的に別のホストを用意するよりも自由度が上がり、かつsingle-system image solutionsよりもコントロールしやすく、独立性も高い。
カスタマイズされたOSに対するハードウェアサポート:Allow development of new OSes while benefiting from the wide-ranging hardware support of existing OSes such as Linux.
1.2 Operating System Support
Para-virtualizatioinは歴史的に仮想化することが難しかったx86のようなアーキテクチャですら、よいパフォーマンスで仮想化することができる。
このアプローチではXen上でOSが動くよう修正する必要がある。XenでOSが動くよう修正するのは新しいハードウェアをサポートすることと同じようなことである。しかしながら、para-virtual machineのアーキテクチャは下層のネイティブハードウェアととても似ているので、そのプロセスは簡略化されている。OSのカーネルが完全にXenをサポートしているならば、ユーザスペースのアプリケーションやライブラリは修正を必要としないのはすばらしい特徴である。
Intel VTやAMD SVMテクノロジーなどのハードウェアCPUによる仮想化においては、ゲストOSのカーネルを修正しないでも利用することができる。いくつかのドライバサポートはXen自体に必要になるが、OSの修正の必要はない。
今までのパフォーマンスのオーバーヘッドを伴うようなフル仮想化の仕組みのようと違って、XenとVTあるいはPacificaテクノロジーは両者を補完しあいすばらしいパフォーマンスをもたらし、準仮想化、あるいはOSの修正をしていないフル仮想化されたゲストOSをプロセッサ上でネイティブに近いパフォーマンスで動かします。VTとPacificaチップセットのサポートは2006年の早い段階で実現するでしょう。
準仮想化のXenでは多くのオペレーティングシステム(今も増加中)をサポートしている、ほとんどのLinuxのサポートや一般的なディストリビューションをサポートしています。NetBSD、FreeBSD、Solaris X86 V10もほぼ完成に近づいている。
1.3 Hardware Support
今のところXenはx86アーキテクチャ上で動作します。”P6″あるいはより新しいプロセッサ(例えば
Pentium Pro, Celeron, Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon,
AMD Duron)が必要です。複数のCPUを持つハードウェアもサポートしています。Hyper-
Threading (SMT)もサポートしています。さらに、IA64やPowerアーキテクチャへの移植も進んでいます。
デフォルトの32bitのXenは4GBまでのメモリをサポートしています。また、Xen 3.0ではIntelのPhysical Addressing Extensions (PAE)もサポートしています。つまりx86/32機では64GBまでの物理メモリに対応しています。Xen 3.0ではx86/64プラットフォームではIntel EM64T and AMD Opteronをサポートしており、これらのハードウェアでは最大1TBまでの物理メモリが使用できます。
XenはDomain0で起動されるバーチャルマシンにおいてほとんどのハードウエアに関することをサポートしています。
Xen自体には、2番目のCPUを感知してスタートするのに必要なコード、割り込みのルーティング、PCIバスの列挙機能のコードが含まれているだけです。デバイスドライバはXen自体ではなく権限のあるゲストOS上で実行されます。
このアプローチでlinuxでサポートされるハードウエアの大多数で互換性を可能としています。
デフォルトのXenLinuxビルドにはサーバクラスのネットワークやディスクなどのハードウェアに関する対応はしていますが、XenLinuxのカーネルを通常行っているような方法で対応していないハードウェアを追加することができます。
1.4 Structure of a Xen-Based System
Xenのシステムは複数のレイヤーから成り立っています。一番下層のレイヤーで、最も権限を持っているのがXen自身です。
Xenは複数のゲストOSをホスティングします。ゲストOSはそれぞれセキュアな仮想マシンとして実行されます。
複数のdomain(domainはXen特有の用語)は使えるCPUを効率的に使うため、Xenによってスケジューリングされています。
それぞれのゲストOSはそれぞれアプリケーションがインストールされていますが、このdomainによる管理方法ではXenによってそれぞれの仮想マシンに割り当てられた時間内にそれぞれのアプリケーションを適切に処理する役目を担っています。
1番目のドメイン、domain0はホストマシンが起動するときに自動的に起動され、特別な管理権限が与えられています。
domain0は他のドメインを起動したり、他のドメインの仮想デバイスを管理する事ができます。
それらを使って、suspendやresume、他のホストへのみグレートなど管理タスクを実行します。
xendというdomain0内のプロセスがシステムを管理します。xendは仮想マシンへの仮想コンソールを提供する責務を負っています。
コマンドはコマンドラインツール、あるいはHTTPインターフェース経由でxendに送信されます。
1.5 History
(ここは訳しても参考にならなそうなのでほったらかし)
Xen was originally developed by the Systems Research Group at the University of
Cambridge Computer Laboratory as part of the XenoServers project, funded by the
UK-EPSRC.
XenoServers aim to provide a “public infrastructure for global distributed computing”.
Xen plays a key part in that, allowing one to efficiently partition a single machine to
enable multiple independent clients to run their operating systems and applications
in an environment. This environment provides protection, resource isolation and accounting.
The project web page contains further information along with pointers to
papers and technical reports: http://www.cl.cam.ac.uk/xeno
Xen has grown into a fully-fledged project in its own right, enabling us to investigate
interesting research issues regarding the best techniques for virtualizing resources such
as the CPU, memory, disk and network. Project contributors now include XenSource,
Intel, IBM, HP, AMD, Novell, RedHat.
Xen was first described in a paper presented at SOSP in 2003, and the first public
release (1.0) was made that October. Since then, Xen has significantly matured and is
now used in production scenarios on many sites.
1.6 What’s New
Xen 3.0.0 の新機能:
・ 最大32CPUまでのゲストOSサポート
・ Intel (Physical Addressing Extensions) PAEによる32ビットマシンでの4GB以上の物理メモリサポート
・ x86/64サポート(Intel EM64T, AMD Opteron)
・ Windows XP/2003や古いLinuxサポートの為にソースコードの修正の必要がなくなるIntel VT-xサポート
・ コントロールツールの拡張
・ ACPIサポートの改良
・ AGP/DRMグラフィックス
Xen3.0の特徴はハードウェアサポート、設定、拡張性、使いやすさの大幅な拡張とサポートするOSの追加です。この最新リリースでXenはオープンソースの仮想化ソリューションをより身近にします。
Part I
Installation
Chapter 2
Basic Installation
Xenのディストリビューションには3つの主要なコンポーネントが含まれています。Xen自身、Xen上で起動するLinux及びNetBSD、Xenベースのシステムを管理するのに必要なユーザスペースツールです。
このチャプターではどのようにソースからXen3.0をインストールか記述します。また特定のOSによってはすでにビルドされているパッケージが入手できます。
2.1 Prerequisites
以下のリストは事前にインストールされていなければならないライブラリです。yはxendコントロールツールに必要で、それ以外は仮想マシンを一つ以上起動する場合に必要になります。*
とついているものはソースからビルドするときに必要になります。
- P6クラスあるいはそれよりも新しいCPUで動いている、GRUBブートローダを使っているLinixマシン
y iproute2パッケージ
y bridge-utils1 (e.g., /sbin/brctl)
y Linux hotplug system2 (e.g., /sbin/hotplug)新しいディストリビューションではudev system3に含まれているます。
* ビルドツール(gcc v3.2.x or v3.3.x, binutils, GNU make).
* zlibの開発環境 (e.g., zlib-dev).
* python2.2以降の開発環境(e.g., python-dev).
* ドキュメントのビルドにLATEXとtransfig
事前に必要なパッケージがインストールされていればバイナリ、ソースディストリビューションどちらでもインストールできます。
2.2 バイナリパッケージからのインストール
XenSourceのダウンロードページからビルドされているパッケージをダウンロードできます。
ダウンロードページ:
http://www.xensource.com/downloads/
ダウンロード後は、単純に解凍してインストールするだけです。:
# tar zxvf xen-3.0-install.tgz
# cd xen-3.0-install
# sh ./install.sh
バイナリをインストール後は、セクション2.5に従ってシステムを設定する必要があります。
2.3 RPMパッケージからのインストール
ビルドされているRPMパッケージがXensourceのダウンロードページから入手できます。
http://www.xensource.com/downloads/
RPMのダウンロード後はRPMコマンドでインストールできます。
# rpm -iv rpmname
それぞれのRPMのインストール手順とリリースノートは以下にあります。
http://www.xensource.com/downloads/.
2.4 ソースからのインストール
このセクションではソースからのインストール方法(ソースの取得、ビルド、インストール)について記述します。
2.4.1 ソースの取得
The Xen source tree is available as either a compressed source tarball or as a clone of our master Mercurial repository.
Obtaining the Source Tarball Stable versions and daily snapshots of the Xen source tree are available from the Xen download page:
http://www.xensource.com/downloads/
Obtaining the source via Mercurial
The source tree may also be obtained via the public Mercurial repository at:
http://xenbits.xensource.com
See the instructions and the Getting Started Guide referenced at:
http://www.xensource.com/downloads/
2.4.2 Building from Source
The top-level Xen Makele includes a target world that will do the following:
Build Xen.
Build the control tools, including xend.
Download (if necessary) and unpack the Linux 2.6 source code, and patch it for
use with Xen.
Build a Linux kernel to use in domain 0 and a smaller unprivileged kernel, which can be used for unprivileged virtual machines.
After the build has completed you should have a top-level directory called dist/ inwhich all resulting targets will be placed. Of particular interest are the two XenLinux
kernel images, one with a “-xen0″ extension which contains hardware device drivers and drivers for Xen’s virtual devices, and one with a “-xenU” extension that just contains the virtual ones. These are found in dist/install/boot/ along with the image for Xen itself and the configuration files used during the build.
To customize the set of kernels built you need to edit the top-level Makefile. Look for
the line:
KERNELS ?= linux-2.6-xen0 linux-2.6-xenU
You can edit this line to include any set of operating system kernels which have con-
gurations in the top-level buildconfigs/ directory.
No comments yet.