分布式、去中心化的数据共享和备份

分布式、去中心化的数据共享和备份

考虑以下场景:您有一个由分散在全球各地的几个人组成的团队,需要处理相同的数据。团队中的每个成员都有一份他需要的数据副本。当有人对某些数据进行更改时,他需要将这些数据同步给处理相同数据的其他成员。此外,团队成员拥有的某些数据是“私有的”,也就是说,这些数据只对单个成员有用(因此只有一个副本),但它将来可能对其他成员有用,因此备份副本会很有用。

鉴于这种情况,我正在寻找一种方法来实现去中心化共享(即某种存储驱动器,无论是本地还是通过网络),所有具有访问权限的用户都可以对其进行读取/写入。(我们目前谈论的是 3-4 个用户,但在不久的将来可能会增加)

“分散化”是指我们没有可以运行传统共享的服务器,因此它必须直接在我们的计算机上运行(而且这些计算机经常处于关闭状态)。这意味着即使当时没有其他节点可用,每个本地共享也应该能够工作。

我们需要它有很多原因,但主要是因为:

  1. 我们每天都要处理(读取/修改/写入)大量数据,我们希望同步这些数据
  2. 我们有很多数据(多个用户之间共享或私人数据),我们希望有一份备份,可能是远程备份
  3. 每次我们需要/修改某个数据时,我们的连接速度不够快,无法从/向某个服务器或另一个节点拉/推所有内容(透明本地缓存、差异压缩)

我们大多数人都在使用 Windows 机器,因此最好使用与 Windows 兼容的解决方案。有什么想法吗?

答案1

这个问题问得真好!这个主题可能会让人困惑,因为有太多不同的技术和选择。正如您所指出的,其中很多都无法满足您的特定要求。

本地分布式存储-持续文件同步

据我了解,你有几个人分别负责他们自己的本地硬盘包含TB 级数据。但您希望它像只有一个硬盘一样工作对每个人来说都是一样的,而且是本地化的. 如果一个人添加或更改了一个文件,则所有用户几乎都会立即在其本地硬盘上看到该新文件或更改。

ViceVersa 软件 - 49.95 美元

我相信 TGRMN Software 的 ViceVersa 软件可以为您做到这一点: http://www.tgrmn.com/web/file_synchronization.htm 每位用户 59.95 美元(2-5 位用户每人 49.95 美元)的价格确实很实惠。它仅限于 MS Windows。(我对 TGRMN 没有经济利益,但对通过 Web 同步和备份很感兴趣。)

它确实是去中心化的。您可以设置 WAN,大概是 VPN。(但请参见下面的 PogoPlug 更简单的选项。)在每台 PC 上,您可以设置要双向同步的目录。我相信您希望将其设置为最新文件覆盖其较旧且未更改的对应文件。ViceVersa 非常智能,如果源和目标上的文件都发生了变化,您可以手动协调冲突。

同步时文件冲突

在去中心化、同步的世界中,文件冲突可能是一个大问题。你需要做出明智的选择如何处理删除。如果您删除了一个文件,您是否希望将其从所有其他 PC 中删除?如果其他人正在处理文档,而您在他们将其保存到磁盘之前将其删除,您希望发生什么?我相信 ViceVersa 为您提供了所有选项,但您需要了解它们的效果并明智地选择。

我对这种情况很好奇。假设您的 WAN 上的三台 PC 上各有一个 Docs 文件夹:A、B 和 C。您在 A 上的 Docs 和 B 上的 Docs 之间设置了连续的双向同步。B 和 C 之间设置了相同的同步。C 和 A 之间也设置了相同的同步。

现在,您在 A 上的 Docs 中添加一个文件。假设它首先同步到 B,然后由于连接速度较慢而稍后同步到 C。因此,现在 B 尝试将文件同步到 C,但假设 C 已经获得该文件并即将将其同步到 B。让 B 和 C 都认识到他们各自拥有相同的文件并且不需要同步它,这一点非常重要。

您可以使用 PogoPlug 或其他设备作为集线器来避免由这些三向连接引起的任何潜在问题。

使用 ViceVersa 与 PogoPlug 或 NAS 作为集线器

如果您想避免设置 VPN 和在每对计算机之间设置同步的复杂性,这里有一个可能有用的选项。您可以让插入 PogoPlug 的大型 USB 驱动器甚至多个 USB 驱动器在所有个人电脑上显示为驱动器号。(亚马逊的 PogoPlug 价格合理,约为 80 美元。)

看:www.pogoplug.com

在每台 PC 上设置 ViceVersa,使其与 P: 驱动器(PogoPlug 上的 USB 驱动器)同步。驱动器只是充当中间人。您可以对 NAS 设备执行相同的操作,但 PogoPlug 的设置和连接非常简单。您的任何一位用户都可以通过将其连接到电缆调制解调器或交换机上的端口来托管 PogoPlug。您无需启动并运行 PC 即可使用 PogoPlug。它不连接到 PC,而是直接连接到互联网。

Aspera 有一张很好的图片展示了这种配置,但是中心不是一台大型服务器,而是一台价值 79 美元的 PogoPlug 和多个 TB 的 USB 驱动器:

www.asperastaging.info/images/connect_deployment_thb.png

潜在的替代方案

我遇到了一些潜在的替代方案,但没有一个像 ViceVersa 和 PogoPlug 那样有前景、简单且实惠。

FileReplicationPro 糟糕的网站,至少在 FireFox 中是如此 $495.00

www.filereplicationpro.com/_cart/products.cfm

阿斯佩拉

www.asperastaging.info/en/products/client_software_2/aspera_connect_8

同行软件

www.peersoftware.com/purchase/registration.aspx

顺便说一句,这是我在 Super User 上的第一篇文章。我希望大家觉得这篇文章很有用,尽管篇幅很长,但还是值得投票的!

答案2

当你拥有大量数据或不想将数据存储在第三方服务器上时,另一种可能性是构建自己的 Dropbox:

http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/

答案3

为此,我使用 NAS 设备。

网络存储

最好的(也是最昂贵的)似乎是 Synology 或 QNAP,但有很多供应商。NAS 设备的价格和容量范围很广。其中许多设备支持至少具有 RAID-0 或 RAID-1 的多个磁盘,并且可以备份到其他 NAS 或文件服务器。

我个人更喜欢不需要在 PC 上安装特殊客户端软件且支持 Windows、MAC 和 Linux 客户端的 NAS。

对于少数 PC 来说,像 Synology DS210J 这样的产品可能值得考虑,但这不是产品推荐 - 有很多好的品牌和很多好的产品。

另一种可能性是租用基于互联网的在线云存储。例如 Amazon S3、Google Storage、Mozy、DriveHQ、I2drive...

本地分布式存储

可能存在一个能够在间歇活动的计算机之间维持数据一致可用性的分布式文件系统,但我怀疑其设置起来可能比 NAS 更困难。


Surfnet 有一个有趣的概述

比特流

参见维基百科比特流和这个文章如何与朋友(私下)共享大文件。

答案4

最简单的方法是使用Dropbox. 它会自动同步共享文件夹并创建备份。

相关内容