获取文档

一、概述

 

  LeoFS是一款由龙存科技自主研发的分布式文件传输管理协议,专为海量数据存储应用而设计。

  LeoFS为应用提供全局统一的文件系统映像和完全POSIX兼容的数据访问接口,为全系列Linux、Windows以及Mac OS系统应用主机提供了客户端驱动程序,且支持所有既有应用,无需二次开发,适合各类密集型IO应用场景。

  LeoFS支持存储系统在线扩展,可以从几十TB扩展到 EB级规模,且性能也会随着系统容量的增加而呈近线性增长。

  LeoFS支持全系统数据高可用架构,在磁盘、服务器、网络层面均有冗余保护机制,且所有硬件均参与数据服务,无需额外配置冗余设备。

  LeoFS采用前端切片技术,即在应用主机端对数据进行切片,并行传输至后端多台存储服务器上,无需存储系统内部进行数据同步,有效消除后端瓶颈和提升了系统带宽。

  LeoFS提供了强大的数据保护机制,自研的纠删码N+M模式可将存储空间利用率提高至94%,亦可以保障在系统同时4个节点(服务器)或磁盘损坏的情况下数据不丢失。

  LeoFS支持分级存储功能及数据迁移功能,将不同的存储介质分组管理,有效控制成本的同时,满足了用户对高性能和大容量存储的双重需求。

 

 

统一存储空间及统一命名空间

通过对底层硬件资源的整合,LeoFS为应用层提供一个统一的数据存储空间和命名空间。所有应用端均可在线访问全空间实时数据。元数据和数据分开存储,各成集群,可通过单独增加存储服务器或元数据服务器来扩容数据存储空间或命名空间,以及提升相应的数据或元数据访问性能,可同时满足元数据密集型存储需求和数据密集型存储需求,避免了空间浪费。单系统(卷)支持EB级数据及不限数量的文件存储,实际上线系统单卷支持最大文件数超过5000亿。

 

二、架构

  LeoFS协议主体由智能存储节点、元数据控制节点和应用服务节点组成。服务端采用元数据与存储节点相分离的模式构建统一存储池,为上层应用服务节点提供并行数据服务。

  智能存储节点:存储用户的实际数据,是整个集群存储系统的存储资源提供者。

  元数据控制节点:管理文件系统的元数据(包括文件目录树组织、属性维护、文件操作日志记录、授权访问等),管理整个存储系统的命名空间,对外提供单一的系统映像。元数据为偶数互备保护模式,元数据工作方式为双活模式,元数据的扩展为偶数扩展机制,保证数据安全。

  应用服务节点:运行客户应用程序、业务,并进行特定的计算、信息处理的服务节点。应用服务节点上需要安装LeoFS客户端模块以便通过并行协议高效地访问存储系统。

 

 

 

三、协议特性

 

可在线扩容的高效元数据服务

LeoFS协议采用独立的元数据服务集群。集群内每两台元数据服务器组成工作组,各提供该组的50%元数据的访问服务以及另50%元数据的备份工作,因此系统内的所有元数据服务器均为active模式。由于元数据服务器成对工作,一个最小规模的元数据服务集群至少要包含2台元数据服务器,后期可根据存储系统的实际需求动态在线成对扩容,其系统元数据服务性能将呈准线性关系增加。

数据读写流程

写入数据:应用服务器先根据目标文件的路径,利用动态子树hash算法计算出该文件的元数据存放位置,并访问相应的元数据服务器,元数据服务器则为应用服务器提供目标文件的数据存放位置信息,应用服务器随即按照冗余模式要求对文件进行切片,并将这些文件分片同时写入到元数据指定的多个存储服务器及磁盘中。

读出数据:应用服务器先根据目标文件的路径,利用动态子树hash算法计算出该文件的元数据存放位置,并访问相应的元数据服务器,元数据服务器则为应用服务器提供目标文件的数据存放位置信息,应用服务器随即与相应的存储服务器进行交互,同时从多个存储服务器上读出数据分片,并由客户端进行数据组装。

 

 

数据冗余策略

