https://github.com/zytc2009/BigTeam_learning
分类: 云计算
2012-08-12 15:58:07
Swift也是独立组件,对系统运行没影响。
nova-api是对外的接口。
Glance是独立组件,供 nova-compute 下载镜像使用。
核心组件:
Scheduler: 根据当前资源使用情况,决定计算节点分布到哪台计算节点上。目前实现很薄,目前已支持插件方式扩展,方便后面可能有采用更复杂算法。
Compute:计算节点,使用虚拟化技术, host 虚拟机
Network: 网络管理,给虚拟机分配网络和管理,使外部 PC 可以可直接访问
Volume:给虚拟机分配额外持久化的存储
运行时系统间交互都是通过异步消息的方式和DB 进行交互
运行时图
管理和使用是走两个通道的。管理必须要经由 nova-api转发过去。而运行时,直接连接计算节点上的虚拟机即可。
OpenStack架构
OpenStack的架构示意图和目前已实现情况
蓝色是要 openstack概念上的架构图,红色是目前已实现的。
部署时,除了Dashboard 必须部署在 nova-api server 上以外,所有的其它进程都可以部署在不同的机器上。
OpenStack提供了基于 Puppet 的自动部署工具。经过简单配置,就可以把各个组件部署到不同机器上。
OpenStack的镜像创建并没有纳入其职责列表。
你可以
使用Ubuntu的已有image (),或者直接重新自己通过KVM安
装 http://cssoss.wordpress.com/2011/04/27/openstack-beginners-guide-for-ubuntu-11-04-image-management/
网络模型
Flat Network Manager, Flat DHCP Network Manager, VLAN Network Manager.
VLAN Network Manager 这种方式适合于共有云。
在私有云方面, IP充足,而且为了方便的互联互通,简单的Flat结构网络比较适合。
OpenStack支持 Floating IPs ,该特性可以方便的通过更改IP来Failover(容错转移)或者迁移。
CAAS
Cluster as a Service: Managing multiple clusters for openstack clouds and other diverse frameworks
OpenStack无法独自满足集群计算的需求。目前有一种方案,把集群计算部署放到 IaaS/PaaS 的下一层,我们称这种解决方案是 CaaS.
当前,在很多机构或者学校,部署了不同的集群解决方案,但是他们使用的频率并不是很高,因此资源利用率不高的情况下,造成了很大的浪费(比如电费, PC)。
设计目标:
o 每个集群资源都可以动态分配
o 系统隔离性好
o 集群有足够的性能和容量
设计:
o IaaS/PaaS层与 CaaS 隔离
o IaaS/PaaS 层可联机扩展
o CaaS 层的镜像可通过容器有效被处理
o CaaS 层是通过 webservice提供服务
o 可通过 VLAN 网络隔离
o 自动安装
在这个解决方案中是通过 LXC的 方式来实现系统隔离
注:
LXC, LINUX的容器工具,他使用cgroup把系统资源分组进行隔离。
它不需要指令级模拟。因此相对其他虚拟化技术性能更高。
因为他必须以进程运行执行文件的方式,因此不支持windows.
在CaaS
中构建
OpenStack
Layers
o CaaS(Physical) Physical layer. OS is installed on physical machines.
o CaaS(LXC) LXC layer. A Tagged VLAN isolates LXC containers.
o IaaS Cloud layer. (nova).
过程:
1. 在物理机上安装LXC
2. 配置VPN网络
3. 执行nova 的自动部署工具
重复1~3, 在不同的机器上重复的安装OpenStack 的计算节点