惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
Google DeepMind News
Google DeepMind News
腾讯CDC
G
Google Developers Blog
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
美团技术团队
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志

博客园 - 彭帅

周末开发的一个Google Wave类似的评论系统 Hadoop Ecosystem解决方案---数据仓库 关于HDFS数据Checksum hadoop MapReduce Job失效模型 - 彭帅 设计遐想---基于Google App Engine的IM 系统容灾备份选型的决策表 GAE技巧汇总 hadoop Map Stage流程分析 hadoop作业调度 - 源码分析 A Viewstate for PHP Internet级单点登录的数据管理(转) a CouchDB essentials 从网络上整理的google c++编程风格指南 网络编程套路杂记1 UserAgent的历史变迁 云计算-My Future, The IT's Future (转载)Hadoop常用SDK系列五 TotalOrderPartitioner OnlyXP盘点2008下半年的学习情况
CloudHosting平台Eucalyptus分析.
彭帅 · 2009-10-20 · via 博客园 - 彭帅

-----Step 1-----: 架构分析
 

Eucalyptus架构特征

  非侵入式

  高度模块化(highly modular cooperative)

  采用公开,标准的通信协议

  API与AWS兼容(SOAP & REST)

分层架构(Layer architecture)

  一站式管理平台(Management Platform)

  虚拟网络(Virtualized Network)

  虚拟计算 & 存储(Virtualized Compute & Virtualized Storage)

Eucalyptus组件

  每个Eucalyptus服务组件都提供了一个well-formed,语言无关的WSDL文档格式的API和数据结构.内部服务的安全认证采用标准的WS-Security机制.

Eucalyptus由5个核心组件组成:

Cloud Controller(CLC): 虚拟化底层资源.

Cluster Controller(CC): 对Cluster作抽象. CC从一批VM采集信息并调度VM在具体NC上执行. CC同时管理着virtual instance network和执行由CLC指定的SLA.由单个CC管理的所有节点必须处于同一个广播域中.

Node Controller(NC): 用于托管虚拟机.在当前主机上负责虚拟机的执行,检测,终止等生命周期管理.

NC在当前主机上运行,获取和清理本地VM实例镜像(kernel, root file system, ramdisk image), 同时也可通过查询/控制接口来查询/控制当前节点(host OS and the hypervisor)的系统软件.NC同时负责管理虚拟网络端点.

SC(Storage Controller): 实现了基于块访问的网络存储(类似Amazon EBS), 负责和各种第三方存储系统(NFS,iSCSI等)通信.

弹性块存储服务(EBS)作为一个标准Linux块设备挂接到虚拟机, 磁盘流量通过LAN(locally attached network)发送到远端存储.

EBS卷(volume)不能跨VM实例共享, 但是允许对其创建一个快照并存储到一个中央存储系统如Eucalyptus的存储服务Walrus.

Walrus(put/get存储): 允许用户存储持久化数据.(类似Amazon S3).通过bucket和对象的方式组织,延迟一致.

允许的用户级操作: 创建, 删除, list buckets, put, get, delete, 设置访问控制权限. Walrus在接口上与Amazon S3兼容,并支持AMI(Amazon Machine Image),提供了一个可同时访问VM镜像和用户数据的机制.

Management Platform: 为cloud管理员提供了一站式控制台,用于配置和管理cloud.

MP同时为administrator, project manager, developer或其它用户提供了可定制的界面,并具有授权,认证等访问控制.

具体功能包括: VM管理, 存储管理, 用户/组管理, 帐户管理, 监控,  SLA定义和执行,cloud-bursting, provisioning等.

-----Step 2-----: 代码概要分析

初步浏览了eucaplytus的代码.

项目结构如下:
clc
  modules
    cluster-manager: cluster WEB管理模块
    group-manager: 用户/组 WEB管理模块
    storage-manager: 存储(S3)管理模块
    storage-controller: (EBS)块存储管理模块,也可以看作是EBS的代理.
    image-manager: 镜像管理模块.

cluster: Cluster Controller模块.控制局域网内的node controller

node: Node Controller模块.控制当前机器节点上的虚拟机实例.通过libvirt来操纵具体虚拟机实例.

storage: Storage Controller,也就是Walrus. 实际上相当于一个存储委托,后端挂接具体的存储系统(如S3).

补充
WEB管理平台用Java + GWT开发的,作核心调度和管理.
其它模块都是用c编写的:

  cluster controller管理局域网内的node controller.

  node controller通过libvirt来操纵具体的VM: KVM或XEN.

  Storage只是一个存储proxy, 具体存储系统依赖于第三方.目前可以认为是一个S3的代理.

每个模块都使用AXIS来提供一个WSDL web服务操作接口.

目前的代码实现只可以看作一个prototype.在架构设计上有一定指导意义, 但仍有非常多的扩展工作要做.