来源:中关村在线 作者:徐鹏
从2004年的第一段代码开始,Ceph最早是作为高性能分布式文件系统存在的,而随着以OpenStack为基础构建的云计算解决方案越来越多,Ceph在数据中心底层存储领域迎来了第二春。然而,能够同时支持对象存储、块存储和文件存储的统一存储架构并没有让Ceph一路火下去,其自身的诸多问题也多少限制了企业业务的长期发展。同时,这也是一些云服务商开始另辟蹊径的原因——7月27日,青云QingCloud在Cloud Insight Conference 2018云计算峰会上发布了QingStor文件存储,加上之前的QingStor对象存储、QingStor NeonSAN 构成了青云QingCloud完整的存储产品品牌QingStor软件定义存储。
青云QingCloud发布QingStor文件存储
从架构层面来看,如果说对象是应用层架构、块是驱动层架构,那么文件是系统层架构。根据Gartner的报告,文件存储在当前市场的需求中仍占据主流,应用场景遍及媒体领域、高性能计算等领域。尽管对象存储的需求有升高的趋势,但在相当长的一段时间内文件存储依然有着强劲需求。然而,文件存储的传统架构似乎难以追上数据增长和业务创新的速度,不少企业在Ceph上踩了坑。
回顾文件存储的发展趋势,2000年以前市面上使用的是硬件方案,其缺点在于控制器决定了系统的性能上限和容量上限,其资源难以被多系统共享,扩展性差、成本高。“2000年以后出现了分布式文件系统,分为两种架构:一种是以Hadoop HDFS和LusterFS为代表的集中式索引架构,这种架构的缺点在于文件数量会受到单节点和索引节点容量限制;二是全对等Hash架构,完全抛弃单独的索引节点,其代表是GLuster和Ceph,这种架构的问题在于扩展扩容不方便,一致性较差。”青云QingCloud存储高级技术专家宁安表示。
Ceph老大难问题何时解决?
从最初的CephFS文件系统,到后来偏向虚拟化的Ceph RBD、Ceph RGW,Ceph在CRUSH算法、RADOS,以及弹性扩展、跨存储池缓存、滚动升级等方面的优势无需多言,而Ceph在中国的发展与OpenStack也是相互成就,各有一片天地。不过要知道,OpenStack在国内火爆是有其特殊性的,海外的成熟CSP并没有把过多精力放在OpenStack上。相比之下,分布式存储领域可以替代Ceph的技术似乎是鲜有的。话句话说,虽然很多人在吐槽Ceph的性能,但是却没有人能搞定它。
复杂的语言和调用关系使得Ceph产品出问题后的代码修改难度也随之增加,除非将完整的代码读一遍、有深刻的理解才能动手优化,但遗憾的是很多企业并不具备相关的专业团队,往往是由专门做Ceph存储的厂商来解决,而这些厂商在优化方案后又很难合并到上游。最初,青云QingCloud也选择了Ceph来做块存储,之后因为种种弊端无奈放弃了。
举个例子,Ceph的块存储接口会通过块设备挂载到一个机器上,格式化本地文件系统,再对文件系统做NFS服务来暴露数据。这种方法的问题在于它只有一个单点,因为本地系统的限制,无法同时挂载两个,也就无法做到负载均衡。
宁安认为,Ceph的架构问题主要体现在四个方面:第一是数据一致性问题,Ceph架构依赖客户端Hash实现数据定位,多份Hash在不同客户端有不同的状态,难以维持各个客户端状态一致;第二是高可用问题,当节点恢复和无法迁移时,需要改变Hash区间分布,而一边改变一边迁移就会影响数据一致性访问;第三是Ceph扩展性问题,扩容时每次只能增加一台,等一台数据迁移完毕后,才能增加下一台,否则Hash就会受到损坏;第四是运维复杂,企业需要投入大量的人力、物力成本,甚至需要招聘非常资深的Ceph工程师。
深入业务层的存储创新
在宁安看来,下一代文件存储不仅要全面支持云应用、无缝兼容传统应用,还要具备智能管理与运维,以及72小时高可用特性。在业务部署过程中,QingStor软件定义存储产品线的核心设计理念是在扩容时尽量不让用户迁移数据,毕竟迁移数据的成本很高,也会带来网络、稳定性等问题。同时,QingStor并不是通过Hash算法算出具体位置,因此节点变化不会直接影响已有数据的存储位置。
对于企业用户来说,在新扩容节点时会有新的数据加入,原有数据还在原来的位置。如果用户觉得旧有存储设备的数据太冷,想提高设备利用率,也可以把冷数据迁到新的位置,而旧有设备可以继续读写。“用户可以一瞬间完成系统扩容,保证原有数据的位置不变。我们还能支持用户在低峰时刻开始迁移,在业务高峰时刻把业务停掉,这是很灵活的。”宁安说。
归纳起来,QingStor文件存储的架构创新可以总结为:首先,基于分布式块存储NeonSAN构建,延续了高性能、强一致的优势,不含本地文件系统,两种节点分别是分布式网关和NeonSAN;其次,无限水平扩展,通过目录和文件分离存储的架构,元数据层存储所有索引目录,可以定位文件具体位置,控制层的组件负责下层块设备的空间分配和事务管理;此外,并行处理架构,所有的网关节点和NeonSAN节点是全互联的关系,每个节点之间都可以相互访问,且是通过最短路径。集群内数据复制与业务访问分离,分别通过不同的网络,因此在数据迁移和扩容时,不会对业务有任何影响。
网关节点和NeonSAN节点全互联,具有三副本机制
进一步解释,分布式网关的三副本机制让无限扩容成为可能,每个文件在设备上都是以数据块为单位存储的,每个数据块按照固定大小切片。如果将同时修改某个块、或将某个块的大小减少到零再重新写入看作独立事务提交,那么这些操作可以在“瞬间”完成,比如0.1秒内可能有N个客户端同时读取和同时写入。至于目录和文件的分离存储,则可以目录结构分散到多个节点上,从而进行归并操作。每读写一个文件,不需要动目录索引,只需要在NeonSAN里直接定位地址直接写。目录文件分离后,无论是容量还是性能,都可以实现水平扩展。
QingStor的最后一块拼图
具体来说,QingStor文件存储能够做到安全可靠、强一致、高可用、高性能、弹性可调,并且对成本进行了优化。安全可靠方面,支持掉电安全、防篡改/防坏道、数据加密、隔离性,可以通过不同的VPC通道访问用户拥有的虚拟存储空间。强一致性方面,通过分布式事务+版本修改机制可以实现通过冲突写入进行串行化操作、所有提交内容可读、异常检测自动回滚三项功能。高可用方面,可体现在服务无单点、数据无单点、网络无单点,QingStor文件存储能做到每个节点损坏时对业务没有任何影响,而Ceph节点损坏后的影响是按小时来计算的。
高性能通过底层NeonSAN支持的。在一个CPU比Ceph稍弱的情况下,NeonSAN在混合读写时,能做到比Ceph 100%读效率高两倍左右,并且时延是Ceph的1/4。同时,QingStor分布式文件存储具有并行架构,每个节点的负载和带宽都可以充分利用起来。由于没有依赖本地文件系统使得I/O栈非常短,确保了高性能的实现。部署方面,QingStor分布式文件存储可以支持最小规模3节点的存储网关部署,与3节点块存储部署,可选的存储介质包括全闪存部署、在SATA基础上做SSD缓存加速、纯SATA部署。在搭建网络时,企业可以利用现有的交换机去部署TCP/IP网络,内部数据通信通过基于以太网的RDMA (RoCE),做到低延迟的数据复制。
对于企业客户来说,QingStor文件存储可以在Portal上,既能对系统资源池进行管理,也管理上层文件系统空间,对于整个系统的运行状态和告警一览无余。此外,青云QingCloud借助智能透明压缩、自精简配置、海量小文件优化、存储分层等手段大幅优化了企业部署成本。例如为了节省空间,每个数据都能够以4K为单位存储,并且可以分配一个比物理容量更大的空间,让管理员根据用户实际使用情况,选择合适的时间扩容硬件。
落地到应用场景,QingStor文件存储支持三种访问方式:传统NFS协议、Windows平台的Samba协议、通过FUSE模块直接进行加载,支持Hadoop、Spark等流行的大数据分析应用。在制造领域,用户可以利用QingStor文件存储做计算机辅助工业设计;在广电领域,可以利用QingStor文件存储做非线性编辑,比如导播对视频做剪辑和拼接的操作时,需要高性能和大容量的支持;在传统应用领域,邮件、OA等系统需要无限扩展的存储产品,文件存储的接口和服务特性同样是符合的。
QingStor文件存储多维的应用场景
“文件存储帮助NeonSAN扩大应用场景,也扩大了超融合的使用场景。为云而生的文件存储,实际上是云应用与文件存储对接,更好地兼容云应用。”宁安表示,“QingStor文件存储可以与青云的云业务无缝整合,可以作为Anybox企业云盘后端,能够被IaaS平台上的虚机和容器用做共享存储,还可以支持QingCloud AppCenter应用。”
结语
随着企业IT环境呈现多维发展,有越来越多的创新业务加入其中,新兴的存储技术屡见不鲜,而正如国内科技创新所面临的困境一样,存储技术的创新也要从底层做起,如果永远依赖别人的技术难免有些固步自封。对于青云QingCloud来说,基础架构的改造之路并不轻松,但只有这样才能为用户提供真正便捷的产品和体验,QingStor就是有力的证明。