XEN虛擬化簡介及XEN在CentOS 6.5上的安裝
虛擬化技術的分類:
(1) 模擬:Emulation
Qemu, PearPC, Bochs
(2) 完全虛擬化:Full Virtualization, Native Virtualization
HVM
VMware Workstation, VirtualBox, VMware Server, Parallels Desktop, KVM, Xen
(3) 半虛擬化:ParaVirtualization
GuestOS:知曉自己是運行Virtualization
Hypercall
解決安裝:Xen, UML(User-Mode Linux)
(4) OS級別的虛擬化
將用戶空間分割為多個,彼此間互相隔離,
容器級虛擬化
OpenVZ, LXC(Linux Container), libcontainer, Virtuozzo, Linux V Servers
(5) 庫級別虛擬化
Wine
Xen組成部分:
(1) Xen Hypervisor
分配CPU、Memmory、Interrupt
(2) Dom0
特權域,I/O分配
網絡設備:net-front(GuestOS), net-backend
塊設備:block-front(GuestOS), block-backend
Linux Kernel:
2.6.37:開始支持運行Dom0
3.0:對關鍵特性進行了優化
提供管理DomU工具棧
用於實現對虛擬機進行添加、啟動、快照、停止、刪除等操作
(3) DomU
非特權域,根據其虛擬化方式實現,有多種類型:
PV:半虛擬化
HVM:全虛擬化
PV on HVM:I/O半虛擬化
Xen的PV技術:
不依賴於CPU的HVM特性,但要求GuestOS的內核作出修改以知曉自己運行於PV環境
運行於DomU中的OS:Linux(2.6.24+), NetBSD, FreeBSD, OpenSolaris
Xen的HVN技術:
依賴於Intel VT或AMD AMD-V,還要依賴於Qemu來模擬IO設備
運行於DomU中的OS:幾乎所有支持此x86平臺的
PV on HVM:
CPU為HVM模式運行
IO設備為PV模式運行
運行於DomU中的OS:只要OS能驅動PV接口類型的IO設備,比如net-front, block-front等
Xen的工具棧:
xm/xend:在Xen Hypervisor的Dom0中要啟動xend服務
xm:命令行管理工具,有諸多子命令,如create, destroy, stop, pause...
xl:基於libxenlight提供的輕量級的命令行工具棧
xe/xapi:提供了對xen管理的api,因此多用於cloud環境,如Xen Server, XCP等
CentOS對Xen的支持:
RHEL 5.7-:默認的虛擬化技術為xen
kernel version:2.6.18
kernel
kernel-xen
RHEL 6+:僅支持kvm
Dom0:不支持
DomU:支持
如何在CentOS 6.6上使用Xen:
(1) 編譯3.0以上版本的內核,啟動對Dom0的支持
(2) 編譯xen程序
制作好相關程序包的項目:
xen4centos
xen made easy
在CentOS 6.5上安裝Xen:
yum -y install wget
wget http://us3.mirror.crc.id.au/repo/kernel-xen-release-el6-latest.noarch.rpm
rpm -ivh kernel-xen-release-el6-latest.noarch.rpm
yum -y install perl
yum install -y xen kernel-xen xen-libs python-virtinst bridge-utils
編輯/etc/grub.conf:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (4.9.38-1.el6xen.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=1 dom0_vcpus_pin
module /vmlinuz-4.9.38-1.el6xen.x86_64 ro root=UUID=a7a56b12-cb53-4113-acc7-41cd71cf36bd rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
module /initramfs-4.9.38-1.el6xen.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=a7a56b12-cb53-4113-acc7-41cd71cf36bd rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
重啟系統
reboot
xl的常用命令:
list:顯示Domain的相關信息
Xen虛擬機狀態:
r:running
b:阻塞
p:暫停
s:停止
c:崩潰
d:dying, 正在關閉的過程中
shutdown:關機
reboot:重啟
pause:暫停
unpause:解除暫停
save:將DomU的內存中的數據轉存至指定的磁盤文件中
xl [-vf] save [options] <Domain> <Checkpointfile> [<ConfigFile>]
restore:從指定的磁盤文件中恢復DomU內存數據
xl [-vf] restore [options] [<ConfigFile>] <CheckpointFile>
vcpu-list
vcpu-pin
vcpu-set
info:當前xen hypervisor的摘要信息
domid
domname
top:查看domain資源占用排序狀態的命令
network-list:查看指定域使用網絡及接口
network-attach
network-detach
block-list:查看指定域使用的塊設備列表
block-attach
block-detach
uptime:運行時長
XEN虛擬化簡介及XEN在CentOS 6.5上的安裝