要说当今服务器虚拟化领域什么最火,估计非容器莫属了吧。
用了很长一段时间的docker,一直都对其易布署易管理,尤其是在Kubernetes大规模投入使用后,其易扩展高伸缩性真是让运维人员相见恨晚。然而在服务器虚拟化领域,一直在停留在vmware,hyper-v,Xen,kvm,openvz等几大类的认识阶段,虽说完全可以使用docker的几大系统镜像,还原一个简单快捷的“容器化虚拟化”,但是似乎在现实中,也没看到有人这么用过,直到后来想起来了docker的基础——LXC虚拟化。
本来LXC虚拟机只是一个Linux内核级别的容器虚拟化技术,只需要通过简单的几个包就能完成的,但是在我发现了Proxmox VE之后,我决定通过Proxmox VE来尝试一下。
首先通过官网 https://pve.proxmox.com/wiki/Main_Page 来下载安装镜像,在我进行测试的时候,最新的稳定版本为5.3-8。是一个免费的虚拟机管理了吧,同时也支持kvm虚拟化。
至于安装,就不必详细说明了,因为相较于其它几大虚拟化平台的管理软件来说,简直是简单得有点离谱了,选择好安装位置,几乎就没什么值得单独设置的了。
安装完成之后对宿主机进行重启,会直接显示网页的管理端地址,如果网络没有配置错误,可以很轻易的在浏览器中打开看到管理界面。当然,登录之前选择简体中文,后续的操作就毫无障碍了。
进入主界面,可以很容易看到当前宿主机的资源状况和虚拟机的运行情况,而在左边的视图下面找到local存储,就可以很方便的下载已经预定义的LXC虚拟机模板了。
可以看到列表中包含了常用的系统模板,在这里测试我选择了自己比较常用的CentOS 7跟debain 9,所需要下载的文件居然都只有几十兆的大小。
下载完模板只有,可以直接在右上角点击“创建CT”,就可以使用已有的模板创建LXC虚拟机了,期间可以设置诸如CPU,内存等具体信息。
创建完后点击启动,可以发现LXC完全是秒启动,几乎就是在点击启动的瞬间,点进去shell察看,已经进入到等待登录的画面了。不幸的是,系统的模板中,默认似乎是没有openssh-server,并不能通过外部的ssh直接管理。好在系统的命令都是全的,安装完需要的包,设置好systemctl enable,那么对虚拟机进行关机,然后克隆!
然而,PVE并没有提供直接的批量克隆或者批量创建的功能,但是因为PEV的宿主机本身系统是一个基于debian的系统,首先想到的当然就是使用shell实现批量创建或者批量克隆了,因为这里我对第一个虚拟机已经安装了需要的包,并且是ssh这种几乎无法不用的包,还是建议使用克隆功能吧,所以需要把第一个创建好的虚拟机设置为使用DHCP方式。
察看文档,命令行方式克隆ct虚拟机,可以使用pct clone命令,具体用法为
pct clone <vmid> <newid> [OPTIONS] Create a container clone/copy <vmid>: <integer> (1 - N) The (unique) ID of the VM. <newid>: <integer> (1 - N) VMID for the clone. --description <string> Description for the new CT. --full <boolean> Create a full copy of all disks. This is always done when you clone a normal CT. For CT templates, we try to create a linked clone by default. --hostname <string> Set a hostname for the new CT. --pool <string> Add the new CT to the specified pool. --snapname <string> The name of the snapshot. --storage <string> Target storage for full clone. --target <string> Target node. Only allowed if the original VM is on shared storage.
可以看到,只需要提供被克隆的vmid就可以了,于是一顿操作猛如虎,我们先来30个(原始创建的虚拟机vmid默认为100)
for i in {101..130}; do pct clone 100 $i --hostname linux-$i --full; done
不出意外的话,很快就能看到如下画面了
感觉硬盘在嘶吼了吧,然后来一个批量启动,可以看到基于容器的虚拟化,真的启动速度也可以算是秒级了吧。
然后既然每个虚拟机都有ssh了,祭出ansible大法,重新配置静态IP,批量安装应用程序,貌似性能也还不错。
来一个批量安装测试应用程序过程中的情况吧,只想说pve大法好,ansible大法好!