瑞安市麟云机械有限公司:OpenStack 架构|麒麟云

来自:十堰市燕压优工艺制品有限公司

1 体系结构设计

1.1 功能结构设计

银河麒麟云平台提供计算资源、存储资源、网络资源的虚拟化管理、系统资源管理、项目管理用户管理、安全管理、高可用管理等基本服务,并为用户提供计算服务,存储服务,大数据业务支撑, HPC 服务及云桌面等服务。

银河麒麟云平台采用模块化、可插拔的设计理念与资源池机制,向用户提供按需使用、易于管理、动态高效、灵活扩展、稳定可靠的新一代云平台系统。其重要特性在于高效的虚拟化技术、可靠的存储资源池和自定义网络隔离层,实现了灵活高效的资源整合及分配策略,可为基础架构服务、 Web 门户网站、大数据分析、高性能计算(HPC)以及开发与调试等业务提供定制化解决方案。满足云计算中心业务功能扩展需求,提高系统的管理效率,降低管理成本。银河麒麟云平台的逻辑结构视图如下所示

图.麒麟云平台功能结构图

银河麒麟云平台完成了在云端的操作系统以及应用软件的虚拟化,为企业内部提供可用、高效的 IaaS 云服务,有效实现了资源的后台集中式管理。

1.2 体系架构设计

银河麒麟云平台实现在云端的操作系统以及应用软件的虚拟化,为企业单位内部提供可用、高效的 IaaS 云服务,有效实现了企业单位资源的后台集中式管理。云平台为用户提供远程桌面访问、用户访问安全性控制、用户数据集中式存储、用户行为跟踪等多种服务,并且对 Linux 版本等主流操作系统的广泛支持。

银河麒麟云平台在设计上采用层次化、模块化结构,系统自身具有良好的可扩展性,支持系统功能模块扩展,满足云计算中心业务功能扩展需求,提高系统的管理效率,降低管理成本。银河麒麟云平台主要由计算管理子系统、存储管理子系统、 网络管理子系统、平台管理子系统、用户管理子系统、安全管理子系统。各子系统直接的交互关系结构图如下:

图. 麒麟云平台逻辑结构图

1.3 详细设计

1.3.1 计算管理子系统

为了完成对数据中心 IT 资源的整合,银河麒麟云平台实现了数据中心计算资源的池化管理。传统模式下,服务器集群的单节点运算能力是分散的,在银河麒麟云平台中,这些资源形成一个统一的资源池,由计算资源管理系统(简称KCMS) 进行统一管理。

图. 计算管理子系统架构图

KCMS 是建立在无共享、基于消息队列的架构上,非常灵活,各组件之间松耦合,能够部署在多个节点上。组件之间使用 AMQP 通信, 同时采用异步方式调用来避免在等待响应时造成的阻塞。与其它系统的通信,则通过调用 RestAPI 完成。由上图所示, KCMS 包括如下六个组件:

管理服务入口(kcms-api):对外提供 RestAPI, 接收 http 请求,将请求内容通过消息队列传递给其它组件,在这之前, 如果请求的类型为创建资源(如创建云主机), 会对用户做配额检查, 配额足够才会通知其它组件完成创建;

资源调度服务(kcms-scheduler):负责从多宿主机中调度最适合的宿主机生成云主机。即传入需要启动的云主机列表, kcms-scheduler 根据云主机的数量、参数等进行调度,选择合适的物理机(hypervisor,宿主机,即运行计算服务的节点)启动这些云主机;

计算服务(kcms-compute):负责管理宿主机上的云主机,对云主机的主要操作有启动、 终止、 重启、挂载硬盘、 卸载硬盘、获取控制台输出等;

消息队列:类似计算机中的总线, 为各组件提供消息传递功能, 使用AMQP 协议;

数据库适配服务(kcms-db):负责与数据库建立连接, 完成 CRUD 操作, 其它组件不直接与数据库通信;

数据库:存储 KCMS 的所有状态及历史数据,如所有的云主机信息以及操作记录,采用 SQL-Alchemy 适配数据库, 理论上支持所有SQL-Alchemy 支持的数据库, 常用的有 Mysql、 Postgres 等。

1.3.2 存储管理子系统

存储管理子系统是大型分布式数据存储和管理系统, 采用高可靠分布式存储方式,基于计算节点挂载的磁盘,实现 PB 级大容量高可靠存储。

存储管理子系统是针对云计算应用和海量数据存储需要而设计研发的高可靠、高性能、高可扩展的海量数据统一存储服务系统,其核心是分布式存储引擎,包含数据存储服务集群和监视服务器集群,实现数据的高可用、 分布式存储。由于存储管理子系统采用全分布式的存储架构,因此具有很强的可扩展性,能够支持 TB 到 PB 级的扩展。银河麒麟云存储管理子系统面向云计算和海量数据应用,为企业和用户提供大规模的、高可靠、稳定高效的数据存储解决方案。

