相关疑难解决方法(0)

GlusterFS 在使用 Ubuntu 14.04 启动时无法挂载

以前我问过在 Ubuntu 12.04 服务器中启动时挂载 GlusterFS的问题,答案是这在 12.04 中存在问题并且在 14.04 中工作。出于好奇,我在笔记本电脑上运行的虚拟机上进行了尝试,并且在 14.04 中可以正常工作。由于这对我来说很重要,我决定将我正在运行的服务器升级到 14.04 却发现 GlusterFS 也没有自动挂载本地主机卷。

这是一个 Linode 服务器,fstab 如下所示:

# <file system> <mount point>          <type>    <options>                 <dump>  <pass>
proc        /proc                        proc    defaults                       0       0
/dev/xvda   /                            ext4    noatime,errors=remount-ro      0       1
/dev/xvdb   none                         swap    sw                             0       0
/dev/xvdc   /var/lib/glusterfs/brick01   ext4    defaults                       1       2
koraga.int.example.com:/public_uploads /var/www/shared/public/uploads glusterfs defaults,_netdev 0 0
Run Code Online (Sandbox Code Playgroud)

启动过程是这样的(围绕网络挂载部分,这是唯一的失败):

 * Stopping Mount network filesystems                                    [ OK ]
 * Starting set sysctls from /etc/sysctl.conf                            [ OK ]
 * Stopping set …
Run Code Online (Sandbox Code Playgroud)

ubuntu boot glusterfs ubuntu-14.04 glusterfs-3.5

8
推荐指数
2
解决办法
2万
查看次数

glusterfs 在集群服务器上启动时挂载 - RHEL 7

我已经在一对服务器上配置了 gluserfs,我可以将它安装在我的客户端机器上。当我将两台机器脱机并从头启动时,我还希望能够在引导时在两台 glusterfs 服务器上挂载 glusterfs 文件系统。

这些服务器使用起搏器设置为集群。除了共享数据库之外,pacemaker 还提供了一个虚拟 IP 地址来挂载 gluster 文件系统。

在两台服务器都使用以下命令启动后,我可以在每个服务器上手动挂载文件系统:

mount -t glusterfs nodea:/gv0 /data
Run Code Online (Sandbox Code Playgroud)

这很棒。但我希望这在启动时自动发生。

所以我尝试在 fstab 中添加一个条目:

nodea:/gv0  /data       glusterfs   _netdev 0 0
Run Code Online (Sandbox Code Playgroud)

当我在集群启动并运行后运行“mount -a”命令时,它会起作用。但是,它在启动时不起作用。(这是客户端机器在启动时挂载 glusterfs 的方式,但集群已启动并正在运行。所以当然它可以在启动时为它们工作。)

我还尝试创建一个 systemd 单元文件来处理启动时 glusterfs 的安装。我的单元文件位于名为“data.mount”的 /etc/systemd/system 中,如下所示:

# Mounting gluster fs at /data

[Unit]
Description = Automount gluster filesystem
After=pcsd.service

[Mount]
What=nodea:/gv0
Where=/data
Type=glusterfs

[Install]
WantedBy = pcsd.service
Run Code Online (Sandbox Code Playgroud)

同样,当两台服务器都通过运行命令“systemctl start data.mount”启动并运行时,这会起作用。如果我只重启集群中的一台机器,它也可以工作。但它不适用于重新启动两台服务器。

如果集群中的两个节点都出现故障,或者如果我出于某种原因想同时重新启动两个节点,我想确保当两台机器重新启动时,glusterfs 已安装在 /data 上。

作为一种解决方法,我在两台机器上的 root 的 crontab 中添加了以下几行:

@reboot sleep 60 && mount -t glusterfs nodea:/gv0 …
Run Code Online (Sandbox Code Playgroud)

glusterfs

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

glusterfs ×2

boot ×1

glusterfs-3.5 ×1

ubuntu ×1

ubuntu-14.04 ×1