大鱼集群存储系统
大鱼集群存储系统(简称DayuFS)是由北京聚存科技有限公司研制的构建于通用硬件之上的高性能、高可靠、高可扩展的新型分布式存储管理软件。
大鱼集群存储系统的基本原理是以软件方式整合物理集群中多个独立节点上的存储资源,组成具有单一文件系统映像的存储空间;并通过良好设计的系统结构和数据分布策略,保证系统性能的高可扩展性,支持存储容量/性能的在线线性扩展。同时,系统中采用多副本的方式保证数据的高可用性,任意单一节点失效均不会导致数据丢失,数据服务的可持续正常运行。
系统主要面向海量非结构化数据应用而设计,致力于解决此类应用数据中存储量巨大、I/O吞吐率高、数据增长迅速、构建成本高、管理复杂等传统存储所面临的棘手问题。同时,大鱼集群存储系统的元数据服务集群扩展架构,还一定程度上满足海量小文件应用的需求。
基本信息
- 中文名称
大鱼集群存储系统
- 外文名称
DayuFS
- 开发公司
北京聚存科技有限公司
- 软件类型
系统软件
- 运行环境
Linux
- 客户端
Windows/Mac/Linux
架构原理
作为新型的分布式文件系统,大鱼集群存储系统充分吸取了学术界和工业界在分布式存储系统方面的多年研究成果,针对海量数据存储的核心问题:系统可扩展性及可用性,进行有针对性的研究和优化,形成了具有高可扩展、高可用、高性能的弹性体系架构。
DayuFS运行于通过网络互连的集群系统之上,通过在不同节点之上安装DayuFS的不同逻辑部件,将所有节点的存储资源整合一个的单一文件系统空间。DayuFS包含了三个主要的逻辑部件:元数据服务器(MDS)、数据服务器(DS)以及客户端(Client)。其系统结构如下图:
元数据服务器(MDS)存储和管理文件的元数据信息及目录结构信息,并实现全局统一命名空间;数据服务器(DS)以分块的形式存储文件的真实数据;客户端(Client)则是上层应用访问数据的接入点,所有上层应用只有通过客户端才能与MDS和DS进行交互,完成文件系统操作。DayuFS的主要逻辑部件均可根据应用的具体需求灵活部署,以适配不同类型的数据访问模式1。
同时,为了兼容传统网络文件服务,DayuFS还实现了NAS网关,通过该网关,可以将DayuFS以CIFS/NFS/FTP等传统网络文件协议输出。通常这些协议的客户端在大多数操作系统上均有实现,因此此类用户无需安装DayuFS的客户端软件即可访问DayuFS。
尽管系统内包含多个物理节点和功能模块,DayuFS向所有用户及访问接口提供单一的文件系统映像。不同用户通过任一访问接口,均访问到一个全局统一的文件系统目录树。用户无需了解DayuFS的底层硬件组成和模块部署情况,与传统文件系统一样,用户只需按照文件路径即可访问DayuFS的所有内容。
访问接口
访问接口是由文件系统提供的面向应用的数据访问方式。为了兼容更多类型的应用,DayuFS提供了丰富的访问接口,具体请详见下表1:
接口 | 说明 |
|---|---|
专用客户端 | 支持主流Linux/Windows/OSX |
传统NAS接口 | 支持NFS(v3/v4)/CIFS/FTP |
API编程接口 | 提供C++/JAVA编程接口 |
大数据处理接口 | 支持Hadoop大数据处理 |
SQL查询接口 | 提供文件系统元数据SQL查询 |
除了SQL查询接口,上述接口均可看到相同的文件系统内容,可以实现跨协议、跨平台的文件共享。
专用客户端
DayuFS客户端安装在客户的本地应用节点,通过DayuFS私有协议直接访问集群节点,可提供高可用、高性能的并行文件访问。DayuFS客户端支持主流的Linux,Windows和OSX操作系统。安装配置后,使用方式与本地文件系统几乎无差别,支持POSIX文件操作,传统的单机应用可不作更改直接访问DayuFS系统。此外,专用客户端还支持一些平台专有特性,如Windows客户端支持NTFS访问控制,可融入域控管理2。
NAS接口
NAS访问接口支持NFS(v3/v4)、CIFS和FTP等在企业级应用中广泛使用的网络文件共享协议,可直接替换基于传统NAS的网络应用。由于操作系统均内置接口协议支持,用户不需要安装客户端,即可直接访问DayuFS,十分简捷方便。
API编程接口
API接口可提供更好的访问效率和更丰富的文件操作功能,用户可基于APIs编写程序,高效灵活的直接访问大鱼存储系统。传统文件访问接口由于受POSIX接口限制,DayuFS的功能无法全部呈现给用户应用程序。如果采用API接口,可以提供诸如:数据位置信息、数据存储位置定制等DayuFS特有的功能,同时也避免兼容操作系统所带来的额外开销,非常适合构建大规模的数据处理、集群服务等应用。目前,DayuFS提供 C++/Java/Python API接口3。