LeoFS协议采用独立的元数据服务集群。集群内每两台元数据服务器组成工作组,各提供该组的50%元数据的访问服务以及另50%元数据的备份工作,因此系统内的所有元数据服务器均为active模式。由于元数据服务器成对工作,一个最小规模的元数据服务集群至少要包含2台元数据服务器,后期可根据存储系统的实际需求动态在线成对扩容,其系统元数据服务性能将呈准线性关系增加。

小文件在线聚合

实际应用中常遇海量小文件的存储需求。由于小文件的大小往往小于数据传输的最小块,无论有效数据量多大,都会传输固定大小的数据,使得有效数据占比低,从而导致内存、带宽的无谓消耗。且当用户读取大量小文件时,应用服务器频繁地与元数据服务器及存储服务器进行交互,导致数据访问产生较大延迟。 针对小文件存取的效率问题,LeoFS协议提供了小文件聚合传输和存储机制。将若干个小文件合并成一个数据块进行传输,减轻了读写数据压力,避免了带宽消耗,有效降低磁盘操作次数及数据访问延迟。在顺序读取大量小文件时,内存命中率高达96%以上,有效缩短了IO路径。

 

数据隔离(ESD)

  默认情况下,存储系统的所有数据资源被所有应用服务器全局共享。为了隔离不同应用之间的数据,避免其访问不相关的目录而带来非法访问以及误操作等风险,LeoFS集群存储系统提供了数据隔离策略ESD(Export SubDirectory),即通过建立存储系统的某个子目录和相关应用服务器的关联,使该应用服务器挂载后只能看到该子目录中的内容,彻底消除了非法访问渠道,有效限制了其对其它目录的访问,从而避免了非法访问及误操作。

QoS

  LeoFS协议提供了针对客户端访问的服务质量(QoS)设置功能。可设置客户端对文件系统的读写带宽、IOPS、创建/删除文件或目录、查找、读取目录列表、重命名等操作的服务上限值,使存储系统资源得到合理分配,保证核心业务不受其它业务影响,从而为用户提供更好的服务。

 

克隆和快照

LeoFS支持针对目录、文件及块设备的快照和克隆功能,支持对文件系统内的任意目录、文件及块设备创建快照或克隆(文件系统根目录除外),可在秒级完成TB级文件或目录的快照或克隆创建,且不影响前端业务。采用ROW方式的快照和克隆,避免了写放大,对数据写入性能没有影响。快照指针基于文件切片创建,修改内容后,只更新相应的切片内容,空间占用小。单系统及单目录均支持无限数量的快照和克隆存储。满足用户快速便捷的数据备份和复制需求。

分级存储及数据迁移

实LeoFS支持使用不同种类的存储设备(HDD、SSD、SAS)混建,且可根据介质、性能及容量等指标,将不同种类的存储设备进行分组,构成多个数据存储池,通过目录与相应的存储池进行关联,达到指定数据写入相应存储设备组的目的,在全局统一命名空间的条件下,同时满足高安全级别、高性能以及大容量的数据存储需求,且可有效控制硬件成本。 LeoFS支持数据在不同存储池间进行数据迁移,保持数据在目录结构中的路径不变,只改变其物理存储位置,且对前端应用透明。通常,高性能存储池用于存放访问频率高或对性能要求高的数据,低性能存储设备池用于存放访问频率低或性能要求低的数据。当数据的访问频度或性能要求发生变化时,可以根据需求将原先存放于高性能存储池的数据迁移至低性能存储池以释放高成本存储空间,反之亦可将低性能存储池的数据迁移至高性能存储池以提高数据服务性能。

 

 

克隆和快照

LeoFS支持针对目录、文件及块设备的快照和克隆功能,支持对文件系统内的任意目录、文件及块设备创建快照或克隆(文件系统根目录除外),可在秒级完成TB级文件或目录的快照或克隆创建,且不影响前端业务。采用ROW方式的快照和克隆,避免了写放大,对数据写入性能没有影响。快照指针基于文件切片创建,修改内容后,只更新相应的切片内容,空间占用小。单系统及单目录均支持无限数量的快照和克隆存储。满足用户快速便捷的数据备份和复制需求。

