Xenで仮想環境を構築
新年ですが、普通に技術の話題です。
「Xen徹底入門」を参考にXenの構築を行ってみました。ちょっと調べたら、この本に書いてないようなツールもあるようなので、それを確認しながらの作業です。
この本は個人でXenを使って開発をするときに使うような、お手軽な構成から、複数マシンを使って構築するような大きな構成まで、幅広く言及されてます。VNETやマイグレーションの話題までしっかりと載っているので、会社でXenを使おうと思っているような人も、手元に置いておくと便利かもしれません。
Xen徹底入門
平 初 (著)
長谷川 猛 (著)
宮本 久仁男 (著)
大島 孝子 (著)
¥ 3,444 (税込)
CentOSによるDomain-0の構築
今回作るのはCentOSの準仮想化環境になります。まずはXenのDomain-0の構築です。
基本的には普通にCentOSをCDなりDVDなりを使ってインストールするのと同じです。ただ、インストールするソフトウェアの部分で、「仮想化」という項目があるので、その部分にチェックを入れてインストールするだけです。この部分は特別難しいことはありません。
それ以外の部分は基本的にどんな構成でも良いのですが、Xenのベースとなる部分ですので、なるべく無駄なものを入れずに構築した方が、重さ的にもセキュリティ的にもいいと思います。僕は最小構成+仮想化でインストール。GUIとかはなーし、という感じです。
あとは普通にCentOS用の設定をするだけです。別にXen用の特殊な設定とかはまだ必要なし。僕の場合、以下の設定をしてます。
まずは、ルートだけだといろいろ面倒なので、作業用のユーザの作成。
# adduser user # passwd user # visudo user ALL=(ALL) ALL
ネットワーク関連の設定。
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.***.*** NETMASK=255.255.255.0 BROADCAST=192.168.***.255 GATEWAY=192.168.***.1 HWADDR=**:**:**:**:**:** IPV6INIT=yes IPV6_AUTOCONF=yes ONBOOT=yes PEERDNS=no DHCP_HOSTNAME=****** $ sudo vi /etc/resolv.conf search nameserver 192.168.***.* $ sudo /etc/init.d/network restart
sshの設定。
$ sudo vi /etc/ssh/sshd_config PermitRootLogin no PasswordAuthentication no UsePAM no
最後にyumのアップデート。
$ sudo yum update
本来なら、この後必要のないサービスを消したりする必要があるのですが、開発環境なので、とりあえずこんな感じで。
Domain-U (ファイル)
まずはストレージとしてファイルを使っての、Domain-Uの作り方です。本には書いてなかった野ですが、virt-installというツールを使うと、とてもお手軽に作れます。
$ sudo /user/sbin/virt-install -nographics -n xen-file-test Would you like a fully virtualized guest (yes or no)? no How mach RAM should be allocated (in megabytes)? 256 What would you like to use as the disk (file path)? /home/xen/test/imgfile How large would you like the disk (/home/xen/test/imgfile) to be (in gigabytes)? 2 Would you like to enable graphics support? (yes or no) no What is the install location? ftp://ftp2.riken.jp/Linux/centos/5/os/i386
使用するRAMのサイズは最低で256Mになっています。これは後述しますが、後で直接設定をいじることでもっと少ない値にも変更可能です。
ストレージとして使うファイルは前もってddなどで作っておけば、そのパスを指定すれば自動的にそのファイルを使ってくれます。パスにファイルが存在しないときは作成するファイルサイズを聞かれるので、サイズを指定すればその大きさのファイルを作ってくれます。
install locationはネットワークインストールに使うソースフォルダのパスです。www.centos.org - centos.org contentから選んできます。
あとは、CUIのインストール画面が出てくるので、普通にインストールすればOKです。CUIの画面が若干見にくく、チェックしたところと違うところにチェックがついてるー、なんてことによくなりますが、地道に設定してください。
ネットワークインストールなので若干時間がかかりますが、後は待ってればOK。
Domain-U (パーティション)
ストレージとしてパーティションを使う場合も非常に簡単です。まずはDomain-Uで使うパーティションを作成しておきます。
$ sudo /sbin/fdisk /dev/sda コマンド (m でヘルプ): n コマンドアクション: e Selected partition 4 最初 シリンダ (1384-19452, default 1384): Using default value 1384 終点 シリンダ または +サイズ または +サイズM または +サイズK (1384-19452, default 19452): Using default value 19452 コマンド (m でヘルプ): n 最初 シリンダ (1384-19452, default 1384): Using default value 1384 終点 シリンダ または +サイズ または +サイズM または +サイズK (1384-19452, default 19452): +10240M コマンド (m でヘルプ): w
今回は拡張パーティション(sda4)と論理パーティション(sda5)を切ってます。論理パーティション(sda5)上にインストールします。
$ sudo /usr/sbin/virt-install -nographics -n xen-part-test Would you like a fully virtualized guest (yes or no)? no How mach RAM should be allocated (in megabytes)? 256 What would you like to use as the disk (file path)? /dev/sda5 Would you like to enable graphics support? (yes or no) no What is the install location? ftp://ftp2.riken.jp/Linux/centos/5/os/i386
パーティションの場合は、そのままパーティションのパスを指定すればOKです。それ以外はファイルの場合と同じ。
パーティションの場合も設定をして、しばらくまてばできあがります。簡単です。
作成後に設定を変更
virt-installによるデフォルトのインストールだと、最小RAMが256Mだったり、ネットワークはブリッジ接続になっていたりします。この設定だと困る、という場合は、作成後にも設定の変更を行うことができます。
設定は、/etc/xen/ドメイン名にあります。この設定ファイルを直接編集してドメインの再起度をすればOK。
$ sudo vi /etc/xen/xen-part-test $ sudo /usr/sbin/xm shutdown xen-part-test $ sudo /usr/sbin/xm create xen-part-test