虚拟化技术--Xen知识总结

来源:互联网 发布:有网络 无法显示此网页 编辑:程序博客网 时间:2024/05/17 07:29

虚拟化技术基础:

cpu虚拟化:
模拟:emulation
虚拟:virtulization
完全虚拟化(full-virtulization)
BT: 二进制翻译 (软件)
HVM:硬件辅助的虚拟化 (硬件)
半虚拟化(para-virtulization)


Memory: 
进程:线性地址空间
内核:物理地址空间


MMU Virtulization
Intel: EPT, Extended Page Table
AMD: NTP, Nested Page Table


TLB virtulization
tagged TLB


I/O: 
外存:
硬盘、光盘、U盘
网络设备:
网卡
显示设备:
VGA: frame buffer机制
键盘鼠标:
ps/2, usb


I/O虚拟化的方式:
模拟: 完全使用软件来模拟真实硬件
半虚拟化化: 
IO-through: IO透传


Intel: VT-d
基于北桥的硬件辅助的虚拟化技术;



两种实现方式:
Type-I:
xen, vmware ESX/ESXi
Type-II:

kvm, vmware workstation, virtualbox

虚拟化技术的分类:
模拟:著名的模拟器,PearPC, Bochs, QEMU
完全虚拟化:也称为native virtulization
两种加速方式:
BT
HVM
VMware Workstation, VMware Server, Parallels Desktop, KVM, Xen(HVM)
半虚拟化:para-virtualization
xen, uml(user-mode linux)
OS级别的虚拟化:
OpenVZ, lxc
Solaris Containers
FreeBSD jails
库虚拟化:
wine
应用程序虚拟化:
jvm


虚拟化网络:
nat mode
bridge mode
routed mode
isolation mode



使用brctl的配置的过程示例:
# brctl addbr br0
# brctl stp br0 on
# ifconfig eth0 0 up
# brctl addif br0 eth0
# ifconfig br0 IP/NETMASK up
# route add default gw GW


Xen:

  Xen的组成部分:

1.Xen Hypervisor: 分配CPU、Memory、Interrupt

                2. Dom0 : ①特权域  为用户提供接口创建虚拟机

                                      ②借助其内核,驱动IO程序。(其他虚拟机的IO就是由Dom0通过Qemu模拟出IO,再关联至实际硬盘。半虚拟化模式提高效率,分前半段和后半段)

                3.DomU 非特权域,根据其虚拟化方式实现。

     Xen的工作模式:
   pv: 半虚拟化
   fv: 依赖于CPU的HVM
   pv on hvm: CPU完全虚拟化,但IO采用半虚拟化;


xen hypervisor
硬件 --> 安装Linux --> 安装xen --> 修改grub,配置其内核为xen,而不再使用原Linux的内核(Linux的内核和initramfs文件被当作xen的模块)--> 重新编译Linux内核,使得其能够运行于Dom0 --> 重启系统;



创建一个pv格式的vm:
(1) 准备磁盘映像文件
qemu-img create -f raw -o size=2G /images/xen/busybox.img
mke2fs -t ext /images/xen/busybox.img


(2) 提供根文件系统
编译busybox,并复制到busybox.img映像中
mount -o /images/xen/busybox.img /mnt
cp -a $BUSYBOX/_install/* /mnt
mkdir /mnt/{proc,sys,dev,var}


(3) 提供配置DomU配置文件
name = "busybox-001"
kernel = "/boot/vmlinuz"
ramdisk = "/boot/initramfs.img"
extra = "selinux=0 init=/bin/sh"
memory = 256
vcpus = 2
disk = [ '/images/xen/busybox.img,raw,xvda,rw' ]
root = "/dev/xvda ro"


(4) 启动实例:
xl [-v] create <DomU_Config_file> -n
xl create <DomU_Config_file> -c


Ctrl + ]


使用xl命令进行创建虚拟机并完成CentOS 6.6的系统安装
(1) 创建磁盘映像文件;
(2) 获取安装指定版本的系统所需要kernel及initrd文件;
(3) 创建DomU配置文件,示例如下:
name = "centos-001"
kernel = "/images/kernel/vmlinuz"
ramdisk = "/images/kernel/initrd.img"
extra = "ks=http://172.16.0.1/centos6.x86_64.cfg"
memory = 512
vcpus = 2
vif = [ 'bridge=xenbr0' ]
disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]
on_reboot = "shutdown"


(4) 安装完成后,创建虚拟机的配置文件需要做出修改;
name = "centos-001"
bootloader = "pygrub"
memory = 512
vcpus = 2
vif = [ 'bridge=xenbr0' ]
disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]


启动图形窗口:
在创建虚拟机的配置文件中定义vfb
(1) vfb = [ 'sdl=1' ]
(2) vnc
(a) yum install tigervnc
(b) vfb = [ 'vnc=1' ]
vnc监听的端口为5900, 相应的DISPLAYNUM为0