Xen - CentOS 5 への導入

XenCentOSへのインストールは非常に簡単。yumコマンド1つでインストールすることができる。

[root@tkcent1 /]# yum install xen kernel-xen0 kernel-xenU
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
extras                    100% |=========================| 1.1 kB    00:00     
updates                   100% |=========================|  951 B    00:00     
base                      100% |=========================| 1.1 kB    00:00     
addons                    100% |=========================|  951 B    00:00     
Reading repository metadata in from local files
################################################## 254/254
primary.xml.gz            100% |=========================| 149 kB    00:00     
################################################## 343/343
################################################## 3131/3131
Parsing package install arguments
Resolving Dependencies
    • > Populating transaction set with selected packages. Please wait.
      • > Downloading header for xen to pack into transaction set.
xen-3.0.3-41.el5.x86_64.r 100% |=========================| 86 kB 00:00
      • > Package xen.x86_64 0:3.0.3-41.el5 set to be updated
    • > Running transaction check
    • > Processing Dependency: libxenstore.so.3.0()(64bit) for package: xen
    • > Processing Dependency: libfsimage.so.1.0(libfsimage.so.1.0)(64bit) for package: xen
    • > Processing Dependency: libSDL-1.2.so.0()(64bit) for package: xen
    • > Processing Dependency: libfsimage.so.1.0()(64bit) for package: xen
    • > Processing Dependency: libblktap.so.3.0()(64bit) for package: xen
    • > Processing Dependency: libxenguest.so.3.0()(64bit) for package: xen
    • > Processing Dependency: libxenctrl.so.3.0()(64bit) for package: xen
    • > Processing Dependency: python-virtinst for package: xen
    • > Processing Dependency: bridge-utils for package: xen
    • > Processing Dependency: xen-hypervisor-abi = 3.1 for package: xen
    • > Processing Dependency: xen-libs = 3.0.3-41.el5 for package: xen
    • > Restarting Dependency Resolution with new changes.
    • > Populating transaction set with selected packages. Please wait.
      • > Downloading header for python-virtinst to pack into transaction set.
python-virtinst-0.103.0-3 100% |=========================| 7.8 kB 00:00
      • > Package python-virtinst.noarch 0:0.103.0-3.el5.centos set to be updated
      • > Downloading header for xen-libs to pack into transaction set.
xen-libs-3.0.3-41.el5.x86 100% |=========================| 28 kB 00:00
      • > Package xen-libs.x86_64 0:3.0.3-41.el5 set to be updated
      • > Downloading header for SDL to pack into transaction set.
SDL-1.2.10-8.el5.x86_64.r 100% |=========================| 12 kB 00:00
      • > Package SDL.x86_64 0:1.2.10-8.el5 set to be updated
      • > Downloading header for bridge-utils to pack into transaction set.
bridge-utils-1.1-2.x86_64 100% |=========================| 4.9 kB 00:00
      • > Package bridge-utils.x86_64 0:1.1-2 set to be updated
      • > Downloading header for kernel-xen to pack into transaction set.
kernel-xen-2.6.18-53.1.4. 100% |=========================| 251 kB 00:00
      • > Package kernel-xen.x86_64 0:2.6.18-53.1.4.el5 set to be updated
    • > Running transaction check
    • > Processing Dependency: libvirt-python >= 0.2.1 for package: python-virtinst
    • > Restarting Dependency Resolution with new changes.
    • > Populating transaction set with selected packages. Please wait.
      • > Downloading header for libvirt-python to pack into transaction set.
libvirt-python-0.2.3-9.el 100% |=========================| 13 kB 00:00 libvirt-0.2.3-9.el5.x86_6 100% |=========================| 24 kB 00:00
      • > Package libvirt.x86_64 0:0.2.3-9.el5 set to be updated
    • > Running transaction check
    • > Processing Dependency: dnsmasq for package: libvirt
    • > Restarting Dependency Resolution with new changes.
    • > Populating transaction set with selected packages. Please wait.
      • > Downloading header for dnsmasq to pack into transaction set.
