Garyy
作者Garyy2019-04-29 09:53
系统工程师, 某保险

金融行业基于服务器通过ceph实现分布式存储解决方案在线探讨活动总结

字数 28903阅读 8106评论 0赞 10

前言:

物联网 (IoT) 的蓬勃发展推动了结构化/非结构化数据的空前增长,不仅给企业带来了发掘新客户、创造新收入来源的巨大机会。也给企业传统存储架构带来了很大的挑战,具体表现:

1)弹性扩展能力差,扩容成本高
2)运维管理复杂,对运维人员技术能力要求高
3)多种异构存储之间易形成资源孤岛,无法共享,资源利用率低

对于IT部门来说,需要在满足海量数据增长的同时,还必须提供存储方式以及其访问方式的多样性。需要IT部门同时能够对于传统环境以及云环境提供技术支持。因此,数据密集型企业的 IT 组织必须重新评估如何管理日益分散的异构数据和应用程序环境。

软件定义存储SDS(Software Define Storage)可以保障系统的存储访问能在一个精准的水平上更灵活地管理。分布式存储是从硬件存储中抽象出来的,这也意味着它可以变成一个不受物理系统限制的共享池,以便于最有效地利用资源。它还可以通过软件和管理进行部署和供应,也可以通过基于策略的自动化管理进一步简化。作为IT基础架构云化不可或缺的一环,软件定义存储(SDS)之分布式存储解决方案因其灵活性、敏捷性、自动化、高成本效率、高度可拓展性等关键优势,近年来也愈发受到业界关注。

为了帮助在分布式存储方面还处在方案规划与设计阶段的金融企业单位技术人员解决遇到的难点问题,社区组织了本次“金融行业基于服务器通过ceph实现分布式存储解决方案在线探讨”交流活动,力求通过本次活动能够给同业带来一些实践参考经验以及方法,以助大家能够理清思路、合理决策以及科学做好自己的规划建设工作。

本次交流,主要讨论基于通用服务器的分布式软件定义存储解决方案,该方案是由成熟稳定的OpenPOWER基础架构,搭载XSKY企业级分布式存储软件,一起构成的软硬一体化的存储解决方案,集合了XSKY软件存储平台的丰富企业级特性和OpenPOWER服务器强大的IO处理能力和计算性能,面向云计算,虚拟化,海量非结构化数据存储等应用场景,为企业提供稳定可靠,性能卓越,易扩展,便捷运维的统一存储平台。


以下是此次探讨中大家关注的几个典型问题及专家解读。

金融行业基于服务器通过Ceph实现分布式存储,关于技术路线选型的典型问题:

分布式存储技术路线选型探讨:HDFS、Ceph、GFS、gpfs、Swift等各种技术的特点和适用场景?

随着数字化转型的深入,海量数据对存储提出了新的要求。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点,满足海量数据的存储需求,市场上出现了分布式存储技术。当前,分布式存储有多种实现技术,如HDFS、Ceph、GFS、GPFS、Switf等。在实际工作中,为了更好地引入分布式存储技术,我们需了解各种分布式存储技术的特点,以及各种技术的适用场景,在此希望请教下同行,城商行应该如何选择这些分布式存储技术,他们各自的特点和场景如何?

@wanggeng 系统运维工程师:

1、HadoopHDFS(大数据分布式文件系统)

Hadoop分布式文件系统(HDFS)是一个分布式文件系统,适用于商用硬件上高数据吞吐量对大数据集的访问的需求。该系统仿效了谷歌文件系统(GFS),数据在相同节点上以复制的方式进行存储以实现将数据合并计算的目的。该系统的主要设计目标包括:容错,可扩展性,高效性和可靠性。

HDFS采用了MapReduce,不迁移数据而是以将处理任务迁移到物理节点(保存数据)的方式降低网络I/O。HDFS是Apache Hadoop的一个子项目并且安装Hadoop。

2、OpenStack的对象存储Swift

OpenStack Swift提供一个类似AmazonS3的对象存储。其主要特点为:所有的存储对象都有自身的元数据和一个URL,这些对象在尽可能唯一的区域复制3次,而这些区域可被定义为一组驱动器,一个节点,一个机架等。开发者通过一个RESTfulHTTP API与对象存储系统相互作用。对象数据可以放置在集群的任何地方。在不影响性能的情况下,集群通过增加外部节点进行扩展。这是相对全面升级,性价比更高的近线存储扩展。数据无需迁移到一个全新的存储系统。集群可无宕机增加新的节点。故障节点和磁盘可无宕机调换。在标准硬件上运行,例如戴尔,HP和Supermicro。

3、Ceph

Ceph是一个遵循LGPL协议的存储平台,它可以在单个分布式节点上同时支持对象存储,块存储和文件存储。

Ceph主要设计的初衷是变成一个可避免单节点故障的分布式文件系统,EB级别的扩展能力,而且是一种开源自由软件,许多超融合的分布式文件系统都是基于Ceph开发的,作为开源软件在超融合商业领域的应用,Ceph因为性能等问题被诟病,但不乏许多厂商在Ceph上不断优化和努力。

4、IBM General Parallel File System(GPFS通用并行文件系统)

这个专有GPFS是一个由IBM开发的高性能集群文件系统。它可以在共享磁盘或非共享分布式并行模式中进行部署。

GPFS-SNC,其中SNC代表Shared Nothing Cluster(非共享集群),它是2012年12月正式发布的GPFS3.5版本,如今被称为GPFS-FPO(文件配置优化)。这让GPFS可以在一个联网服务器的集群上采用本地连接磁盘,而不需要配置共享磁盘的专用服务器(例如使用SAN),GPFS-FPO可充当HDFS兼容的文件系统。

GPFS时常通过调用计算集群上的MPI-IO(MessagePassing Interface)进行访问。功能包括:分布式元数据处理。包括目录树。没有单独的“目录控制器”或“索引服务器”管理文件系统。对非常大的目录进行高效索引目录项。很多文件系统被限制在单一目录(通常,65536或类似的小二进制数)中的少数文件内,而GPFS并没有这样的限制。分布式锁定。该功能考虑了完整的Posix文件系统语义,包括锁定文件进行独占访问。

5、Global Federated File System(GFFS全局联合文件系统)

XSEDE文件系统在美国弗吉尼亚大学Genesis II项目的一部分。

GFFS的出现是源于一个对诸如文件系统的资源以一种联合,安全,标准化,可扩展和透明化的方式进行访问和远程操作的需求,而无需数据所有者或应用程序开发者和用户改变他们存储和访问数据的任何方式。

GFFS通过采用一个全局基于路径的命名空间实现,例如/data/bio/file1。在现有文件系统中的数据,无论它们是否是 Windows文件系统, MacOS文件系统,AFS,Linux或者Lustre文件系统都可以导出或链接到全局命名空间。例如,一个用户可以将它“C” 盘上一个本地根目录结构,C:\work\collaboration-with-Bob导出到全局命名空间,/data/bio/project-Phil,那么用户 “C” 盘\work\collaboration-with-bob内的文件和目录将会受到访问限制,用户可以通过/data/bio/project-Bob路径在 GFFS上访问。

6、最后谈一下,最常见的GPFS和HDFS有什么区别?

GPFS和Hadoop的HDFS系统对比起来相当有趣,它设计用于在商用硬件上存储类似或更大的数据——换言之就是,不配置RAID 磁盘的数据中心和一个SAN。

HDFS还将文件分割成块,并将它们存储在不同的文件系统节点内。

HDFS对磁盘可靠性的依赖并不高,它可以在不同的节点内存储块的副本。保存单一副本块的一个节点出现故障是小问题,可以再复制该组其它有效块内的副本。相较而言,虽然GPFS支持故障节点恢复,但它是一个更严重的事件,它可能包括数据(暂时性)丢失的高风险。

GPFS支持完整的Posix文件系统语义。 HDFS和GFS(谷歌文件系统)并不支持完整的Posix语义。

GPFS跨文件系统分布它的目录索引和其它元数据。相反, Hadoop将它们保留在主要和次要Namenode中,大型服务器必须在RAM内存储所有的索引信息。

GPFS将文件分割成小块。HadoopHDFS喜欢64MB甚至更多的块,因为这降低了Namenode的存储需求。小块或很多小的文件会快速填充文件系统的索引,因此限制了文件系统的大小。说到分布式文件系统,不得不提到许多超融合厂商,一部分是基于Ceph的,还有一部分是完全自主研发的。

@刘东 it技术咨询顾问 东软集团:

