我为什么弃用OpenStack转向VMware Vsphere,一切皆为简单、高效。因为我们在工作过程中涉及到大量的测试工作,每天都有成百个虚拟机的创建和销毁工作。

工作任务非常繁重,我们的持续集成平台CI/CD也会大量和虚拟化平台进行交互。

早期,没有OpenStack的时候,我们用vmware workstation创建虚拟机编译和测试,这样效率是很低的,条件也比较艰苦,动不动磁盘就满了。要不就是虚拟机损坏导致很重要的基础环境出问题,很多时候其实是技术人员无法很好的掌握和运用这个技术,这时候就需要用到一个专业的工具完成大量虚拟机的管理和统一创建工作。Openstack是一个KVM的管理软件,提供存储,网络,操作系统虚拟化技术。

使用OpenStack完成几点需求:

  • 大量虚拟机的管理,按需分配
  • 物理机器存储资源统一管理,按需分配
  • 多租户,不同部门拥有自己独立的网络
  • 公共网段,所有部门统一出口网络
  • 网络虚拟化统一管理
  • 虚拟化模板化,快速生成虚拟机
  • 虚拟机快照,随时动态回滚
  • 统一由运维管理和分配

当然,最重要的是可以申请服务器资源来进行产品研发了,目标是优化研发流程,提升整体研发效率。

研发效率的提升,通过优化整体流程,完成CI/CD的建设,整体效率提升50%,主要是目前研发流程更加成熟和稳定。我们的持续集成平台使用Docker、Openstack、Jenkins、gitlab、maven、nexus、Harbor等。

OpenStack M版本已经在线上跑2年左右,逐渐发现很多问题,坑很多,而且运维复杂,有些早期的目标没有很好的完成。

比如:

  • 虚拟机快照随时回滚,不成熟,恢复网络会有问题,脚本可解决
  • 虚拟机模板制作复杂,根据官方提供的文档制作,很多时候cloud-init需要执行的并没有符合预期
  • 组件众多,部署复杂,难于运维,几乎无法升级
  • 分布式存储资源池Cinder,支持的虽然很多,我们选择的是Glusterfs,容易挂载到虚拟机失败
  • 组件众多,依赖到RDBMS部分,容易出现前后端数据不一致,界面显示异常。
  • 资源利用率低,占用大量资源,浪费了一些硬件资源。
  • 网络效率低下,我选择的是vxlan,支持多租户,底层是openvswitch,多层封包导致效率低
  • 没有多租户需求,建议采用linux bridge模式,稳定高效
  • Cinder存储部分节点无法挂载卷,刚开始没问题,使用大半年开始出现。

有个OpenStack系列内容可以参考:https://github.com/realxujiang/labs/tree/master/openstack-series

OpenStack定位大规模云主机管理系统,所以使用成本高,好处是规模,谨慎选择吧。

为了更易于维护和使用,我开始尝试新的方案。

调用发现vmware vsphere是个不错的技术,满足我们以上所有的需求,也能解决所有OpenStack的缺点,而且整个产品成熟度非常高,相关产品都融合得非常好。

目前保留原有的OpenStack集群,新增两个vmware vsphere集群,用于新的持续集成平台和测试资源服务。vmware vsphere资源利用率更高。更易于管理和使用,所以打算捣鼓一下VMware vsphere产品。

使用感受,觉得操作特别简单,企业级虚拟化产品肯定是首选,非常成熟,门槛低,很符合我们的需求。

让人感觉虚拟化产品就应该是这样的,安装极简,使用极简,设计哲学非常到位,真是非常好的产品。

美中不足,不支持混合盘,不同类型的盘不能做到一个大的存储卷中。

慢慢感受吧,有时间写进一步使用的感受。

群友提问,需求挺奇怪的。是否能使用OpenStack替代VMware Vsphere

可以的他们做的事情都类似,只不过成熟度不一样,使用它可以学习现代云计算架构设计,OpenStack基本是AWS的一个copy开源作品。很多公有云使用方式和OpenStack高度一致,所以你会了OpenStack这样的私有云,公有云使用自然不在话下。

文末,推荐斯坦福大学: