关于 virt manager
Virt Manager 是一个不错的 kvm 虚拟机管理工具,能够方便地管理虚拟机。我的测试机目前已经完全转向 RHEL7 上跑 KVM 虚拟机,通过 virt-manager 去管理的方案。
安装 virt-manager:yum install -y virt-* ; 装完之后重新启动机器即可使用。
建议初始配置
安装完后有几个环境的配置推荐可以做一下。
Storage Pool : 一个默认的 + 两个自建的
- Default :这是 virt-manager 安装时默认创建的,它和操作系统在同一个卷上,我的测试机使用 SSD 卷,因此我所有虚拟机都会使用这个卷,这样速度比较快
- hd :这是测试机上普通磁盘的一个目录,目的是把那些不需要快速 IO 的虚拟机跑着这里,节省 SSD 的磁盘空间
- iso :这是普通磁盘上的 iso 文件目录,单独挂在这是为了,使用方便
虚拟网络 (一个默认+两个新建)
- default : 这个是安装了 virt-manager + kvm 之后就有的,是用 NAT 的方式,带 dhcp,默认虚拟机可以连接物理机所在的外围
- virbr1/virbr2 :是我根据自己的需要建立的,只能和 host 物理机通讯,无 dhcp
我最近做 OpenStack 的实践,OpenStack 需要最好隔离的几个网络跑不同的数据,因此 virbr1/2 正好符合 OpenStack 的测试需求。另外我在物理机的操作系统上搭建了 yum 源服务器,因此任何一个虚拟机都可以通过 http 访问我放在物理机上的 repo 目录,我只需要更新这些 repos 目录里面的 rpm 包的内容,我的 lab 环境中的所有虚拟机(不管是在何网络)都可以使用到最新的系统更新包和软件包了。这样大大提高了虚拟机里面软件测试的效率,所有虚拟机像是在本地安装 rpm 软件包一样,再也不需要联网下载,我只需要每周去公司联网同步一下这些目录即可。
有了以上配置之后,就可以高效工作了,效率感觉比 vmware workstation 要高,速度快稳定。下面是虚拟机创建的流程,里面有些我的推荐做法。
本想看下,virt-install 的使用方式,感觉那个参数太多,容易敲错,还是界面比较容易上手,而且出错的机会不高。
命令行常用操作指南(持续更新中)
virt-manager 主要操作还是在命令行比较高效,特别是下面的这些操作,在使用过程中,比较多用,用的多了感觉比 GUI 操作方式效率高多了。
virt-manager 的命令行功能调用有两种方式:
- 直接 virsh 回车 ,之后就进入了 virsh # 的一个专门的 shell,help 就能看的里面支持的所有命令
- 在普通 shell 下 直接 virsh <操作命令> <参数>,
这两个方式的调用没有差异,感觉全凭个人的操作习惯。
下面是一些常用的虚拟机管理功能命令参数和实例。
开启一个虚拟机
virsh # start server8-a
查看所有虚拟机(on and off)
virsh list –all
关闭一个虚拟机
virsh # shutdown server8-a
对一个虚拟机作一个快照
snapshot-create-as server8-a flat-os “before customization”
查看虚拟的所有快照
snapshot-list server8-a
返回到之前的一个 snapshot
virsh # snapshot-revert –domain server8-a flat-os
克隆一个虚拟机到新文件(用于模板的复制创建新 vm,或者 vm 的备份)
[root@w540 Desktop]# virt-clone -o rhel70-tmp -n rhel70-tmp-clone -f /data/vm/cloned-new-vm.img
Cloning rhel7-tmp.img | 195 GB 00:00:03
Clone ‘rhel70-tmp-clone’ created successfully.