对于接近百万数量的零碎小文件的多机备份和单/双向同步有啥好方案没

2015-04-06 17:42:43 +08:00
 wangluowangwang

环境是Windows Server,要求如下:

1 服务器多硬盘 主备 不同硬盘间双向实时同步备份
2 与其他备份服务器定时或者实时数据同步
3 不能占用大量IO资源

目前遇到问题如下:
1.大多数备份软件对于此数量级别的,要么吃满所有IO资源,要么根本无法对这些级别的文件进行备份(包括遗漏/同名文件修改后还是当成旧文件)。
2.不支持多机备份。

有什么好的方案没

8893 次点击
所在节点    DevOps
21 条回复
9999999999999999
2015-04-06 18:51:22 +08:00
Btrfs
twd2
2015-04-06 19:36:26 +08:00
存mongo数据库里配置主从 呵呵^_^
Havee
2015-04-06 20:28:57 +08:00
windows 下不清楚,linux 下我知道 cpio 就是为备份而生的

至于大量小文件要求不吃 IO 的话...NTFS 下是不可能的
st3488
2015-04-06 20:39:49 +08:00
我们是几个用的server上 搭建一个分布式文件系统,前段做一个索引这种方式存储千万级小文件的。
VirgilMing
2015-04-06 21:49:03 +08:00
随时都有百万级的流量?所有文件都会变化?应该不至于这么严苛吧。
专门腾一块内存做虚拟盘用于缓冲。不大量 IO 简直是不可能的。
ryd994
2015-04-06 23:05:40 +08:00
raid+nfs?
clino
2015-04-06 23:11:34 +08:00
@st3488 用什么分布式系统?
ericFork
2015-04-07 00:07:03 +08:00
Windows Server 下的方案可能只有商业方案才能达到你的需求了
likuku
2015-04-07 00:17:55 +08:00
@9999999999999999 Btrfs...2012年就测过,直到2014年这玩意依然一坨屎,某次机器重启之后,差点废掉我司一个svn库。还好后来小朋友发觉 read-only mount 后可以正常读取,速度数据备份出来改换 EXT4。

目前类似功能/性能的,可用就是ZFS,能和ZFS匹敌的也只有ZFS。

不怕死,想当烈士的,大胆尝试 btrfs,不用谢。
likuku
2015-04-07 00:18:57 +08:00
@clino hadoop 也是可以当分布式文件系统来用的。
mhycy
2015-04-07 01:43:31 +08:00
某些防篡改拷贝软件/文件分发软件可以在驱动层截获修改信息然后同步到另一台服务器进行同样的修改

本地硬盘热备请用raid1
powergx
2015-04-07 02:06:16 +08:00
机械硬盘 iops 166,单片硬盘同步100万文件需要1.67小时满io,如果放进ssd,3w的iops 就只要几分钟。建议两边都是zfs,硬盘raid10
msg7086
2015-04-07 08:31:14 +08:00
楼上的某几位亲。卤煮要求用 Windows Server 啊。
Linux的话,试试分布式文件系统呗,比如 GlusterFS 之类的?
raptor
2015-04-07 09:56:14 +08:00
ZFS+1
raptor
2015-04-07 09:56:45 +08:00
顺便,珍爱生命,远离windows
Septembers
2015-04-07 10:24:34 +08:00
Admstor
2015-04-07 13:17:25 +08:00
1.硬盘直接RAID了,难道你还认为人工干预从一个硬盘复制到另外一个硬盘更安全吗?RAID1或者RAID10,看你数量和容量决定

2.windows定时备份也可以直接打包传输,什么传输你就自己看着办了,FTP,SFTP,SSH都可以,甚至上win版的rsync

3.不占用IO是不可能的,既然是备份那定然是全部都要读取一边,不然叫什么备份...增量式备份也是需要做对比的,除非有win下驱动级,拦截硬盘修改操作,然后生成差异文件

========
你们这种情况我建议存储单独隔离出来
上iSCSI这个win也支持,用起来和本地也没啥区别
AntiGameZ
2015-04-07 13:49:41 +08:00
如果 CWRSYNC 和 Bittorrent Sync 也解决不了你的问题,你就只能自己写一个了
wangluowangwang
2015-04-07 14:31:01 +08:00
@msg7086 嗯 Windows上实现确实挺麻烦的。


@Admstor raid外的备份。RAID只是单机备份。要实现多机备份。

打包时间不少。不是说不能占用io,而是占用到什么程度。
msg7086
2015-04-07 16:29:41 +08:00
@Admstor
1. 备份只用单机备份是笑话。RAID不是备份用的,是高可用性用的。
2. 文件量大了是个问题
3. 备份为什么一定要全部读取一遍?
你不会不知道像rsync这种工具都是只对比文件大小和修改时间的吧?
除非你强烈要求对比hash才会全部hash一遍的。
=====
iSCSI就更扯了。原本的文件系统做备份好歹是文件级的,现在你搞成块级,那备份才叫一个痛苦呢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181915

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX