CentOS 5.6 で xen
〜 ローカルメディアから準仮想化サーバをインストール 〜
2011-08-31 作成 福島

2011-08-31 現在、CentOS の最新バージョンは 6.0 ですが、CentOS 6.0 では KVM が推奨されていて、
xen はリリースディレクトリから削除されています。
CentOS 5.6 と CentOS 6.0 の推奨仮想化の違い
ディストリビューションCentOS 5.6CentOS 6.0
仮想化技術XenKVM
名前の意味語呂が良かったKernel-Based virtual Machine
Intel VT or AMD-V無くても良い (※1)必須
※1 Intel VT / AMD-V が無い場合は、完全仮想化を選択できません。
Intel VT などという高価な PC を購入することができないため、CentOS 5.6 で Xen を動作させます。


CentOS 5.6 (ホスト OS) のインストール時に「仮想化」を選択しておいてください。
ゲスト OS のインストール諸元
仮想化の方法準仮想化
インストールする OSCentOS 5.6
ユーザインタフェースCUI
仮想サーバ名vm1
パーティション(ディスクイメージ)名/var/lib/xen/images/vm1.img

1. SELinux の解除
インストールリポジトリ (FTP サーバ) に OS メディアをマウントするため、SE 機能を解除する。
$ su
# setenforce Permissive ; getenforce
有効にするにはこちら
# setenforce Enforcing ; getenforce
2. xenconsoled の確認 (※2)
# ps ax | grep xenconsoled

xenconsoled が起動していなかったら、起動しておく。
# sudo /etc/rc.d/init.d/xend restart

仮想サーバのインストール中に xenconsoled が落ちていたら以下で起動する。
# sudo /usr/sbin/xenconsoled
3. libvirtd の確認
# ps ax | grep libvirtd
# cat /usr/share/libvirt/networks/default.xml
<network>
  <name>default</name>
  <bridge name="virbr0" />
  <forward/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254" />
    </dhcp>
  </ip>
</network>
Domain0 に 192.168.122.1 が割り当てられ、インストール時の DHCP には 192.168.122.2 〜 254 が使用される。
4. ディストリビューション用 FTP サーバの用意 (※3)
# mkdir /var/ftp/os
# mount -t iso9660 -o loop ./CentOS-5.6-i386-bin-DVD.iso /var/ftp/os/
# /etc/rc.d/init.d/vsftpd start
ホントは「python -m SimpleHTTPServer 80」でお気軽にやりたかったけど、
インストーラが途中で「ファイルが無い」と言い張って停止するので FTP でやる。
5. VirtualMachine の構築
ディスクイメージ格納ディレクトリの存在を確認 (ここにディスクイメージを作成する)
# ls -l /var/lib/xen/ | grep images
drwxr-xr-x 2 root root 4096  8月 29 00:05 images

仮想サーバを作成
# virt-install \
	--paravirt \
	--name=vm1 \
	--vcpus=1 \
	--ram=256 \
	--file=/var/lib/xen/images/vm1.img \
	--file-size=5 \
	--nonsparse \
	--nographics \
	--location=ftp://192.168.122.1/os/ \
	--network=network:default

準仮想化
仮想サーバ名
使用 CPU 数
物理 RAM (MB) サイズ (ホスト OS の RAM が減少する)
ディスクイメージ名
ディスクイメージサイズ (GB)
ディスクイメージは通常方式
CUI インストール
ディストリビューション用 FTP サーバ
この default を通して Domain0(192.168.122.1) と通信する (※4)
※4 このオプションを追加しないと、ホスト OS のリポジトリ (今回は FTP サーバ) と通信できない。
  ホスト OS でなく物理的に異なるリポジトリなら、このオプションは無くても良い。
6. ゲスト OS (CentOS 5.6) のインストール
6.1. 初期化の様子が表示される
インストールを開始しています...
ファイル .treeinfo を読出中...                                        |  412 B     00:00
ファイル vmlinuz を読出中...                                          | 2.2 MB     00:01
ファイル initrd.img を読出中...                                       | 7.4 MB     00:03
ストレージファイルを作成中  43% [===========               ] 2.2 MB/s | 2.2 GB     22:04 ETA

6.2. インストール用言語を選択 (インストールにだけ使う言語)
    ここで English を選択してもインストール後に日本語が使える。
Welcome to CentOS
+---------+ Choose a Language +---------+
|                                       |
| What language would you like to use   |
| during the installation process?      |
|                                       |
|       Catalan                ^        |
|       Chinese(Simplified)    :        |
|       Chinese(Traditional)   #        |
|       Croatian               :        |
|       Czech                  :        |
|       Danish                 :        |
|       Dutch                  :        |
|       English                v        |
|                                       |
|                +----+                 |
|                | OK |                 |
|                +----+                 |
|                                       |
|                                       |
+---------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen


