GlusterFS 3.3.x 以降で brick として使っていないはずのディレクトリに GlusterFS をマウントしようとしたら "brick として使っています" というエラーが出る問題

brick のディレクトリに誤って GlusterFS をマウントしてしまう人が跡を絶たないので、FUSE でマウントする時にそのマウントポイントが brick になっていないかどうかをチェックするという仕様になったのだそうだ。

そして、brick かどうかのチェックには拡張アトリビュートを使っているので、「現在は brick ではない」ディレクトリであっても「以前 brick として用いていたので拡張アトリビュートが存在する」ディレクトリは "brick として使用中" として判定されてしまう。

解決策は「自分で拡張アトリビュートを削除する」ことだそうです。仮にマウントポイントとして使いたいディレクトリを /gluster とすると、

sudo getfattr -m . -d /gluster

とすることで使っているアトリビュート名の一覧が出てくるので、それを一個一個削除していけばOKです。バージョンによって使っている拡張アトリビュートは違うみたいなんですが、気持ち悪いので私はとりあえずglusterfsに関連しそうなものを全部消しておきました。こんな感じ。

sudo setfattr -x trusted.gfid /gluster
sudo setfattr -x trusted.glusterfs.dht /gluster
sudo setfattr -x trusted.glusterfs.test /gluster

あとは普通に /gluster にマウントするだけ。