Netatalk

Mac OS X 標準のバックアップソフトウェアであるところの Time Machine をようやく設定したよという話です。ファイルサーバ側は FreeBSD + ZFS + Netatalk というロマン溢れる話です。

Mac 側には、特筆すべき設定作業はありません。ファイルサーバで Netatalk がきちんと動作していれば、自動的にそれを見つけてくれるので、それを選択するだけです。たいへんシンプルで簡単ですが、これは言い換えれば、Time Machine の約束事に従ってファイルサーバ側をきっちり設定しないと、Mac から見つけてくれないということです。

そのファイルサーバですが、もっともお手軽なのは Apple 純正の Time Capsule を購入するパターンでしょう。Time Machine の約束事を完璧に設定済の状態で出荷されますので、買ってきて電源を入れれば、ほとんど何もしないで使えるはずです(使ったことがないので想像ではありますが)。ただ、簡単すぎてロマンを感じられません。

次にお手軽なのは、USB 外付け HDD を買ってきて接続するパターンだと思います。この場合は HFS+ でフォーマットし直す等の一手間はありそうですが、構成としては比較的シンプルなので、こちらもすぐに使えると思います(これまた想像ですが)。しかしまだロマンが(ry

最もロマンを感じるパターンは、これからご紹介する Netatalk を使う構成です。異論は認めます。Netatalk は Unix 上で動作する AFP サーバのオープンソース実装です。Linux各種、*BSD各種、Solaris各種(?)等で動作するようですが、これらの Unix 系 OS の中でもっともお手軽なのは、現時点(2013年5月)では Linux、中でも Ubuntu 系になると思います。しかしそれではロマn(ry

そこで今回は FreeBSD を使います。3年ほど前から ZFS で大容量の RAID-Z ファイルサーバを使っていたというのはこのあたりの記事にあるとおりです。容量にはまだまだ余裕があるので、Time Machine でもそこを使ったらいいんじゃね? というややセコい動機もありますが、ファイルシステムとしての運用性に優れた ZFS を使うことが一番の理由です。これがロマンに繋がっています。異論は認めます。

Core i3 な ML110 に 2TB×6本(+SSD+DVDslim)を収めているわけですが、この ML110 がまだ FreeBSD 9.0 で動いていたので、まずはこれを最新の 9.1 に上げます。ロマン的にはSSDに乗っているシステム部分だけクリアインストールしたいところですが、freebsd-update がよくできているので、せっかくなのでこれを使います。決して手抜きというわけではなく freebsd-update 開発者への敬意をですね(ry

# freebsd-update upgrade -r 9.1-RELEASE

これだけ。えっこれだけ? すみませんややウソです。この部分はズバリの記事がありましたのでリンクを張っておきます。いえ決して手抜きではなくインターネットリソースの節約でありまして(ry

念のためといいますか、ちょうど pkg-config が pkgconf に置き換わったというのもありましたので、ports を最新にしてから netatalk を make install します。

# portsnap fetch update
# cd /usr/ports/net/netatalk3
# make install

netatalk 本体(2013年5月現在では 3.0.3 が最新)とその依存パッケージそれぞれについて、途中いくつかオプションの取捨選択を求められるので、自分の環境(たとえば X Window は入れていないとか)に合わせて選択します。ガリガリと make install されたら、/usr/local/etc/afp.conf の編集をしますが、その前に ZFS で Time Machine 用の領域を作っておきます。

# zfs create tank/tm
# zfs set mountpoint=/TimeMachine tank/tm
# zfs set quota=2t tank/tm

たとえばこんな感じです。df で見るとこんな感じ。

# df -h | grep TimeMachine
tank/tm 2.0T 242G 1.8T 12% /TimeMachine

※すでに242GB使用済になっていますが、これは Time Machine をアクティブにしてから1日半を経過した状態です。けっこうたくさん使いますね。

このあと afp.conf に Time Machine に見せるディレクトリとして記述するパスは、ここでは /TimeMachine になります。このディレクトリの owner は、あとで Mac 側で設定するアカウントに合わせておくと話が早いので、それ専用のアカウントを1つ作って chown しておきます。そして afp.conf に以下を追加。

[Time Machine]
path = /TimeMachine
time machine = yes

rc.conf に以下を追加し、

dbus_enable=”YES”
avahi_daemon_enable=”YES”
avahi_dnsconfd_enable=”YES”
netatalk_enable=”YES”

システムを再起動するか、以下のように手動で起動すれば、Netatalk が使えるようになります。

# service dbus start
# service avahi-daemon start
# service avahi-dnsconfd start
# service netatalk start

前述の df の出力のように、Time Machine が順調に ZFS 領域を消費しています。

コメントを残す

あなたのコメント

*