💬

CephFSの削除方法(mimic)

2021/08/11に公開

環境

  • Ceph mimic

何がしたかったのか

CephFS は Ceph クラスタにひとつしか作れない(複数ファイルシステムはまだ experimental)にも関わらず

複数作りそうな名前で作ってしまったので、名前を変えたかった。cephfs のリネーム機能はなさそうなので、作り直しをすることにした。

手順

以下のコマンドで可能です。MDS が複数いる場合は、全部 fail させる必要があります。

ceph mds fail 0; ceph fs rm <cephfsname> --yes-i-really-mean-it

全部やり直したければ、cephfs に紐付く pool も削除して下さい。

なお、MDS は、CephFS 専用なので、データの損失は発生しません。(CephFS 内のデータは消えますが)

背景

単純に、 ceph fs rm <cephfsname> とやってしまうと

Error EINVAL: all MDS daemons must be inactive before removing filesystem

と怒られます。ググってみると、 ceph mds stop だとか service ceph mds stop とか出てくるのですが、

Error ENOTSUP: command is obsolete; please check usage and/or man page

ということで obsolete らしいです。何も起きません。

では、止めずに削除すればよいのかと ceph mds rm 0 と実行してみても、削除されるような表示はされますが、削除されません。多分、最後のひとつなので削除できないのだろうと思われます。

では、どうやったら CephFS を消せるのかとググりまくった結果たどり着いたのが上のコマンドです。

わざわざ、 ceph mds fail -> ceph fs rm とつなげて書いているのは、MDS が fail すると、通常はは MDS が 0 個になってしまうので、自動的に MDS が再起動されるようです(動作からの推測)。MDS が再起動されると all MDS daemon is inactive ではなくなってしまうので、エラーになる。

では、再起動される前に cephfs を削除してしまえば。。。ということで成功したという所です。

本当はもう少し良いやり方があるのではないかと思うのですが、とりあえず可能だったので OK とします。

Discussion