1. 程式人生 > >XEN虛擬化簡介及XEN在CentOS 6.5上的安裝

XEN虛擬化簡介及XEN在CentOS 6.5上的安裝

-m pointf err virtual splash server amd inter linux c

根據之前KVM虛擬化的整理,虛擬化技術分類如下:

虛擬化技術的分類:

(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上的安裝