USBメモリでRAID 5を構築・とりあえずMicroSDへバックアップ
RAIDに移したシステム(Raspbian)を、どこにバックアップしようか?と考えて
MicroSDの"/" (ルート)パーティションの内容をRAIDへコピーしてRAIDから起動(ブート)できるようになったRaspberry Pi 3。バックアップ先を何処にしようか?と考えていますが、とりあえずMicroSD上にある元"/" (ルート)を、RAIDと同期させるようにバックアップしてみました。こうしておけば、万一RAIDが崩壊した時でも"/boot/cmdline.txt" と"/etc/fstab" (*1)を書き換えさえすれば MicroSDから最新に近い状態で起動(ブート)できるようになるのではないかと考えたわけで。
1. rsyncのインストール
バックアップにはrsyncを用います。rsyncがインストールされていない場合は、以下のようにインストールします。
$ sudo apt-get update
$ sudo apt-get install rsync
|
自分のRaspberry Piには既にインストール済みでした。Anything-sync-daemonを導入したときに一緒にインストールされたのかな?
2. MicroSDの元"/" パーティションをマウントする
マウントポイントを作成して、MicroSDの元"/" パーティションをマウントします。作業は root で行います。
- マウントポイント作成
"/etc/fstab" 編集
"/etc/fstab" に以下を追加します。
/dev/mmcblk0p2 /mnt/mmc ext4 defaults,noatime,nofail 0 2
|
- マウントする
3. バックアップ除外ファイルリストを作る
rsyncでバックアップさせない(してはいけない)除外ファイルのリストを作成します。ファイル名は"/root/exclude.txt" としましょうか。内容は、
/boot
/proc/*
/sys/*
/dev/*
/tmp/*
/run/*
/mnt/*
/var/tmp/*
/var/log/*
/media/*
.Apple*
.fseventsd
.DS_Store
.Trashes
|
としました。先ず"/boot" はパーティションが違うので、これは必ず除外。最後の方の"." (ドット)で始まるファイルは、Macでファイル共有マウントした時などに作られる物で、バックアップしても意味ないため除外しています。
"/media" 配下の写真、音楽、動画等もRaspbinシステムではないので除外。でも、本当はこれこそバックアップすべき物なのですけど・・・サイズも大きいので、別途考える事にします。
4. rsyncする
rsyncを実行するスクリプト("/root/rsync-backup.sh" )を作成しておきます。スクリプトはこんな感じ。
#!/bin/sh
DEST_DIR="/mnt/mmc"
SRC_DIR="/"
rsync -auv --delete --exclude-from=/root/exclude.txt ${SRC_DIR} ${DEST_DIR}
|
rsyncは多機能で、様々な使用方法、オプションがあります。ここでは、
-a : アーカイブモード(オーナー、グループ、パーミッション等の属性やシンボリックリンクを維持)
-u : 新しいファイルだけコピー
-v : コピーするファイルを標準出力へ出力
--delete : コピー元で削除されたファイル/ディレクトリは、コピー先からも削除
--exclude-from : 除外リストファイルの指定
を指定しています。
スクリプトができたら実行権を付けて実行してみます。
# chmod +x /root/rsync-backup.sh
# /root/rsync-backup.sh
〜略〜
root/
root/.bash_history
root/exclude.txt
root/rsync-backup.sh
〜略〜
sent 158,686,829 bytes received 1,443,230 bytes 1,789,162.67 bytes/sec
total size is 4,603,956,800 speedup is 28.75
# ls -l /mnt/mmc/root/
-rw-r--r-- 1 root root 118 9月 22 10:42 exclude.txt
-rwxr-xr-x 1 root root 120 9月 22 10:44 rsync-backup.sh
|
"/mnt/mmc/root" 配下に、今回作成したファイルがあればバックアップは成功していると思われます。
rsyncは差分バックアップができるので、MicroSDへの書き込みを減らすことができるでしょう。バックアップの頻度は、2週間毎とか"apt-get upgrade" した時に手動でとかにして、極力MicroSDに書き込み負荷をかけないようにします。
注意する点としては"--delete" オプションを指定しているので、コピー元(RAID上)のシステムから誤って削除してしまった後でこのスクリプトを動かすと、コピー先のMicroSDからも削除されてしまうということですかね。cronで定期的に動かすようにしていると、間違って消した事に気付いても既にバックアップからも消されていたなどという事になりますので注意です。
(*1):"/etc/fstab" はext4ファイルシステム上なので、Linuxが無いと修正はちょっと面倒。なので、除外ファイルリストに書いておいて、MicroSDへバックアップしないようにする方が良いかも。
|