Openstack Brief

自从 Openstack 诞生之日起 , 就受到越来越多的开发者 , 用户的关注 。 整个代码的规模和质量正在飞速的发展 。 随着各种功能的增加 ,Openstack 下面已经拥有了相当多子项目 , 来完成各种各样的功能 。 本文将简单介绍各个子项目的功能和发展 。 所有的项目现状是基于 Grizzly 的版本来写的 。

  • Keystone
  • Nova
  • Cinder
  • Glance
  • Openstack Network(Quantum)
  • LBaaS
  • Ceilometer
  • Baremetal

Keystone

keystone 是 Openstack 的认证和服务注册模块 。 其结构比较简单 。 其功能包括 :

  1. 认证 主要功能是管理用户和用户组的信息 , 后端可以绑定 ldap, mysql 等认证方式 。
  2. 服务注册模块 主要用于管理 Openstack 相关服务的地址 , 所有的服务都要先注册到 Keystone 中 , 才可以使用 。 它可使用基于文件的模板 , 也可以使用数据库存储 。
  3. Token 管理 。

相对于其它子项目来说 ,keystone 最近的变化并不是太大 。 将来一个比较大的变化就是基于 domain 的权限控制 , 届时 Tenant 里也可以细经出管理员和使用者的角色 , 并有详细的权限功能控制 。

Nova

Nova 是 Openstack 最早的子项目 。 现在其它项目如 cinder, quantum(Openstack Network) 都是来自于该项目 。 可以说这是 Openstack 中最复杂 , 最主要的部分 。 它负责

  1. 用户接口 (nova-api)。 处理来自于用户的请求 , 并做出合理的响应 。
  2. 计算调度 (nova-scheduler)。 用于在物理之前进行资源的调配 。
  3. 虚拟化的管理 (nova-compute)。 管理虚拟机的适配接口 。 通过它可以管理真实的虚拟技术驱动的机器 , 如 KVM, XEN, Hypervisor V 等 。

当然还有一些功能如 nova-network, nova-volume 已经从 nova 项目中迁移出来 , 成为独立的子项目 。 将来一段时间的变化 , 主要集中在 nova-network 的废弃 ,nova-conductor 的更加完善 , 新的 api(v3) 的支持 , 对于祼机的支持 。

Cinder

Cinder 是由 nova-volume 分化而来 , 用于管理虚拟机的块存储 (block storage), 类似 AWS 的 EBS。 其功能主要是创建 , 维护 , 删除块存储 。 后端可以使用 LVM, glusterFs, Ceph, NFS 等软件技术的存储 , 也可以使用 NetApp, Huawei,IBM 等商用解决方案 。 当然也可以自己编写自己存储的 Driver 来支持更多的存储类型 。

Glance

Glance 用于管理各种系统的镜像 。 他后端也可以配置各种存储方案 。 包括本地 ,swift, ceph 等 。

Openstack Network.

(Quantum 名称因为商标问题停用 )。

网络基本是 Openstack 最复杂的模块 , 涉及到的技术和协议相当多 , 也最容易出问题 。 也正因为此 , 很有必要将网络模块从越来越笨重的 nova 的拿出来 。

Openstack Network 提示了强大的网络服务 (Network-as-a-service), 用来实现 L2, L3 层的网络 。 在原有的 nova-network 的基础之上 , 增加了相当多的功能

  1. 加上了 xvlan, gre 等网络技术 , 并可以编写自己的插件 , 来增加其功能
  2. 使用者可以创建更加丰富的网络模型 , 如私用路由器等
  3. 为 Qos, 流量监控等提供支持 。

现在 Quantum 还有一些问题 , 如 HA 方案不成熟 , 不太适用于 Production。 不过根据社区的计划 , 下一个版本 (H) 将会把 nova-network 废弃掉 。 所以 Quantum 才是真正的趋势 。 现在很有必要将其吃透 。

LBaaS

Load-Balancer-as-a-service. 在 Quantum 基础上实现的负载均衡 。 后端既可以使用 haproxy, 也可以使用 cisco, f5 等硬件 。( 不过我还没有功能搭建过这个服务 。

Ceilometer

Openstack 的计量 , 计费模块 。 可以统计 Cpu, IO, Network 使用的详细情况 。 对公有云和私有云都有极大的好处 。 现在也有一个 Horizon 的插件 , 可以直接在 dashboard 里显示使用情况 ( 将来 , 该插件会合并到 horizon 中 )

Baremetal

增加 Openstack 对裸机的管理功能 。 可以实现直接对裸机进行系统安装 , 配置 。 模糊了虚拟化和物理机之间的界线 。 现在所有模块包括 nova, glance, cinder 都在努力增强这方面的功能 。 这个模块 , 我更期望是可以建立 Nested-Openstack。 同一个 Openstack 环境 , 既管理物理机 , 又自动在物理机上安装 Openstack 的模块来成为 Openstack 的一部分 。

Comments