1、安装xen
1 | # 1、下载安装xen源 |
2、新建网桥设备
1 | cd /etc/sysconfig/network-scripts/ |
3、选用半虚拟化(PV)或 PV-on-HVM(PVHVM) 或 全虚拟化(HVM)
PV-on-HVM(PVHVM)
这里有 PV-on-HVM 的详细讨论,及实例。简单来说,你只需在上述 HVM 配置文件加入 xen_platform_pci=1 便能采用 PVHVM。
半虚拟化(PV)
CentOS-6 及 CentOS-7 的内核缺省是不兼容半虚拟化的。你可以在 DomU 内采用 Dom0 内核,并于安装完成后通过修改配置文件启用 PV。
要是你有意这样做,以下是一些注意事项:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34# 1.你 不能 进行缺省安装,因为 Xen PV 机器的开机分区不能采用 XFS 文件系统……这是 CentOS 的缺省值。请在 CentOS 安装程序内手动创建一个 ext4 的 /boot 分区。
# 2.切勿在 CentOS 安装程序内以 LVM 分区作为开机分区……请采用标准分区。
# 3.要是你完成了上述事情,你便能创建一个 PV 配置文件,然后以 PV 模式从该分区开机。下面是一个供 test.pv DomU 用的样例,名为
vi /etc/xen/config.d/test.pv.cfg
name = "test"
kernel = "/source/vmlinuz"
ramdisk = "/source/initrd.img"
#bootloader = "/usr/lib64/xen/bin/pygrub"
memory = 2048
vcpus = 1
vif = [ 'bridge=br0' ]
disk = [ '/xen/disk/test.qcow2,qcow2,xvda,rw' ]
on_reboot = "destroy"
假如你遵从上述所有规则(以 xen dom0 内核替换 CentOS-7 安装的内核,/boot 禁用 xfs 文件系统,/boot 禁用 LVM,等……),
该机器将会以 PV 模式引导。当然,由于碟盘是共享的,你可以 同时 运行 HVM 及 PV 实例。你也可单独执行它们。
# 4.创建镜像硬盘
mkdir -p /xen/disk
qemu-img create -f qcow2 /xen/disk/test.qcow2 10G
# 5.要引导你的 PV DomU,请用此指令:
xl create -c /etc/xen/config.d/test.pv.cfg
# 6.根据提示安装完系统后,选择reboot
# 7.修改test.pv配置文件
vi /etc/xen/config.d/test.pv.cfg
name = "test"
#kernel = "/source/vmlinuz"
#ramdisk = "/source/initrd.img"
bootloader = "/usr/lib64/xen/bin/pygrub"
memory = 2048
vcpus = 1
vif = [ 'bridge=br0' ]
disk = [ '/xen/disk/test.qcow2,qcow2,xvda,rw' ]
#on_reboot = "destroy"
# 8.启动进入系统
xl cretae -c /etc/xen/config.d/test.pv.cfg
选用全虚拟化(HVM)
参数详解可以man 5 xl.cfg1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40# 全虚拟化的硬盘不能用qemu-img创建,大小显示有误,用dd创建
dd if=/dev/zero of=/xen/disk/c6-x8664.img oflag=direct seek=10239 bs=1M count=1
# CentOS-6配置文件
vi /etc/xen/config.d/c6-x8664.hvm.cfg
builder = "hvm"
name = "c6-x8664.hvm"
memory = 4096
vcpus = 2
serial='pty'
vif = [ 'mac=00:16:3E:29:00:00,bridge=xenbr0' ]
disk = [ 'phy:/dev/vg_c6xendom0/c68-x8664-hvm,xvda,rw', 'file:/opt/isos/CentOS-6.8-x86_64-minimal.iso,xvdb:cdrom,r' ]
boot = "dc"
sdl = 0
vnc = 1
vnclisten = "192.168.0.9"
vncdisplay = 0
vncpasswd = "supersecret"
stdvga=1
videoram = 64
# CentOS-7配置文件
vi etc/xen/config.d/c7-x8664.hvm.cfg
builder = "hvm"
name = "c7-x8664.hvm"
memory = 4096
vcpus = 2
serial='pty'
vif = [ 'mac=00:16:3E:29:00:01,bridge=xenbr0' ]
disk = [ 'phy:/dev/vg_c6xendom0/c73-x8664-hvm,xvda,rw', 'file:/opt/isos/CentOS-7-x86_64-Minimal-1611.iso,xvdb:cdrom,r' ]
boot = "dc"
sdl = 0
vnc = 1
vnclisten = "192.168.0.9"
vncdisplay = 1
vncpasswd = "supersecret"
stdvga=1
videoram = 64
- vnc listen 的 IP 地址是网桥的 IP,在此样例中为 192.168.0.9
- boot 可用磁盘机(a)、硬盘(c)、网络(n)或光盘(d)……因此 dc 代表以光盘然后以硬盘开机。完成安装后我们会将它改为 boot=”c”
- 我们可利用 vnc 客端连接到 192.168.0.9:5900(centos-6)及 192.168.0.9:5901(centos-7)。
- 步骤同半虚拟化,安装完系统后把配置文件中的boot = “dc”改成boot = “c”
4、使用通用工具libvirtd来管理xen
- virsh (CLI)
- virt-manager (GUI) —>可在xshell中使用,需要安装xmanager
- virt-install (CLI) –>创建虚拟机
virt-install安装系统
1 | # 1、安装Libvirt |
virt-manager安装系统
1 | # 1、在xshell命令行中输入virt-manager & 开启图形化安装系统 |
5、启动自制的linux系统 busybox(pv)
在配置busybox前,讲一下,相关的配置知识1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
[root@node1 ~]# uname -r
4.9.75-30.el6.x86_64
可以查看当前系统的内核版本
[root@node1 ~]# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 1 r----- 547.3
#xl list 可以查看显示Domain的相关信息
关于xen虚拟机的状态
r: running
b: 阻塞
p: 暂停
s: 停止
c: 崩溃
d: dying,正在关闭中的过程中
xm与xl启动DomU使用的配置文件略有不同;
对于xl而言,其创建DomU使用的配置指令可通过man xl.cfg获取
常用指令:
1.name : 域名称,必须是唯一的
2.builder: 指明虚拟机的类型,generic表示pv,hvm表示hvm
3.vcpus: 虚拟CPU个数
maxvcpus: 最大虚拟cpu个数
cpus: vcpu可运行于其上物理CPU列表
4.memory=MBYTES: 内存大小
maxmem=MBYTES: 可以使用的最大内存空间
5.on_poweroff: 指明关机时采取的action
destroy ,restart,preserve
6.on_reboot="ACTION" : 指明重启时采取的action
7.on_crash="ACTION": 虚拟机崩溃时采取的action
8.disk=[ "DISK_SPEC_STRING", "DISK_SPEC_STRING", ...]: 指明磁盘设备,列表
9.vif=[ "NET_SPEC_STRING", "NET_SPEC_STRING", ...]: 指明网络接口,列表
10.vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...]: 指明virtual frame buffer 显示图形界面,列表;
11.pci=[ "PCI_SPEC_STRING", "PCI_SPEC_STRING", ... ]: 指明pci设备接口
PV模式专用指令:
kernel="PATHNAME": 内核文件路径;
ramdisk="PATHNAME":为kernel指定内核提供的ramdisk文件路径
root="STRING": 指明根文件系统
extra="STRING" :额外传递给内核引导时使用的参数
bootloader="PROGRAM":如果DomU使用自己的kernel及ramdisk,此时需要一个Dom0中的应用程序来实现bootloader功能;
磁盘参数指定方式:
[<target>,[<format>,[vdev],[<access>]]]]
tartet表示磁盘映像文件或设备文件路径
format表示磁盘格式,如果映像文件,有多种 格式,如raw,qcow2
vdev 此设备在DomU被识别为硬件设备类型,支持hd,sd[x],xvd[x]
access访问权限
ro,r : 只读
rw,w :读写
disk=["/images/xen/linux.img,raw,xvda,rw",]
使用qemu-img管理磁盘映像
create [-f fmt] [-o options] filename [size]
可创建sparse稀疏格式的磁盘映像文件
示例:
1 | (1) 准备磁盘映像文件 |