我刚刚设置了 7 个 KVM 客户机,全部运行 Ubuntu 12.04 LTS 64 位最小服务器,以测试来自 Ubuntu 官方存储库的 glusterfs 3.2.5。其中两个形成镜像对(即replica 2
),其中五个是客户端。我对这个文件系统还不熟悉,想获得一些“动手”经验。
设置过程基本没有发生什么意外,直到我将以下内容输入到每个glusterfs
客户端中/etc/fstab
:
192.168.122.120:/testvol /var/local/testvol glusterfs defaults,_netdev 0 0
,其中192.168.122.120
是第一个“glusterfs 服务器”的 IP 地址。
如果我发出手册mountall
或mount.glusterfs 192.168.122.120:/testvol /var/local/testvol
CLI 上的,则mount
显示卷已成功导入。但是一旦客户端重新启动,在它恢复后,卷就不会被挂载!
我在网上搜索了一下,发现本文,但由于我没有在同一个节点上运行客户端和服务器,恕我直言,它并不严格适用。
因此,作为一个笨拙的“解决办法”,我在sleep 3 && mount.glusterfs 192.168.122.120:/testvol /var/local/testvol
每个客户端节点的 中放入/etc/rc.local
。据我所知,它似乎能够在每个节点上安装卷。
但这非常丑陋,并且我希望得到关于如何正确解决此 glusterfs-non-boot-time-mounting 问题的提示。
请注意,尽管所有节点的 IP 地址都已填入其主机名,但我使用的是第一个“glusterfs 服务器”的 IP 地址/etc/hosts
。我认为使用 IP 地址更为可靠。
--扎克
答案1
一个潜在的解决方案是向 fstab 添加更多的 nobootwait 和 direct-io-mode,请尝试以下操作:
serverip:/vol mountpoint glusterfs defaults,nobootwait,_netdev,direct-io-mode=disable 0 0
另外,检查您的 /etc/init/mounting-glusterfs.conf 并添加:
exec start wait-for-state WAIT_FOR=networking WAITER=mounting-glusterfs-$MOUNTPOINT
我希望这会有所帮助,因为我过去遇到过类似的问题并使用上述组合/配置解决了。
答案2
我想知道在 fstab 中添加一些日志是否能为您提供更多信息?请参阅管理指南中的 fstab 配置选项: http://www.gluster.org/wp-content/uploads/2012/05/Gluster_File_System-3.3.0-Administration_Guide-en-US.pdf
6.1.2.2. 自动挂载卷 要自动挂载 Gluster 卷 • 要挂载卷,请编辑 /etc/fstab 文件并添加
以下行:
HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR glusterfs defaults,_netdev 0 0
例如:
server1:/test-volume /mnt/glusterfs glusterfs defaults,_netdev 0 0
安装选项
使用 mount -t glusterfs 命令时,您可以指定以下选项。请注意,您需要用逗号分隔所有选项。
- backupvolfile-server =服务器名称
- fetch-attempts=N (其中 N 是尝试次数)
- log-level=日志级别 log-file=日志文件
- direct-io-mode=[启用|禁用]
- ro(用于只读挂载)acl(用于启用 posix-ACL)
- 蠕虫(使挂载成为 WORM - 一次写入,多次读取类型)
- selinux(在 GlusterFS 挂载上启用 selinux
例如:
mount -t glusterfs -o backupvolfile-server=volfile_server2,fetchattempts=2,log-level=WARNING,log-file=/var/log/gluster.log server1:/testvolume /mnt/glusterfs
我倾向于认为使用 IP 而不是名称更简单且更可靠。