智慧校园的核心价值在于数据,依据数据挖掘和数学建模技术,智慧校园可以在“海量”校园数据的基础上构建模型,建立预测方法,对信息进行挖掘、分析、展望和预测;智慧校园还可综合各方面的数据、信息、规则等内容,通过智能推理,做出快速反应、主动应对,更多地体现智能、聪慧的特点。因此,对于数据的使用将会直接影响智慧应用及智慧校园的发展。
分布式软件定义存储
传统存储
传统以存储区域网(SAN,Storage Area Network)技术为主的存储系统存在局部封闭的缺点,虽然通过存储虚拟化技术可以改善其相对各自独立的架构,但是后端存储依然是一座座数据孤岛,数据在各后端存储设备之间的复制备份等操作都会极大影响存储的性能与数据安全性。随着智慧校园数据使用需求量的激增,极易出现并发流不稳定、读写带宽受限,以及文件数量剧增所带 来的遍历困难。
早期为了打破直连存储的数据存储不能共享的数据孤岛问题,数据中心大多采用 SAN 建立存储共享网络。由于 SAN 网络 规模和网络性能瓶颈等问题,面对当下大规模数据中心的存储资源需求,SAN网络的规模限制成为制约存储规模无限扩大的障碍。不同性能和不同存储区域的存储不得不依赖存储网关等方案实现数据的相互共享。其整体架构已无法适应现有云计算、微服务、大数据等应用场景,SAN 网络架构几乎成为新的数据存储孤岛。智慧校园中存在大量以微服务作为使用端的场景,由此还会带来启动风暴、海量数据同步读写、数据分级保护和快照等问题。在当前以软件定义为主导方向的云数据中心时代,传统存储的技术特性已经难以支撑数据中心的高速发展。
软件定义存储
软件定义存储(SDS,Software Defined Storage)是一种能将存储软件与硬件解耦合的存储架构。与传统的SAN存储或NAS(Network Attached Storage)存储不同的是,软件定义存储一般 运行在 X86 或者行业标准服务器上,从而消除存储系统对专有 硬件的依赖。通过将存储软件与硬件解耦合,存储系统可以根据需求进行扩容,还可以进行硬件缩减或降级,这就使得存储系统的使用更加灵活。
分布式软件定义存储的优势
当前软件定义存储主要是以分布式软件定义存储为主,它的主要优势包括以下几点:
1.除了提供存储的管理功能以外,还可以提供丰富的附加软 件功能,例如性能分析、自动化运维、快照、备份、压缩、加密、 QoS(Quality of Service,服务质量)等,而通常的传统存储则需要依赖外部软件服务器或者为存储硬件购买额外的软件许可。通过软件自动化,可以确保信息存储系统的可靠性,使系统规模在扩大之后,其运维难度始终维持在较低水平。
2.容量与性能的可扩展性,分布式软件定义存储采用了横向扩展(而非纵向扩展)的分布式结构,容量和性能理论上可以无限扩容。增加存储池容量只需增加节点存储磁盘或增加存储节点。由于存储中数据切片均匀分布在所有节点上,所有节点并行参与数据读写,数据读写性能随着数据节点增加而线性增长。
3.大多数云平台基础设施采用虚拟化或容器技术,与之集成 是分布式软件定义存储的常见应用场景。通过iSCSI接口连接传统存储架构路径互通,实现与传统存储系统数据互通,使得原有硬件资产可以充分利用。
4.提供标准的应用程序编程接口(API),与云平台整合用于管理和维护存储设备,将存储资源池化与云平台无缝衔接,进而为云平台提供各种存储服务。
由此可见,分布式软件定义存储充分发挥了其统一存储平台的特性,存储系统扩容规划从存储量需求考虑增加存储节点即可,分布式的架构在增加存储节点提高存储容量的同时也提高了整体存储系统的性能。并且,还可以发挥软件优势对未来数据增长需求进行预测,从而量化未来存储扩容需求。
Ceph分布式存储系统
Ceph的概念
Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区,其设计初衷是提供较好的性能、可靠性和可扩展性。在经过数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。Ceph是一种软件定义存储,可以运行在几乎所有主流的Linux发行版(比如CentOS和Ubuntu)和其他类UNIX操作系统(典型如FreeBSD)。Ceph的分布式基因使其可以轻易管理上千个节点、EB级及以上存储容量的大规模集群,同时基于计算的扁平寻址设计使得Ceph客户端可以直接和服务端的任意节点通信,从而避免因为存在访问热点而导致性能瓶颈。Ceph通过CRUSH(Controlled Replication Under Scalable Hashing)算法来动态计算 存储和获取某个对象的位置。Ceph也是一个统一存储系统,即支持传统的块、文件存储协议,例如SAN和NAS;也支持对象存储协议,例如S3和Swift。因此,Ceph是一个真正的软件定义存储解决方案,它可以从软件层面正确提供所有的企业级存储特性:低成本、可靠性、可扩展性。
Ceph的基本原理
Ceph分布式软件定义存储的对象守护进程主要包含MON(Monitors)和OSD(object storage daemon)。此外如果上层接口需要提供文件服务,还需要在Ceph中加入MDS(CephMetadataServer)进程,但是此进程不是必须的。
MON主要通过管理集群的关键状态和配置信息维护集群的状态。维护集群的成员和状态(cluster map),提供强一致性的策略。采用集群方式避免单点故障,利用paxos算法保证集群map的一致性,并保证结点数少于半数失效的情况下仍然能正常工作。MON之间必须对集群的状态达成一致,因此数量必须是奇数。
OSD是对象存储守护进程,用于将存储对象提供给客户端,其中OSD分为主OSD和非主OSD。主OSD功能包括复制、数据一致性、数据重新平衡和数据恢复;非主OSD在主OSD控制下执行操作,例如复制操作,并且在必要时转化为OSD。
客户端访问Ceph的数据访问接口组件包含:
1.RADOSGW(Reliable, Autonomic Distributed Object Store Gateway)接口,基于HTTP的对象访问网关,为应用程序提供符合REST风格的兼容S3和Swift协议。
2.RBD(RADOS Block Device)接口,为主机和虚拟机提供 块存储设备。RBD为客户端提供了可靠、分布式、高性能的块存储。RBD已经被Linux内核支持,几乎所有的Linux操作系统发行版都支持RBD。除了可靠性和性能之外,RBD也支持其他的企业级特性,如完整和增量式快照,精简的配置,写时复制式克隆及全内存是缓存。此外RBD还可以与iSCSI对接为主机提供基于iSCSI的存储服务。
3.CephFS(Ceph File System)接口,是一个兼容POSIX的文件系统,利用Ceph存储集群来保存数据。Linux内核驱动程序支持CephFS,这也使得CephFS高度适用于各大Linux操作系统发行版。CephFS将数据和元数据分开存储,为上层的应用程序提供较高的性能以及可靠性。
RADOSGW、RBD和CephFS通过librados访问RADOS(Reliable, Autonomic Distributed Object Store),并且librados也提供多种语言编程接口,提供包括PHP、Ruby、Java、Python、C和C++的支持。其完整架构图如图1所示。
图1 Ceph架构
分布式软件定义存储在智慧校园中的实践
本文以东南大学分布式存储项目为例,以软件定义网络为数据传输网络基础构建分布式软件定义存储,从而实现软件定义的数据中心基础架构。
东南大学信息化发展已经有十多年历史,其当前的指导思想是以“数智东南”为目标,建立健全信息化可持续发展机制,坚持信息化与人才培养、科学研究、管理服务的深度融合,坚持应用驱动和机制创新的协调推进。但是现有用于全校信息系统的硬件基础架构复杂多样,包括小型机、X86服务器及虚拟化集群。而存储系统也有各类型基于SAN网络架构的存储服务器,其性能和容量差异较大。
以东南大学现有SAN存储系统为例,拥有不同大小的存储,磁盘性能也不尽相同,因此协调存储不同容量和性能的数据镜像,以及维护存储池的大小都占用了太多的日常维护工作时间。并且随着数据存储的规模变大,维护存储的工作量和资源调配的复杂度也日益增大。另一方面,在对当前存储进行扩容时,面对存储容量提升还需要考虑读写性能的提升,例如增加存储机头、路径数量和FC端口速率,这对于数据存储的硬件和管理成本都是一个巨大的挑战。
为了解决上述问题,在建设东南大学分布式软件定义存储时,需要考虑对现有计算资源与存储资源的融合和互通,避免出现数据孤岛。现有数据类型主要包含数据库、虚拟机数据和静态文件,本项目中分布式软件定义存储主要承载核心应用虚拟机及静态文件。本项目采用Ceph架构的商业软件,以保证提供对原有VMware和FC网络的数据互通性,这是开源Ceph架构软件所不具备的,并且能提供更加友好的图形化管理界面。分布式软件定义存储与VMware和FC网络融合架构如图2所示。
图2 分布式软件定义存储优势分析
分布式软件定义存储的网络是存储系统一个重要组成部分,主要包括3种类型:PublicNetwork用于客户端访问和数据交互,Cluster Network用于集群内部数据同步和传递心跳消息,Management Network用于管理模块。这3种网络可根据集群规模灵活配置,在条件允许的情况下,通常建议前2类网络采用至少10Gb网络带宽,对于传统网络这3类网络需接入不同的交换机设备。
为解决分布式软件定义存储对网络的高带宽、网络间隔离、 跨中心大二层等严苛要求,采用软件定义网络架构承载分布式软件定义存储。软件定义网络的leaf spine分布式网络节点架构、基于vxlan的网络、跨数据中心的统一网络等特性是支撑分布式软件定义存储高稳定运行的重要保障,网络物理架构如图3所示。
图3 存储网络物理拓扑
并能通过图形用户界面直观的管理分布式软件定义存储的网络,通过统一的网络平台快捷地将存储服务交付给应用系统,如图4所示。
图4 存储网络逻辑拓扑
分布式软件定义存储服务器网络连接采用每个服务器使用2个千兆网口4个万兆网口,所有网口均做LACP端口聚合模式绑定并分别接入SDN网络上的两台Leaf交换机,保证了网络的可靠性并增加节点间带宽。管理网络为千兆网,接入带外管理交换机,集群内部网络和提供服务的业务网络分别使用万兆网。
在SDN网络交换机上,建立用于iSCSI、内部互联的两个应用分组。根据需要可以将应用分组延展至另一个校区实现跨校区大二层互通,以满足双活需求。将iSCSI网络与计算资源互通实现为计算资源提供块存储,其中包括刀片和机架式服务器。增加原有刀片服务器后端接入SDN网络端口聚合数量,以保证刀片至SDN网络的iSCSI带宽。
同时,为了能和数据中心现有FC网络互通,在分布式软件定义存储服务器上还增加了FC HBA卡,并与现有SAN交换机互通。通过包含FC HBA卡的存储节点上联至传统存储资源池中的FC交换机,充分利用原有的FC存储资源。
从存储的管理角度来看,本项目实现的分布式软件定义存储相较于传统存储具有更大的管理便捷的优势:
1.从底层架构上完全采用集群化,并且硬件与软件的解耦合,整个存储系统就是一个完整的数据平台,一个平台即可对所有存储资源进行快速调配,消除数据存储孤岛;
2.依据业务的需求分配不同类型存储,在分配存储资源时,智慧校园核心数据库、虚拟机数据可分配高速高可靠存储池,存档和附件等静态文件数据可分配高性价比存储池,通过平台进行资源调配时无需对底层单个物理存储节点进行管理和维护;
3.分布式软件定义存储数据传输采用以太网,其运行完全融入现有数据中心以太网环境中,减少传统存储中独立的SAN网络硬件和光纤资源的投入,大大减轻了数据中心运维工作量。
分布式软件定义存储作为一种先进数据存储方式,支撑未来人工智能、大数据等对与数据海量存储的需求,最终使得系统存储访问功能更加精准化,通过脱离物理系统等方式提升信息资源利用率,是目前数据中心基础架构重要发展方向。虽然SDS还有许多问题,仅仅采用SDS也是不够的,但是它在成本、灵活性和性能方面的优势,必将成为构筑现代化数据中心的新基石,从而在未来的智慧校园建设中发挥更大的作用。