Xen使用命令行创建虚拟机
引言本文介绍了在Xen4.6平台上使用命令行创建完全虚拟化CentOS6.6的domU客户机过程,使用Xen4.6的dom0运行在Centos6.9上。本文使用的是Xen安装附带的xl程序(Xen4CentOS版本已经不再支持xm)。如果要使用virt-manager安装,可以参考CentOS官网上的《采用LibVirt/ Virt-install 及 Virt-Manager 来管
引言
本文介绍了在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
更多推荐
所有评论(0)