在服务器上,经常需要启动数十个或者几十个虚拟机,按照我们现有的方式是安装一个虚拟机,然后复制相应的份数。例如,一个虚机的镜像大小是4G,十个虚机的大小就需要占用40G空间。
事实上在目前为止里面还没有执行任何程序,这些空间都是分配,实际并不一定都要使用。那么是否能够实现用多少分配多少呢?分析下可以发现,每个虚拟机里面的内核都是一样的,大部分时候我们都不需要去修改里面的内核,是否能够共用内核?
Copy-On-Write模式为我们提供了很好的解决方式,通过创建一个基础镜像(base image),里面把各个虚拟机都需要的环境都搭建好,然后基于这个镜像建立起一个个“增量镜像”(增量镜像的初始大小低于1M),每个“增量镜像”对应一个虚拟机,虚拟机对镜像中所有的改变都记录在“增量镜像”里面,基础镜像始终保持不变。这样我们建立十个虚拟机,需要的空间为:4G+10*1M=4G,一下节省了近36G的空间。
对于我们Flexbng的环境,cp/dp的虚机可以共用一个基础镜像,然后各自有自己的增量镜像。
好处有:
1)在部署环境时,需要拷贝的文件大小和磁盘占用空间就会降低很多,尤其是多cp/dp的环境。
2)基础镜像不会被修改,新拉虚机时可以快速创建个“增量镜像”使用
基本步骤:
1. 创建一个基础镜像flexbng-normal.qcow2, 该镜像包含OS和必需的软件包
qemu-img info flexbng-normal.qcow2
image: flexbng-norma