在以上几种分布式存储技术中,每一种存储技术都有各自的特点和应用场景。其中HDFS、Ceph和Switf应用比较多,这也和它们的技术发展比较快和应用场景比较多相关。下面分别介绍:

一、HDFS

主要用于大数据的存储场景,是Hadoop大数据架构中的存储组件。HDFS在开始设计的时候,就已经明确的它的应用场景,就是为大数据服务。主要的应用场景有:

1、对大文件存储的性能比较高,例如几百兆,几个G的大文件。因为HDFS采用的是以元数据的方式进行文件管理,而元数据的相关目录和块等信息保存在NameNode的内存中,文件数量的增加会占用大量的NameNode内存。如果存在大量的小文件,会占用大量内存空间,引起整个分布式存储性能下降,所以尽量使用HDFS存储大文件比较合适。

2、适合低写入,多次读取的业务。就大数据分析业务而言,其处理模式就是一次写入、多次读取,然后进行数据分析工作,HDFS的数据传输吞吐量比较高,但是数据读取延时比较差,不适合频繁的数据写入。

3、HDFS采用多副本数据保护机制,使用普通的X86服务器就可以保障数据的可靠性,不推荐在虚拟化环境中使用。

二、Ceph

是一个开源的存储项目,是目前应用最广泛的开源分布式存储系统,已得到众多厂商的支持,许多超融合系统的分布式存储都是基于Ceph深度定制。而且Ceph已经成为LINUX系统和OpenStack的“标配”,用于支持各自的存储系统。Ceph可以提供对象存储、块设备存储和文件系统存储服务。同时支持三种不同类型的存储服务的特性,在分布式存储系统中,是很少见的。

Ceph没有采用HDFS的元数据寻址的方案,而且采用CRUSH算法,数据分布均衡,并行度高。而且在支持块存储特性上,数据可以具有强一致性,可以获得传统集中式存储的使用体验。对象存储服务,Ceph支持Swift和S3的API接口。在块存储方面,支持精简配置、快照、克隆。在文件系统存储服务方面,支持Posix接口,支持快照。但是目前Ceph支持文件的性能相当其他分布式存储系统,部署稍显复杂,性能也稍弱,一般都将Ceph应用于块和对象存储。

Ceph是去中心化的分布式解决方案,需要提前做好规划设计,对技术团队的要求能力比较高。特别是在Ceph扩容时,由于其数据分布均衡的特性,会导致整个存储系统性能的下降。

三、GFS

GFS是google分布式文件存储,是为了存储海量搜索数据而设计的专用文件系统。和HDFS 比较类似,而且HDFS系统最早就是根据 GFS的概念进行设计实现的。GFS同样适合大文件读写,不合适小文件存储。适合处理大量的文件读取,需要高带宽,而且数据访问延时不敏感的搜索类业务。同样不适合多用户同时写入。GFS 是最早的推出分布式存储概念的的存储系统之一,后来的大部分的分布式式文件系统或多或少都参考了 GFS 的设计。HDFS和 GFS 的主要区别是,对GFS中关于数据的写入进行了一些改进,同一时间只允许一个客户端写入或追加数据。而GFS 是支持并发写入的。这样会减少同时写入带来的数据一致性问题,在写入流程上,架构相对比较简单,容易实现。

四、GPFS

GPFS是IBM 的共享文件系统,它是一个并行的磁盘文件系统,可以保证在资源组内的所有节点可以并行访问整个文件系统。GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上。GPFS提供了许多标准的UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。

GPFS和其他分布式存储不同的是,GPFS是由网络共享磁盘(NSD)和物理磁盘组成。网络共享磁盘(NSD)是由物理磁盘映射出来的虚拟设备,与磁盘之间是一一对应的关系。所以,使用两台传统的集中式存储设备,通过划分不同的网络共享磁盘,也可以部署GPFS,不一定部署在X86设备上。GPFS文件系统允许在同一个节点内的多个进程使用标准的UNIX文件系统接口并行的访问相同文件进行读写,性能比较高。GPFS支持传统集中式存储的仲裁机制和文件锁,保证数据安全和数据的正确性,这是其他分布式存储系统无法比拟的。GPFS主要用于IBM小型机和UNIX系统的文件共享和数据容灾等场景。

五、Swift

Swift也是一个开源的存储项目,但是主要面向的是对象存储。和Ceph提供的对象存储服务类似。主要用于解决非结构化数据存储问题。它和Ceph的对象存储服务的主要区别是。

1、客户端在访问对象存储系统服务时,Swift要求客户端必须访问Swift网关才能获得数据。而Ceph使用一个运行在每个存储节点上的OSD(对象存储设备)获取数据信息,没有一个单独的入口点,比Swift更灵活一些。

2、在数据一致性方面,Swift的数据是最终一致,在海量数据的处理效率上要高一些,但是主要面向对数据一致性要求不高,但是对数据处理效率要求比较高的对象存储业务。而Ceph是始终跨集群强一致性。主要的应用场景,在在OpenStack中,对象存储服务使用的就是Swift,而不是Ceph。


金融行业基于服务器通过Ceph实现分布式存储,关于应用场景的典型问题:

金融行业中,分布式存储应用于哪些业务场景?如果用于存放非结构化数据,如kb级的影像文件,是使用多副本还是纠删码?如何进行数据保护?

@Garyy 系统工程师:

数据对于金融行业的重要性不言而喻,数据可以说是一个企业的生命线,数据的稳定安全保证了企业的更加稳定的运行。传统的金融企业存储大都是块存储和文件存储,通过集中式IPSAN/FCSAN的方式提供,服务的业务类型涵盖了几乎所有的业务场景,例如数据库,或者普通业务。随着企业的高速发展,业务的规模不断扩大,数据呈指数增长,PB级的数据需求屡见不鲜。这主要是由于当前的数据,已经从传统的结构化数据,变成了大量的非结构化数据—视频/音频/图片等。传统的存储,由于其架构“竖井式”的限制,无法做到横向扩容,往往在几百TB的时候买就遇到了扩容的瓶颈。这时候,各个厂商以及一些开源社区便开始研究一种新模式的存储来满足急剧增长的非结构化数据的需求—对象存储应运而生。对象存储基于分布式模式,提供横向扩容能力,同时对于非结构化数据的支持也比较到位。

目前分布式存储的使用场景包括了:视频音频的存储,日志存储,归档文件,例如保险行业的双录系统,金融行业的日志存储,电子保单等等。

@sdtimothy8 浪潮商用机器有限公司:

分布式存储的块存储和对象存储服务,可以同时满足结构化和非结构化数据存储的业务场景。金融行业中,对象存储可以满足非结构化数据的存储需求。具体业务场景有保单,票据扫描件的存储,银行双录系统、400电话录音存储、电子保单系统、证券网上开户系统等。

针对海量的KB级影像小文件存储,与文件存储相比,对象存储采用扁平化的命名空间,没有目录树的瓶颈,再加上小文件聚合归并技术,可以大大提升小文件的处理效率。数据保护层面,可以同时使用副本和纠删码,即存放非结构化数据的索引和属性信息的索引存储池采用副本策略,而存放数据的数据池采用纠删保护策略,这样通过采用不同数据保护策略数据的分级存储,既提高了小文件的存取效率,又能节省空间,提高存储系统的整理利用率。


金融行业基于服务器通过Ceph实现分布式存储,关于计算平台选择的典型问题

浪商OpenPOWER可以提供哪些分布式存储解决方案?

看了活动资料中的IPS&XSKY分布式存储解决方案,有两个问题想请教下:

1、浪商OpenPOWER可以提供哪些分布式存储解决方案?

2、和其他x86服务器架构方案相比,有什么优势?

@sdtimothy 浪潮商用机器有限公司:

1.浪潮商用机器有限公司的OpenPOWER目前可以提供4大类分布式存储解决方案:

1)OpenPOWER + XSKY的联合分布式存储解决方案

2)OpenPOWER + 浪潮AS13000-P分布式存储解决方案

3)OpenPOWER + IBM GPFS分布式存储解决方案

4)OpenPOWER + 开源Ceph的分布式存储解决方案

2.与X86平台相比:

1)POWER9处理器主频2.75GHz,每socket可以达到22核,单核SMT4,具有更强的并发能力。凭借强大的多线程处理能力,根据实测,POWER9 平台对象上传和下载性能是 x86 平台的1.7倍,随着并发访问的增加,POWER9 的性能优势更明显。

