首先我问一个简短的问题,下面我将对此进行详细说明: 对于不太可能丢失数据但又尽可能降低成本的家庭文件服务器,您会使用什么样的设置呢?
我目前正在考虑升级家庭服务器(当前设置的详细信息如下)。我正在寻找主要可以充当 NAS 的东西,但如果价格不是太贵,它也可以托管 Plex 服务器、VPN 服务器和其他一些小东西,那就太好了。它将存储文档、照片、音乐和视频,总共约 3Tb。我主要关心的是数据完整性,其次是速度和可用性。例如,当驱动器发生故障时,我不会介意一周的停机时间。
似乎建议对所有数据保留三份副本,其中一份在异地。就我而言,第二份副本将放在我父母家的服务器上,通过互联网同步。我将在本地外部硬盘上创建第三份副本,该硬盘仅在备份期间连接。
现在的问题是:如何保证所有驱动器上的数据一致且没有文件被更改?本地可以使用 ZFS 及其校验和来完成此操作,但这需要在单个位置使用多个驱动器,从而大大增加了设置成本。
另一个问题是如何处理数据版本控制。例如,在紧急情况下,我希望能够访问上个月的数据。ZFS 似乎也很好地解决了这个问题,但同样,只有在驱动器较多的情况下才是一个可行的选择。
目前,我使用两台 Raspberry Pi 2 作为文件服务器,每台都连接了一个外部硬盘。两台都在不同的位置,托管自己的文件,并使用 rsync 通过互联网备份到另一台。版本控制是使用硬链接完成的。在组装这些服务器时,我认为如果其中一台服务器出现故障,我只需将另一台服务器脱机,购买新的 Pi 和硬盘,然后将好的驱动器复制到新服务器即可。但是,两个驱动器都使用 ext3 格式化,我最近意识到存储数据中的错误可能不会立即被注意到。这确实让我感到震惊,因为关键是要保证数据安全。因此我提出了这个问题。
此外,当时我没有考虑到在恢复过程中唯一好的磁盘会承受很大的压力,这当然会使它更容易损坏,从而导致我丢失所有数据。基于这种推理,我不断在各处添加冗余驱动器,当然价格也因此大幅上涨。这让我回到最初的问题:在家庭存储解决方案中,什么时候才有足够的冗余?