現在愛用しているMac book Airも気づけば今年で3年選手。
SSDによる快適さの恩恵なのか普段使っていて問題を感じることはないが、そうはいってもPCの寿命の目安は3年といわれるわけで、そろそろ無バックアップ運用も怖くなってきた。
Macには「Time Machine」という外付けHDDやネットワーク上のストレージに自動で差分をバックアップしてくれる便利な機能がある。
しかし、ネットワーク越しのバックアップ機能を使うには通常はお高いTime Cupsuleを買うか、もしくは互換機能のついたNASを購入する必要がある。
APPLE AirMac Time Capsule - 2TB ME177J/A
- 出版社/メーカー: アップル
- 発売日: 2013/06/11
- メディア: Personal Computers
- この商品を含むブログ (3件) を見る
BUFFALO リンクステーション RAID機能搭載 ネットワーク対応HDD 4TB LS420D0402
- 出版社/メーカー: バッファロー
- 発売日: 2013/06/22
- メディア: Personal Computers
- この商品を含むブログを見る
でも自宅サーバで何とかしたい!
以前、ローカル上でディスクイメージを作成して共有サーバ上に配置する方法も試してみた。
確かに最初の数回は上手くバックアップされるものの、気が付くとディスクイメージファイルが破損してバックアップできなくなってしまった。
(バックアップ途中にネットワークが切れてしまうことがあるのが原因ではないかと推定。実運用を考えると厳しい。)
今回新たに別の方法の記事を見つけ、前回チャレンジした時の領域もちょうそのまま残っているので再度挑戦してみた。
Linux に Time Machine 用バックアップサーバを構築する
さて、結論から言うと記事に従えば、ほとんど引っかかるところもなく導入できてしまった。
一応必要だった手順だけ抜き出すと
- 元々領域はあったので、/etc/fstabにオプションを追記して再マウント
- Netatalkを導入
- サーバ各種設定
- クライアント設定
になる。
1. マウントオプションの追加
Time Machine用に使用したい領域に下記オプションを追記。
[領域] [マウントパス] ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,user_xattr 1 2
マウント・再マウント・確認。
# umount [マウントパス] # mount -a # mount
mountコマンドで表示された領域に、先ほど追記したオプションが追加されていれば成功。
2. Netatlkの導入
必要なライブラリをyumからインストール
# yum install db4-devel # yum install libgcrypt libgcrypt-devel # yum install avahi nss-mdns avahi-tools avahi-devel # yum install libacl-devel # yum install quota-devel
rpmをダウンロードしてインストール
参考記事のコメントにあるようにrpmからのイントールができる。
Netatalk 3.1.6 SRPMs for Fedora/RHEL/Scientific Linux/CentOS - Netatalk Wiki
(余談だけどVNC越しでブラウジングできるようにChromiumインストールした。今時ブラウザ無いと何かと差し支えるね。
CentOS に Chromium ブラウザをインストールする : まだプログラマーですが何か?
)
3. サーバ各種設定
設定の記述
/usr/local/etc/afp.confにTime Machine用の記述を追加
[My Time Capsule] path = [パス] time machine = yes
あとiptablesを止めるなりポート開けるなり。
サービス開始
# service netatalk start # chkconfig netatlk on
4. クライアント側設定
とりあえず一度Macbookから領域につないでみる。
$ open afp://[サーバのIP]
あとはTime Machineの設定画面から設定して終了。
初回バックアップは結構な時間がかかるのと、中断してしまうとまた最初からになるので注意!
2・3日運用して現在に至るが、今のところ正常に稼働している。
余談
良い機会なのでgitlabを再インストールした。
前にやったときはえらく苦労した記憶があるけど、今はrpmが用意されている。
GitLab | Omnibus package downloads for GitLab CE
gitユーザが既に存在しているとダメだったり、内部的に8080ポートが使用されてて既存のほうのポートを変更したりといった面倒はあったけど、概ね手順の数コマンドだけで導入できた。
すげー楽。