「インストール中の言語はどれにする?」


6.3. インストール用ネットワークの設定
    (DHCP を選択すると、上記「--network=network:default」により、192.168.122.* の IP アドレスを取得する)
    インストール後に使用するネットワークは、あとで設定画面が表示される。
    IPv6 は不要。
Welcome to CentOS
+----------------+ Configure TCP/IP +----------------+
|                                                    |
| [*] Enable IPv4 support                            |
|        (*) Dynamic IP configuration (DHCP)         |
|        ( ) Manual configuration                    |
|                                                    |
| [ ] Enable IPv6 support                            |
|        (*) Automatic neighbor discovery (RFC 2461) |
|        ( ) Dynamic IP configuration (DHCP)         |
|        ( ) Manual configuration                    |
|                                                    |
|          +----+                  +------+          |
|          | OK |                  | Back |          |
|          +----+                  +------+          |
|                                                    |
|                                                    |
+----------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.4. 作業中の表示
Welcome to CentOS
+--------------------------------------------------+
|                                                  |
| Determining host name and domain...              |
|                                                  |
+--------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen


「ホスト名とドメインを決めてる。。。」


6.5. 歓迎の表示
Welcome to CentOS
+------------------+ CentOS +-------------------+
|                                               |
| Welcome to CentOS!                            |
|                                               |
|                                               |
|                    +----+                     |
|                    | OK |                     |
|                    +----+                     |
|                                               |
|                                               |
+-----------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.6. インストール先パーティションの選択
Welcome to CentOS
+-------------------------+ Partitioning Type +-------------------------+
|                                                                       |
|    Installation requires partitioning of your hard drive.  The        |
|    default layout is reasonable for most users.  You can either       |
|    choose to use this or create your own.                             |
|                                                                       |
| Remove all partitions on selected drives and create default layout.   |
| Remove linux partitions on selected drives and create default layout. |
| Use free space on selected drives and create default layout.          |
| Create custom layout.                                                 |
|                                                                       |
|       Which drive(s) do you want to use for this installation?        |
|          [*]   xvda     5114 MB (Xen Virtual Block Device) ^          |
|                                                            #          |
|                                                                       |
|                          +----+   +------+                            |
|                          | OK |   | Back |                            |
|                          +----+   +------+                            |
|                                                                       |
|                                                                       |
+-----------------------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

インストールにはあなたの HDD にパーティションが必要。
デフォルトのレイアウトがほとんどのユーザに妥当。
あなたは違うのを選択することもできる。

・選択したドライブにあるすべてのパーティションを削除してデフォルトレイアウトを作る。
・選択したドライブにある Linux パーティションを削除してデフォルトレイアウトを作る。
・選択したドライブに余っているところにデフォルトレイアウトを作る。
・好きにレイアウトする。


6.7. 確認画面
Welcome to CentOS
+-------------------+ Warning +--------------------+
|                                                  |
| You have chosen to remove all Linux partitions   |
| (and ALL DATA on them) on the following drives:  |
|                                                  |
| xvda (Xen Virtual Block Device 5114 MB)          |
|                                                  |
| Are you sure you want to do this?                |
|                                                  |
|         +----+                  +-----+          |
|         | No |                  | Yes |          |
|         +----+                  +-----+          |
|                                                  |
|                                                  |
+--------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen


あなたは下記のドライブ上のすべての Linux パーティションを削除することを選択した。(それはデータを含む)


間違いないか?


6.8. 作成するパーティションを確認するかどうか
    面倒だから見ない。(どうせディスクイメージファイルだから、気にしても仕方が無い)
Welcome to CentOS
+-------+ Review Partition Layout +-------+
|                                         |
| Review and modify partitioning layout?  |
|                                         |
|       +-----+             +----+        |
|       | Yes |             | No |        |
|       +-----+             +----+        |
|                                         |
|                                         |
+-----------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.9. ネットワークを調整するか (Yes を選択)
    インストール後に使用するネットワークを設定する。
Welcome to CentOS
+----+ Configure Network Interface +-----+
|                                        |
| Would you like to configure the eth0   |
| network interface in your system?      |
|                                        |
|       +-----+            +----+        |
|       | Yes |            | No |        |
|       +-----+            +----+        |
|                                        |
|                                        |
+----------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.9.1. ネットワーク設定 (1/4)
    IPv4 を起動時に有効にする。
Welcome to CentOS
++ Network Configuration for eth0 ++
|                                  |
|     Xen Virtual Ethernet         |
|     00:16:36:04:09:13            |
|                                  |
|     [*] Activate on boot         |
|     [*] Enable IPv4 support      |
|     [ ] Enable IPv6 support      |
|                                  |
|       +----+    +------+         |
|       | OK |    | Back |         |
|       +----+    +------+         |
|                                  |
|                                  |
+----------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.9.2. ネットワーク設定 (2/4)
    インストール後に使用したい IP アドレスを設定する
