




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OpenStack金融云平台
技术方案
浪潮(北京)电子信息产业有限公司
2017年10月
1概述
1.1项目背景
1.2建设原则
云平台的建设原则是采用业内主流开源云计算解决方案,云平台建设建议
遵循以下原则:
1)兼顾定制化功能和整体标准接口,优先考虑整体的标准化;
2)兼顾产品的可靠性和性能,优先支持可靠性
3)融合分布式技术和集中式技术,优先考虑分布式技术
4)坚持自主可控技术积累,优先考虑“成熟的”开源技术
13业务现状
2云平台建设
InCloudOpenStack云平台以稳定版本的OpenStack为核心,基于它提供的
计算资源管理、存储管理、网络管理、镜像管理、认证管理、计量管理和其他
模块进行优化,结合分布式存储,兼容异构的虚拟化层、存储和网络设备,构
建一个面向未来的、易于横向扩展的、高可用的、不被厂商锁定的弹性计算存
储云资源池。
InCloudOpenStack云平台是以社区Openstack为基础,做了大量的优化,
使之能适应企业云的需求,帮助企业云实现落地。
InCloudOpenStack
倏Tf建门户](开故API-]
[自然典:(嬉T»][]座„J
!KB!【掖寰管。:[故][•MRlj[HWCT](X证授权j
【应用商店】[安全加国]侵丽g](资等许保):
InCloudOpenStackCore
(Nova)Neutron)(CinderJ《核心互平口)[G匕rxe][Keystone](swift)
软件定义计典软件定义存储软件定义网络软件定义安全
InCloudStorage/
ICS/vSphere/KVMACI/NSX/OVS
CephSSR-v/vLB
|X86服务器安全a得1
存储路由器/交换机
InCloudOpenStack云平台整体上主要由以下几个部分组成:
1)上层云方案
InCloudOpenStack做为企业级云平台,可以为上层提供各种云应用
方案,例如:整合了测试自动化系统的研发测试云;开放的,可定制的
金融私有云;与公有云充接的混合云;支持多租户的行业云,以及支持
中小客户的超融一体机系统。
2)OpenstackPlus核心平台。包括:
Openstack核心基础:包含计算(虚拟化)管理模块、存储管理模块、
网路管理模块、镜像管理模块和认证等模块。
企业级框架增强:为了实现企业的可靠性,性能,生命周期管理等
功能,以及自动化运维组件,包括资源监控,日志,成本计量,业务流
程引擎,根据需求进行资源申请和审批的业务流程。这些是Openstack核心
的有效补充和增强,实现在企业的落地。
3)底层架构
底层架构提供与标准及商业的基础架构的匹配和集成。在计算,存储,网
络,和安全方面,提供与多种现有系统的集成,结合插件(Plug-in)和驱动
(Driver),将异构的硬件整合到云平台中。
InCloudOpenStack的目标是,打造适合企业级使用的智能计算/存储融合架
构云平台,简化数据中心管理,降低数据中心成本支出。为实现这一目标,这
一产品在设计之初就遵循以下几大原则:
令通用原则:产品专注在软件层面的实现,对底层服务器和网络设备无特殊要
求。可以运行在通用的X86服务器上,无厂商锁定和限制。可以运行在通用
的万兆交换机网络中,对硬件交换设备无特殊要求,通过软件控制整体网络
行为。
今无中心原则:系统任何节点失效都不影响整体使用,主要体现在任何节点都
可以成为(或接管)控制器节点,任何节点都可以成为“存储+计算”融合节点。
◊群氓智能:整体平台体现高度的智能调度和运维自动化,包括任何节点出现
问题,虚拟机都可以自动修复错误,保证虚拟机运行;新增节点自动安装,
加入即成为资源池的一部分,接受系统调度支持自动资源调度,根据策略实
优化负载,实现整体资源使用均衡。
令业务可用性:内置整体云平台管理界面,无需额外采购,即可拥有用户界面,
实现开机即可用。
2.1整体架构
通过如下的逻辑架构设计,实现平台的统一管理和运维;
若质・❷”“日,•机1M
O^McteckMS«it***
ua«e♦mrti«ttW
openstack■■■■日£・・
wwRO
KManftMOWM<M(MMI)I|MKM(M)
OTHBBMHM-1MHMI
典IIE,式计■/3a云
・牛式s・
7
外层用户:根据应用/基础架构资源的层次,整个云平台所面向用户有四类,相
应的权限限定如下:
■云平台系统外部用户:从因特网访问云平台系统,但无法访问内部系统。
根据这一访问特点,云平台将通过前端设备NAT映射来限定可以被外网访
问的系统,同时结合防火墙设置以及VLAN分配,做好对外防护和对内隔
离的设置
■云平台系统内部用户:从内网访问云平台系统或者办公系统,云平台将通
过VLAN隔离以及设备(服务器和存储资源)的物理隔离等方式,限制外
网和内网之间的安全划分,同时结合内网资源(子网/VLAN/IP/安全组)的
管理,做好应用之间的隔离
■云平台系统应用层管理员(云租户):负责支持系统应用层的运维,负责应
用层的监控、升级和问题解决。具有系统相对应的操作系统、存储、网络
和数据库等基础架构资源的访问和管理权限。云平台将通过租户管理模
块,从逻辑上进行组织划分以及可使用资源的限定,进行租户隔离
■云平台管理员:云平台整体管理员,负责云平台的租户管理、资源分配、
状态监控和系统运维等工作
上层交互界面:
■租户使用界面:云计算租户往往为各个应用系统的管理员,通过租户界
面,租户可以访问自己的操作系统和存储资源,请求新资源,同时进行一
些基本的管理操作
■云平台管理员界面:云平台整体管理员通过这一界面实现对整个云平台的
资源分配、监控和管理。管理员也可以通过命令行进行一些更高级的管理
操作
■API接口:云平台同时提供整体云平台的APL可以基于此二次开发,可以
和其他系统进行集成
中层核心框架:
■基础模块:用户记录各个模块数据的结构化数据库、用户保存监控数据的
非结构化数据库和用户各模块之间通信的消息模块
■核心云计算框架:包含认证模块、计算(虚拟化)管理模块、存储管理模
块、网路管理模块、镜像管理模块和自动化运维模块,通过这些核心组
件,构建软件定义数据中心的基本框架
■业务流程引擎:根据云平台云的需求进行资源申请和审批的业务流程
■资源监控:监控整个云平台资源使用情况
■异构兼容:结合插件(Plug-in)和驱动(Driver),将异构的硬件整合到云
平台中
底层架构:
■计算节点虚拟化:通过在每个节点上部署虚拟化软件,实现计算资源的虚
拟化,提供虚拟机资源
■分布式存储:通过分布式存储为云平台提供各种存储资源
2.2系统建设
2.2.1资源池化
2.2.1.1计算虚拟化
计算资源的池化主要通过“虚拟化技术”,将服务器硬件资源“池化”成多
台虚拟机,能够更高效的利用计算资源池。我们提供的解决方案默认使用最具安
全性和高性能的KVM管理程序作为虚拟化平台。KVM是一种可信赖的虚拟化环境,
特别在云计算平台这样多租户环境的实现上具有优势。
通过虚拟化技术将一台物理计算机虚拟为多台逻辑计算机,在一台物理计算机
上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应
用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工
作效率。虚拟化使用软件的方法重新定义划分计算资源,可以实现计算资源的
动态分配、灵活调度、跨域共享、自动批量部署,提高计算资源利用率,服务
于灵活多变的应用需求。
2.2.1.2存储虚拟化
存储资源池能够兼容使用集中式存储和分布式存储两种存储方式。能够根据
不同的业务对存储的不同需求,便捷的分配不同类型的存储,能够支持不同的存
储类型。
分布式存储系统不仅为虚拟主机提供块存储也为对象存储提供存储能力,同
时分布式存储系统提供数据的三个实时副本,保证用户数据的安全。
目前较为热门的开源存储解决方案分布式存储软件,所有数据皆为对象机制,
在上层提供了相对完整的对象存储、块存储、文件系统°分布式存储软件基于
底层的CRUSH算法,能够自动进行数据的备份、清洗工作。为用户解决了很大
一部分的问题。另一方面,因为分布式存储软件的存储机制,所以其理论上能
够进行无限扩容,完全解决了传统存储的瓶颈。因为分布式存储软件优秀的特
性,OpenStack现在已经能够在多个组件中直接进行分布式存储软件的集成,
像认证服务这样的OpenStack核心认证组件目前已经接受分布式存储软件对象
网关的注册。
2.2.13网络虚拟化
通过软件定义网络技术,既可以实现虚拟机层面传统的Flat扁平网络架构
(传统模式),也可以模拟类似AWS公有云的VPC技术(租户模式),为每个租户
单独组建一个独立的网络环境。
从底层硬件分离网络并友网络基础架构应用虚拟化,把分散的物理网络设备
虚拟成统一的逻辑网络资源池。通过软件定义网络技术,重现整个网络连接环境,
包括每个虚拟网络中的L2-L7网络服务,能够为L2-L7服务提供无单点故障
的逻辑体系结构,并跟随虚拟机移动;通过软件定义网络技术,云操作系统可以
按需使用虚拟网络,按需配置网络逻辑拓扑,通过创建虚拟交换机、虚拟路由器
来进行灵活组网,也可以使租户内部的网络直接与物理网络进行互通,并通过弹
性IP打通租户网络与外部网络之间的南北向流量。
2.2.2计算资源管理
计算节点管理
Nova是OpenStack云平台中的计算组织控制器,支持OpenSlack云平台
中实例(VMInstances)生命周期的所有活动.负责管理计算资源、网络、认
证、所需可扩展性的平台,Nova自身并没有提供任何虚拟化能力,它通过调用
libvirt的API和下层Hypervisors实现交互。
控制者索
访问服务进程
访问虚拟机
访问API法何曾理命令
NovaAPINova-novncproxvNova-Client
Nova-xvpnvncproxv
Nova-spicehtml5proxy
Nova-console
Nova-consoteauth
协同管理进程
王机侬同
Nova-SchedulerNova-Conduct
资源管理服务
存湖RS网物畸
'Nova-Volume।Nova-Network।
I何达,未来逐渐减Cinder替埃)!|回送,逐渐被Neutron—)
Nova通过webservicesAPI来对外提供服务,Horizon或者其他系统可以
通过调用Nova-API实现和计算服务的交互,它存在多个各司其职的服务(即
守护进程)。Nova主要的功能包括:
■服务器(虚拟化层)管理
■规格(云主机类型)管理
■镜像管理
■操作
>Reboot重启
>Rebuild重建
>Resize修改规格
>Pause暂停
>Suspend挂起
>Start启动
AStop关闭
>Boot创建
■租户管理
■额度管理
■网页访问主机的VNCProxy管理
■使用率统计管理
Nova组件的部署方式如下:
nova.scheduler
novaconductor
nova-console
novaconsoleauth
novanonvncproxy
云平台通过配置调度策略,通过过滤器(Filters)和权重器(Weighing)
来实现对主机资源的分配:
云平台在每个计算节点上运行NovaComputer守护进程,调用Hypervisor
的driver管理VM。云平台通过配置不同的driver,实现对多虚拟化层的管理:
Todayonfy1hypery/tsor“peper
NovaComputecloudinstanceLibvut/t<VMismost
commondepk^nent
MatntamedMaintainedby|
IbyCitnxVhMare
Bare
XCPHyperVLPAR
MetalI05rt
囿KVM
MaintainedExpeoffttmmeernHialiI
byMcrosofl|攻Uuspointnil
Nabvear
throughirbvirt
可以基于集群、或者每个计算节点,可以设置各自不同的超分比(CPU、
内存、磁盘),配置如下图:
|^u-aVlocaHoiUrotio^270
Idisk-allocatioruratio-1.0
[max.1nstances-per.host-50
|max_io_ops_per_host-10
|rarrL.allocxxtioruratio-1.0
IrarL.weight_jnultiplier-5.0
freserve4.host_disk_jnb-2048
tpeserved_host_mefnory-mb,2048
支持计算节点水平扩展及一键自动化:
云平台支持大规模计算机集群系统节点的自动化快速统一部署,提供图形
化用户界面完成部署,可支持包括控制节点,计算节点、存储结点、网络节点
的自动化及高可用部署。支持计算节点水平热扩展,不影响正在运行的业务。
平台支持大规模部署,单Region可支持200台以上服务器自动化部署。
Pxebootofopenstack
Bootonlocalhard
InstallOpenStackCompute
InstallOpenStackController
Inta]10penSt.ukM.v.tcr
InstallRunOpenStackController
Press(Tab]toeditoptions
222.2裸机资源管理
裸机与虚拟机管理有很多相似的地方,Nova组件提供的虚拟机管理方案:
关机开机,安装部署,删除添加,Ironic裸机管理组件与Nova组件功能类似,
但主要是解决物理机的添加、删除、电源管理和安装部署,将物理机也作为资
源管理起来。Ironic提供插件的机制让厂商开发自定的driver。Ironic组件的设
计如下:
通过OpenStackIronic对裸机进行管理,可以对物理机进行远程安装操作系
统、远程对物理机进行操作、通过IPMI的console调用,可以直接登陆物理机
进行操作。云平台通过标准的Ironic接口集成到整个云平台进行统一管理。
组件名称组件功能
Ironic-apiRestfulAPI处理应用请求并通过RPC转发到
ironic-conductor
Tronic-conductor裸机的增删改查,通过TPMT或者SSH进行电源管
理;裸机的准备部署销毁
Ironic-python-agent运行在内存中的python服务,通过远程登录和硬
件控制提供ironic-conductor服务
2.2.23虚拟资源管理功能
云平台支持以下对虚拟资源的管理功能:
1)支持虚拟机的启动、关机、重启、重命名
2)支持挂载/卸载硬盘
3)支持创建快照
4)支持加载防火墙
5)支持绑定/解绑IP
6)修改内网IP和指定IP
7)支持制作为私有镜像、删除等功能
8)支持为指定计算节点设置超分比
9)支持虚拟机的CPU、内存和硬盘的添加和修改
10)支持虚拟机CPU、内存热添加
11)支持动态资源调度、虚拟机容错。
12)支持资源自动调度策略。包括根据服务器剩余资源权重自动负载均衡,
根据虚拟机配置类型进行自动调度(包括虚拟机绑定和互斥等策略),
根据用户进行调度(包括租户独占、租户共享等策略)
13)支持用户可定义的虚拟机自动伸缩策略。包括纵向伸缩策略和横向伸缩
策略;纵向伸缩策略可以根据虚拟机的负载情况,自动调节虚拟机配
置,包括CPU、内存、磁盘、网络等,以满足负载变化要求;横向伸
缩策略可根据虚拟机集群的负载情况,自动调节虚拟机集群节点数量,
进行集群在线伸缩,以满足集群负载变化要求
14)支持主流的网站、应用集群和分布式数据集群水平伸缩要求
15)支持主流的软硬件负载均衡方案
16)支持管理员指定节点创建虚拟机。
17)支持指定CPU核数、内存大小
18)支持管理员密码
19)支持通过密钥对登录虚拟机
20)虚拟机支持多网卡,可以在线添加和删除网卡
21)支持虚拟机的网卡和磁盘的QoS。
22)支持的虚拟机Web控制台访问,且无需安装浏览器插件。
23)支持虚拟机的批量操作,包括创建、启动、关机、重启、删除
24)支持模版管理,基于预置的镜像创建虚拟机。
25)支持用户将虚拟机制作为私有镜像。
26)支持与Docker等容器技术整合
27)支持通过云平台申请、创建、管理和删除容器服务。
2.2.3存储资源管理
云平台将通过Cinder整合云平台后端的存储资源。Cinder由Cinder-
Client^Cidner-API>Cidner-Scheduler、Cinder-Volume>Cidner-Backup五大模
块组成。其架构图如下:
cindercbent
Storage
通过Cinder可以适配多种的存储需求,支持用户选择不同类型以及性能的
存储,以满足不同级别的业务需求,具体如下所示类型:
1)FC-SAN
2)NAS存储
3)DAS存储
4)分布式存储
5)对象存储
Cinder支持异构存储的统一管理,整合不同类型的存储资源,节约存储成本。
支持使用商业存储作为共享存储连接至每个计算节点,支持虚拟机热迁移,服
务不中断。支持商业存储的多路径聚合功能,在计算节点上使用mulli・palh实
现存储多路径连接,从而实现虚拟机的数据链路高可用。
2.2.3.1集中式存储
云操作系统通过专属网络方式连接存储设备和应用服务器,这个网络专用于
主机和存储设备之间的数据访问。云操作系统通过标准的监控管理接口协议,调
用各厂商的存储设备管理端,实现对多厂商的异构的集中式SAN存储的统一管
理。
StorageStorage
SAN存储架构
2.23.2分布式存储(Ceph)
Ceph提供了一种统一的、软件定义的分布式存储系统解决方案,其具有优
异的性能、可靠性、可扩展性并且没有单点故障。Ceph的底层是RADOS(可
靠、自动、分布式对象存储),可以通过LIBRADOS直接访问到RADOS的对
象存储系统。RBD(块设备接口)、RADOSGateway(对象存储接口)、CephFile
System(POSIX接口)都是基于RADOS的,下面的图简要说明了ceph的基本架
构。
图Ceph架构图
Ceph集群包含多个组件,不同的组件保持相互独立并且提供不同的功能。
这些组件包括RADOS、OSD,MON,RADOSgateway以及MDS。
RADOS(ReliableAutonomicDistributedObjectStore)是整个Ceph集群的
基石。在C叩h集群中,所有类型的数据都以object对象的形式进行存储,
RADOS通过数据复制、故障检测、数据恢复、数据迁移保证数据均衡地分布
在整个集群中,同时也保证了数据的一致性和可靠性。
OSD是Ceph集群中唯一的负责将用户数据写入磁盘以及读取的组件。当
上层应用将数据写入Ceph集群中,最终是由OSD将这些数据写入磁盘;当上
层应用从Ceph集群读取数据时,同样是由OSD从磁盘读取数据。通常而言,
一个OSD就对应一个物理磁盘,也就是说,有多少个物理磁盘,就有多少个
OSDo
Mon通过一组maps来维护整个集群的健康状态,这组maps包含了
OSD、MON、PG以及CRUSH的信息。集群中所有的组件都耍向Mon汇报并
且分享它们的状态信息。需要说明的是,Mons并不会存储应用的任何数据。
RADOSgateway(RGW)提供了RESTful形式的API接口,它兼容
AmazonS3以及OpenStack对象存储Swift。同时,RGW支持多租户,并且可
以使用OpenStack的Keystone作为其认证系统。
MDS(CephMetadataSender)主要用来存储CephFS的元数据,也就是说
只有使用CephFS的时候才需要部署MDSo
RBD(RADOSblockdevice)是指Ceph集群提供的块存储。Ceph块存储
具备了很多商业存储的特性,比如精简配置和快照功能。用户可以挂载Ceph
块存储,并通过格式化、创建文件系统来进行使用。
CephFS(CephFileSystem)是Ceph集群提供的兼容POSIX的分布式文件
系统,它依赖于C叩hMDS存储文件系统的元数据。
上面我们对Ceph集群的组件极其功能做了简要的描述,其整体的组件功
能架构如下图所示。
CLIENTS
Illi
RBDRADOSGWCEPHFS
LIBRADOS
..JMDS
OSDOSDOSDOSD
OSDJJOSD®OSDJJOSD
OSD®OSD®OSDBOSD
图Ceph组件功能架构图
.1Ceph用户接口架构介绍
C叩h作为一种统一的分布式存储系统,它同时向用户提供了块存储、对
象存储和文件系统接口,下面我们对此分别进行介绍。
块存储是企业环境中使月最为广泛的数据存储方式,Ceph的RBD提供了
类似的功能。RBD给物理机以及虚拟机提供一种非常好块存储解决方案。Ceph
RBD驱动已经在Linux内核(2.6.39及以上)中进行了集成,同时
QEMU/KVM也可以对它进行无缝直接地访问。Linux主机通过librados可以挂
载Ceph块设备,Rados则将Ceph块设备对象分布到整个集群中。一旦Linux
挂载了Ceph块设备,就可以将其当作普通的磁盘来使用,比如创建文件系统
然后挂载。在虚拟化领域中,Ceph块设备也得到了广泛的应用。虚拟机可以使
用Ceph块设备存储其镜像和数据文件。主流的虚拟化技术,比如QEMU、
KVM和XEN等都可以使用Ceph作为它们的存储后端。Ceph块存储接口架构
如下图所示。
OPENSTACK
KEYSTONESWIFTCINDERNOVA
HYPER
VKOR
IfRADOSGW
▼IUBRADOS
MM
RADOSCLUSTER
图Ceph块存储接口架构示意图
Ceph对象存储网关也称为(RADOSgateway),其作用就是将用户的
HTTP请求转换为RADOS请求,提供一种RESTful的对象存储,同时它也兼
容亚马逊的S3和OpenSlack的Swift。下面的图说明了利用CephRADOS
gateway和librados提供对象存储的架构。
RESTful
HTTP/S
ACCMS
图Ceph对象存储接口架构示意图
CephFS在RADOS之上提供了一个POSIX兼容的文件系统,它使用MDS
管理文件系统相关的元数据。C叩hFS集成了RADOS的特性,它可以提供动态
的数据平衡能力。此外,libcephfs在多客户端实现中扮演了重要角色,它被
Linux内核驱动原生的支持,因此客户端可以直接使用mount命令挂在CephFS
文件系统。同时,CephFS也可以和SAMBA、CIFS、NFS进行集成或者作为
Hadoop的存储后端,其架构如下图所示。
图Ceph文件系统接口示意图
Ceph与OpenStack的集成架构
OpenStack是开源的laaS平台,可以用来构建公有云或者私有云,而存储
是构建云平台的基石,因此存储的选型对整个云平台的建设至关重要
OpenStack得益于其良好的架构,存储厂商只要提供其存储的驱动,就可以
与OpenSlack进行集成。OpenStack不仅支持传统的IPSAN、FCSAN,同样也
支持Ceph等分布式存储系统,但就目前而言,Ceph是与OpenStack集成度最
好的存储系统,它不仅可以作为Cinder的存储后端,还可以作为Nova、
GlanceSwift的存储后端。各种存储系统和OpenStack集成的架构如下图所
不。
图存储系统与OpcnStack集成的架构示意图
在虚拟化环境中,最主要的存储形式是块存储,这也是OpenStackCinder
提供的功能。虚拟机挂载块存储设备作为系统盘或者数据盘使用,块设备的挂
载主要是通过Qemu来完成的,具体实现上又分为两种方式。第一种,这也是
最为普遍的方式,就是将存储的系统的块设通过IPSAN或者FCSAN的方式
挂载到物理主机,然后再将其挂载给虚拟机使用。第二种,这也是CephRBD
使用的方式,就是Qemu可以通过其支持网络协议将块设备直接映射到虚拟机
中,这样在物理机上是看不到这个块设备的。虚拟机使用块设备的架构如下图
所示。
图虚拟及使用块设备的架构示意图
Ceph的主要特点
■高扩展性:使用普通x86服务器,支持1070000台服务器,支持TB到
PB级的扩展。
■高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
■高性能:数据分布均衡,并行化度高。对于objeclsstorage和block
storageo
通过使用分布式存储Ceph作为Cinder的后端存储,可以满足云计算对存
储系统的要求,而且Ceph目前已经和OpenStack的Nova,Cinder,Glance,
Swift等组件做了深度集成,可以做到统一存储。
1)全局统一存储
2)支持卷克隆、快照和精简单配置(ThinProvisioning)
3)采用完全分布式架构
a)不需要元数据服务器和存储网关
b)避免单点故障和性能瓶颈
4)多副木数据存放,高数据可靠性
a)在3副本的情况下,可以达到9个9
5)自动实现文件切片分发
a)聚合带宽
b)不同节点之间实现I/O负载均衡
6)支持在线横向扩展
7)自动处理磁盘故隙,快速数据恢复
2.2.33对象存储(Swift)
对象存储解决方案以国际上最成熟的开源对象存储软件OpenStackSwift为
核心,基于x86标准服务器,构建支持HTTP对象存储接口的软件定义存储系
统。实现具有极高可靠性和可用性的,可支持“多活”的对象存储系统。
2.2.3.3.1对象存储系统软件架构
Swift采用完全对称、面向资源的分布式系统架构设计,所有组件都可扩展,
避免因单点失效而扩散并影响整个系统运转;通信方式采用非阻塞式I/O模式,
提高了系统吞吐和响应能力°Swift底层磁盘可以通过RAID的直通模式进行构
建,Swift软件架构如下图所示:
SwiftAPI
SW设主要服务组件有:
•代理服务(ProxyServer)
对外提供对象服务API,会根据环的信息来查找服务地址并转发用户请求至
相应的账户、容器或者对象服务;由于采用无状态的REST请求协议,可以进
行横向扩展来均衡负载。
•认证服务(AuthenticationServer)
验证访问用户的身份信息,并获得一个对象访问令牌(Token),在一定的
时间内会一直有效;睑证访问令牌的有效性并缓存下来直至过期时间.
•缓存服务(CacheServer)
缓存的内容包括对象服务令牌,账户和容器的存在信息,但不会缓存对象本
身的数据;缓存服务可采用Memcached集群,Swift会使用一致性散列算法来
分配缓存地址。
•账户服务(AccountServer)
提供账户元数据和统计信息,并维护所含容器列表的服务,每个账户的信息
被存储在一个SQLite数据库中。
•容器服务(ContainerServer)
提供容器元数据和统计信息,并维护所含对象列表的服务,每个容器的信息
也存储在一个SQLite数据库中。
•对象服务(ObjectServer)
提供对象元数据和内容服务,每个对象的内容会以文件的形式存储在文件系
统中,元数据会作为文件属性来存储,建议采用支持扩展属性的XFS文件系统。
•复制服务(Replicator)
会检测本地分区副本利远程副本是否一致,具体是通过对比散列文件和高级
水印来完成,发现不一致时会采用推式(Push)更新远程副本,例如对象复制服
务会使用远程文件拷贝工具rsync来同步;另外一个任务是确保被标记删除的
对象从文件系统中移除。
•更新服务(Updater)
当对象由于高负载的原因而无法立即更新时,任务将会被序列化到在本地文
件系统中进行排队,以便服务恢复后进行异步更新;例如成功创建对象后容器服
务器没有及时更新对象列表,这个时候容器的更新操作就会进入排队中,更新服
务会在系统恢复正常后扫描队列并进行相应的更新处理。
・审计服务(Auditor)
检查对象,容器和账户的完整性,如果发现比特级的错误,文件将被隔离,
并复制其他的副本以覆盖本地损坏的副本;其他类型的错误会被记录到日志中。
其中,将代理服务、认证服务和缓存服务在一起统称为“接入服务”,将账户服
务、容器服务、对象服务、复制服务、更新服务和审计服务在一起统称为“存储
服务”。
2・2・3.3.2一致性散列(ConsistentHashing)
面对海量级别的对象,需要存放在成千上万台服务器和硬盘设备上,首先要
解决寻址问题,即如何将对象分布到这些设备地址上。Swift是基于一致性散列
技术,通过计算可将对象均匀分布到虚拟空间的虚拟节点上,在增加或删除节点
时可大大减少需移动的数据量;虚拟空间大小通常采用2的n次幕,便于进行
高效的移位操作;然后通过独特的数据结构Ring(环)再将虚拟节点映射到实
际的物理存储设备上,完成寻址过程。
虚点
如上图中所示,以逆时针方向递增的散列空间有4个字节长共32位,整
数范围是将散列结果右移m位,可产生2盼m个虚拟节点,例如m=29
时可产生8个虚拟节点。在实际部署的时候需要经过仔细计算得到合适的虚拟
节点数,以达到存储空间和工作负载之间的平衡。
Swift根据一致性哈希原理设计了环,环是为了将虚拟节点(分区)映射到一
组物理存储设备上,并提供一定的冗余度而设计的,其数据结构由以下信息组成:
存储设备列表、设备信息包括唯一标识号(id)、区域号(zone)、权重(weight)、
IP地址(ip)、端口(port)、设备名称(device)>元数据(meta)o
分区到设备映射关系(replica2part2dev_id数组)
计算分区号的位移(part_shift整数,即图1中的m)
以查找一个对象的计算过程为例:
分区到设备映射
使用对象的层次结构account/container/object作为键,使用MD5散列
算法得到一个散列值,对该散列值的前4个字节进行右移操作得到分区索引
号,移动位数由上面的part.shift设置指定;按照分区索引号在分区到设备映
射表(replica2part2dev_id)里查找该对象所在分区的对应的所有设备编号,
这些设备会被尽量选择部署在不同区域(Zone)内,区域只是个抽象概念,它
可以是某台机器,某个机架,甚至某个建筑内的机群,以提供最高级别的冗余
性,建议至少部署5个区域:权重参数是个相对值,可以来根据磁盘的大小来
调节,权重越大表示可分配的空间越多,可部署更多的分区,Swift为账户,
容器和对象分别定义了的环,查找账户和容器的是同样的过程。
2.233.3数据模型
Swift采用层次数据模型,共设三层逻辑结构:Account/Container/Object(即
账户/容器/对象),每层节点数均没有限制,可以任意扩展。这里的账户和个人
账户不是一个概念,可理解为租户,用来做顶层的隔离机制,可以被多个个人账
户所共同使用;容器代表封装一组对象,类似文件夹或目录;叶子节点代表对象,
由元数据和内容两部分组成,如下图所示:
ROOT
2.2.33.4对象存储API
Swift通过ProxyServer向外提供基于HTTP的REST服务接口,对账
户、容器和对象进行CRUD等操作。在访问Swift服务之前,需要先通过认
证服务获取访问令牌,然后在发送的请求中加入头部信息X-Auth-Tokeno
Swift支持的所有操作可以总结为下表:
资源URLGETPUTPOSTDELETEHEAD
类型
账户/account/获取容器---获取账户
列表元数据
容器/account/contai获取对象创建容器更新容器删除容器获取容器
ner列表元数据元数据
对象/account/contai获取对象创建、更更新对象删除对象获取对象
ner/object内容和元新或拷贝元数据元数据
数据对象
应用开发除了可采用Swift项目本身的API以外,还可以使用Python和
Java库。
2.23.4存储管理功能
存储管理模块针对用户提供虚拟云硬盘服务,包括以下功能
1)支持虚拟存储服务,
2)创建云存储
3)删除云存储
4)云主机挂载
5)卸载云存储
6)查询云存储
7)云存储扩容
8)支持创建云主机
9)云硬盘快照
10)快照删除
11)通过云主机快照启动云主机
12)通过云硬盘启动云主机
13)云硬盘快照创建云硬盘
14)支持快照管理,可以为虚拟机挂载的硬盘做快照并恢复,支持系统
和数据盘。
2.2.4网络资源管理
云操作系统的基础架构主要包含计算(服务器)、网络以及存储。对于网
络,从云操作系统整个网络架构上来说,可以分为三个层面:跨数据中心网
络、数据中心网络以及云接入网络。
由于云计算技术的逐步发展,使得传统的数据中心网络已经不能满足新一
代数据中心网络高速、扁平、虚拟化的要求。
首先,目前传统的数据中心由于多种技术和业务之间的孤立性,使得数据
中心网络结构复杂,存在相龙独立的四张网,包括管理网络、数据网络、存储
网络和外部网络,和多个对外I/O接口。数据中心的前端访问接口通常采用以
太网进行互联而成,构成高速的数据网络;数据中心后端的存储则多采用分布
式存储,SAN等接口.
其次,由于云计算技术的使用,使得虚拟数据中心中业务的集中度、服务
的客户数量远超过传统的数据中心,因此需要对网络的高带宽、低拥塞提出更
高的要求。一方面,传统数据中心中大量使用的二层网络产生的拥塞和丢包,
需要三层以上协议来保证重传,效率低;另一方面,二层以太网网络采用生成
树协议来保持数据包在互联的交换机回路中传递,也会产生大量冗余。
因此在使用云计算后,数据中心的网络需要解决数据中心内部的数据同步
传送的大流量、备份大流量、虚拟机迁移大流量问题。同时,还需要采用统一
的交换网络减少布线、维护工作量和扩容成本。引入虚拟化技术之后,在不改
变传统数据中心网络设计的物理拓扑和布线方式的前提下,可以实现网络各层
的横向整合,形成一个统一的交换架构,其总体架构图如下所示:
网络虚拟化总体架构
1.原理:
SDN全称:Software-definednetworking。其含义为使用软件定义网络,可以
通过程序来操控开放的接口或者更底层的函数从而实现动态的改变和管理网
络。
2.与传统网络相比带来的优点:
SDN对比传统网络拥有非常灵活的特性,对于如今的大型生产环境如数据中心
等等都可能需要动态的调整网络架构等操作.而传统的网络对这些操作是非常
复杂的。
3.涉及到的相关技术:
SDN通常与OpenFlow相关联,OpenFlow是一个用于网络层元件的远程通信,其
内涵盖了大量路由协议的通信协议。
NBKaf
Mrafocf>rtornMnnp
网络虚拟化具备以下三方面功能:
1)核心层虚拟化
核心层网络虚拟化,主要指的是数据中心核心网络设备的虚拟化。它要求
核心层网络具备超大规模的数据交换能力,以及足够的万兆接入能力;提供虚
拟机箱技术,简化设备管理,提高资源利用率,提高交换系统的灵活性和扩展
性,为资源的灵活调度和动态伸缩提供支撑。核心层架构使用先进的Spine-
Leaf平面架构,提供可动态调整的带宽超分比。设备支持的MLAG技术可以实
现跨交换机的端口捆绑,这样在下级交换机上连属于不同机箱的交换机时,可
以把分别连向不同机箱的万兆链路用IEEE802.3ad兼容的技术实现以太网链路
捆绑,提高冗余能力和链路互连带宽,简化网络维护。
2)接入层虚拟化
接入层虚拟化,可以实现数据中心接入层的分级设计.根据数据中心的走
线要求,接入层交换机要求能够支持各种灵活的部署方式和新的以太网技术。
目前无损以太网技术标准发展很快,称为数据中心以太网DCE或融合增强以太
网CEE,包括拥塞通知(IEEE802.IQau)、增强传输选择ETS(IEEE802.IQaz)和
优先级流量控制PFC(IEEE802.IQbb)、链路发现协议LLDP(IEEE802.1AB)<>
3)虚拟机网络交换
虚拟机网络交互包括物理网卡虚拟化和虚拟网络交换机,在服务器内部虚
拟出相应的路由器、交换机和VM网卡功能,其设计如图所示:
虚拟机网络交换设计图
虚拟路由器提供一个独立的三层堆栈,负责静态路由、动态路由、NAT等
三层网络功能;虚拟交换机在主机内部提供了多个VM网卡的互联以及为不同的
VM网卡流量设定不同的本地YLAN标签功能,然后通过Overlay技术将从属不
同VNI下的流量进行隔离发送,使得主机内部如同存在一台支持隔离的三层交
换机,可以方便的将不同的VM网卡连接到不同的虚拟网络。VM网卡是在一个
物理网卡上虚拟出多个逻辑独立的网卡,使得每个网卡具有独立的MAC地址、
IP地址,同时还可以在虚拟网卡之间实现一定的流量调度策略。因此,虚拟机
网络交互支持以下功能:
1.虚拟机的双向访问控制和流量监控,包括流量控制、流量统计、多队列
等;
2.虚拟网络的分布式路由,以及动态路由学习等;
3.虚拟机的网络属性应包括:VxLAN/VLANsQoS、ACL、带宽等;
4.虚拟机的网络属性可以跟随虚拟机的迁移而动态迁移,不需要人工的干预
或静态配置,从而在虚拟机扩展和迁移过程中,保障业务的持续性;
5.虚拟机迁移时,与虚拟机相关的资源配置,如存储、网络配置随之迁移;
同时保证迁移过程业务不中断。
网络虚拟化的管理功能通过扩展Neutron组件的方式实现,具备以下功
能:
1.虚拟路由器管理
2.虚拟网络管理
3.虚拟子网管理
4.虚拟网络端口管理
5.高级网络服务管理,包括安全组、防火墙、VPN、负载均衡等。
网络虚拟化管理平台
网络资源管理包含四个功能模块:
1.网络
网络目的是在多租户环境下提供给每个租户独立的网络环境。另外,提供
API来实现这种目标。“网络”是一个可以被用户创建的对象,如果要和物
理环境下的概念映射的话,这个对象相当于一个巨大的交换机,可以拥有无限
多个动态可创建和销毁的虚拟端口。
2.端口
在物理网络环境中,端口是用于连接设备进入网络的地方。网络虚拟化组
件中的端口起着类似的功能,它是路由器和虚拟机挂接网络的着附点。
3.路由器
和物理环境下的路由器类似,网络虚拟化组件中的路由器也是一个路由选
择和转发部件。只不过在网络虚拟化组件中,它是可以创建却销毁的软件。
4.子网
子网是由一组IP地址组成的地址池。不同子网间的通信需要路由器的支
持,网络虚拟化组件和物理网络下是一致的。
2.2.4.1网络管理模块
整合云操作系统后端的存储资源,架构如下:
网络设计-拓扑设计
vs”
♦・・・・匕
—
通过组合开源SDN和部分商业软件方式,实现经济性和稳定性的平衡,如
图所示:
组网方式实现方案
调度方式OpenStack网络控制Neutron调度OpenStack开源VNF
控制平面OpenStackNeutron
二层交换OVSL2分布式交换机
三层路由OVSL3/DVR
四层负载均衡无
防火墙OpenStackFWaaS或商业方案
IPSecVPNOpenStackVPNaaS
七层负载均衡OpenStackLBaaS或商业方案
七层应用防护无
2.2A2SDN控制器
SDN控制器是软件定义网络(SDN)中的应用程序,负责流量控制以确保智能
网络。SDN控制器是基于如OpenFlow等协议的,允许服务器告诉交换机向哪里
发送数据包。
SDN控制器是作为网络的一种操作系统(OS)o控制器不控制网络硬件而是
作为软件运行,这样有利于网络自动化管理“基于软件的网络控制使得集成业务
申请和网络更容易。SDN控制器通过云管理平台动态感知虚机迁移,实现虚机迁
移的网络策略动态跟随,实现网络与计算、存储的高效融合,
SDN控制器支持的功能如下:
1.支持通过应用VXLAN技术,来隔离应用层不同租户间网络流量;网络虚拟
化建立基于VXLAN的L2逻辑交换机及L3的逻辑路由器的功能;
2.支持隧道机制,在控制平面采用改进的二层协议,支持服务发现、隧道管
理、地址通告和映射等功能,控制平面采用基于SDN控制器的集中控制模
式,通过集中的控制器集群实现VXLAN的控制平面,使网络部署维护更简
单,运行更稳定;
3.兼容标准Overlay网络的同时融合传统网络,支持跨三层的虚拟机迁移,
基于三层物理网络实现大二层虚拟网络、广播风暴抑制、虚拟机动态感知
等。
2.2.43负载均衡控制
负载均衡控制应用交付设备集合出入站智能DNS解析、轮询、加权轮询、
静态就近性、动态就近性等算法,解决多链路网络环境中流量分担的问题,充分
提高多链路的带宽利用率,节约对通信链路的投资;并且通过分配最佳的通信线
路,提高访问体验。在某条链路中断的情况下仍然可以提供访问链接能力。
云操作系统默认以HAProxy为负载均衡的driver,同时也支持A10
network>netsealer、radware等作为driver。
虚拟防火墙控制
虚拟化防火墙设备拥有与传统防火墙设备相同的操作系统,具有丰富的网络
安全防护功能,对网络威胁进行防御,能够满足多租户环境中的网络安全需求。
具备精细化应用管控,可提供多维的应用风险分析和筛选,以及灵活的安全
控制,包括策略阻止、会话限制、应用引流和智能流量管理等。同时,还具备入
侵防御、AV病毒过滤、攻击防护、链路与服务器负载均衡、NAT等功能。
2.2.4.S虚拟交换机控制
虚拟交换机系统(VirtualSystem)提供网络设备虚拟化的技术架构,实现设
备“一虚多”的虚拟化能力,即在物理设备上划分出多个逻辑或虚拟设备系统。
每个虚拟系统VS就是设备上的“虚拟机”,可以如同一台单独设备一样独立配
置、管理、维护,独立运行,承载网络业务并与其他VS相互隔离。
虚拟路由控制
虚拟路由支持硬件路由器具有的所有功能,可供公开审查及检查代码中潜在
的错误及漏洞。
224.7支持多租户业务网络场景
支持2层到7层的虚拟化需求,支持以下多种高级业务场景。
IntranetSharedNetwork
(VLAN200.Virtual)
TenantA
1.路由的高可用:OpenStack原生的三层路由稳定性以及高可用上的缺陷是阻
碍其在大规模生产环境中使用的最大问题。通过和商业VNF(Virtual
NetworkFunction)组件结合,可以组建具备“双活”高可用的路由。
2.防火墙应用防护(WAF)
3.防火墙的高可用:可以组建具备“双活”高可用的防火墙
4.动态内网负载均衡
5.租户环境的一键生成和活体克隆,用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论