Version 4 (modified by yuna, 55 years ago) (diff) |
---|
OpenVz?
近年、VMWare、Xen、KVMなどのマシンの仮想化技術が注目を浴びています。仮想化技術とは、一つの物理マシン上で複数のOSを動作させる技術のことで、近年ハードウェアの進化に伴いあり余ってきているハードウェアリソースを有効に活用することができます。
しかしながら、VMWareやXen等の仮想化技術では、ハードウェア自身を仮想化し個別のOSを起動するため、OSのメモリ領域が取られたり、ディスクI/Oのエミュレーションが重くパフォーマンスが低下します。
OpenVz?はLinuxに特化した仮想化ソリューションです。専用のカーネル上で複数のLinuxOS環境を動作させることができます。例えば、Ubuntu上でCentOSとDebianを動作させるといったことが可能です。他の仮想化ソリューションと比べて、ハードウェアまで仮想化しないため、軽快に動作するといった特徴があります。XenとOpenVzのパフォーマンスの比較について興味がある人はHP社から提供されている資料を読むとよいでしょう。
Performance Evaluation of Virtualization Technologies for Server Consolidation
ここでは、UbuntuでOpenVzを利用する方法を紹介します。
インストール
/etc/apt/sources.listに次のapt-lineを追加します。
deb http://debian.systs.org/ etch openvz
apt-getでOpenVzに対応したカーネルとユーティリティ、OSのテンプレートをインストールします。
# apt-get install vzctl vzquota vzdump vzctl-ostmpl-debian # apt-get install linux-headers-2.6.18-fza-5-686 linux-image-2.6.18-fza-5-686
VEの作成
VEとは、OpenVz?で動作する仮想的なOS環境のことです。ここでは、上記のインストール手順でインストールしたDebianのOSテンプレートからVEを作成してみましょう。まず最初に、OpenVz?を起動します。
# /etc/init.d/vz start
他のWebページを見ると、/etc/sysctl.confを変更しろとか書いていますが、Debian版のOpenVzをインストールすると勝手にsysctl.confを書き換えてくれるので設定は不要です。
次に、インストールするテンプレートの確認を行います。テンプレートは/var/lib/vz/template/cacheディレクトリにあるので、テンプレート名を確認しておくと良いでしょう。
# ls /var/lib/vz/template/cache debian-4.0-i386-minimal.tar.gz
テンプレートのファイル名から、.tar.gzを除いたものがテンプレート名になります。VEを作成するには、次のようにvzctl createを利用します。
# vzctl create 1001 --ostemplate debian-4.0-i386-minimal --ipadd 192.168.1.10 --hostname vzdebian
1001はVEのIDです。VE毎に異なるIDを指定してください。以下、このIDを利用してVEを操作することになります。
OpenVz?で利用できるテンプレートは、openvz.orgの下記のサイトに用意されています。
SuSE,CentOS,Debian,Fedora等が用意されています。
VEの操作
作成したVEを起動するには、
# vzctl start 1001
とします。vzlistで起動中のVEを確認します。
# vzlist VEID NPROC STATUS IP_ADDR HOSTNAME 1001 6 running 192.168.1.10 vzdebian
VEのルートユーザのパスワードを変更するには、次のようにします。
# vzctl set 1001 --userpasswd root:root --save
--saveをつけないと、次回VEを起動したときに設定が無効になります。デフォルトではDNSが無効になっているため、次のようにしてDNSを設定しておきます。
# vzctl set 1001 --nameserver 218.176.253.66
VEにログインするには、次のようにします。
# vzctl enter 1001 root@localhost:/#
VE内でSSHを起動しておけば、他のOSからログインできます。
root@localhost:/# /etc/init.d/ssh