蜂巢之Iaas云主机快速启动的优化
使用过Linux的,不使用桌面的技(无)术(限)大(装)拿(X)的筒子们大概都有经验,电脑的操作启动时间是速度很快的,往往都是在几秒级别完成。但是在同样没有桌面的云主机启动经常给我们的却不是这样一个感觉,特别是在第一次创建的过程中,总是发现启动过程需要10s+的时间,于是就想,能不能也加速一把,享受秒级别的云主机启动的畅快体验。
PS:目前我们所使用的蜂巢容器是在虚拟机内部进行启动的,云主机的启动速度也是影响蜂巢容器快速启动的一个重要部分。
1. 首先我们分析新创建云主机的启动过程
在此只分析比较关键的一些步骤,和一些比较耗时的步骤。
- 首先要重新扩展根分区的分区表和适配相应的文件系统。在创建镜像的时候我们采用2G大小的镜像,但是在最终创建云主机的时候使用不同的规格,故需要把跟分区扩展为目标规格的大小,然后使用resize2fs来扩展跟文件系统。
- 初始化网络相关的步骤,包括网络设备的IP,路由等相关部分。
- 云主机的初始化相关工作,在此我们使用的是cloud-init来进行相关的初始化工作,这部分涉及到比较多的工作:
- 获取云主机的meta数据,
- 根据meta数据判断云主机的生命周期并设置hostname
- 生成hostkey,注入相关的登录key,
- 启动相关的服务如openssh-server,内部的agent上线表示准备好为容器的初始化服务。
到此为止,