1、CentOS72图形化安装KVM详解虚拟机迁移CentOS7.2图形化安装KVM详解、虚拟机迁移2017.08.221-1、简介KVM(Kernel-based Virtual Machine)基于内核的虚拟机。 KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。 但仅有KVM模块是远远不够的,因为用户无法直接控制内核模块去作事情,你还必须有一个运行在用户空间的工具才行。如果要让用户在KVM上完成一个虚
2、拟机相关的操作,显然需要用户空间的东西,同时还包括IO虚拟化,所以KVM的解决方案借鉴了QEMU的东西并做了一定的修改,形成了自己的KVM虚拟机工具集和IO虚拟化的支持,也就是所谓的qemu-kvm。1-2、实验环境1)在实体机win7系统上安装VMware软件。2)三台主机CentOS7.2 64位(在VMware里安装好,IP地址自己可以配置的,)virt-manager工具主机(图形化桌面) ip: 2-2、安装KVM及其依赖项# yum install qemu-kvm libvirt virt-install bridge-utils #软件包说明见页面底部附录1# lsmod |
3、grep kvm # 验证安装结果,看到Kvm说明已经成功安装了rootkvm1 # systemctl start libvirtd # 开启kvm服务rootkvm1 # systemctl enable libvirtd #设置开机自动启动rootkvm1 # systemctl status libvirtd # 查看状态2-3、配置网桥模式1)先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件(ifcfg-eno16777736)备份一份(我备份到了/root/)# cp /etc/sysconfig/network-scripts/ifcfg
4、-eno16777736 /root2)创建ifcfg-br0文件内容如下 #vim ifcfg-br0TYPE=BridgeBOOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_PEERDNS=yesIPV6_PEERROUTES=yesIPV6_PRIVACY=noIPV6_FAILURE_FATAL=noSTP=yesDELAY=0NAME=br0DEVICE=br0ONBOOT=yesIPAD
5、DR=192.168.228.200NETMASK=255.255.255.0GATEWAY=192.168.228.2DNS1=192.168.228.2 3)修改原来的文件ifcfg-eno16777736;修改后内容如下# vim ifcfg-eno16777736NAME=eno16777736UUID=3a9578f6-2c29-4c22-8668-e47a5de39e94 #注意修改,不要照抄DEVICE=eno16777736ONBOOT=yesBRIDGE=br04)重启网络服务#systemctl restart network #不起作用就重启系统如果使用ssh 远程,登录
6、ip为192.168.228.200#ifconfig #查看网卡信息,我们在ifcfg-br0文件中设置的bro显示出来了。其中有个virbr0,这个不用管它。(这是libvirt安装后,自动生成的)#brctl show #查看桥接信息安装虚拟机3-1、在工具主机安装图形化管理工具virt-manager# yum install centos-release-xen #下载安装xen的yum源# yum -enablerepo=centos-virt-xen install virt-manager #安装virt-manager工具,(指定的软件仓库centos-virt-xen)如果
7、安装过程中遇到了问题(冲突):下图解决办法:#yum remove libvirt-client #删除了libvirt-client #yum -enablerepo=centos-virt-xen install virt-manager #再次安装 成功我们登录桌面图形化主机(192.128.228.137),以下简称为“工具主机”。在 运用程序-系统工具-虚拟系统管理器 ,打开。(安装完virt-manager才会有)文件-添加连接添加连接,kvm主机地址 192.168.228.200在KVM主机通过FTP等把CentOS-7-x86_64-DVD-1511.iso上传至/kvm/i
8、so/目录下在“工具主机”,右键连接上,新建虚拟机 第一步:选择安装操作系统,选本地安装介质(我们已经把ISO文件)第二步:选择ISO印像文件 和 选操作系统类型、版本第三步:选择虚拟机的内存大小和CPU个数。(内存可以设置大点3G或4G,不然安装速度很慢)第四步:设置虚拟机创建的磁盘镜像大小。在这里可以选择自定义存储的,像NFS共享存储。第五步:设置虚拟机的名称和网络(注意网络选择 我们设置的桥接)配置完成后,下面自动远程连接虚拟机(输入密码XXXXXX),开始安装操作系统了。接下来多次输入 192.168.228.200的登录密码(做下SSH互信试试?),看到安装页面下面就是普通安装系统的
9、过程了,就不再截图了。安装完成重启即可。安装完成后可以看到KVM主机上的虚拟机了。rootkvm1 # virsh list -all在工具主机上显示出来的虚拟机centos7.0(运行中),可以远程连接,看到其IP地址。在宿主机通过ssh连接看到页面如下。提示:虚拟机的IP地址我是自动获取的,可以改为手动设置,和平时的设置方法一样。到此完成了虚拟机的安装。关键路径说明:安装完成后的虚拟机的配置文件路径 /etc/libvirt/qemu/ ;存储类型的选择:如果是选“磁盘镜像”的话,不自定义会在默认路径/var/lib/libvirt/images/ ;关于virsh 的名通过 # virs
10、h -help #查看基本命令# virsh start centos7.0 #启动虚拟机# virsh shutdown centos7.0 #关闭虚拟机3、迁移虚拟机4-1、冷迁移4-1-1、本机克隆把centos7.0 克隆为新的虚拟机clone7.0 ;保存在/var/lib/libvirt/images/clone7.0.qcow2。#virt-clone -o centos7.0 -n clone7.0 -f /var/lib/libvirt/images/clone7.0.qcow2 #克隆命令#virsh list -all#virsh start clone7.0 在工具主机
11、连接上克隆的虚拟机,远程连接上,看到ip地址是自动获取的。在配置文件和镜像文件路径都生成了对应的文件。虚拟机克隆成功!4-1-2、将虚拟机镜像迁移到其他服务器上(kvm1到kmv2主机)先将镜像文件放在要kmv2主机上,通过工具主机实现冷迁移,步骤如下:迁移成功4-2、热迁移(动态迁移)进行动态迁移由于不间断虚拟机的运行,所以其所需的条件就必要多:1)两台虚拟机的虚拟化环境必须一致,libvirt版本、qemu版本。2)两台物理机必须有着相同的共享目录,即把NFS服务器上的镜像文件夹挂载到相同目录下3)源主机需要配置DNS,这样LIbvirt才可以找到目的主机,hostname可以自己命名4)
12、物理主机开启nfs虚拟化支持4-2-1、NFS文件服务器配置 (我们这里用“工具主机”,注意防火墙设置)#mkdir /xenstorage #设置共享文件夹#vim /etc/exports #将NFS Server 的/xenstorage共享给192.168.228.0/24网段,权限读写。/xenstorage 192.168.228.0/24(rw,sync,no_root_squash)#service nfs start #启动 NFS服务#showmount -e 192.168.228.137 #查看NFS服务器“导出”的各文件系统4-2-2、KVM1主机挂载NFS# sho
13、wmount -e 192.168.228.137# mount 192.168.228.137:/xenstorage /mnt #共享存储挂载至/mnt # ls /mnt/安装虚拟机时镜像文件存放位置选择在共享存储NFS中,这步比较重要。挂载点centos7.x的镜像文件就是clone7.0.qcow2 (我复制到此文件夹下,导入磁盘镜像的)配置文件在kvm1主机上 #ls -l /etc/libvirt/qemu/4-2-3、KVM2主机挂载NFS# showmount -e 192.168.228.137# mount 192.168.228.137:/xenstorage /mnt
14、 #共享存储挂载至/mnt # ls /mnt/4-2-4、迁移虚拟机在运行过程中,实施动态迁移(从192.168.22.200 迁移到 192.168.228.201)在工具主机上操作右键点击虚拟机,迁移选择新主机192.168.228.201,点击“迁移”,报了一个错误,不让迁移,关闭错误窗口。这次在高级选项中 勾选“允许不可靠”,继续迁移。这次迁移成功,见下图,虚拟机centos7.x显示在KVM2主机的列表中了。在kmv1主机虚拟机配置文件没有了rootkvm1 qemu# ls -l /etc/libvirt/qemu/在kvm2主机多出了centos7.x的配置文件通过ssh连接动
15、态迁移的虚拟机 登录正常。热迁移测试成功!动态迁移本质我感觉就是配置文件被从 A主机 复制到 B主机。(当然比这复杂)我没有做服务不间断测试。-附录1:软件包说明我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包,下面了解一下这4个包到底是干啥的。qemu-kvm该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。依赖包qemu-img主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。lib
16、virt提供Hypervisor和虚拟机管理的API。依赖包libvirt-clientKVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。依赖包libvirt-daemonlibvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。依赖包libvirt-daemon-driver-xxx从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。依赖包bridge-utils网桥管理工具包,负责桥接网络的创建、配置和管理等工作。virt-install创建和克隆虚拟机的命令行工具包。virt-manager图形界面的KVM管理工具。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1