2)OpenPOWER服务器支持PCIe4.0,单通道带宽是PCIe3.0的两倍,凭借高I/O带宽优势,能驱动更多的高性能磁盘,从而获得更高的IOPS。

3)与X86平台相比,POWER9处理器具有高达110M的L3缓存及2倍以上内存带宽,一方面减少了CPU和内存间的读写次数,另一方面,更多的热数据可以存放在访问速度远大于内存的Cache中,从而能获得更低的延迟。

@土豆变薯条 技术总监 XSKY:

IPS&XSKY分布式存储解决方案属于强强联合,openpower有强大的CPU处理器,XSKY提供稳定的商用分布式存储软件。

目前联合所提供的分布式存储包含分布式块存储和分布式对象存储和X86服务器相比性能更好,能够在一些高性能计算的应用场景上发挥更大的优势。


以下是本次活动中全部交流精华的汇总,分为分布式存储技术选型和产品选型、分布式存储使用场景分析、分布式存储技术设计实现、分布式存储运维场景几个部分。希望能够给同业带来一些实践参考经验以及方法。

分布式存储技术选型/产品选型

1、ceph集群在存储节点选型方面应该注意哪些方面?

kw002007 存储架构师 , X公司
1.要注意业务的需要
2.要注意应用对IO的具体需求
3.要搭建不同性能的存储池 如偏成本的 偏性能 ssd和sata共存的存储池
4.要注意公司对成本的要求

login 网站架构师 , login
选型方面因为存储节点会有大量的数据写入磁盘,所以IO往往会成为瓶颈,所以尽量多配置硬盘,有条件的可以配置SSD

2、除通过ceph实现分布式存储,不知是否还有基于其他技术或产品的方案推荐?

sdtimothy8 其它 , 浪潮商用机器有限公司
分布式存储技术路线主要分为开源和闭源商用两大阵营。开源阵营主要包括Ceph、Swift、Glusterfs,HDFS;闭源商用主要包括IBM(GPFS)、DellEMC、HDS、浪潮,华为等传统存储厂商的分布式存储产品,还包括SDS供应商,如XSKY,UMCloud等。

3、针对开源的ceph,中小型金融企业怎么选择?

一般中小型企业技术还是相对欠缺,没有专门维护ceph团队,这种情况,如何选择?

Garyy 系统工程师 , 某保险
ceph是近5年来发展起来的分布式统一存储,Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。

中小企业在针对开源存储的使用上,应该做到按需选择。首先,要明确使用场景是什么?其次,要明确想达到什么目的,解决什么问题?最后,考虑成本因素/风险。

针对使用场景
ceph的块和对象存储,相对来讲技术比较成熟,尤其是对象存储。所以,在使用上,建议可以针对使用对象存储和块存储的场景入手,从测试环境入手,从边缘应用入手。不建议直接上生产,尤其是作为数据库这类关键业务的后端存储。

对于可以解决的问题
ceph可以解决传统存储横向扩展难的问题,可以解决同一UI提供不同类型存储的问题,提高了系统的运维效率

成本/风险因素
ceph相对于传统存储来讲,充分利用了企业里x86服务器的资源,可以新建也可以利旧,同时没有license的使用费用。但是,带来的风险也是很大的,没有专业的企业来“兜底”解决问题,团队里必须要有存储的专家来fix集群的问题,人员的费用也是很大的一笔开销。

sdtimothy8 其它 , 浪潮商用机器有限公司
对于Ceph开发维护能力欠缺的中小企业,基于Ceph的商业分布式存储系统不失为一种更好的选择。一方面,商业分布式存储系统针对开源Ceph会进行一定的优化和重构,进而提升系统的性能和稳定性;另一方面,在管理运维方面,商业分布式存储软件通过友好的管理界面可以提供更专业,更便捷高效的运维管理。最后,使用开源Ceph,在遇到问题时,在社区里不一定能得到及时的技术支持和响应,而采用商业的分布式产品可以在第一时间得到支持,减少因故障或问题带来的损失。

当然,具体该如何选择还要根据企业的技术实力,预算和业务场景来综合考量。

4、浪商OpenPOWER可以提供哪些分布式存储解决方案,及有什么优劣势?

看了活动中提供的IPS&XSKY分布式存储解决方案,有两个问题想请教下:
1、浪商OpenPOWER可以提供哪些分布式存储解决方案?
2、和其他x86服务器架构方案相比,有什么优势?

sdtimothy8 其它 , 浪潮商用机器有限公司
1.浪潮商用机器有限公司的OpenPOWER目前可以提供4大类分布式存储解决方案:
1) OpenPOWER + XSKY的联合分布式存储解决方案
2) OpenPOWER + 浪潮AS13000-P分布式存储解决方案
3) OpenPOWER + IBM GPFS分布式存储解决方案
4) OpenPOWER + 开源Ceph的分布式存储解决方案

2.与X86平台相比,基于新一代POWER9处理器的OpenPOWER服务器具有多方面的性能优势:
1)POWER9处理器主频2.75GHz,每socket可以达到22核,单核SMT4,具有更强的并发能力。凭借强大的多线程处理能力,根据实测,POWER9 平台对象上传和下载性能是 x86 平台的1.7倍,随着并发访问的增加,POWER9 的性能优势更明显。
2)OpenPOWER服务器支持PCIe4.0,单通道带宽是PCIe3.0的两倍,凭借高I/O带宽优势,能驱动更多的高性能磁盘,从而获得更高的IOPS。
3)与X86平台相比,POWER9处理器具有高达110M的L3缓存及2倍以上内存带宽,一方面减少了CPU和内存间的读写次数,另一方面,更多的热数据可以存放在访问速度远大于内存的Cache中,从而能获得更低的延迟。

土豆变薯条 技术总监 , XSKY
IPS&XSKY分布式存储解决方案属于强强联合,openpower有强大的CPU处理器,XSKY提供稳定的商用分布式存储软件

目前我们联合所提供的分布式存储包含分布式块存储和分布式对象存储
和X86服务器相比性能更好,能够在一些高性能计算的应用场景上发挥更大的优势

5、目前主流超融合架构中各家的分布式存储都有什么优缺点?

超融合主流厂商的存储系统如Nutanix 、VSAN 、Cisco HyperFlex、 Microsoft S2d,都使用了各自的分布式存储,请教他们都有什么优缺点,主要是缺点。谢谢。
另外也请教一下国产的深信服超融合产品,在虚拟化和分布式存储各使用的什么技术?

Garyy 系统工程师 , 某保险
我们之前的技术选型中,做了一些研究,主要是Nutanix和vSan

Nutanix主要问题是:价格贵,一体化部署,可以由原厂提供,硬件是超微的;也可以由dell或者联想提供硬件,Nutanix提供软件服务。

vSAN的问题也是一样,价格昂贵,品牌绑定,性能一般。

6、分布式存储如何做技术选型?

kw002007 存储架构师 , X公司
1.确认公司的战略和管理层意图
2.确认成本 技术 合作等目标的优先级
3.根据评估因素做出评估表
4.按照考量因素打分
5.选中目标型号

Garyy 系统工程师 , 某保险
对于分布式存储的技术选择,需要对国际/国内的厂家进行一个全面的分析:

1) 云服务、虚拟化厂商:积极应对,做时代变革者
1.AWS提供了多样化的云存储,ESB/S3/EFS/S3 Glacier/Snowball等,为客户提供了多种选择
2.阿里云同样提供了块,对象,文件存储,同时提供了很多存储服务
3.VMware 通过发布分布式Server SAN存储产品vSAN,在vSphere场景下全面挑战传统存储厂商。
4.Intel 积极寻求多方面SDS控制面合作及标准制定,2015年主动联手EMC 推SDS CoprHD开源标准。同时,推出多款SSD存储盘,为SDS提供技术支持。

