- 论坛徽章:
- 0
|
本帖最后由 sdau 于 2013-11-27 23:54 编辑
话题一:工作中用到的虚拟化技术
入职以来,一直负责kvm虚拟化底层,公司起初的平台还有包括对xen虚拟化的支持,后来因为redhat6已经不再支持xen了,公司也就放弃了对xen的支持
话题二:我的一些小小经验
kvm仅仅是一个内核虚拟化模块,跟linux的其他模块没有什么两样,不过通过它可以创建虚拟机,就比较强大了,但是也离不开其他的外围的东西,比如虚拟存储,虚拟网络等等,libvirt包装了kvm,封装了很多了东西,最后向外提供接口,如增加磁盘,增加网卡,创建网络等等。我在公司主要负责网络的方方面面,个人感觉,libvirt提供的两种网络模式nat和bridge,都可以归结为bridge模式,nat需要首先创建一个私网,再将虚拟机加入到这个私网中,而bridge则是直接将虚拟机加入到物理机所在的办公网中
redhat6.3之后开始支持cpu和memory的动态增加和减少,但是需要客户机内部打开hal服务,并且libvirt的配置文件中要打开acpi选项。
物理cpu和虚拟cpu的动态绑定:比如物理机8核心,那么我们可以将8个虚拟机分别绑定到这8个核心上,。如果两个虚拟机的cpu绑定到同一个物理核心上,还可以做优先级控制(cputune),同理内存也差不多
客户机最好使用virtio类型驱动(速度快),比如虚拟网卡模块virtio_net.ko,虚拟磁盘模块virt_blk.ko 等等,linux内核中都有这些驱动,linux的大多数发行版本都支持,高版本的windows也有支持,但是winxp,vista之类的都需要去redhat官网下载virtio驱动才可以使用高效率的驱动
话题三:kvm的不足之处
kvm的许多功能都与客户机的有关,若客户机不支持,kvm再怎么支持,也是无济于事,比如新功能:mem的动态增加减少,若动态增加的内存已经被占用了,kvm该怎么回收,若要硬性回收,客户机肯定要崩溃,我在redhat6.4和debian上做过比较,redhat6.4支持还好些,毕竟是自家的产品
kvm~tools:vmware、xencenter都拥有tools,kvm这一块虽然也有kvm-admin,但是还有很长的路要走,以前公司有个需求,需要给虚拟机自动配置IP地址,libvirt当然可以为kvm自动配置dhcp服务,但是我们想人工写到虚拟机内部,libvirt提供了一些小工具virt-win-reg等等,都不太好使,最终只能为每种客户机器写kvm tools
说到libvirt提供的小工具,就不得不提 virt-top,libvirt监控的虚拟机cpu使用率非常不准确, 也不能获得虚拟机的实时内存使用率(可能是我自己没找到,若有哪位大神知道,一定要告诉我)
另一个libvirt小工具virt-df ,用来统计虚拟机内部对磁盘的分区使用情况,有时候会统计失败,目前我正在使用guestfs自己做
网络功能:自从有了openvswitch,我觉得libvirt对网络支持的API迟早要大改,毕竟虚拟交换是未来的发展方向,bridge模块太简单了 |
|