第1章 桉树概述
1.1. 客户群体
客户 | 用途 |
网络科技公司 | 应对不断增长、不断变化并且不可预测的网站负载量 |
大型公司 | 建设大型的高效数据中心 |
政府机构 | 建设大型的高效数据中心 |
服务提供商 | 为用户提供基础设施服务(虚拟设备租赁服务) |
1.2. 功能列表
功能 | 描述 |
虚拟机服务 | 虚拟机的创建、启动、停止、删除; |
云存储服务 | 支持简单存储服务和弹性快存储; |
证书 | 用户登录虚拟机的证书; |
配置管理 | 对系统参数进行配置; |
SAN | 支持 |
价格与计费管理 | 价格管理,费用计数,费用报表; |
用户组与用户权限管理 | 群组的建立、用户权限的控制; |
可管理的虚拟机 | XEN/KVM/VMware ; |
支持的操作系统 | 兼容多个 Linux 发行版,包括 Ubuntu 、红帽、 openSUSE 、 Debian 、 Fedora 、 CentOS ; |
1.3. 组成模块
组成模块
模块 | 功能 |
CloudController (云控制器 -CLC ) |
|
Walrus ( put/get 存储) |
|
ClusterController (集群控制器 -CC ) |
|
StorageController (存储控制器 -SC ) |
|
NodeController (节点控制器 -NC ) |
|
1.4. 源码目录
目录结构
目录 | 中文描述 | 语言 | 代码量 | 备注 |
clc | 云控制器 | java | 98836 | 使用者管理者入口,同时提供各中接口服务。 |
集群控制器 | c | 6495 | 收集一系列虚拟机信息和运行计划任务,管理虚拟实例的网络。 | |
node | 节点控制器 | c | 5718 | 控制虚拟机实例的运行、检查、停止,提取和清除镜像。 |
storage | 存储控制器 | c | 2213 | 实现块访问的网络存储(弹性块存储 EBS ),提供 Walrus 服务。 |
net | 虚拟网络 | c | 2684 | 虚拟网络 |
util | 通用功能 | c | 4301 | 通用功能 |
gatherlog | 日志记录 | c | 947 | 提供日志收集服务 |
其他 |
| perl/shell |
| 为脚本和接口描述 |
注:代码统计建立在开源版本 2.0.3 的基础上,另外其依赖的其他开源代码不在统计行列之内。
从代码的分布上来看,主要开发工作集中在 clc 上,其他代码来那个加起来不足 3 万行代码;所以人员的投入也集中在 Java 人员上,开发工作量集中在云服务上。
1.5. 版本比较
功能项 | 开源版 | 企业版 |
兼容亚马逊接口 | √ | √ |
支持集群划分 | √ | √ |
网络管理,安全管理,流量隔离 | √ | √ |
快速配置 | √ | √ |
支持简单存储服务(兼容亚马逊 S3 ) | √ | √ |
支持弹性存储(兼容亚马逊 EBS ) | √ | √ |
支持 Xen 和 KVM 管理 | √ | √ |
支持 VMware 管理 |
| √ |
支持 VMware 虚机镜像迁移 |
| √ |
支持 Windows 虚拟机 |
| √ |
支持 SAN 集成 |
| √ |
报价管理和计费 |
| √ |
用户和群组权限管理 |
| √ |
高性能后台数据库( MySQL ) |
| √ |
从功能的区分上来看,设计后台服务的有对 VMWare 管理、 SAN 集以及高性能数据库,其他应该和管理端相关。
结论是后台和前台都涉及一些非开源的代码,从当开源代码上来看,设计后台的代码应该也不会太大,估计应该会在 5000 到 30000 之间吧,前台的代码就不好估算了。
1.6. 新增功能
3.0 版本新增功能 | 说明 |
High Availablity (HA) | 高可用性 |
Eucalyptus Identity Authorization and Management (EIAM) | 桉树身份权限管理 |
Active Directory/LDAP integration | 集成目录服务和轻量目录访问协议( LDAP ) |
Windows Hosting Service | Windows 虚机支持 |
Boot from EBS (Elastic Block Storage) | 弹性快存储 |