2) 传统存储厂商:严防死守,延续现有优势
1.EMC是传统存储厂商的代表,要保护已有存储市场,在EMC World2013上发布ViPR,基于控制面进行SDS构建。同时通过发布软件化战略,支持传统阵列变为软件定义存储,除闪存和高端外的所有产品全部软件化,对存储系统软件化、硬件标准化的发展方向进行试探性应对。
2.IBM发布Spetrum战略,投资10亿美元用于投入SDS领域,分三个阶段实施:存储虚拟化阶段、smart(API)阶段和应用平台阶段。目前,Cleversafe作为对象存储的领军产品,正在对象存储的市场上劈波斩浪。
3.NetApp提供StorageGRID(有两种形式:物理设备和虚拟设备),为该公司的存储产品组合提供了支持。StorageGRID支持CIFS和NFS协议,还支持云数据管理接口(CDMI)、Swift和S3 API。安全功能包括原生静态数据加密、强大的审计和报告以及WORM,借助使用该公司的Data ONTAP SnapLock功能。该产品在备份和归档两大使用场合得到了ISV的有力支持,另外还拥有有效的分层存储,支持磁盘、固态硬盘、磁带和云等选项。NetApp拥有相当数量的PB级对象存储客户。除了虚拟设备外,NetApp还为基于软件的部署提供了有限的选择。
4.Huawei自收购华为-赛门铁克合资公司以来,就一直在积极投资于存储行业。华为拥有多元化的产品组合,横跨SAN、NAS和对象存储三大产品线。华为的对象存储产品OceanStor/FusionStor产品基于分散的对等节点网络,元数据与对象一同存储起来,消除了任何单一故障点,能够实现无缝可扩展性。支持原生API和S3 API,以便访问数据。该产品只能作为华为销售的套装设备来部署。

3) 新兴分布式存储技术:时代的挑战者
1.Redhat 2014年5月以1.75亿美元收购Ceph解决方案公司inktank。并于2014年7月发布Ceph企业版,正式进入存储市场。
2.XSKY 于2015年5月成立,创业技术团队来自于国际一线互联网公司和IT领导厂商的核心研发团队。目前,XSKY在开源存储系统Ceph社区的代码贡献排名中,位居中国第一,全球前三,并且与Redhat、戴尔、英特尔等公司达成合作。XSKY产品推出以来,获得了大规模地商业化部署,客户涵盖了政府、金融、电信、广电、教育、交通、医疗、能源、制造等不同领域,支撑了行业云、私有云、桌面云、数据库资源池、海量媒体数据、影像数据、智能制造数据等不同类型的应用场景。
3.国内也有大批的初创型公司以及一些传统企业涉足Ceph领域,例如ZTE,H3C,浪潮,Easystack,中移软件,sanstone等。
4.除此之外,还有一部分基于自研技术的分布式存储厂商,例如曙光,ZettaCloud等。

7、容器云在使用分布式存储时,HDFS、CEPH、GFS、GPFS、Swift等分布式存储哪种更好?

目前,公司在进行容器云技术选型,计划采用商业产品,已接触华为、RANCHER、阿里等产品提供商,现想了解相应的分布式存储如何匹配,HDFS、CEPH、GFS、GPFS、Swift等分布式存储,采用哪种更好,主要场景是容器存储应用日志、配置文件、非结构化数据文件等,请各位大神持续指导。

Steven99 软件架构设计师 , steven
日志文件随着时间会是个很大的量,所以建议考虑统一的日志中心存储处理,可以用es等,备份到hdfs。

配置文件在量上通常不是个问题,可以考虑配置中心统一管理,无需额外存储

非结构化数据通常是大量的文件,可以采用传统nas或分布式对象存储,当然资金充裕可以采购好的存储,存储性能很重要,根据业务重要程度选择不同的存储

Garyy 系统工程师 , 某保险
容器存储的持久化,对于有状态数据的容器使用场景来说至关重要。因此,在技术选型的时候,需要明确存储的具体需求。存储按照数据类型来分,可以分为块存储,对象存储,文件存储。我们传统的环境中,使用最多的还是块存储和文件存储。随着IT的更新换代,现在对于对象存储(非结构化数据)的需求日益旺盛,对象存储在对一些Key-Value型数据的存储有着天然的优势,再加上其分布式,副本/纠删码等可以匹配传统存储的特性,日益成为温数据/冷数据存储的不二之选。

HDFS/CEPH/GFS/GPFS/Swift这类分布式存储,按照存储的类型来区分,HDFS/GPFS/GFS属于文件存储,CEPH属于统一存储--即块/对象/文件统一体,Swift属于对象存储-目前属于OpenStack下面的一个子项目。

1)HDFS
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。
HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。

2)GFS
GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。

3)GPFS
GPFS(General Parallel File System ,GPFS) 是 IBM 公司第一个共享文件系统,起源于 IBM SP 系统上使用的虚拟共享磁盘技术( VSD )。作为这项技术的核心, GPFS 是一个并行的磁盘文件系统,它保证在资源组内的 所有节点可以并行访问整个文件系统;而且针对此文件系统的服务操作,可以同时安全地在 使用此文件系统的多个节点上实现。 GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上;它提供了许多标准的 UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。

4)CEPH
Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。
Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。

5)Swift
Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务,并于 2010 年贡献给 OpenStack 开源社区作为其最初的核心子项目之一,为其 Nova 子项目提供虚机镜像存储服务。Swift 构筑在比较便宜的标准硬件存储基础设施之上,无需采用 RAID(磁盘冗余阵列),通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题。

yin986 软件架构设计师 , 阳光保险集团
NAS后面可能逐步边缘化,对象存储是一种方案,但涉及到应用程序开发,如果想无缝上容器,该如何选择分布式存储呢?

土豆变薯条 技术总监 , XSKY
对于容器云XSKY已经针对K8S 开发出ISCSI CSI和NFS CSI接口,可以无缝的对接

8、分布式存储技术路线选型探讨:HDFS、Ceph、GFS、gpfs、Switf等各种技术的特点和适用场景?

随着数字化转型的深入,海量数据对存储提出了新的要求。传统存储虽然有技术成熟、性能良好、可用性高等优点,但面对海量数据,其缺点也越来越明显:如扩展性差、成本高等。为了克服上述缺点,满足海量数据的存储需求,市场上出现了分布式存储技术。
当前,分布式存储有多种实现技术,如HDFS、Ceph、GFS、GPFS、Switf等。在实际工作中,为了更好地引入分布式存储技术,我们需了解各种分布式存储技术的特点,以及各种技术的适用场景,在此希望请教下同行,城商行应该如何选择这些分布式存储技术,他们各自的特点和场景如何?

wanggeng 系统运维工程师 , 某银行
1、Hadoop HDFS(大数据分布式文件系统)
Hadoop分布式文件系统(HDFS)是一个分布式文件系统,适用于商用硬件上高数据吞吐量对大数据集的访问的需求。
该系统仿效了谷歌文件系统(GFS),数据在相同节点上以复制的方式进行存储以实现将数据合并计算的目的。
该系统的主要设计目标包括:容错,可扩展性,高效性和可靠性。
HDFS采用了MapReduce,不迁移数据而是以将处理任务迁移到物理节点(保存数据)的方式降低网络I/O。HDFS是Apache Hadoop的一个子项目并且安装Hadoop。

2、OpenStack的对象存储Swift
OpenStack Swift提供一个类似Amazon S3的对象存储。其主要特点为:
所有的存储对象都有自身的元数据和一个URL,这些对象在尽可能唯一的区域复制3次,而这些区域可被定义为一组驱动器,一个节点,一个机架等。
开发者通过一个RESTful HTTP API与对象存储系统相互作用。
对象数据可以放置在集群的任何地方。
在不影响性能的情况下,集群通过增加外部节点进行扩展。这是相对全面升级,性价比更高的近线存储扩展。
数据无需迁移到一个全新的存储系统。
集群可无宕机增加新的节点。
故障节点和磁盘可无宕机调换。
在标准硬件上运行,例如戴尔,HP和Supermicro。

3、Ceph
Ceph是一个遵循LGPL协议的存储平台,它可以在单个分布式节点上同时支持对象存储,块存储和文件存储。
Ceph主要设计的初衷是变成一个可避免单节点故障的分布式文件系统,EB级别的扩展能力,而且是一种开源自由软件,许多超融合的分布式文件系统都是基于Ceph开发的,作为开源软件在超融合商业领域的应用,Ceph因为性能等问题被诟病,但不乏许多厂商在Ceph上不断优化和努力。

4、IBM General Parallel File System(GPFS通用并行文件系统)
这个专有GPFS是一个由IBM开发的高性能集群文件系统。它可以在共享磁盘或非共享分布式并行模式中进行部署。
GPFS-SNC,其中SNC代表Shared Nothing Cluster(非共享集群),它是2012年12月正式发布的GPFS 3.5版本,如今被称为GPFS-FPO(文件配置优化)。这让GPFS可以在一个联网服务器的集群上采用本地连接磁盘,而不需要配置共享磁盘的专用服务器(例如使用SAN),GPFS-FPO可充当HDFS兼容的文件系统。
GPFS时常通过调用计算集群上的MPI-IO(Message Passing Interface)进行访问。功能包括:
分布式元数据处理。包括目录树。没有单独的“目录控制器”或“索引服务器”管理文件系统。
对非常大的目录进行高效索引目录项。很多文件系统被限制在单一目录(通常, 65536或类似的小二进制数)中的少数文件内,而GPFS并没有这样的限制。
分布式锁定。该功能考虑了完整的Posix文件系统语义,包括锁定文件进行独占访问。

