引言

本文介绍了在Xen4.6平台上使用命令行创建完全虚拟化CentOS6.6的domU客户机过程,使用Xen4.6的dom0运行在Centos6.9上。本文使用的是Xen安装附带的xl程序(Xen4CentOS版本已经不再支持xm)。

如果要使用virt-manager安装,可以参考CentOS官网上的《采用LibVirt/Virt-install及Virt-Manager来管理xen4centos也可以参考我的另外一篇博客《 Xen使用virt-manager创建虚拟机

安装准备

假设你已经按照CentOS官方推荐的Xen4CentOS6或者Xen made Easy官方提供的解决方案安装了一个 Xen 内核,输入 xl info 指令会有如下类似的结果:

[root@xentest1 ~]# xl info  
host                   : immortal  
release                : 3.10.56-11.el6.centos.alt.x86_64  
version                : #1 SMP Thu Oct 9 14:57:01 CDT 2014  
machine                : x86_64  
nr_cpus                : 4  
max_cpu_id             : 31  
nr_nodes               : 1  
cores_per_socket       : 4  
threads_per_core       : 1  
cpu_mhz                : 2533  
hw_caps                : bfebfbff:2c100800:00000000:00003f00:029ee3ff:00000000:00000001:00000000  
virt_caps              : hvm hvm_directio  
total_memory           : 6141  
free_memory            : 5030  
sharing_freed_memory   : 0  
sharing_used_memory    : 0  
outstanding_claims     : 0  
free_cpus              : 0  
xen_major              : 4  
xen_minor              : 4  
xen_extra              : .1-4.el6  
xen_version            : 4.4.1-4.el6  
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64   
xen_scheduler          : credit  
xen_pagesize           : 4096  
platform_params        : virt_start=0xffff800000000000  
xen_changeset          : Wed Oct 15 15:36:23 2014 +0100 git:9f49483-dirty  
xen_commandline        : dom0_mem=1024M,max:1024M loglvl=all guest_loglvl=all com1=115200,8n1 console=com1,vga  
cc_compiler            : gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)  
cc_compile_by          : mockbuild  
cc_compile_domain      : centos.org  
cc_compile_date        : Mon Dec 15 17:54:14 UTC 2014  
xend_config_format     : 4 
Xen安装成功以后,需要对网络进行配置,假设已经按照CentOS官网的 桥接方式对网络配置好了(默认网桥名称是xenbr0),也可以参考我的另外一篇博客《 在 CentOS6上为Xen设置桥接网络》。

创建domU使用的逻辑卷分区

首先需要创建domU使用的逻辑卷分区LV(Logical Volume),这要求在进行dom0安装时进行逻辑卷组VG(Volume Group)的创建或在新的硬盘分区上进行创建,我在CentOS dom0安装时预留了用于domU使用的逻辑卷组VG_CentOS。

[root@localhost ye]# vgdisplay
  --- Volume group ---
  VG Name               VG_CentOS
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               4
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               930.53 GiB
  PE Size               4.00 MiB
  Total PE              238216
  Alloc PE / Size       126112 / 492.62 GiB
  Free  PE / Size       112104 / 437.91 GiB
  VG UUID               vONs4i-E6De-fXEH-q8YF-SxAP-Gn1x-4Kye4K
然后使用lvcreate创建Dom U所需的逻辑分区
[root@centos xen]# lvcreate -L 100G -n xen_centos_HVM_1 VG_CentOS  
 Logical volume "xen_centos_HVM_1" created  
[root@localhost ye]# lvdisplay /dev/VG_CentOS/xen_centos_HVM_1
  --- Logical volume ---
  LV Path                /dev/VG_CentOS/xen_centos_HVM_1
  LV Name                xen_centos_HVM_1
  VG Name                VG_CentOS
  LV UUID                wPu3xC-7dPH-ohLl-PmBl-71XS-UZmW-iUwgmH
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-08-18 10:11:12 +0800
  LV Status              available
  # open                 1
  LV Size                100.00 GiB
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4
若安装dom0的系统时没有进行逻辑卷管理也是可以的,不过最好是建议进行逻辑卷管理,可以参考IBM中国社区的这篇文章( 逻辑卷管理)。

准备镜像及配置文件

我是通过ISO文件来安装CentOS的,所以我在Dom0上创建了一个名为的/opt/isos的目录,用于存放镜像文件。 

