目前我们面临这样的问题。海量的细小文件。备份起来效率低下。速度非常慢。
似乎现在一个比较有效的方式是对整体磁盘进行镜像备份来提高备份速度,但存在的问题就是无法对文件进行颗粒度的恢复,一旦某个文件出现问题。可能恢复起来就很麻烦。
大家还有没有了解的更好的对海量文件处理的方案呢
1.变长块分割技术与数据精准去重
对非结构化数据,特别是海量小文件的备份,采用了变长块分割的重删技术。因为海量小文件的数据变化情况复杂,采用固定块分割,常导致整个备份数据需要重新进行分块,而变长块分割只针对变化的数据做分割处理,解决了固定块分割中把没任何变化的数据重新分块而导致去重率低的问题,不仅大大降低了数据分割处理上对客户端计算资源的占用,并且保障了海量小文件的最佳数据重删效果。
2.多通道并行备份与倍数提升效率
文件备份通道建设上采用了文件索引与数据备份并行处理、多通道并行备份数据采集等技术手段,使备份效率呈倍数提高。就像水库排水时,建设多条水管并行抽水,能够有效提升排水效率一样。
3.文件索引与数据备份并行处理
对于GB数据量级别的文件备份处理,常规做法是在一个进程中进行串行处理:先遍历需要备份的文件,建立文件索引,再进行文件数据备份。但在海量文件数据中,往往存在小文件较多、文件目录层次深等情况,文件遍历并建立索引需要耗费很长时间,以串行方式处理,备份效率低。
对于文件备份的处理,则是把文件索引和数据备份分离到两个不同的进程中并发处理,即系统在遍历文件目录时,一边为文件建立索引,一边对文件进行备份,这样就可以大大缩短文件数据的备份时间和效率。
4.多通道并行数据备份
在对文件进行备份数据采集处理中,采用多通道并行技术,即系统基于流水线方式,在遍历出需要备份的文件,建立文件索引,然后把需要备份的文件信息分片,配送到各个数据备份通道中,备份数据通过多个通道并行传输到存储服务器存储。
多通道并行的处理方式难点在于文件信息分片后通道配送的策略,以及多通道备份后的备份集在恢复时的数据整合处理。利用自研制算法,自动监测通道占用情况,把备份数据均衡分配到各个空闲通道。在数据恢复时,又将根据备份时分片信息把数据恢复到原文件目录中,高效安全。
5.服务端自动合成与少占客户端资源
针对海量文件的备份,尤其是海量小文件的备份,合成备份是最佳的备份策略。解决了传统周期性“完全备份+增量备份”策略存在备份时间长、大量占用了客户端主机计算资源、I/O资源和网络资源、影响核心业务的正常运行等系列问题。
对文件进行合成备份,即执行一次完全备份,后续每次进行增量备份。简单来就,就是将会基于第一份全量备份数据和随后的增量备份集进行合并,生成新的全量备份数据,然后,再定时把新生成的全量备份集和增量数据集进行合并,再生成新的全量备份数据,以此循环处理。
我之前在项目中遇到过这样的情况,一般像媒资行业,监控系统等这种大量的视频、文档、达到一定的规模级别基本上不考虑用备份一体机等备份,采用归档的方式进行离线的归档备份,如磁带库、光盘库等,这个主要看数据级。
收起对大文件效果好吗?是实时备份吗?
能不能在前端将小文件打包压缩,然后做一个备份。这样或许能提高备份的效率;
1)海量小文件不建议上带,哪怕是nbu这种磁盘或者虚拟带库备份。如果在nas上,本地数据做快照,要恢复单个文件可以直接进入快照目录找到指定快照时间点,copy单个文件即可出来即可。 异地备份通过vault的方式。vault也可以只读挂载,单个恢复文件。
2)如果用对象就更方便了,副本方式还带文件版本管理
hello
需要明确几点
1、现有存储架构以及拓扑结构
2、海量小文件数量和总的存储容量
3、希望达到数据级备份目标?还是有更高要求?
4、现有存储是SAN还是NAS 是否可以改为对象存储
5、工具+对象存储方案是否接受?
欢迎交流讨论
收起从IO看可从从三个层面看待,存储层、文件系统、文件,对应的效率有所不同。
(1)存储层,如果使用了对象存储,可使用存储系统自身的功能进行备份(如ssnapshot)
(2)文件系统层,即备份整个文件系统(对应于windows的卷),效率高,缺点是会将该文件系统上无关文件进行备份备份;2.恢复粒度较大,不过如果有对应文件系统的驱动支持,可以做到文件级恢复
(3)文件层,看文件分布,如果存在大量的类似数据,可用源端数据重删技术来缩短备份窗口.
从传输角度看,可通过提高网络传输性能,如使用万兆网络或者lanfree来提高传输性能.
从备份程序看,可使用多线程提高并发量