5、Global Federated File System(GFFS全局联合文件系统)
XSEDE文件系统在美国弗吉尼亚大学Genesis II项目的一部分。
GFFS的出现是源于一个对诸如文件系统的资源以一种联合,安全,标准化,可扩展和透明化的方式进行访问和远程操作的需求,而无需数据所有者或应用程序开发者和用户改变他们存储和访问数据的任何方式。
GFFS通过采用一个全局基于路径的命名空间实现,例如/data/bio/file1。
在现有文件系统中的数据,无论它们是否是 Windows文件系统, MacOS文件系统,AFS,Linux或者Lustre文件系统都可以导出或链接到全局命名空间。
例如,一个用户可以将它 “C” 盘上一个本地根目录结构,C:\work\collaboration-with-Bob导出到全局命名空间,/data/bio/project-Phil,那么用户 “C” 盘\work\collaboration-with-bob 内的文件和目录将会受到访问限制,用户可以通过/data/bio/project-Bob路径在 GFFS上访问。

6、最后谈一下,最常见的GPFS和HDFS有什么区别?
GPFS和Hadoop的HDFS系统对比起来相当有趣,它设计用于在商用硬件上存储类似或更大的数据——换言之就是,不配置 RAID 磁盘的数据中心和一个SAN。
HDFS还将文件分割成块,并将它们存储在不同的文件系统节点内。
HDFS对磁盘可靠性的依赖并不高,它可以在不同的节点内存储块的副本。保存单一副本块的一个节点出现故障是小问题,可以再复制该组其它有效块内的副本。相较而言,虽然GPFS支持故障节点恢复,但它是一个更严重的事件,它可能包括数据(暂时性)丢失的高风险。
GPFS支持完整的Posix文件系统语义。 HDFS和GFS(谷歌文件系统)并不支持完整的Posix语义。
GPFS跨文件系统分布它的目录索引和其它元数据。相反, Hadoop将它们保留在主要和次要Namenode中,大型服务器必须在RAM内存储所有的索引信息。
GPFS将文件分割成小块。Hadoop HDFS喜欢64MB甚至更多的块,因为这降低了Namenode的存储需求。小块或很多小的文件会快速填充文件系统的索引,因此限制了文件系统的大小。
说到分布式文件系统,不得不提到许多超融合厂商,一部分是基于Ceph的,还有一部分是完全自主研发的。

刘东 it技术咨询顾问 , 东软集团
在以上几种分布式存储技术中,每一种存储技术都有各自的特点和应用场景。其中HDFS、Ceph和Switf应用比较多,这也和它们的技术发展比较快和应用场景比较多相关。下面分别介绍:

一、HDFS。
主要用于大数据的存储场景,是Hadoop大数据架构中的存储组件。HDFS在开始设计的时候,就已经明确的它的应用场景,就是为大数据服务。主要的应用场景有:
1、对大文件存储的性能比较高,例如几百兆,几个G的大文件。因为HDFS采用的是以元数据的方式进行文件管理,而元数据的相关目录和块等信息保存在NameNode的内存中, 文件数量的增加会占用大量的NameNode内存。如果存在大量的小文件,会占用大量内存空间,引起整个分布式存储性能下降,所以尽量使用HDFS存储大文件比较合适。
2、适合低写入,多次读取的业务。就大数据分析业务而言,其处理模式就是一次写入、多次读取,然后进行数据分析工作,HDFS的数据传输吞吐量比较高,但是数据读取延时比较差,不适合频繁的数据写入。
3、HDFS采用多副本数据保护机制,使用普通的X86服务器就可以保障数据的可靠性,不推荐在虚拟化环境中使用。

二、Ceph。
是一个开源的存储项目,是目前应用最广泛的开源分布式存储系统,已得到众多厂商的支持,许多超融合系统的分布式存储都是基于Ceph深度定制。而且Ceph已经成为LINUX系统和OpenStack的“标配”,用于支持各自的存储系统。Ceph可以提供对象存储、块设备存储和文件系统存储服务。同时支持三种不同类型的存储服务的特性,在分布式存储系统中,是很少见的。
Ceph没有采用HDFS的元数据寻址的方案,而且采用CRUSH算法,数据分布均衡,并行度高。而且在支持块存储特性上,数据可以具有强一致性,可以获得传统集中式存储的使用体验。对象存储服务,Ceph支持Swift和S3的API接口。在块存储方面,支持精简配置、快照、克隆。在文件系统存储服务方面,支持Posix接口,支持快照。但是目前Ceph支持文件的性能相当其他分布式存储系统,部署稍显复杂,性能也稍弱,一般都将Ceph应用于块和对象存储。
Ceph是去中心化的分布式解决方案,需要提前做好规划设计,对技术团队的要求能力比较高。特别是在Ceph扩容时,由于其数据分布均衡的特性,会导致整个存储系统性能的下降。

三、GFS。
GFS是google分布式文件存储,是为了存储海量搜索数据而设计的专用文件系统。和HDFS 比较类似,而且HDFS系统最早就是根据 GFS的概念进行设计实现的。 GFS同样适合大文件读写,不合适小文件存储。适合处理大量的文件读取,需要高带宽,而且数据访问延时不敏感的搜索类业务。同样不适合多用户同时写入。GFS 是最早的推出分布式存储概念的的存储系统之一,后来的大部分的分布式式文件系统或多或少都参考了 GFS 的设计。HDFS和 GFS 的主要区别是,对GFS 中关于数据的写入进行了一些改进,同一时间只允许一个客户端写入或追加数据。而GFS 是支持并发写入的。这样会减少同时写入带来的数据一致性问题,在写入流程上,架构相对比较简单,容易实现。

四、GPFS。
GPFS是 IBM 的共享文件系统,它是一个并行的磁盘文件系统,可以保证在资源组内的所有节点可以并行访问整个文件系统。GPFS 允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上。GPFS提供了许多标准的 UNIX 文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。
GPFS和其他分布式存储不同的是,GPFS是由网络共享磁盘(NSD)和物理磁盘组成。网络共享磁盘(NSD)是由物理磁盘映射出来的虚拟设备,与磁盘之间是一一对应的关系。所以,使用两台传统的集中式存储设备,通过划分不同的网络共享磁盘,也可以部署GPFS,不一定部署在X86设备上。GPFS文件系统允许在同一个节点内的多个进程使用标准的UNIX文件系统接口并行的访问相同文件进行读写,性能比较高。GPFS支持传统集中式存储的仲裁机制和文件锁,保证数据安全和数据的正确性,这是其他分布式存储系统无法比拟的。GPFS主要用于IBM 小型机和UNIX系统的文件共享和数据容灾等场景。

五、Switf。
Swift也是一个开源的存储项目,但是主要面向的是对象存储。和Ceph提供的对象存储服务类似。主要用于解决非结构化数据存储问题。它和Ceph的对象存储服务的主要区别是。
1、客户端在访问对象存储系统服务时,Swift要求客户端必须访问Swift网关才能获得数据。而Ceph使用一个运行在每个存储节点上的OSD(对象存储设备)获取数据信息,没有一个单独的入口点,比Swift更灵活一些。
2、在数据一致性方面,Swift的数据是最终一致,在海量数据的处理效率上要高一些,但是主要面向对数据一致性要求不高,但是对数据处理效率要求比较高的对象存储业务。而Ceph是始终跨集群强一致性。
主要的应用场景,在在OpenStack中,对象存储服务使用的就是Swift,而不是Ceph。

分布式存储使用场景分析

9、对象存储在影像云系统中的价值分析与厂商比较,以及ceph开源技术自研可行性?

银行系统的影像云采用对象存储的优势(相比HDFS,NAS等,如果没有优势,或者特定场景有优势),对象存储ceph系统针对影像云来说,哪些功能是必不可少的,哪些是可有可无的,压测怎么做,纠删码模式现在成熟度怎么样,ceph系统在可靠性数据安全方面主要风险在哪里?针对xsky,七牛这些公司的产品大家怎么看,ceph代码复杂吗?除了以上两家,还有哪些做得比较扎实,自研ceph风险有多大,谢谢金融领域的大咖的无私分享,感恩~

