Dec 082016
 

怎么让OpenStac镜像k更加好用,这是我一直都想去解决的问题。我想整理一下我的需求,后续让同事跟进,把这些问题都彻底解决。

于CentOS和Ubuntu,其实都有有官方镜像,默认的官方镜像,其实还是非常不错,也比较流行,那么这些官方镜像,我们直接拿来使用,其实还是有不少问题,在一些特别环境下。

很多用户都是拿上传的镜像修改完,转成镜像,其实我一向不喜欢这种方式,这样做,应该会有不少隐患。所以我希望在镜像上传前,可以做更多的定制。

也是在私有云领域里,用户对镜像的需求。

镜像磁盘大小

这个CentOS官方镜像默认是8G,Ubuntu默认是3G,通过镜像带的磁盘扩大的软件,其实是可以在创建,resize的时候,调整硬盘的大小。

现在公有云默认的linux磁盘大小是20G,40G,系统盘是不能调整大小的。这其实也是有利用提高性能,在创建的过程中,不需要调整硬盘大小,加快创建速度。

windows的镜像大小是60G。

所以在实际中,公司内部私有云,我希望所有的镜像默认的磁盘大小都是60G,这样其实也好管理,同时在大部分情况下,都是不需要增加磁盘,就可以满足需求。

另外还是要有工具,在镜像上传前,调整系统盘大小。

需要强调的是,在OpenStack上传镜像的时候,一定要填写上对硬盘和内存的最小要求,这样可以避免用户创建虚拟机的出错。

操作系统版本

由于我们经常遇到不少软件是需要指定版本,才能跑起来,所以我们镜像要写上os的版本号。建议

  1. centos 6.5
  2. CentOS 6.8
  3. Ubuntu 12.04.x
  4. Ubuntu 14.04.X
  5. Ubuntu 16.04.x

centos 6.5的镜像,就只能自己单独制作。其他镜像,可以下载官方镜像,进行定制修改。

操作系统的源

要对操作系统的源进行定制。指向国内的源,阿里,中科大等目前速度非常不错的源。同时如果有必要,也是可以指向内网的源。让运维人员可以修改镜像里的源。

调整磁盘大小

在公有云的场景下,其实系统盘,是不允许调整大小。不过这个需求,在企业私有云里其实是很旺盛。默认OpenStack也是支持磁盘扩大。

所以我们需要在确保镜像是支持磁盘大小的调整。对于不同的linux,装的包是有点不一样。

http://xcodest.me/centos-root-partition-auto-grow.html 

启动速度

优化虚拟机的启动速度,其实还是很有意义的。这里面最需要处理的就是cloud init。

http://xcodest.me/cloud-init-cause-vm-boot-slow.html

尤其在没有联网的环境下,会导致虚拟机启动速度很慢。

镜像的密码

作为服务商,肯定会建议用户采用秘钥登录,但是现实中,用户都是把虚拟机设置root的密码,做快照,生成新的镜像。

centos和ubuntu,默认的登录的用户名也是不一样。

我倾向是都改成root账号

如果我采用密钥登录,会出现一个尴尬的情况,就是控制台无法登录。

我考虑是,给镜像的root设置一个密码。同时也是可以在上传镜像前,把root的密码修改成自己需要的。

同时ssh的设置,也需要做些调整。默认是不允许root登录,密码登录。

如果虚拟机创建的时候,设置了root密码,那么就覆盖了默认的密码。这时候,是允许root的远程登录的。

vnc设置

vnc其实是比较消耗资源,如何在vnc不使用的情况下,自动退出,这个其实是需要考虑的。在私有云使用里,因为vnc没有关闭,导致最终资源消耗过大,是一个场景的问题。

解决这个问题,可以从镜像入手。

SSH优化

默认ssh访问,是需要请求dns,所以需要在ssh的配置文件里,设置

UseDNS no

定制包安装

在实际中,用户经常会提出要安装linux的桌面,开发环境的镜像,这样方便,这些需求太多,所以有一种办法,让工程师,可以直接操作镜像,把需要的组件安装好,再上传镜像。

事实上,OpenStack后续很多项目,sahara,murano,trove,都涉及镜像的定制。都是使用disk-image-builder 工具,可以好好深入研究一下。

https://github.com/openstack/diskimage-builder

 Leave a Reply

(required)

(required)