配额和资源统计

  默认情况下,存储系统的所有数据资源被所有应用服务器全局共享。为了隔离不同应用之间的数据,避免其访问不相关的目录而带来非法访问以及误操作等风险,LeoFS集群存储系统提供了数据隔离策略ESD(Export SubDirectory),即通过建立存储系统的某个子目录和相关应用服务器的关联,使该应用服务器挂载后只能看到该子目录中的内容,彻底消除了非法访问渠道,有效限制了其对其它目录的访问,从而避免了非法访问及误操作。

访问权限控制

  LeoFS支持针对目录、用户或用户组进行配额管理,可有效限制空间用量,避免存储资源滥用。管理员可以根据需求为目录、用户、用户组设置存储空间或文件数量使用上限,以限制用户对目录的使用。配额支持嵌套设置,默认子目录继承父目录的配额限制设置。配额对所有访问接口有效,并可在线设置、在线更改和取消且即时生效,并提供配额预警功能。用户和用户组可使用存储系统内部的用户模式,也可导入当前场景中已有的AD域用户和LDAP域用户进行配额设置和管理。

WORM

  LeoFS提供了一个长久安全存储大量数据信息的理想解决方案WORM(Write Once Read Many)。在文件创建后的一段时间(预保护期)内可以对文件进行改写,追加写,删除等操作。预保护期过后,进入了保护期,文件变为只读,以满足相关政策法规所带来的数据保留期限需求。 WORM功能的设置对象为目录,同时指定预保护时长,保护时长,最小保护时长和最大保护时长。该目录下的文件自创建开始,在预保护时长内允许读、写、改写、重命名以及删除等所有操作,最大预保护时长为68年。预保护期过后,文件将进入只读保护期,在保护时长规定的时间内,文件(包括数据和元数据信息)只能被读取,不能被修改及删除,最大保护时长为68年。

四、网络协议支持

 

  LeoFS除了支持TCP/IP网络协议栈进行服务器间的数据传送并提供数据服务外,还支持RDMA(远程数据直接存取)协议,包括基于IB网络的RDMA协议以及基于以太网的RoCE(RDMA over Converged Ethernet)协议,即在存储系统内部服务器间以及客户端与存储系统各服务器间采用RDMA协议进行数据传输并提供数据服务,从而有效降低了系统CPU开销和网络延迟。的存储介质分组管理,有效控制成本的同时,满足了用户对高性能和大容量存储的双重需求。

 

 

 

五、高性能和弹性扩展

 

  LeoFS采用前端切片技术,以及系统特有的负载均衡技术,可将应用数据访问压力平均分摊到后端所有硬盘上,在提升并发访问效率的同时,降低了硬件负载压力及损耗,为前端应用提供了一个高性能的共享存储池。 LeoFS采用了独有的在线快速扩容技术,使得存储系统的规模能够根据业务发展趋势,按需在线动态扩展存储系统的容量及性能,可在不影响应用访问的情况下将存储容量从数十TB无缝扩展至EB级,在扩展过程中整个存储系统的性能也随着容量的增加而近线性增长。利用故障自动检测和自动数据恢复机制,系统亦可在线缩减容量,被精简掉的存储节点上的数据会自动恢复到系统其他节点中,仍然保证数据冗余要求,且对前端应用透明。

 

 

六、开放兼容与协议互通

 

  LeoFS提供了完全POSIX兼容的文件访问接口、支持文件级块设备访问、以及所有常用的文件、块和对象访问协议接口,如 NFS、CIFS、FTP、HTTP、iSCSI、S3、Swift等。通过自主研发的协议转换接口和块设备驱动,系统可完全兼容Hadoop生态所有应用、容器应用、以及openstack虚拟化应用。

  LeoFS支持系统内文件、对象、大数据之间协议互通,使用统一的元数据服务对所有非结构化数据进行管理,在单一系统内不但可以实现不同数据类型的共池存储,而且实现了免数据拷贝、免格式转换的跨协议数据访问,提升了数据访问效率,节约了存储资源。在协议互通的同时,各协议100%继承了原生语义,无语法上的欠缺和限制,无性能损耗,实现了和原生协议完全一致的数据访问路径。LeoFS提供的全局负载均衡、全局快速重建以及高扩展特性,为各协议类型的数据共池及互访提供了有力保障。