这是 OpenStack 实施经验分享系列的第 4 篇。
cloudbase-init 的一项功能是自动扩展 windows 的 C 盘。比如 windows 镜像是 20G,在部署 instance 时选择的 flavor 磁盘定义是 40G,那么 instance 部署时 cloudbase-init 会自动将 C 盘扩到 40G。
cloudbase-init 自动扩盘这个操作是我们需要的,但它有个副作用。
在 windows 中,我们可以将硬盘划分成多个逻辑盘 C:,D: 等,比如对于 40G 的空间,用户可以给 C 盘 20G,D 盘 20G,但这对于安装了 cloudbase-init 的系统就会有问题。*
系统每次启动时 cloudbase-init 都会把 C 盘 和 D 盘合并为一个 C 盘。
解决这个问题的方法很简单:卸载掉 cloudbase-init,这样就是一个普通 windwos 虚拟机了。不过如果后面在 OpenStack 中对 instance 做了 resize 操作就只能手工扩盘了。
推荐的方式为:系统盘只作 C 盘,如果需要 D 盘、E 盘,通过添加 cinder volume 实现。
下一节讨论 Linux cloud-init 的使用技巧。