絖綛 N@i.jp  昨日:00036563
 今日:00021778
 総計:00072655
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

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 で行います。

  1. マウントポイント作成
    # mkdir /mnt/mmc
  2. "/etc/fstab"編集
    "/etc/fstab"に以下を追加します。
    /dev/mmcblk0p2	/mnt/mmc	ext4	defaults,noatime,nofail 0	2
  3. マウントする
    # mount /mnt/mmc

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へバックアップしないようにする方が良いかも。


< 過去の記事 [ 9月の 全てのカテゴリ リスト ] 新しい記事 >

2016 calendar
9月
123
45678910
11121314151617
18192021222324
252627282930


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.