XEN ================================================================================================================================================ 1、XEN XEN属于硬件之上直接安装虚拟化软件,然后创建虚拟机。Xen Hypervisor直接运行在硬件之上。XEN虚拟了计算机的CPU和内存,没有虚拟计算的IO 设备,所以在安装Xen Hypervisor之后,将安装第一个虚拟机,用户可以通过此虚拟主机提供的接口管理其他的虚拟主机。XEN借助于第一个虚拟主 机的内核,从而驱动IO设备。 其他虚拟主机的CPU和内存由 Xen Hypervisor 实现,而如果其他虚拟主机要使用IO设备的时候需要借助于第一个虚拟主机的内核从何驱动IO设备,第 第一个虚拟主机上的此功能由 Qemu 模拟实现。 CPU:Xen Htpervisor运行一个线程,作为虚拟机的虚拟CPU 内存:二次映射内存地址到虚拟机 IO设备:使用半虚拟化技术,由Dom0实现 2、术语 Domain # 每个虚拟机都被称为Domain,这些Domain都有编号,第一个启动的虚拟机被称为Dom0 Privileged Domain # 特权Domian UnPrivileged Domain # 其他虚拟主机,非特权Domain,被称为DomainU 3、Xen不同实现技术 PV技术:半虚拟化 不依赖于CPU的HVM特性,但要求GuestOS的内核作出修改以知晓自己运行于PV环境 可以运行于DomU的OS有:Linux(2.6.24+),NetBSD,FreeBSD,OpenSolarls HVM技术:硬件辅助虚拟化 依赖于Interl VT或AMD AMD-V,还依赖Qemu模拟IO设备 可以运行于DomU的OS:几乎所有x86平台OS PV on HVM: CPU为HVM模拟运行 IO设备为PV模式运行 4、管理xen的工具 xm/xend # 在Xem Hypervisor的Dom0中要启动的xend服务 (废弃) xl # Xen轻量化命令行管理工具 virsh/libvirt # 通用的管理化工具 5、xl工具使用 xl [-vfN] [args] xl list # 列出所有dommain的相关信息 xen虚拟机状态信息显示 r: running b: 阻塞 p: 暂停 s: 停止 c: 崩溃 d: dying, 正在关闭的过程中 6、创建一个xen虚拟机 步骤: kernel # kernel放置在dom0上,只在虚拟机启动哪一个使用内核 initrd或者initramfs # 辅助内核加载根文件系统 DomU内核模块 根文件系统 swap设备 上述步骤定义在DonU的配置文件中。 7、xl的配置文件 man xl.xfg name # 域唯一的名称 builder # 虚拟机的类型,generic表示pv,hvm表示hvm vcpus # 虚拟cpu的个数 maxcpus # 最大虚拟cpu个数 cpus # vcpu可运行于骑上的物理cpu列表 memory=MBYTES # 内存大小 maxmem=MBYTES # 可以使用的最大内存空间 on_poweroff # 指明关机时采用的action on_reboot="action" on_poweroff # 指明关机时采取的action destroy, restart, preserve on_reboot="ACTION" # 指明“重启”DomU时采取的action on_crash="ACTION" # 虚拟机意外崩溃时采取的action uuid # DomU的惟一标识 disk=[ "DISK_SPEC_STRING", "DISK_SPEC_STRING", ...] # 指明磁盘设备,列表, vif=[ "NET_SPEC_STRING", "NET_SPEC_STRING", ...] # 指明网络接口,列表, vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...] # 指明virtual frame buffer,列表; pci=[ "PCI_SPEC_STRING", "PCI_SPEC_STRING", ... ] # pci设备的列表 ================================================================================================================================================ XEN配置过程 # 安装xen yum install xen # 修改 /etc/grub.conf default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (3.18.12-11.el6.x86_64) root (hd0,0) kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin module /vmlinuz-3.18.12-11.el6.x86_64 ro root=UUID=13a111aa-1ccc-44ad-b4db-7def961b91cd nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet module /initramfs-3.18.12-11.el6.x86_64.img title CentOS 6 (2.6.32-696.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=13a111aa-1ccc-44ad-b4db-7def961b91cd nomodeset rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-696.el6.x86_64.img # 重新启动系统 shutdown -r now # 查看虚拟化环境 xl list