在家使用ceph的开源软件的传播者
我一直在寻找一个分布式的可复制的文件系统来存储我的数据。我是一个大学的系统管理员,负责分布式文件系统实验室和整个计算机研究所(有一段时间)。在这两个位置,我关注数据备份,担心潜在的磁盘故障或者网络问题导致数据丢失。
随着时间的推移,我越来越喜欢冗余存储。(我一直使用raid,并且是lvm早期使用者)我有多台主机想保持数据同步,即使会有一到两台服务器碰巧down机我仍然想做好我的工作。
不幸的是,通常需要选择一台服务器作为主服务器,修改这台主服务器后再将这些修改同步到从服务器上。这使我感到不高兴,因为假如这台主服务器出现故障的话,备份服务器就会接管,而且可能会影响从服务器甚至丢失数据。并且经常会把大量工作放到一台服务器上,备份服务器一直处于空闲状态,真是资源的浪费。
另外,所有主机对自己的本地副本操作让数据变得更难管理。假如本地副本有了变化,确认将哪些数据推送到其它主机不是一件容易的事,并且这个事也不能自动完成。所以,这只能作为我的家目录,然后其它什么也做不了。
在有了一些具有容灾功能的分布式文件系统的背景知识以后,我清楚的知道了什么可以解决现在的问题。但是这么些年来我一直没找到一个哪怕可以接近提供我想要功能的东西。我尝试过Intermezzo(它还没有准备好,而且它从来没有准备好)。在Red Hat收购Sistina之前我曾经想过GFS(但它并没有把普通商用PC机作为存储服务器)。所以我很长时间以来一直在使用rsync同步文件,使用ext-on-lvm-on-raid作为存储。
当我一了解ceph和Ceph的设计目的后,我就知道Ceph包含的组件可以解决所有我想解决的问题。考虑到我这么长时间的在自由软件方面的参与和发展,这是显而易见的:假如我想和这个泉水,那么我就有责任来构建和稳定ceph。那样我就可以使我的文件自主复制并且从多台主机访问。
所以在差不多3年前,我构建了我的第一个存储集群并且开始存储一些当前和历史备份到ceph上,来测试ceph并且找出一些我可能会遇到的问题。现在,3年时间过去了,在大量的存储集群重新构建,文件重新配置,看似无限的磁盘故障和(潜在的)文件系统奔溃。我停止了btrfs文件系统的稳定工作。我把所有的历史备份数据放到了我的ceph集群上。现在我有足够的自信将实时在线数据也放到ceph集群上。
所以将ceph文件系统用作在多台主机上进行文件复制和减轻文件变化带来的管理上的工作量是我的主要应用案例。我就是想把ceph作为我大量数据的主存储,比如其它地方的备份,软件开发的目录,历史邮件,从相机或者平板上照下的照片视频,下载下来的各种软件包,各种配置文件,浏览器数据等,包括我的,我妻子的,我女儿的。
我可能会在ceph外至少保留一个副本一段时间。我肯定会继续使用和定期验证集群快照。因为我可能就在流血的边缘。但是很高兴的是到现在已经很长一段时间了,我还没有发现有文件丢失、数据损坏或者原数据有几个版本。
在开始的时候,我也想在大学的分布式文件系统实验室使用ceph作为家目录。但是在不久前在ceph准备好可以使用前我离开了系统管理员这个岗位,我觉得ceph已经准备好了,如果说谁在那成功使用了ceph我也会接受。毕竟,一个研究具有容灾功能的分布式文件系统的大学实验室来说用这个来保存文件是在正常不过了。
另一个案例是维护一个复制的root fs,为我服务器的网关、防火墙、和邮件服务器的家目录,所以其他主机也可以连接到调制解调器来运行虚拟并且接管这个角色。所以我的服务器不需要一个特殊的配置。(我的个人路线图,但是我还没有做到)。