Mirantis Fuel调研

Mirantis公司的Fuel产品是一个用于快速部署OpenStack云的工具。它包括以下几个部分,在描述过程中笔者将与熟悉的xCat, Ironic, packstack等对比以便产生联想:

  • 裸机部署,采用HPCobbler。类似的产品还有xCat,利用OpenStack Ironic自带的PXE+IPMI功能也可以做OpenStack over OpenStack式的部署。packstack不包括此功能。
  • 配置管理,采用Puppet。类似的产品还有chefpuppet采用xml语言定义配置,chef使用ruby语言定义配置。packstack也采用puppet,但packstack使用的粘合剂语言是python,而不是bash,更有利于在eclipse中调试。
  • OpenStack组件,除了可灵活选择安装OpenStack核心组件以外,还可以安装monitoring(使用nagios)HA组件(haproxy)packstack也支持使用nagios做监控(但目前出于稳定性考虑此特性开关未打开),但目前还不支持自动配置haproxyFuel也支持Ceph, packstack目前还不支持。Fuel还支持心跳检查。
  • GUI (Fuel Web)CLI(Fuel Library)Fuel提供了GUICLIpackstack只提供了CLI,没有GUI

  根据上面的比较,笔者有一个想法,如果让我来选型的话,我肯定会选择Ironic自带的PXE裸机部署功能+packstackFuel好在多了GUI图形化界面及HA这些组件,实际上了解OpenStack的话写个把脚本用haproxy实现HA不会太难,那样自己全部掌控还省去了研究Fuel的精力。Packstack使用python语言粘合比那些bash容易调试多了,packstack使用xml定义配置语法而不是chef用的ruby, 笔者可不想花那个精力去研究什么rubyFuel的这个GUI界面相当于一个host机管理系统,调用packstackCLIhorizon里添加这块不会太难。更为重要的是,packstack通过sshscp命令将puppet客户端分发到不同的host上去,这样控制哪台host上部署哪些openstack组件会相当灵活,这样动态调整HA的部署结构都可以实现,而Fuel在做HA时每台host上部署什么openstack组件得预先安排好,后面我们会看到。

 

综上所述,使用Fuel的步骤就是显而易见的了:

  • 首先,肯定需要一台种子节点(术语叫Fuel Master Node)用于配置Cobbler ServerPuppet Master,如果想每次方便的话这种种子节点也是可以直接做成个镜像的。如果直接用OpenStack IronicOpenStack over OpenStack模式部署的话,也需要事先提供一个种子节点的,但它里面安装的是一个除了nova-compute以外的All-in-One的控制节点。
  • 接着,通过Cobbler Server就可以随意安装裸机了。
  • 最后,通过Puppet Master安装OpenStack组件。Puppet组件是通过Cobbler送到各节点的,而packstack则是通过sshscp命令直接拷过去的。

Fuel的特点和限制条件如下:

  • GUI (Fuel Web)CLI (Fuel Library)
  • HA部署时支持心跳健康检查
  • Web界面中可以直接配置用不用VLAN
  • 支持高可用HA的部署,下面我将要着重讲这个方面
  • Neutron支持比较全,例如GREnamespace也都做进来了
  • 界面上能事先估算剩余磁盘大小了
  • 界面支持将所有剩余的磁盘空间都分配给某一虚机
  • 子网能配置具体使用哪个物理网卡
  • Glance方面可以配置镜像既可以存储在本地磁盘,也可以存储在LVM中了
  • 能事先验证网络连通性
  • 文件系统默认使用xfs,而不是ext4,这样能避免LVM卷超过16TB时报错
  • Grizzly中的有一些特性目前Fuel还不支持,对于nova-compute不支持cells, avaliability zones, host aggregates;对于Neutron不支持LBaaSmulti-host; 对于Keystone不支持multi-factore授权和PKI授权;对于cinders不支持FCoE和使用LIO作为iSCSI后端;也不支持ceilometerheat
  • 出于稳定性考虑,这版居然禁用掉了nagios
  • CLI不支持部署SwiftNeutron
  • 可以动态添加计算节点和存储节点
  • 修复各节点时间同点的问题,时间不同步会导致心跳失败从页造成服务不可达
  • 通过PXE会裸机自动通过dhcp分配的IP在事后也是不能更改的
  • 有些OpenStack服务会监听所有网卡,可能造成一些杀毒软件什么报错
  • 操作系统不支持namespace的话,neutron namespace metadata proxy也是不能用的
  • 因为不支持multi-host特性,最大的tenant子网数不能超过300个。

 

我们再看看FuelHA

  • Mysql使用GaleraActive/Active集群,而不是Pacemaker+Corosync实现的Active/Passive模式,Galera技术上类似于中间件应用服务器里头的session复制,客户端只管写,各节点的同步由Galera自己异步通过组通讯框架来实现。
  • 使用RabbitMQ集群,而不是qpid
  • 因为Redhat既不支持namespace特性,也不支持GRE遂道,如果使用Redhat平台,目前Fuel仅支持nova-network

HA具体实现架构图如下:

Mirantis Fuel调研_第1张图片

记住,因为Galera mysql用到了领导机选举机制quorum,所以上面的控制节点至少三个:

  • 有状态服务如quantum agentsActive/Passive部署;
  • Galera mysqlActive/Active部署;
  • 无状态服务前端加HAProxy,所以Fuel这种部署无状态服务并没有部署在计算节点上;

至此,Fuel能做什么,以及设计思路就全明白了。

你可能感兴趣的:(Mirantis Fuel调研)