Welcome to CentOS
+-----+ IPv4 Configuration for eth0 +-----+
|                                         |
| Xen Virtual Ethernet                    |
| 00:16:36:04:09:13                       |
|                                         |
| ( ) Dynamic IP configuration (DHCP)     |
| (*) Manual address configuration        |
|                                         |
|     IP Address         Prefix (Netmask) |
|     192.168.1.12____ / 255.255.255.0___ |
|                                         |
|       +----+            +------+        |
|       | OK |            | Back |        |
|       +----+            +------+        |
|                                         |
|                                         |
+-----------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.9.3. ネットワーク設定 (3/4)
    インストール後に利用するルータを設定する
Welcome to CentOS
+------------+ Miscellaneous Network Settings +------------+
|                                                          |
| Gateway:       192.168.1.1______________________________ |
| Primary DNS:   192.168.1.1______________________________ |
| Secondary DNS: _________________________________________ |
|                                                          |
|           +----+                     +------+            |
|           | OK |                     | Back |            |
|           +----+                     +------+            |
|                                                          |
|                                                          |
+----------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.9.4. ネットワーク設定 (4/4)
    ホスト名を命名する (ここでは仮想サーバ名と同一にしているが、自由でいい)
Welcome to CentOS
+--------------------+ Hostname Configuration +--------------------+
|                                                                  |
| If your system is part of a larger network where hostnames are   |
| assigned by DHCP, select automatically via DHCP. Otherwise,      |
| select manually and enter a hostname for your system. If you     |
| do not, your system will be known as 'localhost.'                |
|                                                                  |
|       ( ) automatically via DHCP                                 |
|       (*) manually               vm1_____________________        |
|                                                                  |
|             +----+                         +------+              |
|             | OK |                         | Back |              |
|             +----+                         +------+              |
|                                                                  |
|                                                                  |
+------------------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen


DHCP を使っている大きなネットワークなら「DHCP による自動化」を選択する。
そうじゃないなら、マニュアルを選択して自分のホスト名を記入してくれ。
どれでもなければ localhost となる。


6.10. タイムゾーンの選択
    NTP には UTC が邪魔になる。仮想サーバで NTP は使わないと思うが、あとのことを考えてチェックを外しておく。
Welcome to CentOS
+-------+ Time Zone Selection +-------+
|                                     |
| What time zone are you located in?  |
|                                     |
| [ ] System clock uses UTC           |
|                                     |
|  Asia/Tehran                     ^  |
|  Asia/Thimphu                    :  |
|  Asia/Tokyo                      #  |
|  Asia/Ulaanbaatar                :  |
|  Asia/Urumqi                     v  |
|                                     |
|      +----+          +------+       |
|      | OK |          | Back |       |
|      +----+          +------+       |
|                                     |
|                                     |
+-------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.11. 管理者パスワードの設定
Welcome to CentOS
+--------------+ Root Password +---------------+
|                                              |
| Pick a root password. You must type it       |
| twice to ensure you know what it is and      |
| didn't make a mistake in typing. Remember    |
| that the root password is a critical part    |
| of system security!                          |
|                                              |
| Password:           ************____________ |
| Password (confirm): ************____________ |
|                                              |
|        +----+               +------+         |
|        | OK |               | Back |         |
|        +----+               +------+         |
|                                              |
|                                              |
+----------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen


管理者パスワードを仕掛けろ。
あなたの思うそれが間違えずにタイプできるよう、2 度タイプしなくてはならない。
このパスワードがセキュリティ上非常に重要であることを覚えておけ。


6.12. 作業中の表示
Welcome to CentOS
+----------------+ Installation Progress +----------------+
|                                                         |
| Retrieving installation information...                  |
|                                                         |
|                           40%                           |
|                                                         |
+---------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.13. インストールパッケージの選択
Welcome to CentOS
+----------------------+ Package selection +----------------------+
|                                                                 |
| The default installation of CentOS includes a set of software   |
| applicable for general internet usage. What additional tasks    |
| would you like your system to include support for?              |
|                                                                 |
|                    [ ] Desktop - Gnome    ^                     |
|                    [ ] Desktop - KDE      #                     |
|                    [*] Server             :                     |
|                    [ ] Server - GUI       v                     |
|                                                                 |
|                [ ] Customize software selection                 |
|                                                                 |
|             +----+                        +------+              |
|             | OK |                        | Back |              |
|             +----+                        +------+              |
|                                                                 |
|                                                                 |
+-----------------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.14. 作業中の表示
Welcome to CentOS
+----------------------+ Dependency Check +-----------------------+
|                                                                 |
| Checking dependencies in packages selected for installation...  |
|                                                                 |
|                               20%                               |
|                                                                 |
+-----------------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.15. 最終確認
Welcome to CentOS
+---------+ Installation to begin +----------+
|                                            |
| A complete log of your installation will   |
| be in /root/install.log after rebooting    |
| your system. You may want to keep this     |
| file for later reference.                  |
|                                            |
|       +----+              +------+         |
|       | OK |              | Back |         |
|       +----+              +------+         |
|                                            |
|                                            |
+--------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.16. 作業中の表示
Welcome to CentOS
+---------------------+ Formatting +----------------------+
|                                                         |
| Formatting / file system...                             |
|                                                         |
|                           97%                           |
|                                                         |
+---------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.17. 作業中の表示
Welcome to CentOS
+------------------+ Package Installation +------------------+
|                                                            |
|  Name   :                                                  |
|  Size   :                                                  |
|  Summary:                                                  |
|                                                            |
|                                                            |
|  Status:+---------+ Install Starting +----------+          |
|         |                                       |          |
|         | Starting install process.  This may   |          |
|         | take several minutes...               |          |
|         |                                       |   Time   |
|   Total +---------------------------------------+          |
|   Complet                                                  |
|   Remaining:                  459       759M               |
|                                                            |
|                             0%                             |
|                                                            |
+------------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.18. 作業中の表示
Welcome to CentOS
+------------------+ Package Installation +------------------+
|                                                            |
|  Name   : kernel-xen-2.6.18-238.el5-i686                   |
|  Size   : 47823k                                           |
|  Summary: The Linux kernel compiled for Xen VM operations  |
|                                                            |
|                                                            |
|  Status:                                                   |
|                                                            |
|                           100%                             |
|                                                            |
|                          Packages      Bytes        Time   |
|   Total    :                  459       759M     0:19:50   |
|   Completed:                  432       679M     0:17:45   |
|   Remaining:                   27        80M     0:02:05   |
|                                                            |
|                            89%                             |
|                                                            |
+------------------------------------------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.19. 作業中の表示
Welcome to CentOS
+------+ Bootloader +-------+
|                           |
| Installing bootloader...  |
|                           |
+---------------------------+
<Tab>/<Alt-Tab> between elements  |
<Space> selects | <F12> next screen

6.20. インストール終了
Welcome to CentOS
+----------------------+ Complete +-----------------------+
|                                                         |
| Congratulations, your CentOS installation is complete.  |
|                                                         |
| Remove any media used during the installation process   |
| and press <Enter> to reboot your system.                |
|                                                         |
|                                                         |
|                       +--------+                        |
|                       | Reboot |                        |
|                       +--------+                        |
|                                                         |
|                                                         |
+---------------------------------------------------------+
                 <Enter> to reboot

6.21. リブート後、約 45 秒この画面が表示される。
    適宜調整する。

               ┌──────┤Setup Agent ├───────┐
               │                                          │ 
               │Select the item that you wish to modify   │ 
               │                                          │ 
               Authentication          ↑      │ 
               │          Firewall configuration  ◆      │ 
               │          Network configuration     
               │          System services           
                 
                 
                 
               │                                  ↓      │ 
               │                                          │ 
               ┌────┐            ┌──┐ 
               │Run Tool│            │Exit│  
               └────┘            └──┘  
                                                
               │                                          │ 
               └─────────────────────┘ 
                                                              

 <Tab>/<Alt-Tab> between elements   |  <Space> selects   |  <F12> next screen 

6.22. ログイン画面
    Ctrl-] で一度抜ける
CentOS release 5.6 (Final)
Kernel 2.6.18-238.el5xen on an i686

vm1 login: ^]
7. ブリッジインタフェースの変更
ブリッジインタフェースが virbr0 になっているので、xenbr0 に変更する。
また、GUI から操作できるように、VNC の設定を追加する。
# vi /etc/xen/vm1
...
vif = [ "mac=00:16:36:xx:xx:xx,bridge=xenbr0,script=vif-bridge" ]
vfb = [ "type=vnc,vncunused=1" ]
...
virbr0 のままだと、通信ができない。
8. 仮想サーバをリブート
ブリッジインタフェースを変更したのでリブートして有効にする。
# xm reboot vm1
9. おまけ # yum groupinstall "Japanese Support" -y id:3 -> id:5
※2 xenconsoled はホスト OS (Domain0) とゲスト OS (DomainU) が最初に通信するためのコンソールです。
 これが無いと、仮想化した領域に CentOS をインストールすることができません。

※3 準仮想化の場合、インストールメディアとして直接のローカルディスク (/cdrom や *.iso ファイル) を使用することができません。
 HTTP サーバ (or FTP サーバ or NFS) が必須となります。