OpenStack设计与实现读书笔记Chapter 1

来源:互联网 发布:access软件官方下载 编辑:程序博客网 时间:2024/06/13 22:47

C1. 初识OpenStack

OpenStack架构标准视图

OpenStack架构

Compute (Nova)

根据需求提供虚拟机服务,比如创建虚拟机或对虚拟机做热迁移。(类似于
AWS的EC2)
Nova组件:1.nova-api为Nova对外提供服务的窗口,接收并相应来自用户的Compute API调用。2.nova-compute安装到每个物理主机上的服务进程,该服务接受请求后执行与虚拟机相关的操作,通过底层的Hypervisor API完成。3.nova-scheduler用于接收创建虚拟机的请求,并决定在哪台物理主机上启动该虚拟机的调度器。4.nova-conductor处于2和5之间的一个组件,2访问5需要conductor代转交,目的是出于安全的考虑。而3对5的访问则无需conductor代交。5.nova-db该数据库用于记录虚拟机状态、虚拟机与物理机的对应关系、租户信息等数据。6.nova-console、nova-consoleauth控制台服务,允许用户通过代理服务器访问他们虚拟机的控制台。7.nova-cert、nova-objectstore分别提供x509验证管理服务和在Glance中注册镜像的S3接口服务。

Object Storage (Swift)

允许存储或检索对象/文件,以低成本的方式通过RESTful API管理大量无
结构数据。(类似于AWS的S3)
Swift组件:1.proxy-server为处于Swift系统内部与外部之间,负责接收API请求或HTTP请求(上传文件、修改元数据、创建容器等),为提高性能可以与memcached一起部署。2.account-server用于账号管理。3.container-server用于管理容器或文件夹的映射关系。4.object-server用于管理在存储节点上的实际对象(文件)。

Identity (Keystone)

为所有OpenStack服务提供身份验证和授权,跟踪用户和他们的权限,提供
一个可用服务和API的列表(KeystoneAPI负责前台请求,keystone-db负
责后台)。

Dashboard (Horizon)

为Openstack提供一个模块化的基于Django的界面。

Block Storage (Cinder)

提供块存储服务。(类似于AWS的EBS)
Cinder组件:1.cinder-api接收外部API请求,并转交给cinder-volume。2.cinder-volume负责与底层的块存储服务打交道。3.cinder-db用于记录和维护块设备的信息。4.cinder-scheduler与nova-scheduler类似,由于底层提供存储的节点很多,cinder-scheduler会试图寻找最佳的节点创建volume。

Network (Neutron)

用于提供网络连接服务,允许用户创建自己的虚拟网络并连接各种网络设备
接口。Neutron通过插件(plugin)的方式对众多网络设备提供商进行支
持。
Neutron组件:1.neutron-server用于接收来自外部的API请求,将请求交给合适的neutron插件。插件功能上负责存储当前逻辑网络的配置信息,判断和存储逻辑网络和物理网络间的对应关系。这种对应关系通过与交换机通信实现,需要通过物理机上的代理来完成。-plugin agent负责处理虚拟网络上的数据包。-DHCP agent为租户网络提供DHCP服务。-L3 agent为虚拟机访问外网提供三层转发。

Image Service (Glance)

OpenStack的镜像服务组件。(类似于AWS的Amazon AMI catalog功能)
Glance组件:1.glance-api接收外部API镜像请求(镜像发现、获取及存储)。2.glance-registry已合并到glance-api。3.glance-db存储元数据。
  • 例:创建虚拟机工作流程

建立虚拟机示例

备注:一些概念的补充

-OpenStack是以虚拟化技术为中心的云计算技术-Kubernetes、Mesos和Docker公司的Swarm是以容器为计算资源基础单元的容器云。-OpenStack可以被看做是Kubernetes容器云中的一个云原生的应用。-直接面对裸机的Kubernetes又可以集成Ceph(类似于Swift)、Swift、Cinder、Neutron完善网络资源池化(SDN)和存储资源池化(SDS)的管理。

原创粉丝点击