sdtimothy8 其它 , 浪潮商用机器有限公司
1)银行影像存储属于海量小文件存储的应用场景,对象存储再合适不过。与传统的NAS存储相比,分布式对象存储具备更好的弹性扩展能力,用户可以根据业务增长弹性扩容,同时性能可以随容量线性增长;此外,对象存储采用去中心化架构,无元数据瓶颈,扁平命名空间,无“目录树”瓶颈,可有效提升小文件处理效率。
2)功能层面,我们方案可以提供包含:自定义元数据,小文件归并,多版本,EC,副本,故障域,数据压缩与加密,WORM,对象多站点,MD5校验等对象存储功能,可以供客户灵活选择。
3)对象存储的压测目前主要使用Cosbench这款测试工具,使用单台或者多台压力机,起多个Driver来测试在不同并发下,对象存储的性能和时延。
4)数据保护层面,分布式对象存储提供多种数据保护机制,如副本,纠删码,多级故障域,双活,对象的多站点容灾,异步复制等。可以满足数据的可靠性需求。
5)对象存储供应商方面,XSKY,浪潮等都有自己的分布式存储系统。

10、金融行业中,分布式存储应用于哪些业务场景?存放 结构化数据 or 非结构化数据?

如果用于存放非结构化数据,如kb级的影像文件,是使用多副本还是纠删码?如何进行数据保护?

Garyy 系统工程师 , 某保险
数据对于金融行业的重要性不言而喻,数据可以说是一个企业的生命线,数据的稳定安全保证了企业的更加稳定的运行。传统的金融企业存储大都是块存储和文件存储,通过集中式IPSAN/FCSAN的方式提供,服务的业务类型涵盖了几乎所有的业务场景,例如数据库,或者普通业务。随着企业的高速发展,业务的规模不断扩大,数据呈指数增长,PB级的数据需求屡见不鲜。这主要是由于当前的数据,已经从传统的结构化数据,变成了大量的非结构化数据--视频/音频/图片等。传统的存储,由于其架构“竖井式”的限制,无法做到横向扩容,往往在几百TB的时候买就遇到了扩容的瓶颈。这时候,各个厂商以及一些开源社区便开始研究一种新模式的存储来满足急剧增长的非结构化数据的需求--对象存储应运而生。对象存储基于分布式模式,提供横向扩容能力,同时对于非结构化数据的支持也比较到位。

目前分布式存储的使用场景包括了:视频音频的存储,日志存储,归档文件,例如保险行业的双录系统,金融行业的日志存储,电子保单等等。

sdtimothy8 其它 , 浪潮商用机器有限公司
分布式存储的块存储和对象存储服务,可以同时满足结构化和非结构化数据存储的业务场景。金融行业中,对象存储可以满足非结构化数据的存储需求。具体业务场景有保单,票据扫描件的存储,银行双录系统、400电话录音存储、电子保单系统、证券网上开户系统等。

针对海量的KB级影像小文件存储,与文件存储相比,对象存储采用扁平化的命名空间,没有目录树的瓶颈,再加上小文件聚合归并技术,可以大大提升小文件的处理效率。数据保护层面,可以同时使用副本和纠删码,即存放非结构化数据的索引和属性信息的索引存储池采用副本策略,而存放数据的数据池采用纠删保护策略,这样通过采用不同数据保护策略数据的分级存储,既提高了小文件的存取效率,又能节省空间,提高存储系统的整理利用率。

11、非结构化数据使用分布式存储的场景评估?

其实一直有在考虑分布式存储的应用场景,目前硬盘成本在下降,各厂商的存储整体成本也在下降(不管是主动还是被迫),分布式存储的技术成熟度(技术本身、人才、稳定性等)和传统存储的高市场占有率(行业案例、长时间技术积累等),一直是甲方在选型的纠结点。
还有对于我的非结构化数据场景(公司内部文件盘,用于全国各地分公司和总公司的数据交互等),对可用性容忍度较高,我该选择“服务器硬盘raid保护+脱机备份” 还是“分布式存储”的方式,也是一个困难的选择。

土豆变薯条 技术总监 , XSKY
对于非结构化数据及多分支机构数据交互场景的使用上我们可以推荐使用对象存储,我们的对象存储对海量小文件处理都有很深的优化,在多分支机构数据交互上我们有对象多站点可以帮助咱们解决问题,对象多站点有就近读取的功能,在本写入的数据可以在异地读取

12、分布式存储应用于非结构化数据,是否需要考虑备份问题?

如需要进行备份等,是否与传统NAS 存储备份有区别?

Garyy 系统工程师 , 某保险
在分布式存储系统中,系统可用性是最重要的指标之一,需要保证在机器发生故障时,系统可用性不受影响,为了做到这点,数据就需要保存多个副本,并且多个副本要分布在不同的机器上,只要多个副本的数据是一致的,在机器故障引起某些副本失效时,其它副本仍然能提供服务。同时,分布式存储还支持纠删码技术,具体技术实现可以参考相关的技术文档,纠删码技术相对副本技术而言,极大地节省了存储空间,一般1:1.5左右甚至更低的空间即可,但是会消耗部分的CPU资源来进行数据冗余/恢复的计算。

【数据备份】
数据备份是指存储数据的多个副本,备份方式可以分为热备和冷备,热备是指直接提供服务的备副本,或者在主副本失效时能立即提供服务的备副本,冷备是用于恢复数据的副本,一般通过Dump的方式生成。数据热备按副本的分布方式可分为同构系统和异步系统。同构系统是把存储节点分成若干组,每组节点存储相同的数据,其中一个主节点,其他为备节点;异构系统是把数据划分成很多分片,每个分片的多个副本分布在不同的存储节点,存储节点之间是异构的,即每个节点存储的数据分片集合都不相同。在同构系统中,只有主节点提供写服务,备节点只提供读服务,每个主节点的备节点数可以不一样,这样在部署上会有更大的灵活性。在异构系统中,所有节点都是可以提供写服务的,并且在某个节点发生故障时,会有多个节点参与故障节点的数据恢复,但这种方式需要比较多的元数据来确定各个分片的主副本所在的节点,数据同步机制也会比较复杂。相比较而言,异构系统能提供更好的写性能,但实现比较复杂,而同构系统架构更简单,部署上也更灵活。鉴于互联网大部分业务场景具有写少读多的特性,可以选择更易于实现的同构系统的设计。

【同步机制】
一般主节点接收写请求,然后由主节点负责把数据同步到所有的备节点,主节点采用一对多的方式进行同步,相对于级联的方式,这种方式在某个备节点故障时,不会影响其它备节点的同步。在CAP理论中,可用性和一致性是一对矛盾体,在这里主节点执行写操作后会立即回复客户端,然后再异步同步数据到备节点,这样并不能保证主备节点的数据强一致性,主备数据会有短暂的不一致,通过牺牲一定的一致性来保证系统的可用性。在这种机制下,客户端可能在备节点读到老数据,如果业务要求数据强一致性,则可以在读请求中设置只读主选项,这样读请求就会被接口层转发到主节点,这种情况下备节点只用于容灾,不提供服务。为了保证主备节点的数据一致性,需要一种高效可靠的数据同步机制。同步分为增量同步和全量同步,增量同步是主节点把写请求直接转发到备节点执行,全量同步是主节点把本地的数据发到备节点进行覆盖。主备节点的数据同步由主节点上的同步进程异步进行。

【容灾机制】
如果系统需要具有容灾能力,即在机器发生故障时,系统的可用性基本不受影响,那么系统中所有数据至少需要有两个以上的副本,并且系统的处理能力要有一定的冗余,需要保证在故障机器不能提供服务时,系统不会过载。一般来说,数据的副本数量越多,系统的处理能力越冗余,系统的容灾能力越强。更进一步,还需要考虑物理部署,通过把数据的不同副本分布在不同机架、不同机房、甚至是不同城市,来把系统的容灾能力提升到不同的级别。

【数据归档】
主要是由备份系统负责。备份任务一般是手动或定时发起,属于业务级别的,备份系统收到一个业务的备份任务后,会远程备份业务的所有数据,过程比较简单,就是遍历所有的存储节点,把属于该业务的所有数据写入到远程文件系统中,每次备份都需要记录开始时间和结束时间,作为数据回档的基准。

