gerr3 发表于 2015-5-19 08:35:04

KVM安装部署、快照备份及常用命令

KVM安装部署:
安装kvm虚拟机首先需要查看物理机的cpu是否支持虚拟化:
# cat /proc/cpuinfo | egrep 'vmx|svm'

找到flags部分,如果其中输出有VMX或SVM,即表明支持虚拟化技术。



如果物理机的cpu支持安装虚拟机,那么开始安装虚拟环境,如下:
yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
可以先用yum grouplist查看下,为了避免缺少组件


虚拟环境安装好后,开始配置网络,一般都用桥接的方式,配置如下:
yum install bridge-utils -y

配置网卡,添加bridge网卡
修改/etc/sysconfig/network-scripts/ifcfg-em1文件,并且在同目录下新建ifcfg-br0,两文件内容如下:


br0配置:

查看内核下面三项是否为0,官网说这是为了disabled netfilter:

最后重启网卡,看bridge是否配置成功,看到如下输出说明桥接配置成功:(或者用brctl show也可以查看)

可以开始安装虚拟机了,有两种方法安装,第一种用命令行安装,第二种在图形界面安装,这里主要说下在命令行下面怎么安装:
1.新建两个目录分别存放ISO文件和虚拟磁盘,我这里在/opt下新建了iso和kvmimg目录;有些朋友不知道怎么将PC上的ISO文件传送到服务器上,我这里推荐大家用xshell和xftp,简单好用且免费!


2.利用virt-install开始安装系统,更多参数可以参考--help
# virt-install --name vm01 --boot network,cdrom,menu=on --ram 1024 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/opt/iso/CentOS-6.4-x86_64-bin-DVD1.iso --disk path=/opt/kvmimg/vm01.img,size=5,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5900 --vnclisten=0.0.0.0

Starting install...Creating storage file vm01.img    Cannot open display:Run 'virt-viewer --help' to see a full list of available command line optionsDomain installation still in progress. You can reconnect tothe console to complete the installation process.这个时候就是已经OK了,用vnc软件(vnc-viewer/tigervnc)填好IP地址和端口,这里是5900连接,就能看到装系统的界面了。



PS:安装完毕后的补充
查看所有虚拟机状态:
virsh list --all
手动启动虚拟机:
virsh start vm01
最后重启网卡,虚拟机就可以正常联网了。


KVM克隆:
有时需要安装多台虚拟机,但是一台一台安装效率又太低了,这时就可以用虚拟机克隆了。已wm01为例:
首先关闭vm01虚拟机:
virsh stop vm01
运行virsh suspend vm01命令,克隆完成后virsh resume vm01恢复即可
克隆vm02
virt-clone -o vm01 -n vm02 -f /opt/kvmimg/vm02.img
修改vm02.xml文件,因为vm01的vnc已经把5900端口占用所以需要换一下,我这里修改成6900
virsh edit vm02
<graphics type='vnc' port='6900' autoport='no' listen='0.0.0.0'>
启动vm02
virsh start vm02
最后利用vnc登录到vm02之后,有些网络设置需要修改,否则网卡无法启动
cat /etc/sysconfig/network-scripts/ifcfg-eth0   //删除mac地址和uuid那一行
DEVICE=eth0TYPE=Ethernet
ONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=dhcpcat /etc/udev/rules.d/70-persistent-net.rules    //把之前的"SUBSYSTEM=="这一行注释掉,把新的那行的eth1换成eth0

重启vm02,重启网络,这样克隆就完成了。


KVM快照:
有时需要对虚拟机做快照,防止损坏了可以正常恢复,具体操作如下:

kvm快照,分两种:1种lvm快照,如果分区是lvm,可以利用lvm进行kvm的快照备份2种由于raw格式不支持镜像,所以需要将格式转换为qcow2才可以创建快照。方法2具体操作如下:kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。   
要使用镜像功能,磁盘格式必须为qcow2。下面开始kvm虚拟机快照备份的过程。
查看磁盘格式# qemu-img infotest-script.imgraw格式需要转换成qcow2


关闭test-script# virsh shutdowntest-script


转换磁盘格式
# qemu-img convert -fraw -O qcow2 test-script.img test-script.qcow2-f源镜像的格式   
-O 目标镜像的格式




查看转换后的格式,已经转换成了qcow2, 这里是拷贝一份,并将格式转成qcow2
# qemu-img infotest-script.qcow2


2.修改虚拟机配置文件:
修改磁盘格式,与新qcow2格式的磁盘。
# virsh edittest-script

3. 对虚拟机进行快照管理 对oeltest01虚拟机创建快照也可以virsh snapshot-create as oeltest01 snap1 创建后个快照别名。
# virshsnapshot-create test-script
Domain snapshot 1419995560 created


查看虚拟机镜像快照的版本
# virshsnapshot-list test-script
可以看到为当前最新的快照版本。#virsh snapshot-current test-script


查看当前虚拟机镜像文件又创建了一个,快照的版本也记录在镜像文件中了。# virshsnapshot-create test-script# qemu-imginfo test-script.qcow2

快照配置文件在/var/lib/libvirt/qemu/snapshot/虚拟机名称下

当前的还是最新的快照:

恢复虚拟机快照恢复虚拟机快照必须关闭虚拟机。#virsh domstate test-script


确认需要恢复的快照时间,这里恢复到1419995560# virshsnapshot-list test-script

执行恢复,并确认恢复版本# virshsnapshot-revert test-script 1419995560# virshsnapshot-current test-script

删除虚拟机快照查看虚拟机快照# qemu-imginfo test-script.qcow2
这里删除第一个快照1419995560删除快照# virshsnapshot-delete test-script 1419995560# qemu-imginfo test-script.qcow2


由于把当前的快照删除了:显示没有快照了。
# virshsnapshot-current test-script
error: domain 'test-script' has no current snapshot# virshsnapshot-revert test-script 1419995769# virshsnapshot-current test-script再次还原到快照2,然后查看当前快照。

到此kvm虚拟机快照测试完毕。开启测试虚拟机:# virsh starttest-script


常用virsh指令:

1)virsh list 列出当前虚拟机列表,不包括未启动的2)virsh list --all 列出所有虚拟机,包括所有已经定义的虚拟机3)virsh destroy vm-name 关闭虚拟机4)virsh start vm-name 启动虚拟机5)virsh edit vm-name 编辑虚拟机xml文件6)virsh undefine vm-name 删除虚拟机7)virsh shutdown vm-name 停止虚拟机8)virsh reboot vm-name 重启虚拟机9)virsh autostart vm-name 虚拟机随宿主机启动

kvm虚拟机删除报错:error:Failed to undefine domain test
error:Requested operationis not valid: cannot undefine transient domain直接命令行操作解决:关闭kvm虚拟机后记得重启图形管理virtual manager,否则可能会出现卡死的情况,关闭了kvm虚拟机而无法删除虚拟机。




页: [1]
查看完整版本: KVM安装部署、快照备份及常用命令