新手问题。 我需要build立这个:
/shared
文件夹〜500GB的文件,每个〜1MB。 我有关GlusterFS的问题:
/shared
并挂载在/mnt/shared
。 每台服务器需要1GB的空间? /shared
? 如果没有安装客户端,复制是否以这种方式工作? 此外,如果有人知道任何其他方式来实现这个设置,我将非常感激。 提前致谢。
其实Gluster是完美的这种情况。 您可以获得双向复制,并且可以从任一台计算机上挂载文件系统,从理论上讲,您可以为NFS提供两倍的有效I / O容量,并在其中一个框出现故障时进行主动故障转移。
以这种方式进行活动rsync的问题是阻止由于文件locking导致的I / O。 根据您的应用程序和数据的变化,这可能是不相关的或灾难性的! 分布式文件系统具有非常特定的locking语义,可以防止这种情况发生。 即使inotify有更好的locking(当我最后一次尝试它没有),那么你的文件访问可能会阻止,取决于你的networking是否可以应付变化。 这些都是理论上的警告,但值得一看,取决于你的应用程序。
我终于设法使用GlusterFS在这两个盒子解决。 在这个过程中学到了一些东西:
option read-subvolume
的本地存储。 为了保持RAID1的完整性,GlusterFS总是检查其他卷,但实际的文件是直接从磁盘中检索的 修改客户端configuration:
# Server1 configuration (RAID 1) volume server2-tcp type protocol/client option transport-type tcp option remote-host server2 option transport.socket.nodelay on option transport.remote-port 6996 option remote-subvolume brick1 end-volume volume posix-local type storage/posix option directory /shared end-volume volume locks-local type features/posix-locks subvolumes posix-local end-volume volume brick-local type performance/io-threads option thread-count 8 subvolumes locks-local end-volume volume mirror-0 type cluster/replicate option read-subvolume brick-local subvolumes brick-local server2-tcp end-volume .....
回答我的两个问题:
它会复制在同一个盒子上的文件?
不,fs使用FUSE安装。 当前/ etc / fstab行:
/etc/glusterfs/client.vol / mnt / shared glusterfs defaults 0 0
相反,我应该直接使用文件系统,本地写/共享? 如果没有安装客户端,复制是否以这种方式工作?
不,总是使用挂载的卷进行读/写操作,直接使用文件系统可能会导致不一致。
设置rsync来做主动镜像 ,或者只是设置一个nfs共享,并让它们都从相同的实际驱动器拉动,会容易得多。