为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱 二.还有就是可以有一个可以统一管理的操作平台,可以快速的对基础设施进行建设配置等等,方便了许多
云计算是个什么鬼? 资源可以循环利用的一个过程(PS:没有虚拟化就没有云,因此这两者没什么可比性)
现有云模式(复制大神的): 一、IaaS:基础设施即服务(个人比较习惯的):用户通过网络获取虚机、存储、网络,然后用户根据自己的需求操作获取的资源 二、PaaS:平台即服务:将软件研发平台作为一种服务, 如Eclipse/Java编程平台,服务商提供编程接口/运行平台等 三、SaaS:软件即服务 :将软件作为一种服务通过网络提供给用户,如web的电子邮件、HR系统、订单管理系统、客户关系系统等。用户无需购买软件,而是向提供商租用基于web的软件,来管理企业经营活动 吃货链接https://www./article/11597a1d644db?yyfr=cnblogs
openstack的核心组件介绍(openstack就不多说, redhat推动的,很多云都是基于其开发的,6个月一更新,现在是M版) 重要的: 一.Horizon(控制台),又名Dashboard 就是web展示界面操作平台,方便用户交互的 二.Nova(计算) 负责创建,调度,销毁云主机 三.Neutron(网络) 负责实现SDN 四.Swift(对象存储) 目录结构存储数据 五.Cinder(块存储) 提供持久化块存储,即为云主机提供附加云盘 六.Glance(镜像) 提供镜像服务,装机使用 七.Keystone(认证) 为访问openstack各组件提供认证和授权功能,认证通过后,提供一个服务列表(存放你有权访问的服务),可以通过该列表访问各个组件 不重要的: 八.Ceilometer(计费),很明显自用的根本不需要这功能,而且所谓的监控其实根本也算不上什么监控 监控性能,计费 九.Heat(编排),这个太高大上了,就目前阶段正常企业还搞不定 自动化部署应用,自动化管理应用的整个生命周期.主要用于Paas (本来以为青云现在的资源编排就是啊,用了以后看来还不是,只是方便了点)
好,直接开大,先来个整体的流程(图中有错误) 从这个图我们可以明白每一个组件为创建一台vm都提供了什么,其实就是上面各组件的功能的一个整合图,这里需要注意的就是每一步都需要去keystone去进行验证,下图有详细的流程(每一步完成后去验证的过程省略了)
这里面可以看出组件之间的通讯都是通过restapi实现的
害怕不...但是了解了这些你就可以出去装逼了,然后细分每个组件的细节(说好的自己写变成复制粘贴了....主要人家些太好了) 1.keystone User:指使用Openstack service的用户,可以是人、服务、系统,但凡使用了Openstack service的对象都可以称为User。 Project(Tenant):可以理解为一个人、或服务所拥有的 资源集合 。在一个Project(Tenant)中可以包含多个User,每一个User都会根据权限的划分来使用Project(Tenant)中的资源。比如通过Nova创建虚拟机时要指定到某个Project中,在Cinder创建卷也要指定到某个Project中。User访问Project的资源前,必须要与该Project关联,并且指定User在Project下的Role。 Role:用于划分权限。可以通过给User指定Role,使User获得Role对应的操作权限。Keystone返回给User的Token包含了Role列表,被访问的Services会判断访问它的User和User提供的Token中所包含的Role。系统默认使用管理Role admin和成员Role _member_ 。 Policy:OpenStack对User的验证除了OpenStack的身份验证以外,还需要鉴别User对某个Service是否有访问权限。Policy机制就是用来控制User对Tenant中资源(包括Services)的操作权限。对于Keystone service来说,Policy就是一个JSON文件,默认是 Token:是一个字符串表示,作为访问资源的令牌。Token包含了在 指定范围和有效时间内 可以被访问的资源。EG. 在Nova中一个tenant可以是一些虚拟机,在Swift和Glance中一个tenant可以是一些镜像存储,在Network中一个tenant可以是一些网络资源。Token一般被User持有。 Credentials:用于确认用户身份的凭证 Authentication:确定用户身份的过程 Service:Openstack service,即Openstack中运行的组件服务。 Endpoint:一个可以通过网络来访问和定位某个Openstack service的地址,通常是一个URL。比如,当Nova需要访问Glance服务去获取image 时,Nova通过访问Keystone拿到Glance的endpoint,然后通过访问该endpoint去获取Glance服务。我们可以通过Endpoint的region属性去定义多个region。Endpoint 该使用对象分为三类:
创建完service后创建API EndPoint. 在openstack中,每一个service都有三种end points. Admin, public, internal。 Admin是用作管理用途的,如它能够修改user/tenant(project)。 public 是让客户调用的,比如可以部署在外网上让客户可以管理自己的云。internal是openstack内部调用的。三种endpoints 在网络上开放的权限一般也不同。Admin通常只能对内网开放,public通常可以对外网开放internal通常只能对安装有openstack对服务的机器开放。 一个实例:
2.glance
3.nova与cinder nova主要组成: nova-api nova-scheduler nova-compute nova-conductor cinder主要组成: cinder-api cinder-scheduler cinder-volume
cinder各组件功能: Cinder-api 是 cinder 服务的 endpoint,提供 rest 接口,负责处理 client 请求,并将 RPC 请求发送至 cinder-scheduler 组件。 Cinder-scheduler 负责 cinder 请求调度,其核心部分就是 scheduler_driver, 作为 scheduler manager 的 driver,负责 cinder-volume 具体的调度处理,发送 cinder RPC 请求到选择的 cinder-volume。 Cinder-volume 负责具体的 volume 请求处理,由不同后端存储提供 volume 存储空间。 4.neutron
neutron包含组件: neutron-server neutron-plugin neutron-agent neutron各组件功能介绍:
1.Neutron-server可以理解为一个专门用来接收Neutron REST API调用的服务器,然后负责将不同的rest api分发到不同的neutron-plugin上。 2.Neutron-plugin可以理解为不同网络功能实现的入口,各个厂商可以开发自己的plugin。Neutron-plugin接收neutron-server分发过来的REST API,向neutron database完成一些信息的注册,然后将具体要执行的业务操作和参数通知给自身对应的neutron agent。 3.Neutron-agent可以直观地理解为neutron-plugin在设备上的代理,接收相应的neutron-plugin通知的业务操作和参数,并转换为具体的设备级操作,以指导设备的动作。当设备本地发生问题时,neutron-agent会将情况通知给neutron-plugin。 4.Neutron database,顾名思义就是Neutron的数据库,一些业务相关的参数都存在这里。 5.Network provider,即为实际执行功能的网络设备,一般为虚拟交换机(OVS或者Linux Bridge) |
|
来自: Baruch > 《Openstack》