系统中所有的写操作都会记录一份远程的流水,每条流水都记录了写操作的时间戳,由流水中心统一存储。结合数据冷备和流水,可以恢复到冷备完成后任意时刻的数据。备份系统收到一个业务回档任务后,首先停止该业务的服务,然后清空业务的所有数据,接着从冷备做一次全量的恢复,然后再重放流水到指定时间点,即可完成数据回档。需要注意的是这里的冷备并不是快照,在进行冷备的时候,写操作也正常执行,所以从冷备开始时间重放流水会导致很多的写操作重复执行,这里通过数据版本校验来避免这个问题,在数据中保存了版本信息,在写操作流水中也记录了对应的写操作完成后的数据版本,重放流水的时候,如果流水中记录的版本不比数据中的版本新,则直接跳过这条流水,这样就保证了数据回档的准确性。

13、分布式存储是否可以支持数据库场景?

he7yong 研发工程师 , Canway
技术上支持,https://www.cnblogs.com/bodhitree/p/5750492.html
但是,不推荐使用,目前大量使用的案例不多。

sdtimothy8 其它 , 浪潮商用机器有限公司
可以支持数据库应用场景。分布式存储系统可以通过多种接口协议提供不同的存储服务,通过FC,iSCSI,RBD等接口提供块设备存储服务;通过NFS,CIFS等提供文件存储服务;通过S3和Swift,提供对象存储服务。其中文件存储和对象存储主要面向半结构化和非结构化数据的存储场景;而块设备存储服务,则可以满足结构化数据存储的需求,如数据库应用场景。

kw002007 存储架构师 , X公司
当然可以支持数据库场景!
数据库对存储的三个核心需求点,稳定高可用,低时延,块存储。
已经某些数据库对 共享块存储的需求
随着SSD的迅猛发展,性能已经不是存储的瓶颈

分布式存储技术设计实现相关问题

14、分布式存储的数据恢复处理?

分布式存储由于控制软件故障,导致数据不可用。这种场景下,数据恢复如何处理?

kw002007 存储架构师 , X公司
只要元数据没有丢失或者物理坏块,仅仅是控制器故障
是可以通过恢复控制软件来恢复数据的使用的。
如果数据 元数据被覆盖了。很难恢复
只能通过数据备份系统,恢复原来备份的数据了

15、ceph原生deep scrub机制在实际生产中的影响如何有效修正?

kw002007 存储架构师 , X公司
1.调整运行周期,每周修改为每月
2.制定时间窗口运行,比如业务压力比较小的 时间段
3.优化参数,减低deep scrub性能消耗

16、分布式存储集群规模是否有一定上限?

sdtimothy8 其它 , 浪潮商用机器有限公司
理论上是没有上限的,为了整体性能和更好的维护性,会把集群规模控制在一定水平。目前在我们IPS&XSKY联合分布式存储方案中,最大支持存储节点扩展到4096个,按照单机40盘位480TB的数据规模来测算,可以实现1.8EB裸容量规模的数据管理能力,足以支撑海量数据存储的业务需求和场景。

elvis_wang 系统工程师 , ADV
商业产品 Cisco HyperFlex 建议每集群64节点.如果节点多时还建议切分逻辑可用组(LAZ).其它产品暂不了解.

kw002007 存储架构师 , X公司
保持一定的集群规模有助于提升性能和稳定性,以及故障隔离

Garyy 系统工程师 , 某保险
对于ceph从理论上来讲,可以进行无限制的扩容。但是,从实际使用的场景来看,必须要进行集群规模的限制,以应对一些问题。

1)对于不同的使用场景,块/对象/文件,不同的存储类型,建议进行物理上的隔离,不建议混用底层的存储
2)建立故障域,隔离风险,降低系统不可用的风险。
3)如果可能的话,可以考虑在硬件层面,融合不同的vendor,例如服务器/交换机可以选择不同品牌,来保证集群不被某一品牌绑架。

yangshuyin 系统运维工程师 , PSBC
不建议做特别大的集群(比如200节点以上),不管是单纯的存储,还是海量的并行计算,随着数据量增大,集群的管理(重启后的数据上线,扩容),系统的健壮稳定都不是很好,特别在开源架构下,很多不可控不可查的问题接连出现,另外集群规模过大,必然导致集群中断情况下业务的影响范围。

另外做开源没有人是不行的,维护量很大,小集群还可以自己摸索,大集群还是找实力相当的厂家背书,这样大家都睡得好。

lxk215313951 系统工程师 , 城市商业银行
理论上可以无限扩展,但是实践中,肯定会有最佳实践,大部分分布式存储集群建议一个集群32或64节点

17、分布式存储上的数据需要做灾备,请问那种技术手段可以实现?

有时候分布式存储上的数据需要做灾备,请问那种技术手段可以实现?

sdtimothy8 其它 , 浪潮商用机器有限公司
跟传统存储类似,分布式存储可以做两地三中心的灾备,同时对象存储可以通过多站点技术实现不同数据中心的数据共享和容灾,此外,还支持将数据备份到公有云,满足跨地域灾难情况下的数据恢复。

18、分布式存储后端的各存储节点互联是否一定要用万兆网?

分布式存储后端的各存储节点互联是否一定要用万兆网? 数据在各节点传输,是否有传输压缩技术,毕竟存储盘都是SSD了,IO瓶颈小,压力全在数据传输环节了。

asdf-asdf 研究学者 , cloudstone
看你分布式存储的业务用途 如果用在vm 的根盘,必须上 万兆网 了
不如千兆速度不能满足业务要求
看业务需求

sdtimothy8 其它 , 浪潮商用机器有限公司
最好是使用万兆及万兆以上的网络作为存储节点间的数据网络,不然网络会成为集群内数据处理的瓶颈。

19、分布式集群是否需要用到IB(Infiniband)组网?

请问在分布式存储集群架构技术,如ceph、swift、HDFS、Amazon S3等等,哪些是需要使用IB(Infiniband)组网呢?或者说在什么场景下需要使用IB组网?
个人拙见,集群内各个节点的磁盘IO不会太高,一般1-2GB已经算很快的了,而整体集群与外部网络的通信带宽也不会太大,所以就想咨询下:
集群内节点间本地IO到多少,或者集群与外部网络IO到多少,才会用IB组网?在此之下的,可以使用10Gb万兆网卡就能够满足了?

石佛 信息分析/架构师 , 日本ITS会社
其实真的不需要IB.分布式就是为了解决存储并发产生瓶颈问题的。没个点都可以同时接收来自客户端的io读者请求。所以直接利用分布式已给出的解决方案就好!

土豆变薯条 技术总监 , XSKY
分布式存储的网络分为两种网络,一个是业务网,一个是集群网
集群网络主要是分布式存储的信息同步,还有节点出现故障后的数据恢复,集群网络要根据每个节点的磁盘数量来进行判断是否需要用到IB网络,一般24盘位以下的服务器两个万兆完全满足需求
业务网络根据业务需求来选择

sdtimothy8 其它 , 浪潮商用机器有限公司
市场上已经有支持IB网络的分布式方案,但是IB网络的低延迟特性需要高性能存储介质才能在用户端获得收益,目前通用的混合存储(HDD+SSD)分布式集群中10Gb网络比较流行,全闪存配置下可以考虑40Gb以太网,全NVMe存储可以考虑IB网络。

20、分布式存储同城/异地数据复制是如何实现的?

kw002007 存储架构师 , X公司
1.地理分布功能 原生写多份数据到多个数据中心
2.bukect复制功能
3.存储底层块镜像高性能
4.块级别异步复制功能

Garyy 系统工程师 , 某保险
Ceph将数据副本分布到不同的硬件,从而有效地避免由于硬件故障而导致数据丢失的问题,得以实现数据的高可用性。然而,这种分布式存储机制也导致传统的基于存储复制或CDP技术难以用于Ceph来实现跨数据中心的数据复制和恢复。

典型情况下Ceph保持3个副本,那么是否可以将副本放在异地数据中心。这么做会导致Ceph读写数据的时延急剧上升。究其原因,Ceph采用的强一致性同步模型,只有等所有数据副本写操作完成才被认为一次操作完成,而两地数据中心之间通常有一定的网络延迟,从而导致整个ceph集群的写性能急剧下降。

基于上述问题,Ceph从Jewel版本开始引入了RBD Mirror功能来解决Ceph存储在数据备份容灾方面的需求。

RBD mirror的原理,简单来说,就是利用日志(Journal)进行回放(replay),来完成主从同步。有点类似于Mysql中的binlog。

RBD Mirror支持两种模式:RBD Image模式和Pool模式。RBD image模式下,会把指定的image进行镜像;而Pool模式则把该Pool中所有的image进行镜像。

通过一个rbd-mirror的服务,依赖于image的journaling特性,来实现集群间的crash-consistent的image复制。

