自作NASで自宅ファイルサーバー 第6回 (Netatalkを使ったTimeMachineのバックアップ環境構築)

前回、macからsambaでマウントしたNASにTimeMachineバックアップ ⇒ おりゃー ってやろうとしたら、
⊂ミ⊃^ω^ )⊃ アウアウ!!  って言われたので、しょうがないからAFPを使えるようにしてみるのであります。

わたくし、Time Capsuleなど買うお金がどこにもございません。
そして、あったとしてもHDDをmacのバックアップとるだけのために費やすなんてブルジョワな行為に違和感を覚ありまくりです。

APPLE Time Capsule 2TB MD032J/A
by カエレバ

なので、自作NASにAFPをしゃべれるようにするべくサーバーにインストールするのがNetatalkです。
(ね、 ねたとーく・・? )
とにかく、これさえあれば最新のmacでもTimeMachineを使ったネットワーク経由でのバックアップが可能なのです。※2012年11月現在

で、そのためのインストール作業等に3時間以上ハマりましたw
とりあえず、最初に熟読しておけばよかったと思ったサイトがこちらです。
http://www003.upp.so-net.ne.jp/hat/netatalk/andsamba.html
マジでありがたい記事です。ネットでひろった断片的な情報を寄せ集めるより、まずこちらが役にたつと思います。
※少し下にスクロールするとインスコ手順が細かく記されております。

というわけで、今回は私の四苦八苦エントリー。

なお、今回チャレンジしました私の環境は以下です。
ご参考までに。

