V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jadecoder
V2EX  ›  程序员

有没有 library 可以像 RAID5 一样把一个文件带冗余的放到多个的文件里?

  •  
  •   jadecoder · 2015-05-26 23:46:54 +08:00 · 2749 次点击
    这是一个创建于 3476 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我指的不是分卷压缩。

    刚才看Dropbox专业版那个串想到的,国外的云存储空间略小,专业版太贵。国内的空间几乎无限,但是太没有节操。如果只是做备份的话,可以是否可以像RAID5一样,把数据分布在多个云盘中。这样每个厂家都拿不到有用的数据,可以获得近乎无线的存储空间,而且还可以防止数据丢失。

    假设用户注册了百度云,微云,360云盘,115云盘四个云存储。存储文件时分别把第1,4,7,10...个字节放在百度云,第2,5,8,11...个字节放在微云,第3,6,9,12...个字节放在360云盘。然后把相应的奇偶校验位放在115云盘里。

    需要取文件的时候,程序就分别从其中3个云盘中取出数据,合并到一起打开。如果有一个云盘挂了,还能通过冗余位恢复出来这个云盘里的数据。

    具体的实现,有各个云盘的API最好,没有的话,在本机开4个云盘,指定四个同步目录,程序直接把文件写入到那个目录里,交给官方同步。打开的时候通过程序界面打开。

    15 条回复    2015-05-27 16:58:09 +08:00
    powergx
        1
    powergx  
       2015-05-27 00:02:18 +08:00 via iPhone
    lz 在自寻死路
    billlee
        2
    billlee  
       2015-05-27 00:44:15 +08:00
    par2
    moooookey
        3
    moooookey  
       2015-05-27 00:48:34 +08:00
    风险挺大,
    用起来必然很折腾
    neoblackcap
        4
    neoblackcap  
       2015-05-27 00:51:24 +08:00
    既然网盘的容量几乎是无限的,为什么不加密然后当raid 1来用啊?其中一个挂了或者API改了我都完全不怕呢,不过其实网盘这东西我觉得更多的是一个基于对象的分布式文件系统,我们用高级的东西模拟底层的东西,我感觉怕是模拟的不是很好。
    zhicheng
        5
    zhicheng  
       2015-05-27 01:16:19 +08:00   ❤️ 1
    jadecoder
        6
    jadecoder  
    OP
       2015-05-27 01:20:57 +08:00 via Android
    @billlee 如果我没记错的话,par是独立于rar的,用来在rar损坏的时候修复rar的,也就是rar里存的是所有信息,par里有些冗余
    jadecoder
        7
    jadecoder  
    OP
       2015-05-27 01:24:01 +08:00 via Android
    @neoblackcap 加密的话,压缩解压都需要额外的时间,如果单纯做归档的话还可以,要是同时还在硬盘上,要随时用的话,有点慢吧
    jadecoder
        8
    jadecoder  
    OP
       2015-05-27 01:26:50 +08:00 via Android
    @zhicheng 看了下,过于复杂了。加密不是强需求,只要防止网盘厂商用大数据的方式利用我的数据就行了。至于百度和腾讯的管理员勾结在一起,就为了拿到我的生活照片,这种事太奇幻了
    yangqi
        9
    yangqi  
       2015-05-27 04:58:53 +08:00
    @jadecoder 你这样拆分文件不会比加密解密快,都需要把所有文件读写一边,你这个操作复杂很多,而且依赖的外围因素更多,大大增加了不稳定性,没有比直接加密解密有什么优势
    crazycen
        10
    crazycen  
       2015-05-27 07:20:34 +08:00 via iPhone
    为什么奇偶检验放在115 你可以考虑数据加密后再放入网盘!
    comicfans44
        11
    comicfans44  
       2015-05-27 07:52:43 +08:00
    也有过过相同的想法...不过后来一测试,也就是百度盘上传能满速。最终选择的是encfs+百度盘,文件名和内容加密都是加密的,在本地可以直接挂载读写。只要用百度客户端同步下加密存储的目录即可,推荐楼主试试。windows版用的是encfsmp(同时支持mac),linux版encfs 可用fuse,这样也解决了跨平台的问题。不过没有楼主需要的冗余功能。
    bengtuo
        12
    bengtuo  
       2015-05-27 09:07:52 +08:00
    单点 很严重啊 那天 哪个网盘不能用了怎么办
    est
        13
    est  
       2015-05-27 09:17:10 +08:00 via Android
    @billlee 正解!为啥没人顶这个?
    zhicheng
        14
    zhicheng  
       2015-05-27 12:16:47 +08:00   ❤️ 1
    @jadecoder 我猜你是看了一下标题,看到加密就关了吧。
    简单的说,这个算法是将你的数据分成 N 份,只要能凑齐其中 M 份就能恢复原来内容。N 和 M 可以由你指定 M < N。
    这个有个好处,单份数据无法恢复完整数据,但又不需要完整的N份。这样将一个文件分成 N 份之后,可以选择性的,把哪一份放到哪个云盘里比如用 hash 。
    jadecoder
        15
    jadecoder  
    OP
       2015-05-27 16:58:09 +08:00
    @zhicheng 谢谢你的耐心,确实很切题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2617 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:10 · PVG 15:10 · LAX 23:10 · JFK 02:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.