什么是openstack
什么是openstack
⼀、它是什么,能⼲什么
想认识⼀个事物,必须先弄明⽩它是什么,能⼲什么。
⾸先说⼀下,openstack是⼀个搭建云平台的⼀个解决⽅案,说他不是个软件,但是我觉得说是⼀个软件,能够让初学者更容易接受和理解,在后期的慢慢接触过程中,⼤家就能够理解,为什么说它不是⼀个软件。openstack能⼲什么,可以搭建公有云,私有云,企业云。(顺便说⼀下,企业云将是openstack的⽤武之地)
⼆、openstack组成
上⾯是⼀个整体的认识,想进⼀步了解openstack,就必须了解它的组成。其实这有点像研究⽣物。⼀般⽣物都有眼睛,⿐⼦,嘴等。那么openstack,都有什么。openstack更像是经过计算机的72变之后的产物。包括:7个核⼼组件:Compute(计算), Object Storage(对象存储),Identity(⾝份认证),Dashboard(仪表盘), Block Storage(块存储), Network(⽹络) 和 Image Service(镜像服务) 。
上⾯从计算机的⾓度做⼀个⽐喻,有不恰当的地⽅,⼤家多指正。Compute类似计算的内存;Object Storage类似存储器;Identity就像登陆过程中,验证⽤户名和密码;Dashboard就操作界⾯;Network这个⼤家很容易就明⽩。
三、openstack组件代号
上⾯各个组件有名字,其实熟悉openstack的都会说他们的代号。也就是专业术语。Compute(代号为“Nova”)
Identity(代号为“Keystone”)
Dashboard(代号为“Horizon”)
Image Service(代号为“Glance”)
Network(代号为“Quantum”)
Object Storage(代号为“Swift”)
Block Storage(代号为“Cinder”)
四、openstack组件详细介绍
上⾯了解了,就差不多有点熟悉openstack了。想进⼀步认识,必须不能着急。下⾯进⼀步详细介绍各个组件的作⽤:
(1)Nova
这个是最核⼼的,Nova最开始的时候,可以说是⼀套虚拟化管理程序,还可以管理⽹络和存储。
(2)keystone
这是提供⾝份认证和授权的组件。任何系统,⾝份认证和授权,其实都⽐较复杂。尤其Openstack 那么庞⼤的项⽬,每个组件都需要使⽤统⼀认证和授权。
⽬前keystone 要做的东西其实还是很多。没法基于⾓⾊的授权,web管理⽤户等。
(3)Dashboard
(代号为“Horizon”) 为所有OpenStack的服务提供了⼀个模块化的web-based⽤户界⾯。使⽤这个Web GUI,可以在云上完成⼤多数的操作,如启动实例,分配IP地址,设置访问控制等。
(4)Glance
这是镜像管理。
⽬前Glance的镜像存储,⽀持本地存储,NFS,swift,sheepdog和Ceph,基本是够⽤了。
⽬前Glance的最⼤需求就是多个数据中⼼的镜像管理,如何复制,不过这个功能已经基本实现。还有就是租户私有的image管理,这些⽬前功能都已经实现。
个⼈感觉:Glance后续基本就是⼀个bug修复,稳定的阶段。
(5)Quantum
这是⽹络管理的组件,也是重头戏,Openstack的未来,基本都要靠quantum。上⾯介绍nova的时候,说过⽹络相关的内容,都会交给Quantum。不过Quantum的开发进度不是太如⼈意。Flosom规划实现功能,到Grizzly才实现。未来nova network的代码清理,估计到H版本都不见得可以实现。
Quantum 后端可以是商业产品或者开源。开源产品⽀持Openvswitch,和linux bridge。⽹络设备⼚商都在积极参与,让他们的产品⽀持Quantum。
(6)Swift
这是对象存储的组件。对于⼤部分⽤户来说,swift不是必须的。你只有存储数量到⼀定级别,⽽且是⾮结构化数据才有这样的需求。很多⼈都问⼀个相同的问题:是否可以把虚拟机的存储放在swift上。简单回答:不⾏。你需要搞明⽩对象存储是⼲啥,擅长那些地⽅,那些是不⾏的。
swift是Openstack所有组件了最成熟的,可以在线升级版本,各种版本可以混合在⼀起,也就是说,1.75版本的swift可以和1.48的在⼀个集⾥.这个是很难得的.
(7)Cinder
这是存储管理的组件。Cinder存储管理主要是指虚拟机的存储管理。
openStack由5个重要构成部分:
(1)Nova - 计算服务
(2)Swift - 存储服务
(3)Glance - 镜像服务
(4)Keystone - 认证服务
(5)Horizon - UI服务
上⾯这个5个我们经常接触到,未必真正了解,下⾯让我们来认识⼀下吧。
⼀、OpenStack计算设施----Nova
Nova是OpenStack计算的弹性控制器。OpenStack云实例⽣命期所需的各种动作都将由Nova进⾏处理和⽀撑,这就意味着Nova以管理平台的⾝份登场,负责管理整个云的计算资源、⽹络、授权及测度。虽然Nova本⾝并不提供任何虚拟能⼒,但是它将使⽤libvirt API与虚拟机的宿主机进⾏交互。Nova通过Web服务API来对外提供处理接⼝,⽽且这些接⼝与Amazon的Web服务接⼝是兼容的。
功能及特点:实例⽣命周期管理、计算资源管理、⽹络与授权管理、基于REST的API、异步连续通信、⽀持各种宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V。
Nova弹性云包含以下主要部分:API Server(nova-api)、消息队列(rabbit-mq server)、运算⼯作站(nova-compute)、⽹络控制器(nova-network)、卷管理(nova-volume)、调度器(nova-scheduler)。
(1)API服务器(nova-api)
API服务器提供了云设施与外界交互的接⼝,它是外界⽤户对云实施管理的唯⼀通道。通过使⽤web服务来调⽤各种EC2的API,接着API服务器便通过消息队列把请求送达⾄云内⽬标设施进⾏处理。作为对EC2-api的替代,⽤户也可以使⽤OpenStack的原⽣API,我们把它叫
做“OpenStack API”。
(2)消息队列(Rabbit MQ Server)
OpenStack内部在遵循AMQP(⾼级消息队列协议)的基础上采⽤消息队列进⾏通信。Nova对请求应答进⾏异步调⽤,当请求接收后便则⽴即触发⼀个回调。由于使⽤了异步通信,不会有⽤户的动作被长置于等待状态。例如,启动⼀个实例或上传⼀份镜像的过程较为耗时,API 调⽤就将等待返回结果⽽不影响其它操作,在此异步通信起到了很⼤作⽤,使整个系统变得更加⾼效。
(3)运算⼯作站(nova-compute)
运算⼯作站的主要任务是管理实例的整个⽣命周期。他们通过消息队列接收请求并执⾏,从⽽对实例进⾏各种操作。在典型实际⽣产环境下,会架设许多运算⼯作站,根据调度算法,⼀个实例可以在可⽤的任意⼀台运算⼯作站上部署。
(4)⽹络控制器(nova-network)
⽹络控制器处理主机的⽹络配置,例如IP地址分配,配置项⽬VLAN,设定安全组以及为计算节点配置⽹络。
(5)卷⼯作站(nova-volume)
卷⼯作站管理基于LVM的实例卷,它能够为⼀个实例创建、删除、附加卷,也可以从⼀个实例中分离卷。卷管理为何如此重要?因为它提供了⼀种保持实例持续存储的⼿段,⽐如当结束⼀个实例后,根分区如果是⾮持续化的,那么对其的任何改变都将丢失。可是,如果从⼀个实例中将卷分离出来,或者为这个实例附加上卷的话,即使实例被关闭,数据仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的⽅式⽽重新访问。
因此,为了⽇后访问,重要数据务必要写⼊卷中。这种应⽤对于数据服务器实例的存储⽽⾔,尤为重要。
(6)调度器(nova-scheduler)
调度器负责把nova-API调⽤送达给⽬标。调度器以名为“nova-schedule”的守护进程⽅式运⾏,并根据调度算法从可⽤资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,⽐如负载、内存、⼦节点的远近、CPU架构等等。强⼤的是nova调度器采⽤的是可插⼊式架构。
⽬前nova调度器使⽤了⼏种基本的调度算法:
随机化:主机随机选择可⽤节点;
可⽤化:与随机相似,只是随机选择的范围被指定;
简单化:应⽤这种⽅式,主机选择负载最⼩者来运⾏实例。负载数据可以从别处获得,如负载均衡服务器。
⼆、OpenStack镜像服务器----Glance
OpenStack镜像服务器是⼀套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意⼀种存储中:
(1)本地⽂件系统(默认)
(2)OpenStack对象存储
(3)S3直接存储
如何搭建云平台(4)S3对象存储(作为S3访问的中间渠道)
(5)HTTP(只读)
功能及特点:提供镜像相关服务
Glance构件:Glance控制器、Glance注册器
三、OpenStack存储设施----Swift
Swift为OpenStack提供⼀种分布式、持续虚拟对象存储,它类似于Amazon Web Service的S3简单存储服务。Swift具有跨节点百级对象的存储能⼒。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对⼤数据(千兆字节)和⼤容量(多对象数量)的测度⾮常⾼效。
功能及特点:海量对象存储、⼤⽂件/⼤对象存储、数据冗余管理、归档能⼒(处理⼤数据集)、为虚拟机和云应⽤提供数据容器、处理流媒体、对象安全存储、备份与归档、良好的可伸缩性。
Swift组件:Swift代理、Swift对象、Swift容器、Swift账户、Swift RING。
(1)Swift代理服务器
⽤户都是通过Swift-API与代理服务器进⾏交互,代理服务器正是接收外界请求的门卫,它检测合法的实
体位置并路由它们的请求。此外,代理服务器也同时处理实体失效⽽转移时,故障切换的实体重复路由请求。
(2)Swift对象服务器
对象服务器是⼀种⼆进制存储,它负责处理本地存储中的对象数据的存储、检索和删除。对象都是⽂件系统中存放的典型的⼆进制⽂件,具有扩展⽂件属性的元数据(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所⽀持,但是并没有有效测试证明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同样能运⾏良好。不过,XFS被认为是当前最好的选择。
(3)Swift容器服务器
容器服务器将列出⼀个容器中的所有对象,默认对象列表将存储为SQLite⽂件(译者注:也可以修改为MySQL,安装中就是以MySQL为例)。容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。
(4)Swift账户服务器
账户服务器与容器服务器类似,将列出容器中的对象。
(5)Swift Ring(索引环)
Ring容器记录着Swift中物理存储对象的位置信息,它是真实物理存储位置的实体名的虚拟映射,类似于查及定位不同集的实体真实物理位置的索引服务。这⾥所谓的实体指账户、容器、对象,它们都拥有属于⾃⼰的不同的Rings。
四、OpenStack认证服务(Keystone)
Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖⾃⾝REST(基于Identity API)系统进⾏⼯作,主要对(但不限
于)Swift、Glance、Nova等进⾏认证与授权。事实上,授权通过对动作消息来源者请求的合法性进⾏鉴定。
Keystone采⽤两种授权⽅式,⼀种基于⽤户名/密码,另⼀种基于令牌(Token)。除此之外,Keystone提供以下三种服务:
(1)令牌服务:含有授权⽤户的授权信息
(2)⽬录服务:含有⽤户合法操作的可⽤服务列表
(3)策略服务:利⽤Keystone具体指定⽤户或组某些访问权限
认证服务组件:
(1)服务⼊⼝:如Nova、Swift和Glance⼀样每个OpenStack服务都拥有⼀个指定的端⼝和专属的URL,我们称其为⼊⼝(endpoints)。
(2)区位:在某个数据中⼼,⼀个区位具体指定了⼀处物理位置。在典型的云架构中,如果不是所有的服务都访问分布式数据中⼼或服务器的话,则也称其为区位。
(3)⽤户:Keystone授权使⽤者。
译者注:代表⼀个个体,OpenStack以⽤户的形式来授权服务给它们。⽤户拥有证书(credentials),且可能分配给⼀个或多个租户。经过验证后,会为每个单独的租户提供
(4)服务:总体⽽⾔,任何通过Keystone进⾏连接或管理的组件都被称为服务。举个例⼦,我们可以称Glance为Keystone的服务。
(5)⾓⾊:为了维护安全限定,就云内特定⽤户可执⾏的操作⽽⾔,该⽤户关联的⾓⾊是⾮常重要的。
译者注:⼀个⾓⾊是应⽤于某个租户的使⽤权限集合,以允许某个指定⽤户访问或使⽤特定操作。⾓⾊是使⽤权限的逻辑分组,它使得通⽤的权限可以简单地分组并绑定到与某个指定租户相关的⽤户。
(6)租间:租间指的是具有全部服务⼊⼝并配有特定成员⾓⾊的⼀个项⽬。
译者注:⼀个租间映射到⼀个Nova的“project-id”,在对象存储中,⼀个租间可以有多个容器。根据不同的安装⽅式,⼀个租间可以代表⼀个客户、帐号、组织或项⽬。
五、OpenStack管理的Web接⼝----Horizon
Horizon是⼀个⽤以管理、控制OpenStack服务的Web控制⾯板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,⽤户还可以在控制⾯板中使⽤终端(console)或VNC直接访问实例。总之,Horizon具有如下⼀些特点:
(1)实例管理:创建、终⽌实例,查看终端⽇志,VNC连接,添加卷等
(2)访问与安全管理:创建安全组,管理密匙对,设置浮动IP等
(3)偏好设定:对虚拟硬件模板可以进⾏不同偏好设定
(4)镜像管理:编辑或删除镜像
(5)查看服务⽬录
(6)管理⽤户、配额及项⽬⽤途
(7)⽤户管理:创建⽤户等
(8)卷管理:创建卷和快照
(9)对象存储处理:创建、删除容器和对象
(10)为项⽬下载环境变量
发布评论