とはいうものの、P2Pの話ではなく、nfs(Network File System)のこと。いい加減メールサーバのMaildirが膨れあがってくると、バックアップやメンテだけでも大変になってくるので、いっそのこと/home以下を共有してしまおう、という古典的なやつをやってみよう、というのが今日のお題目。
ということで、まずメールサーバ内の/home(実体は/usr/home)をNASへ移動することから始める。これにはtarを使う方法とrsync(Portsのnet/rsync)を使う方法があるんだけど、リモートホストへの同期はrsyncの方が楽、ということなのでrsyncをportinstall。
次にメールサーバ上でrsync -aH --delete /usr/home/ NAS:/some/where/home/として同期をとるんだけど、NAS側へうまくファイルを転送しない。よく見てみると、SSHのエラーを吐いているので、/etc/ssh/sshd_configを見直してみることにした。というか、用がなかったのでここはデフォルトのままで運用していたわけだけど。
/etc/ssh/sshd_configをみると、42行目にPermitRootLoginなる設定項目があるのを発見。バックアップ作業はroot権限で行っていたので、「そういえば、デフォルトではrootログインができないんだっけ。」ということを思い出し、ここをyesに設定して、/etc/rc.d/sshd restartとしてNASのsshdを再起動。
rsyncに再チャレンジしたら、今度はちゃんと同期してくれた。
次にnfsサーバの設定なんだけど、/etc/exportsはこんな感じ。
/some/where/home -alldirs -network 192.168.0.0 -mask 255.255.255.0
nfsdはportmapサービスも使うので、その設定もしなければならない。これは/etc/hosts.allowを編集するんだけど、このファイルの62行めあたりにrpcbindという項目があるので、自分のネットワークにあった内容でallowを付けておく。
この状態で、/etc/rc.confにnfs_server_enable="YES"とrpcbind_enable="YES"、を加えて、/etc/rc.d/rpcbind startでportmapサービスを、/etc/rc.d/nfsserver startでnfsdを起動してやる。
クライアントになるメールサーバ側で、/mntあたりに先程作った共有をマウントしてみてちゃんと処理できるかどうかを調べてみる。正常なようなので、/homeの/usr/homeからのsymlinkをunlinkして、かわりに/homeというディレクトリを置く。ここにNASからexportされたポイントを自動的にマウントするよう、/etc/fstabに書いてマウント。
見た目全く変化はないんだけど、いざログインしてみるとリモートからファイルを取り寄せることになるので、若干(数秒程度)の遅延はある。けど、そんなことは気にならないくらいの待ち時間なので、快適さだけを享受することができるという、まさにいいとこ取りな感じだ。
この調子でPortsツリーやdistfilesなんかを共有してしまえば、ツリーの更新なんかも一回で済みそうだけど、この辺はまだ試してない。これは次への宿題ということで。
最近のコメント