Linux に Time Machine 用バックアップサーバを構築する

Linux に Time Machine 用バックアップサーバを構築する

Netatalk で AFP ファイル共有サーバを構築

Mac を使う上で最も簡単なバックアップ方法は Time Machine を利用した方法ですが、Time Machine のすべての機能を使用するためには、Apple Time Capsule などの Time Machine 対応製品を購入する必要があります。

しかし、Unix 上でオープンソースのソフトウェアとして提供されている「Netatalk」で AFP 共有サーバを構築することで Time Machine の機能を全て利用することができます。

今回は CentOS 6 に「Netatalk」をインストールします。

まず、Mac はメタデータ、リソースフォークなどの独自のファイル管理機能を持つため、Linux 側のファイルシステムをファイルやディレクトリのメタ情報を柔軟に設定する拡張ファイル属性(extended attributes(EA))を有効にして、マウントしなければなりません。

また、複数の Mac や Windows で使用することを考えると、ユーザ毎にディスクの使用量に制限を掛けた方がよいため、ディスククォータ機能も有効にしてマウントします。

ルートファイルシステムはディスククォータ機能を有効にできないことと、管理を容易にするため、今回は AFP ファイル共有サーバ用のファイルシステムを作成してから進めます。

こちらのサイトで丁寧に解説されているので、参考にさせていただきました。

http://www003.upp.so-net.ne.jp/hat/netatalk/andsamba.html

Source Forge の Netatalk のドキュメントも参考になります。(英語ですが)

http://netatalk.sourceforge.net/3.1/htmldocs/

1. Netatalk 用新規ファイルシステムを作成

Netatalk で使用するファイルシステムを作成します。Gparted などの GUI ツールや fdisk, parted で作成しましょう。使用中のディスクに余裕がなければ、既存のファイルシステムを縮小する必要があります。

ここで作成した新規ファイルシステムのデバイス名は覚えておきましょう。(/dev/sdb2 など)

2. 作成したファイルシステムを拡張ファイル属性、ディスククォータを有効にしてマウント

まず、作成したファイルシステムの UUID を確認します。ここで先ほど確認したデバイス名から UUID を見つけます。

マウントディレクトリを作成します。

/etc/fstab に拡張ファイル属性、ディスククォータを有効にしてマウントするよう追記します。

/etc/fstab の最終行に以下を追加

マウントします。

マウントオプションが有効になっているか確認します。

以下のようになっていれば OK

 

2. Netatalk をインストール

まず、Netatalk をインストールに必要なソフトウェア、ライブラリをインストールします。

下記のソフトウェア、ライブラリが必要となります。

  • Berkeley DB
  • Libgcrypt

また、必須ではありませんが、下記のソフトウェア、ライブラリも利用できます。

  • Avahi or mDNSresponderPOSIX for Bonjour (aka Zeroconf)

Bonjour 用のデーモンです。Bonjour を有効にしておくと、かなり便利なため強く推奨します。

  • Tracker for Spotlight support

Spotlight で検索できるようになります。CentOS ではパッケージが配布されていないそうです。

  • libacl-devel

ACL 関連のライブラリです。

今回は、Time Machine 専用で使うので Tracker はインストールせず、Berkeley DB、Libgcrypt、Avahi、libacl-devel のインストールを行います。最初からインストールされていれば不要です。

 

Berkeley DB のインストール

yum でインストールします。

Libgcryptのインストール

yum でインストールします。

Avahi deamon のインストール

yum でインストールします。

Zeroconf に対応させるために、avahi-devel、nss-mdns と avahi-tools も入れておきます。

libacl-devel のインストール

yum でインストールします。

quota-devel のインストール

yum でインストールします。

 

Netatalk のソースファイルのダウンロード

続いて、任意のディレクトリにソースファイルをダウンロードします。最新版はhttp://netatalk.sourceforge.net で公開されています。

ダウンロードしたソースファイルを解凍します。

Configure とインストール

./configure で設定します。基本的にライブラリはインストールされていれば自動で認識して有効化されるみたいです。今回は自動で認識しないオプションをつけておきます。

configure を実行して表示された結果の Configure summary を確認し、自分が有効にしたオプションが有効になっているか確認します。

 

Configure がうまく成功していれば、make して、インストールします。

 3. Netatalk の設定

AFP の設定

デフォルトでは、/usr/local/etc/afp.conf にあります。しかし、これでは少々使い難いので、/etc にリンクを貼っておきましょう。

デフォルトの設定は以下のようになっています。

今回はログの設定と、Time Machine 用の設定を行います。

ログの設定

※設定しなければ syslog にログが出力されます。

 Time Machine 用設定

上のほうで Time Machine 用に作成したファイルシステムのパスを指定します。また、Time Machine 機能を有効にします。

また、ファイヤーウォールに TCP  548 ポートを公開するよう設定します。

 

また、avahi-daemon を使って Bonjour で配信するために、ファイヤーウォールに UDP  5353 ポートを公開するよう設定します。

 

4. Netatalk の起動、停止

configure する際に 「–with-init-style= 」オプションを入れている場合、使用している OS に合わせたスクリプトファイルが作成されています。

起動、停止は service コマンドや /etc/init.d/netatalk を利用します。

5. Time Machine でバックアップできる確認

まずは、Finder で AFP ボリュームに接続できるか確認します。もし、Bonjour で表示されない場合、Finder の「サーバへ接続」から接続します。⌘+K で接続できます。

ユーザ認証は Linux ユーザアカウントで認証します。

 

netatalk_time_machine3

接続できれば、「システム環境設定」から「Time Machine」を開き、「ディスクを選択」をクリックします。

netatalk_time_machine1

利用可能なディスクに AFP ボリュームが表示されていることを確認し、選択して「ディスクを使用」をクリックして、Time Machine バックアップが可能か確認します。

netatalk_time_machine2