首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Debian拉伸上挂载gfs2文件系统,可能是吗?

无法在Debian拉伸上挂载gfs2文件系统,可能是吗?
EN

Unix & Linux用户
提问于 2018-04-22 16:44:40
回答 1查看 1.9K关注 0票数 2

我正在Debian拉伸上尝试使用gfs2,并且遇到了一些困难。我是一个相当有经验的Linux管理员,但对共享磁盘和并行文件系统来说还是个新手。

我当前的项目是将gfs2 2格式的iscsi导出设备作为共享文件系统安装在多个客户端上。就目前而言,我对医管局或击剑不感兴趣,虽然这可能稍后会很重要。

iscsi部分很好,我可以登录到目标,将其格式化为xfs文件系统,还可以将它挂载到多个客户端上,并验证它是否与相同的blkid一起显示。

为了做gfs2业务,我遵循Debian扩展的"gfs2“手册页上的方案,该手册页是为我的配置修改的,并通过各种搜索等方式稍微修饰了一下。

手册页在这里:https://manpages.debian.org/stretch/gfs2-utils/gfs2.5.en.html

实际错误是,当我试图挂载我的gfs2文件系统时,挂载命令将返回

代码语言:javascript
复制
mount: mount(2) failed: /mnt: No such file or directory

..。其中/mnt是所需的挂载点,这当然是存在的。(如果试图挂载到不存在的挂载点,错误是“挂载:挂载点/wrong不存在”)。

在每次挂载尝试中,dmesg报告:

代码语言:javascript
复制
gfs2: can't find protocol lock_dlm

我简要介绍了假设Debian包不提供“/sbin/mount.gfs 2”的问题,并进行了查找,但我认为这是一个错误的猜测。

我有一个五机集群( Raspberry Pis,万一重要),命名为pio,pi,pj,pk和pl。它们都有固定的静态IP地址,而且没有域。

我已经安装了Debian gfs2、corosync和dlm控制包.

对于cor产c步骤,我的corosync配置是(例如,对于pio来说,它是集群的主人):

代码语言:javascript
复制
totem {
      version: 2
      cluster_name: rpitest
      token: 3000
      token_retransmits_before_loss_const: 10
      clear_node_high_bit: yes
      crypto_cipher: none
      crypto_hash: none
      nodeid: 17
      interface {
              ringnumber: 0
              bindnetaddr: 192.168.0.17
              mcastport: 5405
              ttl: 1
      }
}
nodelist { 
      node {
              ring0_addr: 192.168.0.17
              nodeid: 17
      }
      node {
              ring0_addr: 192.168.0.11
              nodeid: 1
      }
      node {
              ring0_addr: 192.168.0.12
              nodeid: 2
      }
      node {
              ring0_addr: 192.168.0.13
              nodeid: 3
      }
      node {
              ring0_addr: 192.168.0.14
              nodeid: 4
      }
}
logging {
      fileline: off
      to_stderr: no
      to_logfile: no
      to_syslog: yes
      syslog_facility: daemon
      debug: off
      timestamp: on
      logger_subsys {
              subsys: QUORUM
              debug: off
      }
}
quorum {
      provider: corosync_votequorum
      expected_votes: 5
}

该文件存在于所有节点上,对图腾部分中的nodeid和bindnetaddr字段进行了相应的节点特定更改。

Cor产c工具在所有节点上都没有错误地启动,并且所有节点也都有来自corosync quorumtool的正常输出,因此:

代码语言:javascript
复制
root@pio:~# corosync-quorumtool 
Quorum information
------------------
Date:             Sun Apr 22 11:04:13 2018
Quorum provider:  corosync_votequorum
Nodes:            5
Node ID:          17
Ring ID:          1/124
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   5
Highest expected: 5
Total votes:      5
Quorum:           3  
Flags:            Quorate 

Membership information
----------------------
Nodeid      Votes Name
         1          1 192.168.0.11
         2          1 192.168.0.12
         3          1 192.168.0.13
         4          1 192.168.0.14
        17          1 192.168.0.17 (local)

安装了dlm-controld包,并通过以下简单配置创建了/etc/dlm/dlm.conf。再说一遍,我现在跳过击剑了。

所有节点上的dlm.conf文件都是相同的。

代码语言:javascript
复制
enable_fencing=0

lockspace rpitest nodir=1
master rpitest node=17

我不清楚DLM的“锁空间”名称是否应该与cor产c集群名称相匹配。不管怎样,我都看到了同样的行为。

dlm-controld服务启动时没有出现错误,"dlm_tool状态“的输出看起来很正常:

代码语言:javascript
复制
root@pio:~# dlm_tool status
cluster nodeid 17 quorate 1 ring seq 124 124
daemon now 1367 fence_pid 0 
node 1 M add 31 rem 0 fail 0 fence 0 at 0 0
node 2 M add 31 rem 0 fail 0 fence 0 at 0 0
node 3 M add 31 rem 0 fail 0 fence 0 at 0 0
node 4 M add 31 rem 0 fail 0 fence 0 at 0 0
node 17 M add 7 rem 0 fail 0 fence 0 at 0 0

gfs2文件系统是由以下人员创建的:

代码语言:javascript
复制
mkfs -t gfs2 -p lock_dlm -j 5 -t rpitest:one /path/to/device

在此之后,"blkid /path/ to /device“报告:

代码语言:javascript
复制
/path/to/device: LABEL="rpitest:one" UUID=<stuff> TYPE="gfs2"

在所有的iscsi客户机上它看起来都是一样的。

此时,我觉得我应该能够在任何/所有客户机上挂载gfs2文件系统,但是这里是我在上面得到错误的地方--挂载命令报告了一个“没有这样的文件或目录”,以及dmesg和syslog报告"gfs2:无法找到协议lock_dlm“。

还有一些其他的gfs2指南,但其中许多似乎是RH/CentOS特有的,对于其他集群管理方案,比如cman或心脏起搏器。这些不一定是交易的打破者,但这是高价值的工作,对我来说,这项工作几乎股票Debian拉伸。

在我看来,这可能是一个非常简单的dlm错误配置,但我似乎无法确定它。

附加线索:当我试图“加入”一个锁空间时

代码语言:javascript
复制
dlm_tool join <name>

..。我得到一个dmesg输出:

代码语言:javascript
复制
dlm cluster name 'rpitest' is being used without an application provided cluster name

这是独立于我加入的锁空间是否是“最快”的。这表明锁空间名称和集群名称确实是一回事,而且/但是dlm显然不知道cor产c配置?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-04-24 06:09:33

来自config GFS2_FS_LOCKING_DLM的Kconfig文档:

GFS2的大多数用户都需要这样做。它提供了GFS2和DLM之间的锁定接口,在集群环境中使用GFS2是必需的。

因此,请确保启用了它,否则用-p lock_dlm (gfs2_mkfs中的默认锁协议)创建的文件系统将无法使用(如果没有挂载时间覆盖)。lock_nolock锁协议只适用于单节点挂载。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/439311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档