[root@localhost ye]# cd /opt/isos
[root@localhost isos]# ls
CentOS-6.6-x86_64-minimal.iso
然后我们需要为每个虚拟机配置文件。在安装成功Xen后有一个名为/etc/xen/xlexample.hvm的HVM示例配置文件。

[root@localhost xen]# cat /etc/xen/xlexample.hvm 
# =====================================================================
# Example HVM guest configuration
# =====================================================================
#
# This is a fairly minimal example of what is required for an
# HVM guest. For a more complete guide see xl.cfg(5)

# This configures an HVM rather than PV guest
builder = "hvm"

# Guest name
name = "example.hvm"

# 128-bit UUID for the domain as a hexadecimal number.
# Use "uuidgen" to generate one if required.
# The default behavior is to generate a new UUID each time the guest is started.
#uuid = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

# Enable Microsoft Hyper-V compatibile paravirtualisation /
# enlightenment interfaces. Turning this on can improve Windows guest
# performance and is therefore recommended
#viridian = 1

# Initial memory allocation (MB)
memory = 128

# Maximum memory (MB)
# If this is greater than `memory' then the slack will start ballooned
# (this assumes guest kernel support for ballooning)
#maxmem = 512

# Number of VCPUS
vcpus = 2

# Network devices
# A list of 'vifspec' entries as described in
# docs/misc/xl-network-configuration.markdown
vif = [ '' ]

# Disk Devices
# A list of `diskspec' entries as described in
# docs/misc/xl-disk-configuration.txt
disk = [ '/dev/vg/guest-volume,raw,xvda,rw' ]

# Guest VGA console configuration, either SDL or VNC
sdl = 1
#vnc = 1
参照这个配置文件,我在/etc/xen/ 目录下创建了一个config.d目录,并在该目录下创建了虚拟机配置文件

[root@localhost xen]# cat /etc/xen/config.d/xen-centos-hvm.cfg 
builder = "hvm"
name = "xen-centos-hvm-1 "
memory = 1024
vcpus = 1
serial='pty'
vif = [ 'bridge=xenbr0' ]
disk = [ 'phy:/dev/VG_CentOS/xen_centos_HVM_1,xvda,rw', 'file:/opt/isos/CentOS-6.6-x86_64-minimal.iso,xvdb:cdrom,r' ]
boot = "dc"
sdl = 0
vnc = 1
vnclisten  = "127.0.0.1"
vncdisplay = 0
vncpasswd  = 123456789
stdvga=1
videoram = 64

各个选项什么意思可以参考Xen官网的说明手册:xl.cfg(5),也可以参考网上我看到的一篇博客:《对XEN中HVM虚拟机的一些理解》,但要注意以下几点:

1. IP地址是虚拟机网桥的地址,如果是本地连接可以设置为本地地址,即127.0.0.1。

2. vncpasswd是vnc客户端连接虚拟机的密码,最好是设置一个,因为默认密码我找了很久没找到。

3.安装成功后一定要记得修改启动项为boot="c"让虚拟机从硬盘中启动。

到此虚拟机就已经创建好了。

启动虚拟机

使用xl命令可以启动虚拟机

[root@localhost xen]# xl list
Name                                        ID   Mem VCPUs	State	Time(s)
Domain-0                                     0  1024     4     r-----    4604.5
[root@localhost xen]# xl create  /etc/xen/config.d/xen-centos-hvm.cfg 
Parsing config from /etc/xen/config.d/xen-centos-hvm.cfg
[root@localhost xen]# xl list
Name                                        ID   Mem VCPUs	State	Time(s)
Domain-0                                     0  1024     4     r-----    4607.9
xen-centos-hvm-1                            11  1024     1     r-----       1.0
你没有看错,刚才创建的虚拟机已经启动了,但怎么去控制虚拟机呢?这里我使用的是VNC,VNC的安装与配置请参考我的另外一篇博客( Linux中VNC的安装与配置) 。

输入:

xl vncviewer xen-centos-hvm-1
便可以进入Dom U的控制窗口了。
注意:安装成功后一定要记得修改/etc/xen/config.d/xen-centos-hvm.cfg中启动项 boot="c"让虚拟机从硬盘中启动。


参考文献:

[1]. https://wiki.centos.org/HowTos/Xen/Xen4QuickStart/Xen4Cli

[2]. http://blog.csdn.net/ctbinzi/article/details/6157932


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