至今为止最好最强的虚拟化技术Openvz

linux 徐 自远 754℃

今天先来聊点别的。经常遇到这么个情况,公司的几条研发生产线共用几台物理机做测试用。由于需求强劲加上人多手杂,于是希望将各自的操作和环境完全隔离,于是我们就需要一种虚拟化的技术来分割物理机的资源供大家使用。此外,虚拟化技术也是云计算的基础组件之一。

虚拟化技术方案有很多,有免费的也有收费的。较常见有xen,kvm,virtuozzo/openvz,userMoleLinux,linuxVserver,VMware等。

openvz是virtuozzo的免费版本。它是一种半虚拟化的技术(不需要CPU虚拟化的特性支持),或者从当今虚拟化产业生态来看它是一种介于容器技术(docker)和全虚拟化技术(kvm,xen/hvm等)之间的一种技术,兼具这两种技术的优势。 openvz基于Linux 并且可以虚拟Linux的任意发行版。与真实物理机相比,性能损失不超过3%,是所有虚拟化技术中性能最高的。为毛选Openvz? openvz与其它虚拟化技术相比具有很多优势:

灵活的扩展性

由于Openvz的各个虚拟机(VE)共享物理机系统(PV)的内核,因此可以把任意一台VE扩展到整个物理机上 (但如果是xen的话,必须要划分一个dom0出来作为虚拟机与物理硬件交互的代理系统 )。

超高密度部署

在一台1核1GB内存的宿主机系统上,至少可以部署100个VE !是不是很惊人?这也是许多Vps供应商喜欢使用openvz的原因之一(ovz的机器卖的便宜也是这个原因), 由于Openvz的VE共享宿主机的资源,因此在不过度超量开VE的情况下,Openvz最能将物理机的资源最大化利用,同时VE的性能与其它虚拟化技术比较也是最高。

容易管理

Openvz虚拟机文件系统是直接存放在PV上的(不像vmware那样存放在它私有的文件格式中 ),默认在/vz/private目录下,也就是说在宿主机上可以直接访问VE中的文件,这对于VE的批量化管理带来很大的方便, 我们可以直接在宿主机中写个脚本批量做管理而不需要分别登录到各个VE中依次管理。

动态化

调整VE中的绝大多数参数是不需要重启VE的,比如CPU个数,内存大小,硬盘大小,inode数量之类的都不需要重启, 这对于生产环境下的业务完全没有任何影响。

常用命令

对于基于2.6.x kernel来说, 主要使用vzctl来完成绝大部分操作。

常用命令

上面这些是最常用的配置项,还有很多分别针对cpu,进程,内存,文件,磁盘之类的控制,差不多有六七十项吧。

以下是针对VE的控制:

对于VE的迁移和备份,有命令工具:vzdump, 很简单请自行研究

其它

  1. 设置VE的IP还有另一种方法, –netif_add , –netif_del 请自行研究
  2. VE默认不支持nfs,如需支持可以设置 vzctl set $VEID –save –feature nfsd:on
  3. 默认VE的iptables nat不能用的问题: vzctl set $VEID –save –netfilter full
  4. 挂载多块硬盘(ploop),不展开讲了 请自行研究
  5. VE开启VPN(tun/pp),命令若干条,请自行研究
  6. 使用 vzctl exec $VEID $CMD 在VE中执行CMD

拥抱3.x Kernel

Openvz7已出,是跑在Centos7上的 并且仍然免费使用。openvz7已经是作为Linux的一个分支发布的,直接在物理机上安装就能用了。有以下特性:

  1. 有了新的命令行工具prlctl , vzpkg,vzsrvctl等
  2. 仍然支持vzctl命令行, vzdump虚拟机迁移工具依然可用
  3. prlctl可以调用Kvm创建真正的全虚拟化的虚拟机,也就是说可以用prlctl命令建windows虚拟机了
  4. 有了VM和CT的概念,并把它自身(非Kvm调用)创建的虚拟机称为CT(容器)
  5. 需要物理机CPU支持虚拟化, 不然无法安装
  6. 所有CT的内核各自独立 不再和宿主机共用,可以任意升级

好了,这个到此为止了,有兴趣的朋友可以自行深入了解学习。

最近有点小忙,文章不定期更新,如果喜欢我的文章可以观注我。

至今为止最好最强的虚拟化技术Openvzhttp://t.jinritoutiao.js.cn/JcwG1y/

转载请注明:徐自远的乱七八糟小站 » 至今为止最好最强的虚拟化技术Openvz

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号