您的位置:首页 > 产品设计 > UI/UE

Mirantis Fuel调研

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

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

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



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

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

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

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



我们再看看Fuel的HA

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

HA具体实现架构图如下:





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

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

至此,Fuel能做什么,以及设计思路就全明白了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: