影像文件存储:医疗 金融 档案
一、小文件场景和挑战
1.1 小文件的场景
当今各行各业每天都有海量的数据产生。据IDC预测达到2025年,全球将总共产生175ZB文件。接下去5年时间内产生的数据量将会比过去几十年人类产生数据量总和还多。这些数据中大部分都是非结构化数据,其中图片这种小文件因业务需要而迅速增长。
典型的海量小文件应用场景有:
- 人工智能;
- 档案影像、金融影像;
- 医疗影像;
- 互联网UGC图片以及短视频等;
- 影视渲染制作;
1.2 小文件的存储和管理挑战
由于传统的存储系统设计和开发都面向了相对偏大的文件存储优化,而当前信息化发展趋势来看却不断产生海量的小文件特征的数据,而小文件就给存储系统带来了海量的元数据信息、复杂的目录结构以及频繁的大目录中进行文件检索操作、小文件存储之间迁移复制等诸多的现象和需求。
上述的种种现象和需求都会在传统存储系统上爆发出严重的问题,主要是:
管理难:海量小文件的存储需要制定比大文件更加性能优化存储方式;
检索慢、延时高:随着文件数量增多,目录结构愈加复杂,访问文件速度变慢;
数据备份恢复速度慢:小文件的数据由于涉及大量的元数据操作,往往会导致跨存储系统之间复制迁移的速度极为低下,从而很难对海量文件进行有效的保护;
常见存储系统的问题:
NAS存储:传统NAS文件系统元数据结构往往都采用了bitmap的管理方式。该管理方式在面向常见少量小文件的场景可以正常支持,但是在面向数亿甚至数十上百亿文件的场景,传统NAS自身所带的文件系统就无法很好的支撑所需要的性能和管理能力;
对象存储: 对象存储以打破传统的文件系统目录结构的方式来突破文件系统的文件数量和目录结构的检索效率问题,但是同时因为对象存储的接口由于其特殊性往往和很多常用的业务软件无法完全兼容,所以也就无法很好的应用到更多的应用场景中。
二、StarGFS文件系统解决方案
2.1 StarGFS并行文件系统简介
StarGFS并行文件系统是一个性能为中心,围绕简单易用、易安装以及易管理而设计的领先并行文件系统,具有高性能、高可靠、出众的小文件性能等诸多特点。
2.2 StarGFS方案特点
2.2.1 优化元数据存储和管理
元数据节点可扩展架构和配置说明
元数据服务存储有关数据的信息,例如目录信息、文件和目录所有权以及用户文件内容在存储目标上的位置。当客户端打开文件时,它向客户端提供有关单个用户文件的位置的信息,但在文件关闭之前,元数据服务不参与数据访问(即文件读写操作)。StarGFS中可以有一个或多个元数据服务。每个元数据服务负责其在全局命名空间中的独占部分,因此拥有更多的元数据服务器可以提高整体系统性能,并且以后可以添加更多的元数据服务器。
在元数据节点上,StarGFS将创建很多个元数据文件。元数据存储的介质是基于闪存硬盘单盘、RAID1或RAID10上的文件系统,因为较低的元数据访问延迟可以提高文件系统的响应能力。StarGFS元数据非常小,并且与用户创建的文件数呈线性增长。512GB的可用元数据容量可以容纳大约超过1亿个用户文件。
动态分布元数据管理
由于文件系统元数据操作占典型文件系统工作负载的一半,有效的元数据管理对整个系统性能至关重要。尽管容量和聚合I/O带宽几乎可以随时间任意伸缩由于添加了更多的存储设备,但是元数据操作涉及到更多相互依赖性,这使得元数据服务扩展更加困难。
StarGFS采用了一种基于动态子树划分的新型元数据集群体系结构,该体系结构能够自适应地、智能地将管理文件系统目录层次结构的责任分配给数个甚至数百个元数据节点。一个(动态的)分层分区在每个元数据节点的工作负载中保持局部性,有助于高效的更新和积极的预取,以提高高负载下的性能。StarGFS能够在任何工作负载下有效地利用可用的元数据节点资源,并实现元数据节点数量的近似线性扩展。
2.2.2 优化小文件数据存储技术
StarGFS创新采用了小文件容器Container聚合存储技术,将多个文件进行聚合存储。这样将多次的元数据操作整合成了一次,大大减少了元数据的操作量。十几倍的提升了小文件的读取效率。
1)像大文件一样存储和访问小文件:将多个小文件聚合成大文件存储,将小文件文件带来的随机IO转换为顺序IO,减少磁盘的寻址时间;
2)兼容POSIX标准,支持小文件动态增删改查:通过Container技术聚合后的文件同样支持修改,从而能够无缝兼容现有的任何文件存储应用场景,无需做任何应用适配;
3)小文件访问效率提升接近十倍:解决海量小文件的场景中诸多头疼的性能问题。
2.2.3 提供具备互通能力的文件和对象存储接口
文件存储具备更好的业务兼容能力、对象存储具有一定的接口简单和跨域访问调用的便捷性。为了能够同时具备两者的优势,StarGFS推出文件存储和对象存储接口功能,并且还支持按需实现文件和对象存储互通访问同一份数据的模式,从而能够兼容更多的应用场景,并且还可以提供更高的数据读写访问效率。
为了融合两种场景,StarGFS在对象系统里面加入了存储池的概念,对象的存储池分为不同的类型(普通、FS),租户基于存储池创建bucket,该bucket访问方式取决于bucket归属的存储池的模式。
文件存储和对象存储互通访问
2.2.4 提供海量文件/对象的迁移备份保护
StarGFS提供了数据迁移StarDM系统:首先是对文件进行扫描,它可以非常快地扫描文件系统,以查找自某个时间点以来修改过的文件。StarDM会动态建立修改文件的路径名列表,然后将启动并发多线程的文件同步推送,将文件从一个文件系统推送复制到另外一个文件系统,可以通过广域网或者局域网,并且同步复制过程可以选择全量增量、加密、压缩、QOS控制等。
支持不同存储系统之间数据快速高效、安全的复制和迁移,实现点对点、多点对多点之间的相互数据复制,发生意外灾难时能够对数据进行快速恢复,确保用户的业务持续性。StarDM针对海量小文件进行传输层面优化,以大文件形式传输,效率提升数十倍。
支持多数据中心之间的文件/对象数据按需安全、高效的流动
应用场景和案例
金融影像档案、医疗影像、电子档案、深度学习、互联网图片存储等都是海量小文件的典型场景。
StarGFS典型案例如下:
- (1)数字城市:超过10PB,单套存储系统存储数百亿文件;
- (2)保险影像:双录影像数据存储,存储数十亿文件;
- (3)互联网社区:存储海量UGC图片,存储数十亿文件;
- (4)互联网汽车社区:存储海量汽车图片和视频,存储数亿文件;
- (5)上海三甲医院pacs:存储医疗影像数据,长期保存;
- (6)超大规模渲染云农场:支持超过2000台计算节点,存储数亿文件检索渲染;