分类: 服务器与存储
2014-11-10 16:28:52
KVM 发展到现在已经比较成熟,目前非常多的云计算公司,尤其是公有云服务提供商,都采用了KVM作为解决方案。如果直接使用qemu-kvm所提供的一些linux raw命令行来进行KVM虚拟机管理的话,无疑是非常繁琐复杂的。So thanks to libvirt, 它提供了一整套的virt管理工具,既有命令行,也有图形界面工具,很大程度上改善了队KVM虚拟机的管理方式。虽然这些工具不能完全代替商业的虚拟化解决方案,比如VmWare,XEN,但是也的确可以让我们能更方便的使用KVM。当然开源的OpenStack也不错,不过这个的确属于重量级的开源解决方案了,个人使用有点得不偿失,代码就够你啃几个月的。
总的来说,利用libvirt,个人用户足够了。
虚拟机的创建主要有三个命令 :
qemu-img : 创建虚拟机镜像, 例如 qemu-img create -f raw /root/work/images/centos65.img
virt-install : 安装虚拟机(linux或者windows), 例如 : virt-install -v -n kvm_centos65_1 -r 1024 -vcpus=2 --disk path=/root/work/kvm/images/kvm_centos65_1.img,size=10 --graphics vnc --cdrom=/root/work/kvm/isos/CentOS-6.5-x86_64-bin-DVD1.iso --virt-type=kvm --accelerate
虚拟及创建完成后,我们就要对其使用以及管理,主要包含以下部分.
virsh list : 查看虚拟机
vncviewer xxx.xxx.xxx.xxx:yyyy : vnc 工具用来登录到虚拟机进行操作。
virsh start "name" : 启动虚拟机, 万一你忘记了你的虚拟机名字,你应该在这个目录中去找 : /etc/libvirt/qemu/xxxx.xml, 这个就是你通过virt-install创建的虚拟机配置文件,去掉xml就是你的虚拟机名字。
virsh shutdown 'name' : 关闭虚拟机
virsh destroy :强制关闭,相当与直接断电
virsh reboot : 重启一个虚拟机
添加删除虚拟机有很多方法 :
定义一个xxxx.xml文件,你可以利用现有的拷贝一份或者从网上down一份,修改,注意,其中的必要信息一定要全,比如img文件,iso文件,名称,uuid等。然后执行命令 :
virsh define xxxx.xml : 将次配置文件加入libvirt管理
virsh start xxxx : 启动次虚拟机,如果次虚拟机是第一次启动则会安装里面定义的操作系统。
如果你想生成一个新的配置文件,你可以利用现有的虚拟机来完成 :
virsh dumpxml xxxxx > /etc/libvirt/qemu/yyyy.xml
你也可以利用 virsh edit xxxxx 来编辑这个虚拟机的配置文件,不过我还是建议你用VI来做 ;)
你可以利用virt-clone命令直接从现有的虚拟机复制一个新的虚拟机 :
virt-clone -o old.img -n new.img -f newimg.img
需要注意的是virtsh define / virt undefine 命令,这个命令是将一个配置文件加入libvirt或者从libvirt删除一个虚拟机。
通常,我们利用vnc工具来登录虚拟机,其配置也可一在xml配置文件中定义 :
virsh domiflist xxxxxx : 列出所有此虚拟机的网络接口以及其相关的信息
virsh domif-getlin xxxxx vnet0 : 取一个虚拟网卡的状态
。。。。。。。
总的来说,virsh 是一个非常强大的工具,你可以用 virsh help 来获取所有的 virsh 支持的功能列表,然后挑你感兴趣的进行研究,我们这里只是列出了一些最常用的命令。
最后,祝你的virsh之旅愉快 ;)