dnsmasq-2.39-2.el5.x86_64 100% |=========================| 7.1 kB 00:00
      • > Package dnsmasq.x86_64 0:2.39-2.el5 set to be updated
    • > Running transaction check
Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: xen x86_64 3.0.3-41.el5 base 1.9 M Installing for dependencies: SDL x86_64 1.2.10-8.el5 base 214 k bridge-utils x86_64 1.1-2 base 28 k dnsmasq x86_64 2.39-2.el5 base 151 k kernel-xen x86_64 2.6.18-53.1.4.el5 updates 16 M libvirt x86_64 0.2.3-9.el5 base 657 k libvirt-python x86_64 0.2.3-9.el5 base 63 k python-virtinst noarch 0.103.0-3.el5.centos base 63 k xen-libs x86_64 3.0.3-41.el5 base 133 k Transaction Summary ============================================================================= Install 9 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 19 M Is this ok [y/N]: y Downloading Packages: (1/9): libvirt-0.2.3-9.el 100% |=========================| 657 kB 00:04 (2/9): dnsmasq-2.39-2.el5 100% |=========================| 151 kB 00:01 (3/9): python-virtinst-0. 100% |=========================| 63 kB 00:00 (4/9): xen-libs-3.0.3-41. 100% |=========================| 133 kB 00:00 (5/9): SDL-1.2.10-8.el5.x 100% |=========================| 214 kB 00:01 (6/9): bridge-utils-1.1-2 100% |=========================| 28 kB 00:00 (7/9): kernel-xen-2.6.18- 100% |=========================| 16 MB 00:11 (8/9): libvirt-python-0.2 100% |=========================| 63 kB 00:00 (9/9): xen-3.0.3-41.el5.x 100% |=========================| 1.9 MB 00:11 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: xen-libs ######################### [1/9] Installing: bridge-utils ######################### [2/9] Installing: SDL ######################### [3/9] Installing: dnsmasq ######################### [4/9] Installing: kernel-xen ######################### [5/9] Installing: xen ######################### [6/9] Installing: libvirt ######################### [7/9] Installing: python-virtinst ######################### [8/9] Installing: libvirt-python ######################### [9/9] Installed: xen.x86_64 0:3.0.3-41.el5 Dependency Installed: SDL.x86_64 0:1.2.10-8.el5 bridge-utils.x86_64 0:1.1-2 dnsmasq.x86_64 0:2.39-2.el5 kernel-xen.x86_64 0:2.6.18-53.1.4.el5 libvirt.x86_64 0:0.2.3-9.el5 libvirt-python.x86_64 0:0.2.3-9.el5 python-virtinst.noarch 0:0.103.0-3.el5.centos xen-libs.x86_64 0:3.0.3-41.el5 Complete! [root@tkcent1 /]#

なお、Xenを使用するためにはSELinuxが有効になっていると問題が発生するので向こうに設定しておく必要がある。SELinuxのステータスを確認するためには、getenforceコマンドか、"/selinux/enforce"のビットを確認する(1=有効/0=無効)。

[root@tkcent1 /]# /usr/sbin/getenforce 
Enforcing
[root@tkcent1 /]# cat /selinux/enforce
1

SELinuxのステータス変更も、同じように"setenforce"コマンドを実施することで可能。ただし、SELinuxが機能していないと"setenforce"コマンドを使用することも出来ないので、"setenforce"コマンドを使用してSELinuxを無効(Disable)にすることはできない。
以下、EnforcingからPermissiveに設定を変更する実施例。Enforcing=1, Permissive=0.

[root@tkcent1 /]# /usr/sbin/setenforce
usage:  /usr/sbin/setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@tkcent1 /]# /usr/sbin/setenforce 0
[root@tkcent1 /]# /usr/sbin/getenforce 
Permissive

SELinuxの有効/無効を設定し、起動時動作を設定するには、"/etc/selinux/config"ファイルを設定する。

[root@tkcent1 /]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#	enforcing - SELinux security policy is enforced.
#	permissive - SELinux prints warnings instead of enforcing.
#	disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
#	targeted - Only targeted network daemons are protected.
#	strict - Full SELinux protection.
SELINUXTYPE=targeted

# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0 
[root@tkcent1 /]# 

SELinuxを無効に設定したい場合は、"SELINUX=enforcing"となっている箇所を"SELINUX=disabled"に変更する。

/// ってですね、ここまで書いて別件で同時に検証していたら仮想マシンすっとばしちゃいましたよ(^_^;)。合掌…。あー、CentOSのインストールイメージ取っておいてない…。Bittorrentで落とさねば…。そんなわけで、なんか中途半端ですが第1回はここまで。