在创建volume的时候提示如下报错

[root@gluster-node1 ~]# gluster volume create testvol 192.168.11.139:/data/brick1 192.168.11.140:/data/brick2 forcevolume create: testvol: failed: /data/brick1 or a prefix of it is already part of a volume


找到了国外的一篇博客,据这篇博客讲。从glusterfs3.3开始 ,有一个新的变化就是会检测这个目录是否已经加入了volume。这就导致了很多gluster支持的问题。


假如你移除了一个volume的brick并且继续使用这个volume,然后重新添加之前的这个brick,这时你的文件状态就会改变。就会造成一系列的问题。它们中的大多数会引起数据丢失。


假如你重新使用一个brick的话,请确保你知道自己在做什么

解决办法就是:

setfattr -x trusted.glusterfs.volume-id $brick_path
setfattr -x trusted.gfid $brick_path
rm -rf $brick_path/.glusterfs
[root@gluster-node1 data]# setfattr -x trusted.glusterfs.volume-id /data/ctdb/         
[root@gluster-node1 data]# setfattr -x trusted.gfid /data/ctdb/ 
[root@gluster-node1 data]# rm -rf /data/ctdb/.
./          ../         .glusterfs/ 
[root@gluster-node1 data]# rm -rf /data/ctdb/.glusterfs
[root@gluster-node1 data]# service glusterd restart
Starting glusterd:                                         [确定]

不要担心提示说 属性不存在,只要它不存在,那它就处于健康的状态

最后,重启一下glusterfs来确保它并没有“记起来”旧的bricks


有些可能翻译的不到位,可以查看原文

https://joejulian.name/blog/glusterfs-path-or-a-prefix-of-it-is-already-part-of-a-volume/