基于该机制,可以方便地实现两个OpenStack和Ceph集群的数据备份和灾难恢复。

21、分布式存储在使用过程中,如何选择数据复制机制?副本or 纠删码?

huaweitac IT顾问 , sandstone
1.现在分布式存储的技术越来越成熟了,可以在同一套存储中实现副本和EC两种模式;
2.如何选择两种数据保护方式,可以根据业务情况因地制宜,那么就要知道两种模式的区别,这个就不细说了,总的来说,从性能和冗余性来说副本要好很多,但是从硬盘利用率来说EC肯定要好;
3.什么样的业务选择副本模式呢?1.关键业务,对性能要求比较高的业务,如数据库等,2.其他非关键性业务,如视频监控等,可以选择EC。如何定义是不是关键业务要看企业具体情况。
4.同一套存储中可有副本和EC都存在,那么就可以实现数据分层存储,既数据的生命周期管理。

sdtimothy8 其它 , 浪潮商用机器有限公司
副本和纠删码是目前分布式存储系统中常用的两种数据冗余保护策略,它们各有自己的特点。副本,顾名思义,一份数据写多份,优点:读写性能好。缺点:得盘率低。纠删码,优点:得盘率高。缺点:校验码计算有性能损耗。应用中,如何选择还得结合具体的业务场景。性能要求高的关键业务,一般采用副本。视频,影像存储等海量存储场景可以采用纠删码,提高存储系统利用率,降低成本。此外,对象存储系统中,索引池可以使用副本策略,而数据池可以采用纠删码,这样既提升了读写效率,又节省了成本。

分布式存储运维场景相关问题

22、ceph分布式存储横向拓展(不管是扩缩节点还是osd),数据重构导致业务上读写性能问题的有效运维方法?

sdtimothy8 其它 , 浪潮商用机器有限公司
该问题在另一个同类问题中已解答,请参考:
http://www.talkwithtrend.com/Question/424353

23、分布式存储如何尽量避免增减节点带来的性能影响?

我们处于分布式存储产品选型阶段,做了一些POC测试,在压测阶段发现增减节点对I/O的性能影响都比较大。请问社区大神们如何尽量的降低这种影响?是否有好的处理模式。

Garyy 系统工程师 , 某保险
这个问题涉及到了存储节点的QoS的问题。QoS应该是存储系统设计之初就要仔细考虑的架构问题。分析了一众主流存储大厂后还是觉得ceph在这方面做得最细致最全面。同时也有些厂商做得比较简陋,只提供了带宽或者IOPS的限速功能。这或许在某些场景中已经够用,但我认为一个完整的QoS方案至少要包括对带宽、IOPS的预留、上限和优先级控制,如果再精细点还可以考虑IO的粒度、延迟、突发、空间局部性、系统内部IO、用户IO、缓存、磁盘等要素。

分布式存储都有很长的IO路径,简单的IOPS限速功能通常在路径的最前端实现。例如OpenStack Cinder默认使用QEMU完成存储块的限速功能,QEMU对存储来说已经属于客户端的角色了。

QoS的本质总结起来就四个字:消此长彼,它并不会提高系统整体处理能力,只是负责资源的合理分配。

对Ceph来说,OSD的ShardedOpWq队列是个不错的选择,因为几乎所有重量级的IO都会经过该队列。这些IO可以划分为两大类,一类是客户端过来的IO,包括文件、对象和块存储;另一类是系统内部活动产生的IO,包括副本复制、Scrub、Recovery和SnapTrim等。

目前Ceph QoS最新提交了两个有关QoS的PR,具体如下:

1)dmClock Update
dmClock算法分为客户端和服务器端,服务器端一般驻留在OSD上,不会有太大变化,主要是客户端的设计,目前社区有三种初步方案:
1,使用mclock作为一种资源调度策略,控制客户端I/O请求和Ceph内部I/O之间的优先次序
2,使用卷或者存储池作为粒度,为其设置一套QOS模板
3,为每个真实的客户端提供一套QOS模板.

2)rbd: implement image qos in tokenbucket algorithm
这个是国内团队提交的一个关于rbd块设备读写镜像时候采用令牌桶算法的一直QOS方式

dtimothy8 其它 , 浪潮商用机器有限公司
分布式存储系统中,扩容和缩容不可避免会带来数据重平衡的问题,没有好的处理机制,数据的重构确实会对存储系统的IO带来很大影响。我们的联合方案中针对扩容问题,一方面提供了整池扩容和冷池休眠的机制,这样就可以避免因海量数据重构占用大量网络资源,给前端业务访问带来很大压力的问题;另一方面,我们提供了存储池的QoS功能,可以保证数据重构过程以一个较低的速率进行,这样就大大降低了对存储系统IO的影响。

24、对于基于ceph的商业分布式存储运维,用户需要掌握哪些知识?

客户中在用的基本上是基于开源ceph的商用分布式存储产品,在日常运维过程中客户需要掌握哪些知识,关注哪些指标确保集群的正常运行?

kw002007 存储架构师 , X公司
1.Linux 内核参数
2.Linux基础 3.网络基础知识 vlan ip 路由 包
3.shell python编程 5.故障分析代码示例
4.ntp ssh Linux用户权限 服务管理 日志 进程
5.lvs nginx dns cdn
6.s3 代码示例

土豆变薯条 技术总监 , XSKY
XSKY的分布式存储属于商业化的产品,会有全方位的图形界面帮助运维人员进行日常的运维,对于不懂得开源ceph的客户来说只要懂得简单的存储知识就知道存储的配置方法和运维,完全不需要去学习代码级别的维护

sdtimothy8 其它 , 浪潮商用机器有限公司
与开源的Ceph系统相比,商用分布式存储产品会更注重运维的便捷和高效性,以便给用户带来更好体验,简化运维的复杂度,降低运维成本。

我们的联合方案更是把聚焦客户,整体运维的思路贯穿于产品的各个阶段。安装阶段,可以实现存储节点的极速上线;使用阶段,提供友好的图形管理界面,全方位的监控整个集群的性能和状态指标,同时提供日志审计告警,容量分析预警,硬盘的故障定位和生命周期管理。用户只需要掌握基础的存储知识,就可以完成集群的整体运维。

25、分布式存储的稳定性、可靠性如何评估?

分布式存储相对于传统的集中存储,有其体系架构带来的特点,在部分业务场景下具有集中存储无法比拟的优势。有以下问题请老师答疑解惑:
不少分布式存储的体系架构中有集中控制节点,由于X86服务器的架构复杂度远超过集中存储的控制器,所以故障率必然会超过集中存储控制器。请问这种情况下,分布式存储的稳定性和可靠性如何评估?

土豆变薯条 技术总监 , XSKY
分布式存储架构就是为了解决集中式存储双控架构开来的控制器故障风险,分布式的架构每个X86服务器都可以当成一个控制器,从控制器的数量来看安全性都远远高于双控架构的集中式存储,而且分布式架构易于扩展,直接添加X86服务器就能够让空间和性能得到线性的增长,底层更有副本和EC来做数据保护,扩展性和安全性也比传统的raid要高很多,重构的速度也远远的大于raid

软件故障无论是集中存储还是分布式存储都存在,就看哪家的软件研发的更加稳定,可以让市场来说话,做存储肯定是需要对客户的数据负责的

分布式存储的容灾和集中存储一样都会有多种手段,包括分布式块存储,文件存储,对象存储的双活,异步复制,多站点等

26、分布式存储如何做好集群运维?

he7yong 研发工程师 , Canway
分布式存储做好集群的运维非常的关键,因为正常情况下一个分布式存储是运行一个节点挂掉,如果多个节点挂掉,将会导致分布式存储的灾难。

我的推荐如下:
1.保障性运维,关注在节点服务器的稳定运行,如机器,磁盘,SSD,RAID卡,电池等等,这些关键组件的状态监控;故障后及时的处理;
2.标准化故障处理、增加节点的流程;
3.建立存储服务交付,存储使用配额的管理等等。

kw002007 存储架构师 , X公司
1.良好的架构设计 运维成功的一半
2.及时处理小问题
3.熟悉技术原理,避免小问题引发大的故障。如硬盘损坏导致集群整体性能问题

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

10

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

活动总结
活动总结是社区交流活动内容的总结及延伸,为大家提供了社区专家们丰富且高水平的理论知识、实践经验以及常见问题的最佳解决方法,非常值得大家收藏学习。

作者其他文章

相关文章

相关问题

相关资料

X社区推广