平台总体架构设计
该平台整体分为五层,如图4所示。
表现层为WebUI与Mobile Web UI界面,分别为用户提供电脑和手机终端访问;业务应用层为多用户加密可检索文件系统与云资源管理系统,即云平台的SaaS层,实现用户之间资源的共享和检索。在云资源管理子系统中,可以为IPv6的云租户提供虚拟资源的申请,比如计算资源、服务方案、网络资源等。表现层与业务应用层合为此平台的前端系统部分。应用支撑层分为开源云平台CloudStack与分布式文件存储系统Ceph,实现对资源的管理以及服务调配等操作。基础设施层包括服务器、存储节点、网络设备及安全设备等,利用虚拟化技术对资源池进行管理,实现对资源的动态分配等操作,使得该平台具有一定的扩展性和可维护性。IPv6的支持解决了现有的IPv4地址不足的问题,IPv6协议具有较灵活的报文头部格式和较小的路由表,这使得该平台具有更大的吞吐量,能提供更多类型的服务。CloudStack为不同的用户提供不同的计算资源、网络资源以及服务资源等,而在Ceph分布式存储系统中每个用户拥有自己的独立存储空间,能够很好地实现用户基于IPv6协议上的资源的隔离与共享,这使得该平台具有较高的安全性。B/S架构的应用使得用户可以随时随地访问自己的云资源,更加便捷地为用户提供服务。五层架构的设计,完美融合了基础资源,真正实现弹性计算、按需分配与资源共享。
平台详细设计
平台的总体架构设计如图5所示。下面针对该平台的总体架构分别进行各层的详细设计。
云平台客户端
云平台客户端主要是前端系统,即门户网站,分别通过WebUI与MobileWebUI界面为用户提供手机和电脑终端的访问;门户网站针对不同用户类型,用户显示界面有所不同,实现个性化定制。
云业务应用层
云业务应用层的系统主要包括多用户加密可检索文件系统和云资源管理系统。用户在使用文件系统时,可以管理个人云盘,进行文件查询、删除、加密上传和下载解密等操作。通过IPv6协议的网络传输,能够保证平台与文件系统之间传输的服务质量和安全性;管理公共文件区域,用户上传的个人资源可以选择共享,对于用户共享资源可进行相关性安全查询;防火墙规则配置,在IPv6的基础上配置网络的入口以及出口规则,实现网络安全隔离;云资源管理系统可管理虚拟资源,通过设定CPU核心数、CPU速率、内存大小等来管理计算资源,通过设定主数据存储提供磁盘大小和IOPS等选项来管理磁盘方案,通过约定来宾网络中虚拟路由器或外部网络设备来管理网络资源[20];管理门户网站,针对不同的用户,可对其进行不同权限的控制。
云应用支撑层
云应用支撑层由CloudStack开源云平台与Ceph分布式存储系统两部分构成。CloudStack架构中涉及的服务器主要为两类:管理服务器和计算服务器。CloudStack云平台的核心是管理服务器,用于管理集群中CPU、内存、网络以及云平台中虚拟机模板、镜像、快照等资源[22]。根据CloudStack提供的相关管理服务接口如资源调度、资源监控、用户管理、安全管理、加密控制、安全审计、配置管理等来实现具体功能。
CloudStack云平台的硬件环境应该考虑实际应用需求,实现各种资源的整合,最大化的利用现有资源。CloudStack的网络域包括基础网络和高级网络,由于基础网络的安全组不支持IPv6,因此本平台将会使用高级网络部署模式,在此模式下进行虚拟实例创建以及防火墙规则配置。在高级网络中虚拟机可以接入到多个网络,采用VLAN的方式进行账户间的隔离,由虚拟路由提供多种网络服务:DHCP,DNS,NAT,Firewall,VPN,LoadBalancing,PortForwarding等。
根据实际项目的需求,采用如图6所示的架构图进行环境搭建,当需求扩大,系统需要扩容的时候,直接在KVM集群中添加Host节点即可。
资源层
资源层由基础设施层和虚拟化层组成,基础设施层是云平台的基础层,其主要部分是硬件设备,包括服务器、存储设备、网络、防火墙等。由于基础设备自身的差异性,所以目前主流云平台都广泛采用虚拟化技术,包括计算虚拟化、存储虚拟化、网络虚拟化等,屏蔽了硬件设备的差异降低了复杂度,将底层资源进行组织整合,实现一个高可用性、高灵活性的弹性基础架构。