麒麟分布式存储子系统对上层应用以标准块设备接口提供存储功能, 系统架构如下:

图.分布式系统架构

分布式存储引擎由数据存储服务集群和监视器集群组成,为银河麒麟云存储提供分布式对象存储架构,数据存储服务集群实现数据的分布式存储,监视器则用于监视和维护整个集群存储系统的全局状态。在分布式存储引擎之上,银河麒麟云存储通过块存储客户端提供块设备接口,提供块存储的功能,支持自动精简配置、 动态扩容、快照、克隆和复制。

银河麒麟云存储通过块存储客户端提供标准的块设备接口,可为虚拟机和主机提供标准的块设备。银河麒麟云存储将一个虚拟的块设备分片存储在分布式存储引擎上,利用数据条带化提高数据的并行传输能力,实现高性能的块存储。同时,块设备应用于虚拟机时,可支持虚拟机的在线迁移和冷迁移。

1.3.3 网络管理子系统

网络管理子系统通过RESTAPI 管理云平台的连接、 地址、 路由、负载均衡和防火墙。用户可以通过调用 API 或者通过管理界面自由组成复杂的虚拟网络。网络管理子系统包含 APIserver,各类 agent(管理虚拟网络的 L2/L3 层互通)及服务(防火墙服务,负载均衡服务)等组件, 支持通过 GRE,VXLAN,VLAN 组网。

APIserver 提供网络模块的 RESTapi 服务。Agent 包括二层 agent 支持LinuxBridge 和 Openvswitch;三层 agent 支持 L3 和 DHCP, 其中L3agent 提供虚拟路由器管理不同网络之间的连接,一个虚拟路由器可以连接两个以上的网络,DHCPagent给虚拟机提供 dhcp 服务。防火墙服务基于防火墙规则管理虚拟网络入口和出口的访问控制。负载均衡服务提供基于端口的流量负载均衡。

图. 网络服务通信结构图

1.3.4 资源编排子系统

资源编排子系统(简称 KROS)用于管理整个银河麒麟云中资源、应用的生命周期, 使用基于模版的自动化编排引擎来完成各种云应用的部署。模版可视为高度抽象的代码,定义银河麒麟云中一系列的资源创建任务。例如用某配置创建几台虚拟机,每个虚拟机挂载一块硬盘,分配浮动 IP,并且在其中一台中安装一个 mysql服务,设定相关数据库属性,然后再配置几台虚拟机安装 web 服务集群且具有负载均衡功能, 最后在安全组中放开相应端口等等,这一连串的动作如果手动完成将会耗费大量的时间,然而通过 KROS,瑞安市麟云机械有限公司只需要按照规则编写相应的模版文件, 编排引擎执行模板中定义的一连串任务。另外,配合监控模块,利用监控报警, 制定相应的策略, KROS 还能够做到虚拟机的HA 和自动伸缩,资源编排结构图如下。

图.资源编排结构图

KROS 是建立在无共享、基于消息队列的架构上,各组件之间松耦合,能够部署在多个节点上。组件之间使用 AMQP 通信, 同时采用异步方式调用来避免在等待响应时造成的阻塞, 通过调用 RestAPI 与其它子系统通信。

由上图所示, KROS 包括如下四个组件:

资源编排系统 API(kros-api):对外提供 RestAPI, 接收 http 请求, 对请求的内容做有效性验证后,通过消息队列传递给编排引擎;

编排引擎(kros-engine):解析模版, 执行编排任务,通过 RESTAPI 将相应的资源操作发送到其它子系统;

消息队列:类似计算机中的总线, 为各组件提供消息传递功能, 使用AMQP 协议;

数据库:存储 KROS 的所有状态及历史数据,采用 SQL-Alchemy 适配数据库,支持所有 SQL-Alchemy 支持的数据库,常用的有 Mysql、 Postgres等。

1.3.5 平台管理子系统

平台管理子系统是银河麒麟云平台管理中心,它可以管理虚拟机、镜像、工程、网络等。除此之外,用户还可以通过平台管理直接访问虚拟机。总之,平台管理具有如下一些功能特点:

工程概况浏览:显示每一个工程资源的使用情况。

虚拟机创建:支持批量创建虚拟机。

虚拟机删除:支持批量删除虚拟机。

虚拟机状态查看:查看虚拟机的当前运行状态。

访问虚拟机:通过 web 界面可以访问虚拟机。

虚拟机位置查看:支持查看虚拟机运行在哪一台具体的物理主机上。

虚拟机类型选择:创建虚拟机时,可以选择 vcpu、内存。

虚拟机类型管理:支持虚拟机类型的创建、删除、修改。