・サーバー
CentOS6.3
(このNAS作るシリーズで作ってるサーバーです。等詳細はこちら

・クライアント
Mac OS X 10.8 Mountain Lion (筐体はMac Book Airです。 無線LANでつないでTimeMchineって事です。)

早速netatalkのインストール

まず、avahiなる開発用ライブラリが必要だとの事。

# yum -y install avahi-devel quota-devel

次にソース。 ソースからコンパイルするのでございます。
とおもって配布サイトに行く
http://netatalk.sourceforge.net/

今回、2と3の両方があってどうしたらいいか少し悩む。

とりあえず2でいこうとい結論にww

# cd /usr/local/src
 # wget http://prdownloads.sourceforge.net/netatalk/netatalk-2.2.4.tar.gz?download
 # tar xfvz netatalk-2.2.4.tar.gz

コンパイルしてインスコ


# ./configure ?enable-redhat-sysv ?enable-srvloc

ってやったら怒られる。

 configure: error: no acceptable C compiler found in $PATH

はい、コンパイラが入ってないですね。


# yum -y install gcc

というわけでもっかい./configureやった。 そしたらまた怒られた。


configure: error: Berkeley DB library required but not found!

そんなDBもあるんですかー
ぜんぜん知らなかったですたい

BDBのインストール

とりあず上でconficureした際に出てきたエラー文で
You can download the latest version from http://www.sleepycat.com.
って書いてあるので逝ってみる。 オラクルのサイトにたどり着くや全部英語なので、「もう・・・ トホホ」とか思ってると、とDOWNLOADSの項目に

Oracle Berkeley DB を発見!
DLしようとしたら、なんかユーザ認証画面でてきてイラっとする。
昔幸いにもJavaのSDKをDLした際にアカウント登録してたので ちょっとだけ手間が省けた。

とりあえずWin(pc)で認証経由してDL、そしてサーバーにsamba経由でUPした。
こんなちょっとした時もsambaのアリガタミをしみじみ感じますね。
リオデジャネイロ♪

# tar xfvz db-5.3.21.tar.gz
 # cd db-5.3.21
 # ../dist/configure --prefix=/usr/local/bdb  ←なんかしらねーけど、直下にconfigureがなかった。 うざい。
 あと、余談ですが prefix で間違えて/usr/local って打っちゃったので、グチャグチャになった笑! 取り急ぎほっとくことにしますけど笑

(略)
 configure: creating ./config.status
 config.status: creating Makefile
 config.status: creating db_cxx.h
 config.status: creating db_int.h
 config.status: creating clib_port.h
 config.status: creating include.tcl
 config.status: creating db.h
 config.status: creating db_config.h
 config.status: executing libtool commands

よしよし・・ 次はmakeですね。

# make
 bash: make: command not found ( *´艸`)クスッ♪

# yum -y install make
 (略)

はい、気を取り直して。。

# make  ← 超絶長い件。。
 # make install

とりあえずうまくいったっぽいです!
ほっとしますね。

改めてnetatalkをインストールしましょう

一応、すいません。
作業をしながらメモったのをブログ用に整えてるだけなので、ここでconfigureしてますが
私と環境が酷似されている方であれば、先に後述の「その他必要なライブラリについて」をお読みになられた方がbetterかと思われます。
私の場合は2点ほど必要なパッケージが入ってませんでした。

とりあえずインスコ作業自体は以下。。。

# cd /usr/local/src/netatalk-2.2.4
 # ./configure –enable-redhat-sysv –enable-srvloc

で、後々知ったのですが UAMSの中にDAX2が出てないとアカンです。
なのでこれは失敗事例になります   (´,_ゝ`)ぷっ
とりあえず私の場合は以下のステータスが表示されてました。

Configure summary:
 Install style:
 redhat-sysv
 AFP:
 Large file support (>2GB) for AFP3: yes
 Extended Attributes: ad | sys
 CNID:
 backends: dbd last tdb
 UAMS:
 clrtxt ( SHADOW)
 guest
 Options:
 DDP (AppleTalk) support: no
 SLP support: no
 Zeroconf support: yes
 tcp wrapper support: no
 quota support: yes
 admin group support: yes
 valid shell check: yes
 cracklib support: no
 dropbox kludge: no
 force volume uid/gid: no
 ACL support: no
 LDAP support: no

さきほども書きましたが、こんな感じのステータスが出てTimeMachineが使えないようっていう方いたら、たぶんライブラリが足りてませんです。

その他必要なライブラリについて

自分の場合は、以下2つのパッケージを改めて追加する事によって正常に動きました。
もちろん、yumで入れた後にソースから再びcofigureしました。

・Aclのライブラリ
yumで入りました。

# yum -y install libacl-devel

・Libcryptのライブラリ
こちらもyumで入ります。

# yum -y install libgcrypt-devel

これを先にやっておいて、configureを実行するとたしかDAX2が出て ACL supportもyesになるんじゃなかったかしら。

インストールの続き

はい、では以下はconfigure以降の作業です。
といっても普通に必要なライブラリ郡が入っていれば、誰も戸惑うところではないと思います。

(ま、 私は凡ミスを連発する系の人間なので、後述するiptablesとかいっつも忘れちゃうんですけど・・)

 # make
 # make install

これで起動すればケイオツだと思われますが、confファイルも修正したりする必要があるかと。
参考までに、一番最後に私の設定したconfファイルを掲載しておきます。

あとは、自動起動設定入れてstartですね。


# chkconfig netatalk on
 # /etc/init.d/netatalk start
 Starting Netatalk services:
 Starting cnid_metad: [ OK ]
 Starting afpd: [ OK ]

# /etc/init.d/avahi-daemon restart
 Shutting down Avahi daemon: [ OK ]
 Starting Avahi daemon... [ OK ]

ちょっと待って! NW設定がまだよ!

と叫ぶ少女の声が聞こえました。

どうもTCP Wrapperがはじくプロトコルのようなので・・・
hosts.allow で
afpd: 192.168.0.
と追記します。(もちろんTCP Wrapper使ってない人は必要ないですぞ)

あと、毎度おなじみのiptablesですね。

# vi /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 548 -j ACCEPT ←追加
-A INPUT -m state –state NEW -m udp -p udp –dport 548 -j ACCEPT ←追加

# /etc/init.d/iptables restart (再起動+文法チェック)
 iptables: Flushing firewall rules: [ OK ]
 iptables: Setting chains to policy ACCEPT: filter [ OK ]
 iptables: Unloading modules: [ OK ]
 iptables: Applying firewall rules: [ OK ]

もうこれでOKじゃね?
というわけで使ってみることに。

TimeMachineでバックアップにトライ

ここまでに結構時間を要しているので、そこそこ緊張します。w (さきほども書きましたが、 私今回ライブラリの不足とかいろいろあって3回くらいTimemachineの作業失敗してます。)
まずはディスクの選択

とりあえず、今回たてたサーバーさんと思われるヤツがいるので選択します。

すると、IDPWの認証。 えと、なんだこれって思ったんですが、とりあえずサーバーの自分のアカウントでトライしたらOKでした。

うまくいっていればバックアップがスタートします!!
ここまでくるのに、自分の場合3時間以上かかってたのでこの画面を見た時はたまらんかったですね。

ちなみにNetatalkのインストールに失敗してると・・

こんな画面に出くわす事になるかと思われます。
(私は2回ほどこの状態に陥り、貴重な週末の片方が吹き飛びそうに・・)

やっぱり、何度見てもイラっとするのが、

「接続しようとしているサーバのバージョンはサポートされていません。システム管理者に問い合わせて、この問題の解決を依頼してください。」

とかかれたエラー文ですね。
問い合わせる管理者がいれば苦労しないですよ。

ふと思ったこと

そういえばTimeMachineの仕様をよく把握してませんでしたが、
どうもディスクがいっぱいになるまで無尽蔵にデータサイズが増えるようですwwwww
なんと。。 なんと。。。まぁ。
※追記 割り当てるディスクサイズを制限する方法をエントリーしました

この辺の回避策を考察中ですが、今のところ1週間に300MBくらいの勢いでしか増えてないのでのんびり考える事とします。(笑
とにかく動いてくれてよかった!!

sambaも立てて、macのバックアップも開始となれば 次はwindows環境のバックアップですね。
これは第7回でエントリーしたいと思います。



関連記事

Comment





Comment



*