CentOS 7.x上的Xen虚拟化入门

时间:2020-02-23 14:31:30  来源:igfitidea点击:

欢迎使用CentOS 7.x上的Xen虚拟化入门。
Xen是开源的裸机虚拟机管理程序,它使我们可以在一台主机上并行运行不同的操作系统。
这种类型的管理程序通常称为管理程序 type 1在虚拟化世界中。

Xen用作服务器虚拟化,桌面虚拟化,基础架构即服务(IaaS)和嵌入式/硬件设备的基础。
物理主机系统运行多个来宾VM的能力可以极大地提高基础硬件的利用率。

Xen虚拟机管理程序的尖端功能

Xen与操作系统无关-主控制堆栈(域0)可以是Linux,NetBSD,OpenSolaris等。
cDriver隔离功能– Xen可以使系统的主设备驱动程序在虚拟机内部运行。
可以在驱动程序发生故障/崩溃的情况下重新引导VM,而不会影响系统的其余部分.Paravirtualization支持:与使用硬件虚拟化扩展(HVM)的完全虚拟化来宾相比,完全半虚拟化来宾可以更快地运行。
界面-Xen虚拟机管理程序使用微内核设计,占用的空间约为 1MB尺寸。
与其他虚拟机管理程序相比,Xen的这种小内存占用空间和与来宾的有限接口使Xen更加健壮和安全。

Xen项目包

Xen项目包包括:支持Xen项目的Linux内核Xen虚拟机管理程序本身QEMU的修改版本–支持HVM用户域工具集

Xen组件

Xen Project系统管理程序直接在硬件上运行,因此负责处理CPU,内存和中断。
退出引导加载程序后,它将立即运行。
domain/guest是虚拟机的运行实例。
下面是Xen Project组件的列表:Xen Project虚拟机管理程序:它直接在硬件上运行。
系统管理程序负责管理内存,CPU和中断。
它不了解网络和存储等I/O功能。
控制域(域0):Domain0是一个特殊域,其中包含主机系统中所有设备和控制堆栈的驱动程序,以管理虚拟机生命周期–创建访客域/虚拟机:来宾是指在虚拟环境中运行的操作系统。
Xen虚拟机管理程序支持两种虚拟化模式:并行化(PV):硬件辅助或者完全虚拟化(HVM)可以在单个虚拟机管理程序上同时使用上述两种来宾类型。
半虚拟化技术也可以用于HVM来宾(HVM上的PV)–本质上在PV和HVM之间创建连续体。
来宾VM被称为非特权域(DomU),因为它们没有特权访问硬件或者I/O功能。

换句话说,它们与硬件完全隔离。 4
工具堆栈和控制台:工具堆栈是一个控制堆栈,在该控件堆栈下 Domain 0允许用户管理虚拟机的创建,配置和销毁。
它公开了可以在命令行控制台上使用的界面。
在图形界面上或者通过云编排堆栈(例如OpenStack或者CloudStack)。
控制台是与外界的接口。

光伏与HVM

半虚拟化(PV)

Xen项目最初引入的高效轻量级虚拟化技术.Hypervisor提供来宾VM操作系统使用的API来宾操作系统需要修改以提供API不需要主机CPU的虚拟化扩展.PV来宾和控制域需要PV-启用了内核和PV驱动程序,以使来宾了解虚拟机管理程序,并且可以在没有仿真或者虚拟仿真硬件的情况下高效地运行。

硬件辅助虚拟化(HVM)–完全虚拟化

使用主机CPU上的CPU VM扩展来处理来宾请求。
需要Intel VT或者AMD-V硬件扩展。
完全虚拟化的来宾不需要任何内核支持。
因此Windows操作系统可以用作Xen Project HVM来宾.Xen Project软件使用Qemu来仿真PC硬件,包括BIOS,IDE磁盘控制器,VGA图形适配器,USB控制器,网络适配器等。
使用硬件可以提高仿真性能在性能方面,由于需要进行仿真,完全虚拟化的来宾通常比半虚拟化的来宾慢。
请注意,可以将PV驱动程序用于I/O来加速HVM来宾

PVHVM – PV-on-HVM驱动程序

PVH模式结合了HVM和PV的最佳元素,允许H/W虚拟客户机使用PV磁盘和I/O驱动程序不修改客户机OSHVM客户机使用优化的PV驱动程序来提高性能–绕过磁盘和网络IO的仿真,从而获得更好的性能在HVM系统上。
在来宾操作系统(例如Windows)上具有最佳性能.PVHVM驱动程序仅对于HVM(完全虚拟化)来宾VM是必需的。

在CentOS 7.x上安装Xen

请按照以下步骤安装Xen Hypervisor环境: 1.启用CentOS Xen资料库

sudo yum -y install centos-release-xen

2.更新内核并安装和Xen:

sudo yum  -y update kernel && sudo yum -y install xen

3.配置GRUB以启动Xen Project因为管理程序在操作系统之前启动,所以我们需要更改系统启动过程的设置方式:

sudo vi /etc/default/grub

更改Domain0的内存量以匹配我们分配的内存。

GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=2048M,max:4096M cpuinfo com1=115200,8n1 console=com1,tty loglvl=all guest_loglvl=all"

4.运行 grub-bootxen.sh确保grub已更新的脚本 /boot/grub2/grub.cfg

bash `which grub-bootxen.sh`

确认值已被修改:

grep dom0_mem  /boot/grub2/grub.cfg

5.重新启动服务器

sudo systemctl reboot

6.重新引导后,请验证新内核是否正在运行:

# uname -r

7.使用以下命令验证Xen是否正在运行:

# xl info
host                   : xen.example.com
release                : 3.18.21-17.el7.x86_64
machine                : x86_64
nr_cpus                : 6
max_cpu_id             : 5
nr_nodes               : 1
cores_per_socket       : 1
threads_per_core       : 1
.........................................................................

部署第一个虚拟机

此时,我们应该准备启动第一个VM。
在此演示中,我将使用 virt-install在Xen上部署VM。

sudo yum --enablerepo=centos-virt-xen -y install libvirt libvirt-daemon-xen virt-install
sudo systemctl enable libvirtd
sudo systemctl start libvirtd

Xen中安装的HostOS被称为Dom0。
通过Xen运行的虚拟机(VM)被称为DomU。

virt-install -d \
--connect xen:///\
--name testvm \
--os-type linux \
--os-variant rhel7 \
--vcpus=1  \
--paravirt \
--ram 1024  \
--disk /var/lib/libvirt/images/testvm.img,size=10 \
--nographics -l "http://192.168.122.1/centos/7.2/os/x86_64" \
--extra-args="text console=com1 utf8 console=hvc0"

如果我们想使用图形应用程序控制DomU VM,请考虑安装 virt-manager

sudo yum -y  install virt-manager

从Xen文档页面了解更多信息。