Ceph@home: 一只野生头足类动物的驯化

本案例研究由 Alexandre Oliva 贡献 ¶
Alexandre 是一位自由软件用户、开发者和倡导者,FSF拉丁美洲理事会成员,GNU Linux-libre 的维护者,GNU libc、GCC 和 GNU binutils 的联合维护者,Red Hat Brasil 的工具链工程师,计算机工程师和坎皮纳斯大学计算机科学硕士。
自由软件倡导者在家中使用 Ceph ¶
我长期以来一直在寻找一种分布式和复制的文件系统来存储我的数据。我也曾在大学担任系统管理员,在分布式系统实验室,以及一段时间内整个计算学院的系统管理员。在这些职位上,我负责备份,并担心磁盘故障导致数据丢失以及硬件故障导致网络中断的可能性。
随着时间的推移,我越来越喜欢存储中的冗余(我长期以来一直使用 RAID,并且是 LVM 的早期采用者),但我也希望在多个主机上保持数据同步,并在一个或两个服务器宕机的情况下完成我的工作(并让其他人完成他们的工作)。
不幸的是,保持数据同步通常需要选择一个主服务器来获取更改,然后将其传播到其他服务器,这让我不满意,因为主服务器的故障会中断客户端,并且如果备份服务器接管,可能会丢失数据;它还将大部分工作放在单个服务器上,使备份服务器大部分时间处于空闲状态——浪费了资源。
或者,启用所有主机在其本地副本上运行数据会使管理变得更加困难:如果本地副本发生偏差,很难确定要推送到其他主机的内容,并且不能自动完成。因此,这适用于我的主目录之类的东西,但其他用途不多。
由于我在容错分布式系统方面有一些背景知识,我知道我正在寻找什么来解决这个问题,但多年来我找不到任何接近满足我需求的东西。我尝试过 Intermezzo(它还没有准备好,而且从未准备好),甚至在 Red Hat 收购 Sistina 之前就接触过 GFS(它没有将商品 PC 作为存储服务器作为目标),所以我一直使用 rsync 同步的 ext-on-lvm-on-raid。
当我了解到 Ceph 及其目标时,我就知道它拥有解决我想要解决的所有问题的组件。考虑到我长期以来对自由软件的参与和开发,对我来说很明显,如果我打算从这个源泉汲取,我有道德义务帮助构建和稳定它,以便我可以使用它来积极地复制和访问我的文件从多个主机。
因此,大约 3 年前,我构建了我的第一个测试集群,并开始将当前和历史备份存储在 Ceph 中,以测试水温并消除我可能遇到的问题。现在,将近 3 年后,经过多次从头开始重建集群、多次重新配置以及似乎无穷无尽的磁盘故障和(底层)文件系统丢失——最终我帮助稳定了 btrfs :-),我终于完成了将我的整个备份历史上传到 cephfs 集群,并且现在我有足够的信心开始将实时数据存储在其中。
因此,cephfs 用于复制和简化多个主机上的更改管理是我的主要用例;我正要将 cephfs 作为许多数据的首选存储,其中一些是从其他地方备份的,一些是软件开发树,电子邮件历史记录,用相机和平板电脑拍摄的照片和视频的副本,各种自由软件发行版和软件包的下载,以及我、我妻子和女儿自己的“主目录”材料(配置文件、浏览器数据等)。
我可能会在一段时间内保留至少一个副本在 ceph 之外,并且我肯定会定期进行集群快照并进行验证,因为我经常处于最前沿,但我很高兴地报告说,在几个版本中,集群一直非常稳定,我没有遇到消失的文件或损坏的数据或元数据。
当我开始时,我也打算将 ceph 用于大学分布式系统实验室的主目录。不幸的是,我在一段时间前辞去了自愿系统管理员的职位,那时 ceph 还没有准备好用于该用例。我觉得它现在已经准备好了,所以希望我的继任者很快会采用它。毕竟,一个致力于容错、分布式系统研究的大学实验室使用容错分布式系统来保存其文件是完全有道理的。
另一个在我的个人路线图中的用例,但我还没有开始,是为我的家庭网关/防火墙/邮件服务器维护一个复制的根文件系统,以便连接到调制解调器的任何主机都可以运行该 VM 并接管此角色,以便任何服务器都不需要特殊配置,并且整个家庭网络(我依赖于我的工作和我的行动主义)都可以承受任何一台服务器的故障。或者,如果需要如此极端的状况,即使是它(目前)三台服务器中的两台服务器发生故障!
发现更多
案例研究
浏览更多 Ceph 如何为各种规模和各种行业及应用提供高效可靠存储的示例。
Ceph 在行动的案例研究用例
Ceph 的灵活性是其众多优势之一。它可以完美地适应您的存储需求,并具有行业领先的数据可用性和弹性。
探索 Ceph 的广泛用例Ceph 的优势
高效可靠的数据分发和摆脱厂商锁定只是越来越多的组织转向 Ceph 的原因之一。
发现优势