ZFSの復旧ついでに/exportsから/exportに移動
引き続いて、FreeBSD機のZFSドライブの復旧をしています。なかなか進まないです。ファイルシステムの一部が壊れている状態なのですが、システムダウンにはならず、そのまま動いてしまうのですもの…。ZFSは弱いんだか、強いんだか…。
先日、HATさんから、次のご指摘を受けました。
@oichinokata はい。FHSにはありません。NFSの源流のSunでは昔から/exportです。そもそもNFSではディレクトリ名は自由なので、源流のディレクトリ名で解説しています。ウチではsambaがメジャーになる前はPC-NFSを使ってたので/exportです。
— HAT (@HAT0001) 2014, 1月 23
「外部に公開するディレクトリ名は、FreeBSDでは、"/export"ではなく、"/exports"なのですか?」と。
“/exports"は、元々存在せず、自分で設定しました。このディレクトリ名については、指摘されるまで、気にしていませんでした。複数のディレクトリを公開するのだから、「〜s」と複数形にしただけでした。でも、"/home"とか、複数形じゃないな。
それと、ご指摘の通り、BSDの流れを汲むSunOS4.1では"/export"でした。
「/exportに直したい!」とは思いましたが、設定が多岐にわたるため、面倒に感じていました。
そこへ、今回のZFS崩壊の危機ですよ!
いま、必要なデータを、ZFSの別プールにコピーしています。その時、"/exports"から"/export"への変更も一緒にやってしまいました。結果として、うまく行った様子です。
変更しなければならなかったのは、次の項目です。
- netatalk関連(/usr/local/etc/afp.conf)
- samba関連(/usr/local/etc/smb.conf)
- WebDAV関連(/usr/local/etc/apache24/extra/{httpd-dav.conf,httpd-vhosts.conf})
- SVN(Subversion)関連(/usr/local/etc/apache24/Includes/svn.conf)。この他に、レポジトリ自体を再設定。
- MySQL関連(/etc/rc.conf)
これらのファイルに付いて、次のコマンドで修正しました。当然、実行する前に、ファイルのバックアップと、grepによる中身の確認をしています。また、念のために、該当サービスを停止しています。
# sed -i -e 's/\/exports\//\/export\//g' {設定ファイル}'
SVN(Subversion)は、レポジトリ自体の移動をしています。次の方法をとらせていただきました。ありがとうございます。
移動したレポジトリ名が、"work"として説明します。
# svnadmin create /export/svn/work # svnadmin dump /exports/svn/work | svnadmin load /export/svn/work
ここまでの設定が終わったら、シングルユーザモードで立ち上げます。そして、"/exports"をマウントしない様に設定します。
# zfs set mountpoint=none upool/exports
最上位のファイルシステムをマウントしない様にすると、その下もマウントされない様になりました。
それと、zfs send/receiveコマンドも活躍しています。zfs renameも何かと便利です。
こう言う柔軟さは、ZFSに敵う物は無いですね。
ここまで終了した後、マルチユーザモードに移行して、動作を確認しました。問題なく、ディレクトリ名が"/exports"から"/export"に変更になっていました。
ちなみにRedHatは、"/exported"としているみたいですね。
“/exported"の方が良いのかな…。でも、どこを直せば良いかわかったから、もし直すとしても、それほど大変じゃないです。
ディスカッション
コメント一覧
まだ、コメントがありません