镜像管理:支持上传镜像、删除镜像、修改镜像。

工程管理:支持创建工程、删除工程。每一个工程之间相互独立,做到工程之间数据相互隔离。

用户管理:支持添加、删除、修改用户。每一个用户都拥有自的资源,用户之间的虚拟机是相互隔离。

配额管理:用户使用资源的限制,和工程使用资源的限制。

网络管理:支持网络创建、删除、修改。可以创建多个网络,每一个网络之间是相互隔离。

计费管理:支持对内存, vcpu, disk 的使用进行计费,计费的单价可以修改。

存储管理:存储镜像模板和用户数据

逻辑卷管理:支持逻辑卷的创建、删除、挂载到一个特定的虚拟机,作为用户的数据盘使用。

1.3.6 用户管理子系统

用户管理子系统支持用户资源配额预约和管理,为云平台所有用户及各个服务模块提供统一认证,超级管理员可以管理工程、用户和角色。

用户管理子系统支持用户资源配额预约和管理,工程管理员及用户可预约需要使用的虚拟资源,系统管理员可管理工程管理员配额,工程管理员可管理其工程下普通用户的配额。资源包括:可使用 vcpu 数量、可使用物理内存、可启动的虚拟机实例数等信息。在云平台管理下,为每一个租户定义一个云平台资源使用上限,称为资源配额。

用户管理子系统实施的是基于角色的访问控制,不同角色的用户实际上具有不同的级别或者不同资源使用权限。用户管理子系统定义三种不同角色用户,分别是:普通用户、工程管理员、系统管理员,权限依次由小到大。

另外用户管理子系统提供编程接口以实现系统内各应用的统一身份认证及计费,系统中各个组件都需要通过用户管理子系统的统一身份认证才能正常启动其服务,保证组件间数据通信的合法安全性;支持对工程管理员及普通用户使用的资源进行计费,包括按时计费及按资源计费。

租户和用户的概念是紧密结合的。租户和用户的关系可以概括为:同一用户可以归属于一个或多个租户,同一租户可以包含一个或多个用户。系统管理员用户具有云平台全部视图,即它可以查看和管理当前云平台所有的租户;工程管理员用户可以查看并管理其归属的租户,另外它还可以向普通用户定义它的配额;

普通用户在其归属的某一租户具有既定的配额。当不同用户归属于不同租户时,它们资源实际上是隔离的。当不同用户归属于同一租户时,它们实际上又可以共享使用资源,主要由如下基本操作。

服务创建、显示、删除

用户创建、显示、更新、删除

租户创建、显示、更新、删除

角色创建、显示、删除

1.3.7 安全管理子系统

银河麒麟云平台的系统用户可选择基于令牌的强身份认证,避免传统的用户名/密码认证方式存在的安全隐患,确保登录到云计算中心用户身份的安全性、真实性。基于RBAC 机制,构建系统用户的角色/权限管理体系,确保合法用户有正确的权限合理访问资源,确保了资源的高效利用率。具备如下功能特色:

规则即时生效:防火墙规则设置后云主机不用重启,即时生效。

支持密钥登录:对于 Linux 系统,支持 SSH 密钥登录,比用户密码登录更安全。

多层防御系统:网络层提供流量控制,主机层提供客户端防护功能,应用数据层提供防火墙功能。

实时监控:7X24 小时全天监控,屏蔽超过 Gbps 级别的海量攻击,保证服务器上特定的应用需求。

KylinCloud 的安全体系架构目的是防御各种网络攻击和入侵,保护用户应用和数据的安全性和可靠性。能实现云平台本身的服务安全,包括数据库、消息队列和各个组件的安全防护;实现用户数据和应用的安全,也就是虚拟机安全、虚拟机隔离、镜像安全和数据安全;提高云平台本身服务的可靠性,服务的高可用性和负载均衡;提高用户数据和应用的可靠性,即虚拟机的高可用性、应用的负载均衡和数据的冗余备份。

KylinCloud 的物理防护架构如下:

图. 物理防护架构

KylinCloud 基于安全域的安全等级划分是将各类服务和用户应用、数据按照安全等级划分到公众域、用户域、管理域和数据域,不同域采取不同的防护措施(跨不同域的服务以高安全域的要求为准):

图. 跨域安全结构

具体安全体系表现为:

a) 界面安全

使用 SSL 加密,支持 HSTS(HTTPStrictTransportSecurity);支持多种 Session管理后端,用户的 cookie 数据以签名、加密的形式保存;可指定允许访问的主机列表,减少安全威胁;可禁用页面的镜像上传,防止恶意镜像传播;使用 SSL加密 VNC 界面传输。

b) 云平台访问安全

