Timemachine用バックアップサーバの構築 (Centos7)
TimemachineのバックアップのためにUSBポートを占領されるのはどうも気に食わない。ということで、Timemachineのバックアップ用サーバを立てて、バックアップをWifi経由で行えるようにしました。
使用したOS, ソフトウェア
OS: Centos 7.1
netatalk 3.1.7
Timemachineバックアップサーバ
基本的にはファイルサーバ(AFPもしくはSMB)を構築して、そこにバックアップを取っていくという形になります。
AFPでもSMBでもTimemachineバックアップを取ることは可能なのですが、
- SMB
- 毎回バックアップ時に手動マウントが必要
- AFP
- ネットワークにつなぐと自動的にバックアップできる
という違いがあったため、AFPで構築することにしました。
ストレージのフォーマット、マウント
まず、外付けHDDをフォーマットします。
コマンドラインであればfdisk、GUIがあるならディスクユーティリティ的なものでフォーマットしましょう。
コマンドラインでのフォーマット〜マウント作業はこのページが参考になります。
Linux CentOS 外付けHDDのフォーマットとマウント
今回は以下のようにマウントしたとします。
### /media/timemachine にマウント % sudo mount /dev/sdb1 /media/timemachine ### 起動時マウント設定も書く % sudo vim /etc/fstab + UUID=xxxxxxxxxxx /media/timemachine ext4 defaults 0 0
Netatalkのインストール
OSSのnetatalkを使用することで、AFPサーバを構築できます。
いまのところ netatalk 3.1.7 が一番新しかったです。
Netatalk 3.1.8 SRPM for Fedora and CentOS - Netatalk Wiki
残念ながらyumには非常に古いのしかない(もしくは存在しなかったような)ので、なんらかの形でビルドして使用する必要があります。
今回はSRPMをダウンロードして、ビルドしてインストールするという形でいきました。
### 依存パッケージのインストール (他にもあるかも) ### ※epelの登録が必要 % sudo yum install rpm-build gcc make db4-devel openssl-devel libgcrypt-devel avahi-devel openslp-server openslp-devel libacl-devel openldap openldap-devel bison cracklib-devel dbus-devel dbus-glib-devel docbook-style-xsl flex libdb-devel libevent-devel libxslt mysql-devel pam-devel quota-devel systemtap-sdt-devel tcp_wrappers-devel libtdb-devel tracker-devel enablerepo=epel ### SRPMのダウンロード % wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-3.1.7-1.2.fc24.src.rpm ### SRPMのビルド % rpmbuild --rebuild netatalk-3.1.7-1.2.fc24.src.rpm ### netatalkのインストール % sudo yum install ~/rpmbuild/RPMS/x86_64/netatalk-3.1.7-1.2.el7.centos.x86_64.rpm ~/rpmbuild/RPMS/x86_64//root/rpmbuild/RPMS/x86_64/netatalk-devel-3.1.7-1.2.el7.centos.x86_64.rpm ### ファイアウォール設定 (548: netatalk, 5353: bonjour/mDNS) % firewall-cmd --add-port=548/tcp --zone=public --permanent % firewall-cmd --add-port=548/udp --zone=public --permanent % firewall-cmd --add-port=5353/udp --zone=public --permanent
設定ファイルの書き換え
設定ファイルを書き換えます。あんまり良く調べてないのですが、こんな感じで動くはずです。
### 設定ファイルの例 % cat /etc/netatalk/afp.conf ; ; Netatalk 3.x configuration file ; [Global] log level = defalut:warn log file = /var/log/netatalk.log uam list = uams_clrtxt.so uams_dhx.so uams_dhx2.so uams_guest.so [Time Machine] path = /media/timemachine time machine = yes
起動と自動起動設定
あとは起動するのみです。ついでに自動起動設定をしておきます。
### 起動と自動起動設定 % sudo systemctl start netatalk % sudo systemctl start avahi-daemon % sudo systemctl enable netatalk % sudo systemctl enable avahi-daemon
Mac側の設定
システム環境設定から Time Machineを選択し、Select Disk... を押すと先程構築した共有ストレージが表示されます。
(出てこない場合は、bonjour/mDNSあたりの設定がうまくいっていない..?)
アカウントとパスワードを要求されるので、Linuxのユーザアカウント・パスワードを入力します。
ログインが成功したら、バックアップディスクとして、AFPサーバが設定されます。
この後は、サーバを発見すると自動的にバックアップを行うようになります。
まとめ
TimeMachineのバックアップ先をLinuxサーバにして、自宅Wifiに繋いだらバックアップが行われるようになりました。TimeCapsuleはこんな感じで動いてるのでしょうか。
あと、初期バックアップはすごく時間がかかる(半日くらい?)ので気をつけてください。