听我说
我见过有人问过这个问题(以不同的形式)这里,这里,也许我发现的最好的一个是这里,但我不认为这是重复的,因为这些问题已经过去了很长时间,而且我的问题有其自身的细微差别,可能会帮助其他处于类似情况的人。请听我说完。
背景
我的问题来自于许多优秀的分布式文件系统,它们宣称自己很棒,但我怀疑并不是所有文件系统都是我需要的。
我看过了在这个很棒的列表中了解可用的建议,但不确定哪一个适合我的需求。
用例
该服务器的目的是保证我的数据安全并可供一般使用。我将用它来存储我的个人备份以及 Nextcloud、Gogs 和我将来自行托管的任何其他内容存储和使用的数据。
我正在寻找
我正在寻找一个分布式文件系统:
- 防止位衰减
- 具有擦除编码(或至少是数据复制,因此驱动器故障不会中断使用)
- 扩展能力
- 从 1 台服务器到更多服务器
- 从 2 个硬盘到更多硬盘
- 可以通过连接保险丝
强大的 API 和易用性是其巨大的优势。
我当前的硬件
这可能并不重要,但它可能有助于提供实施方面的建议。
我目前有一台 Raspberry Pi、一块 2 TB 硬盘和一块 4 TB 硬盘。我计划在不久的将来再添加一块 2 TB 硬盘,并在遥远的未来添加更多带有更多硬盘的服务器(现在资金紧张;我是个穷大学生)。
我目前提出的解决方案
我对此进行了大量研究,并且发现这有点超出我的理解范围,但以下是我目前得到的结果:
我认为,就灵活性而言,Ceph 目前是我最好的选择,而且它看起来很稳定。
我的计划是将 BTRFS 放在驱动器上以处理位衰减,然后运行 Ceph 作为单节点集群以便以后扩展。
关于这将如何运作的问题
对于我提议的设置,我有一些具体的问题:
- 我知道 BTRFS 可以具有位腐烂保护,但这是默认的吗?我需要做什么才能启用它?
- 我知道驱动器大小不一致可能会出现问题(一个 2 TB,一个 4 TB),但是在我获得另一个 2 TB 驱动器之前它可以正常工作吗?
谢谢
非常感谢您读到这里:)
答案1
在过去的几个月里,我想我已经发现了足够多的东西来回答这个问题。
首先,Raspberry Pi 的使用时间有限,最终我升级到了一台配置很好的真正的电脑。我决定,我只有两种选择,北卡罗莱纳州和头孢。
北卡罗莱纳州
对于具有多个磁盘的单个节点来说,这是最佳选择。稍后升级到 Ceph 以利用其分布式功能并不太难,并且让 BTRFS 工作起来非常容易。
它很棒的一些原因如下:
- 自动防止静默位腐烂。如果存在校验和错误,则会引发错误。
- Raid 1 中的自动位腐烂修复。它将检测错误,并使用来自 raid 1 阵列中另一个磁盘的正确数据覆盖任何错误的数据。
- 实时处理 BTRFS 非常简单。命令行工具非常棒。
- 可以处理不同大小的磁盘,但有时会导致未使用的空间。
头孢
- 可以在节点之间分布。
- 还具有通过 BlueStore 进行 bitrot 保护的功能。
- 与其他产品相比,占用的内存和处理能力较多。可能是因为功能强大。
我决定做什么
由于我仍然只有一个节点,所以我有一个 BTRFS raid 1 阵列,其中包含一个 2 TB SSD 和两个 1 TB SSD。这很好用,以后添加 2 TB SSD 也很容易。
我计划在拥有更多服务器并且更有意义时切换到 Ceph。那时移动数据应该不会太难。唯一的问题是是否有足够的可用存储空间来将其从一个地方移动到另一个地方。