APIendpoint 的隔离:对内服务和对外服务 APIendpoint 的隔离;跨不同域的endpoint 使用网络 ACL 和 IDS 等手段确保点对点的通信,防止恶意攻击;使用MAC 保护 endpoint 不被同一主机上的其他进程破坏。认证机制安全:强制要求密码复杂度;防止暴力密码破解;与其他业务系统的认证机制和手段联动的多重身份验证机制(MFA);基于角色的授权;提供基于 PKI 和 UUID 的认证令牌,令牌有效期默认为 24 小时。

c) 云平台安全

管理网与业务网、外网的隔离与防护;全自动的部署/升级脚本,防止恶意更改;物理节点部署入侵检测和恶意软件检测软件;完善的故障监控和自恢复机制;管理网络的安全登录和 SSL 加密:基于 Key 的节点登录,集中的 CA 管理;服务的高可用与负载均衡;基于 SELinux 的服务配置文件的权限控制和防篡改;基于日志文件的安全审计。

d) 虚拟机安全

支持成熟稳定的虚拟化机制:KVM、 Xen、 VMWare;调度采用定制 QEMU,去掉无关的硬件支持并打开安全性编译开关;采用 sVirt 实现虚拟机的隔离防护,防止入侵物理机和防止入侵其他虚拟机;灵活的调度策略,将虚拟机调度到指定节点/可信节点;标准的镜像制作流程和校验机制,防止镜像篡改;虚拟机迁移采用加密传输杜绝安全隐患;成熟的虚拟机高可用和虚拟机集群规模自动伸缩。

e) 网络安全

通过网络防火墙等安全设备,提供网络边界处提供访问控制、病毒网关过滤、防攻击防入侵、内外网数据安全隔离交换等立体安全防护,保护系统安全。支持VLAN 和隧道模式的二层网络隔离;通过安全组指定流量的类型和方向,支持租户网络流量的访问控制;提供三层的路由和 NAT,实现二层网络的互通和外网接入;支持虚拟机带宽的 QoS;提供防火墙机制和负载均衡机制;可扩展的网络管理架构,可通过插件使用更多 SDN 特性。

f) 数据库安全

基于 Cluster 的高可用和负载均衡;支持 SSL 加密和 X.509 认证;不同服务使用不同认证的精细化认证;支持通过代理的方式避免计算节点直接访问数据库;支持 ip 地址绑定防止非法访问。

g) 消息队列安全

支持 SSL 加密;支持认证和访问控制:SASL(Simple Authentication and Security Layer)和 X.509 认证;保护消息队列进程不受主机上其他进程影响;只接受来自管理网络的消息;使用 DAC 和 MAC 保护配置文件不被篡改。

h) 数据安全

控制数据的访问权限,防止数据被非法泄露。业务数据安全包括数据的产生、存储、使用、传输以及销毁。云平台在 IaaS 层面参考了安全等级二级保护,部署在云平台中的应用业务系统安全等级要求参考二级安全要求。支持多副本,保证数据的可靠性;支持用户数据的透明加密存储,保证完整性和机密性;支持数据传输的加密;虚拟机镜像文件的数字签名;支持内存数据清空、逻辑卷数据擦除,防止用户隐私泄露。

1.3.8 高可用管理子系统

为了提高系统的鲁棒性、可靠性,银河麒麟云平台实现了针对云平台下虚拟机的高可用管理(简称 KVHAS)。当虚拟机发生崩溃, 或其所在物理节点(宿主机)发生断电、系统崩溃、网络断开等异常情况时,虚拟机高可用迅速发现并判断其异常情况,根据一系列策略、规则,在线或离线形式,迁移虚拟到新的宿主机,重新正确运行,高可用机制原理结构图如下

图. 高可用机制原理结构图

KVHA 依赖于共享存储、共享块设备或共享逻辑卷,其包含三个组件:

心跳系统(KVHAS-heartbeat):监控物理节点(宿主机)状态,相互传递决策、调度、状态、集群配置等信息,通过特殊算法保证高可用子系统集群状态、配置的一致性、完整性,保证处理过程处理方法的唯一性。

策略调度系统(KVHAS-scheduler):根据传递的信息判断、决策资源的调度,决策、控制虚拟机的运行状态。选举、仲裁高可用子系统的管理节点,保存、维护高可用子系统的状态变更、集群配置、异常情况、处理方案、处理结果、处理的次数等等,形成日志记录在案。

监控与执行系统(KVHAS-action) :监控虚拟机状态,反馈给策略调度系统,接受策略调度系统指令,具体地与其他系统交互,从而控制、执行虚拟机状态变更。执行其他由变化或者配置带来的执行行为,启动、停止、监视附带的其他资源,甚至包括关闭其他物理节点(宿主机)。

主营产品:多功能包装机械,真空包装机,包装成型机械,封口机