跨几个服务器的镜像文件系统


13

我正在寻找一种在多个Linux服务器上镜像或复制一个目录(或一个文件系统)的解决方案。理想的解决方案是允许所有服务器进行读写访问的解决方案。我还希望它具有弹性,如果其中一台服务器出现故障,其余服务器仍然可以正常工作,而不会丢失任何数据。

我一直在寻找一些解决方案:

  • DRBD:块级复制,似乎有点过大;
  • lsyncd:看起来很简单,但是我对性能有疑问;
  • GlusterFS:看起来这将是一个不错的选择,但尚未弄清楚复制模式的工作原理。它会具有我要求的特性吗?

欢迎其他任何建议。


您是否正在寻找无共享设置,还是将所有服务器都连接到相同的后端SAN?
HampusLi 2011年

从逻辑上讲,它什么也不共享(实际上是带有EBS的EC2)。
vartec

Answers:


6

我要问的第一个问题是,是否要将其复制到两个服务器或两个以上的服务器?对于两台服务器,我将使用DRDB,对于三台或更多服务器,我将使用gluster。

如果I / O延迟不是关键问题,我将使用gluster。它很容易设置,可以清楚地完成您需要的操作。您需要做的就是使一台gluster服务器在所有三个盒子上提供文件,然后使每个盒子充当安装文件的gluster客户端。

要在具有3个或更多服务器的master <-> master模式下工作,DRDB将变得很复杂。您必须配置基于环的设置,我不建议您这样做。但是对于两台服务器,DRDB很棒。Master <-> Master模式的设置并不复杂,您无需学习任何文件系统知识。

lsycd非常适合主/从设置,但是您似乎不需要这样做。

Ceph仍然很新,上次我检查它甚至还没有fsck支持。我宁愿将基础架构建立在更稳定的基础上。

Lustre是用于大规模部署的出色产品,但是您需要为mds服务器设置心跳和故障转移,否则将有单点故障。鉴于服务器数量有限,他在谈论的是我怀疑它在这种情况下的过大杀伤力。


最初,我将仅从每个群集2个服务器开始,但是我希望可以选择具有2个以上的服务器进行横向扩展。您描述的gluster设置是否可以处理其中一台服务器崩溃?添加额外的服务器会很容易吗?
vartec


2

您应该研究一下OpenAFS,它是一个主要是分布式的文件系统,它允许在整个集群中分布多个数据副本,并且每个人都可以同时读取/写入FS。

它还具有许多其他有用的功能(良好的身份验证,在线加密,客户端上的内置本地缓存,本机Windows客户端,可在许多版本的unix上移植等)

但是,设置起来有点繁重。


与NFS相同的问题:“允许多个副本”。可以,但是实际上可以同步这些副本吗?
vartec

是的 而且,尽管很烦人,但有可能从丢失主要主机中恢复过来。但是,拥有多个编写器并将结果块存储在多个主机上是微不足道的。
克里斯,

理解OpenAFS的关键是它是一个缓存管理系统-有一个命名空间(即,只有一个“文件”存在),但是到处都有文件的缓存副本,以及一个确保所有缓存副本一致的协议。如果您丢失了原版,则可以将其中一份缓存副本转换为原版,但是在这种情况下并不理想。
克里斯,

1

根据您的需要,NFS也可以正常工作。


AFAIK,NFS没有提供安装复制服务器的方法,但没有提供复制本身的方法。但是我已经很长时间没有使用NFS了,所以也许这已经改变了。您可以链接到描述这种设置的NFS文档吗?
vartec

一个让我烦恼的方法是将Dirs复制到几台nfs服务器,其中一台具有主要vip,如果其中一个发生故障,则在服务器之间迁移vip。或轮循DNS。NFS本身可能无法满足您的所有需求,但结合心跳信号或Red Hat群集服务,可能正是您所需要的。我不确定原始问题是否包含所有要求。您甚至可以在多个服务器上进行rsync,比如说每小时左右,这是一个非常快速,简单的解决方案。
lsd

跳过有关rsync的部分。它可以进行复制,但主要用于只读设置,不符合您的要求。我本意在上面编辑我的评论,但它不允许我这样做。
lsd

1

使它与DRBD一起使用将非常困难-问题不是因为n8whnp似乎认为与多路复制有关的问题(您只需在镜像集中使所有节点条带化)而是并行控制的-您d需要在DRBD之上的镜像之上运行群集文件系统。

lsyncd甚至更糟,因为没有用于并发控制的实际解决方案。

我建议使用AFS类型的解决方案(AFS,OpenAFS)作为成熟,稳定,开放的解决方案。自从Oracle关闭以来,我将不再保持任何光泽。我对glusterfs不太熟悉,但是因为它依赖于分布式存储而不是复制存储,所以我建议您仔细研究一下它在裂脑操作中的行为(AFS OTOH设计为在断开模式下工作)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.