Xen虚拟化平台安装及实时迁移
前言
Xen是英国剑桥大学计算机实验室开发的一个虚拟化开源项目,Xen可以在一套物理硬件上安全的执行多个虚拟机,它和操作平台结合的极为密切,占用的资源极少。以高性能、占用资源少著称,赢得了IBM、AMD、HP、Redhat和Novell等众多世界级软硬件厂商的高度认可和大力支持,已被国内外众多企事业用户用来搭建高性能的虚拟化平台。
Xen虚拟化类型
Xen对虚拟机的虚拟化分为两大类,半虚拟化和完全虚拟化。
半虚拟化
半虚拟化(Paravirtualization)有些资料称为“超虚拟化”,简称为PV,是Xen主导的虚拟化技术。这种技术允许虚拟机操作系统感知到自己运行在Xen Hypervisor上而不是直接运行在硬件上,同时也可以识别出其他运行在相同环境中的客户虚拟机。
完全虚拟化
完全虚拟化(Hardware Virtual Machine)又称“硬件虚拟化”,简称HVM,是指运行在虚拟环境上的虚拟机在运行过程中始终感觉自己是直接运行在硬件之上的,并且感知不到在相同硬件环境下运行着其他虚拟机的虚拟技术。
基本组件
Xen包含三大部分:
Hypervisor:直接运行于硬件之上,是Xen客户操作系统与硬件资源之间的访问接口。通过将客户操作系统与硬件进行分类,Xen管理系统可以允许客户操作系统安全,独立的运行在相同硬件环境之上。
Domain 0:运行在Xen管理程序之上,具有直接访问硬件和管理其他客户操作系统的特权的客户操作系统。
DomainU:运行在Xen管理程序之上的普通客户操作系统或业务操作系统,不能直接访问硬件资源(如:内存,硬盘等),但可以独立并行的存在多个。
详述见:http://my.oschina.net/davehe/blog/94039
Xen及虚拟机安装
安装Xen(CentOS6.6)
[root@node2 ~]# cd xen/ [root@node2 xen]# ls kernel-xen-3.7.4-1.el6xen.x86_64.rpm xen-hypervisor-4.2.4-30.el6.centos.alt.x86_64.rpm kernel-xen-firmware-3.7.4-1.el6xen.x86_64.rpm xen-libs-4.2.4-30.el6.centos.alt.x86_64.rpm kernel-xen-release-6-4.noarch.rpm xen-licenses-4.2.4-30.el6.centos.alt.x86_64.rpm xen-4.2.4-30.el6.centos.alt.x86_64.rpm xen-runtime-4.2.4-30.el6.centos.alt.x86_64.rpm [root@node2 xen]# yum install *.rpm -y
修改grub文件
[root@node2 ~]# vim /etc/grub.confdefault=0 timeout=5 splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (3.7.4-1.el6xen.x86_64)root (hd0,0)kernel /xen.gz dom0_mem=512M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pinmodule /vmlinuz-3.7.4-1.el6xen.x86_64 ro root=/dev/mapper/vg_firewallserver-lv_ root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_firewa llserver/lv_root crashkernel=auto rd_LVM_LV=vg_firewallserver/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quietmodule /initramfs-3.7.4-1.el6xen.x86_64.img title CentOS 6 (2.6.32-504.el6.x86_64)root (hd0,0)kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=/dev/mapper/vg_firewallserver-lv_ root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_firewa llserver/lv_root crashkernel=auto rd_LVM_LV=vg_firewallserver/lv_swap KEYBOARDTYPE=pc KE YTABLE=us rd_NO_DM rhgb quietinitrd /initramfs-2.6.32-504.el6.x86_64.img
重启系统,查看内核参数
[root@node2 ~]# uname -r 3.7.4-1.el6xen.x86_64
启动服务
[root@node2 ~]# service xend start Starting xend daemon: [ OK ] [root@node2 ~]# xm list WARNING: xend/xm is deprecated. Name ID Mem VCPUs State Time(s) Domain-0 0 512 2 r----- 218.7
创建桥设备
由于虚拟机运行在宿主机之上,虚拟机运行的网络环境需要由宿主机提供,需要先配置好网桥,以便虚拟机与宿主机之间通信
#关闭NetworkManager [root@node2 ~]# service NetworkManager stop [root@node2 ~]# chkconfig NetworkManager off [root@node2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPADDR=172.16.10.124 PREFIX=16 GATEWAY=172.16.0.1 DNS1=172.16.0.1[root@node2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none BRIDGE=br0[root@node2 ~]# service network restart [root@node2 ~]# brctl stp br0 on #避免环路
准备引导文件
[root@node2 ~]# mount /dev/cdrom1 /media/cdrom/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@node2 ~]# cp /media/cdrom/isolinux/{vmlinuz,initrd.img} /tmp [root@node2 ~]# ln -sv /media/cdrom/ /var/www/html/centos6.6 `/var/www/html/centos6.6' -> `/media/cdrom/' [root@node2 ~]# service httpd start Starting httpd: [ OK ]
创建磁盘映像文件
[root@node2 ~]# mkdir -pv /xen/vm1 [root@node2 ~]# dd if=/dev/zero of=/xen/vm1/centos6.6.img oflag=direct bs=1M seek=102399 count=1 [root@node2 ~]# ll /xen/vm1/ -h total 1.0M -rw-r--r-- 1 root root 100G Jul 16 17:53 centos6.6.img
定义domain
[root@node2 ~]# vim /etc/xen/centos6.6kernel = "/tmp/vmlinuz" ramdisk = "/tmp/initrd.img" name = "centos6.6" vcpus = 1 memory = 512 vif = ["bridge=br0"] disk = ['file:/xen/vm1/centos6.6.img,xvda,w'] on_crash = "destroy" on_reboot = "destroy"
启动虚拟机
[root@node2 ~]# xm create -c centos6.6
启动虚拟机即可进入安装界面,和VMware安装类似,简单截取一下就不详细记录了
配置IP,可手动配置
获取IP后,指定安装源
初始化磁盘
以为定义domain时,我们设定on_reboot = "destroy",所以虚拟机会关机,接下来需要修改domain配置
[root@node2 ~]# vim /etc/xen/centos6.6 #kernel = "/tmp/vmlinuz" #ramdisk = "/tmp/initrd.img" name = "centos6.6" vcpus = 1 memory = 512 vif = ["bridge=br0"] disk = ['file:/xen/vm1/centos6.6.img,xvda,w'] on_crash = "destroy" on_reboot ="restart" bootloader="/usr/bin/pygrub"
[root@node2 ~]# xm create -c centos6.6
登陆虚拟机,查看IP(安装时为DHCP,登陆后又手动修改了IP)
至此,基于Xen平台的虚拟机安装完成,以上过程较繁琐,主要是为了理解Xend的工作过程,如果想要简单安装,可选择使用第三方管理工具 virt-manager(类似于VMware图形界面)
因为其中一个Xen平台已经搭建成功,且已安装虚拟机,另一个节点只需配置Xen环境即可,无需安装
[root@node3 ~]# cd xen/ [root@node3 xen]# yum install *.rpm
[root@node3 xen]# vim /etc/grub.conf title CentOS (3.7.4-1.el6xen.x86_64)root (hd0,0)kernel /xen.gz dom0_mem=512M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pinmodule /vmlinuz-3.7.4-1.el6xen.x86_64 ro root=/dev/mapper/vg_firewallserver-lv_ root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_firewa llserver/lv_root crashkernel=auto rd_LVM_LV=vg_firewallserver/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quietmodule /initramfs-3.7.4-1.el6xen.x86_64.img
[root@node2 ~]# service NetworkManager stop [root@node2 ~]# chkconfig NetworkManager off [root@node3 xen]# vim /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPADDR=172.16.10.125 PREFIX=16 GATEWAY=172.16.0.1 DNS1=172.16.0.1[root@node3 xen]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none BRIDGE=br0
[root@node3 ~]# uname -r 3.7.4-1.el6xen.x86_64 [root@node3 ~]# brctl stp br0 on
#只创建目录即可,待挂载 [root@node3 ~]# mkdir -p /xen/vm1
[root@node4 ~]# vim /etc/exports /xen/vm1 172.16.0.0/16(rw,no_root_squash)[root@node4 ~]# mkdir -p /xen/vm1 [root@node4 ~]# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ]
[root@node2 xen]# scp /etc/xen/centos6.6 node3:/etc/xen/ root@node3's password: centos6.6 100% 234 0.2KB/s 00:00
[root@node2 ~]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 495 2 r----- 942.7 centos6.6 3 512 1 -b---- 88.4 [root@node2 ~]# xm shutdown centos6.6 root@node2 xen]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 495 2 r----- 1075.5
[root@node2 ~]# cp /xen/vm1/centos6.6.img /tmp [root@node2 xen]# mount -t nfs 172.16.10.126:/xen/vm1/ /xen/vm1/ [root@node2 xen]# mv /tmp/centos6.6.img /xen/vm1/
[root@node2 xen]# grep xend-relocation /etc/xen/xend-config.sxp |grep -v '#' (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
[root@node2 xen]# scp /etc/xen/xend-config.sxp node3:/etc/xen root@node3's password: xend-config.sxp 100% 11KB 11.1KB/s 00:00
[root@node2 xen]# service xend restart Stopping xend daemon: [ OK ] Starting xend daemon: [ OK ]
[root@node3 ~]# mount -t nfs 172.16.10.126:/xen/vm1/ /xen/vm1/ [root@node3 ~]# ls /xen/vm1/ centos6.6.img
[root@node3 ~]# service xend restart Stopping xend daemon: [ OK ] Starting xend daemon: [ OK ]
[root@node2 ~]# xm create -c centos6.6 [root@localhost ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:3E:45:41:28 inet addr:172.16.10.231 Bcast:172.16.255.255 Mask:255.255.0.0inet6 addr: fe80::216:3eff:fe45:4128/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:177 errors:0 dropped:0 overruns:0 frame:0TX packets:19 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:8595 (8.3 KiB) TX bytes:1326 (1.2 KiB)Interrupt:247
[root@node2 xen]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 495 2 r----- 2495.1 centos6.6 4 512 1 -b---- 52.0 [root@node3 ~]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 512 2 r----- 373.5
[root@node2 xen]# xm migrate -l centos6.6 172.16.10.125
[root@node2 xen]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 493 2 r----- 2578.2 [root@node3 ~]# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 496 2 r----- 484.3 centos6.6 1 512 1 -b---- 1.3
[root@node3 ~]# xm console centos6.6 [root@localhost ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:3E:45:41:28 inet addr:172.16.10.231 Bcast:172.16.255.255 Mask:255.255.0.0inet6 addr: fe80::216:3eff:fe45:4128/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:2480 errors:0 dropped:0 overruns:0 frame:0TX packets:149 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:146639 (143.2 KiB) TX bytes:10466 (10.2 KiB)Interrupt:247
转载于:https://blog.51cto.com/scholar/1675485
Xen虚拟化平台安装及实时迁移相关推荐
- xen虚拟化实战系列(一)之xen虚拟化环境安装
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1284516 xen目前 ...
- h3c虚拟化服务器配置,H3C CAS 虚拟化平台安装部署
H3C CAS 虚拟化平台安装部署 H3C CAS采用基于KVM技术的虚拟化解决方案,基于OpenStack架构的虚拟化管理解决方案. CAS软件包扩了CVK,CVM,CIC,SSV.CAS使用的是B ...
- OVM虚拟化平台安装成功后初始化配置方法!
为什么80%的码农都做不了架构师?>>> 对于首安装OVM用户,在OVM平台安装成功后,第一次登陆出现无法登陆的状况! OVM管理平台在成功安装后,必需进行admin初始化设 ...
- 虚拟化平台安装并升级显卡驱动
前言 在虚拟化平台上,虚拟化要使用vGPU,需要同时在主机和虚拟机上安装显卡驱动,主机和虚拟机的显卡驱动需要保守一致.安装驱动时先安装主机驱动,再安装虚拟机驱动. 驱动下载 可以从显卡官网许可中心下载 ...
- 【虚拟户生态平台】虚拟化平台安装时遇到的坑
No Network Adapters 问题描述 该问题的原因是由于安装系统时,没有包含对应的网卡驱动导致的.这种情况一般都是由于网卡驱动版本较低,比较老旧的网卡,需要自己去封装一个镜像资源,将网卡驱 ...
- 阿里云迁移工具推荐最佳实践:Xen虚拟化迁移到阿里云
1.迁移需求分析 Xen虚拟化是早期半虚拟化技术,现有部分本地还在使用,像Citrix公司开发的XenServer虚拟化管理平台,底层就是运用的xen虚拟化技术底座,但是目前市场使用比较多的还是开源K ...
- 华为云迁移工具推荐最佳实践:Xen虚拟化迁移到华为云
1.迁移需求分析 Xen虚拟化是早期半虚拟化技术,现有部分本地还在使用,像Citrix公司开发的XenServer虚拟化管理平台,底层就是运用的xen虚拟化技术底座,但是目前市场使用比较多的还是开源K ...
- 移动云迁移工具:Xen虚拟化迁移到移动云
1.迁移需求分析 Xen虚拟化是早期半虚拟化技术,现有部分本地还在使用,像Citrix公司开发的XenServer虚拟化管理平台,底层就是运用的xen虚拟化技术底座,但是目前市场使用比较多的还是开源K ...
- xen虚拟化实战系列(二)之xen虚拟机安装
xen虚拟化实战系列文章列表 xen虚拟化实战系列(一)之xen虚拟化环境安装 xen虚拟化实战系列(二)之xen虚拟机安装 xen虚拟化实战系列(三)之xen虚拟机复制 xen虚拟化实战系列(四)之 ...
最新文章
- 通讯速率_什么是通讯?
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
- 用express-generator创建express项目骨架
- 工作中总结的一些C#小经验,随时更新
- SSH 本地和服务器传输
- 节能原理 复习(能量平衡+热电联产+联合循环)
- android开发环境搭建(ubuntu15.04+jdk8+eclipse+android sdk)
- PL/SQL Developer结合oracle精简客户端配置说明
- XCode5 真机调试及发布应用
- Java反射基础(二)--Fileds对象的使用
- VTP 的TRUNK 协议
- gem ruby on rails 安装出错GemNotFoundException
- 白话搭建一个简单的微服系统
- 123 Python程序中的线程操作-协程
- 1万美元FS-ISAC网络安全奖学金
- oracle 导出table数据,导出table数据库数据
- 域管理员与本地管理员密码破解
- 互联网和大数据是什么意思_什么是互联网大数据?
- 深度学习图像-半自动和自动标注工具
- 创客教育发展中的科技造物原理
热门文章
- php 接收传值_php接受post传值的方法
- feign调用多个服务_SpringCloud使用Feign实现服务调用|chu
- php wiki搭建,wiki网站搭建
- babel需要这样配置
- 计算机辅助电话调查系统,基于XML题型定制的计算机辅助电话调查系统问卷设计与实现...
- java this 代替_关于JAVA中this的使用方法小结
- mysql删除注册表mysqld要删除吗_原神官方删除魈的观测枢数据,又要拆分机制吗?策划应该不傻吧?...
- Ubuntu 安装 Kafka
- red hat linux 改ip,Red Hat Enterprise Linux 7(RHEL7)配置静态IP地址
- signature=27524ebaa2473e38aa641bf251dcf3cf,[Without Title]