サイトアイコン アラコキからの Raspberry Pi 電子工作

Raspberry Pi マイクロSDカード寿命への完璧対策

Raspberry Pi 【 rsync 】 の使い方
SDカードを "USBメモリ" に
定期・自動バックアップ
 
 
rsyncを使って nginx Webサーバー + WordPress を、USBアダプタにつけたマイクロSDカードに同期させることで、 定期・自動バックアップ 運用を実現。
 

 

スポンサー リンク

 

 
 
マイクロSDカードの書き換え寿命への完璧対策
  SDカード/マイクロSDカードの書き換え寿命は1万回くらいらし。
  バックアップ用のマイクロSDカードは、
  1日1回バックアップを取った場合、

  読み・書き・削除で、バックアップ1回につき3回として、
  3回 x 365日 x 10年 = 10,950回 ➡ 10年は持つ。
  さらに、約 4G の使用領域を、約 29G の領域にバックアップするので、
  寿命は約 7倍。

  70年は持つ。
 
 
 
 
 
1. マイクロSDカードのマウント
 
 使用したUSBアダプタとマイクロSDカード。
 変換名人
microSDHC(最大32GB)対応リーダーライター
USB2.0 接続 超短&キャップ付 TF-USB2/M
 
 
 
TOSHIBA
 microSDHCカード 32GB Class10 (最大転送速度30MB/s)
 SD-C032GR7AR30
 
 
下記例は、USBに接続した Raspberry Pi のSDカードが認識された状態。
ブート領域が、/dev/sda1 でマウント先が /media/usb0 になり、
/root 領域が、/dev/sda2 でマウント先が /media/usb1 になっている。
 
USBアダプタをつけたマイクロSDカードが認識されない場合。
sudo apt-get install usbmount
 USBに挿入したままリブートしなければ認識されない場合がある。
sudo reboot
df -h
 
※: USBアダプタが認識される状態の Raspberry Pi SDカードをベースにしないと、バックアップ後の(同期された)SDカードで起動したとき、USBアダプタが認識されない。・・・と言う、厄介なことになる。
 
参考:
 
 
 
2. rsync のインストール
 
Raspbian Buster with desktopの場合、すでに最新バージョン がインストールされている。
sudo apt-get install rsync
 
同期しない/同期してはいけないディレクトリを登録。
cd /
 sudo nano rsync-exclude.txt
 
 /proc/*
 /sys/*
 /dev/*
 /boot/*
 /tmp/*
 /run/*
 /mnt/*
 /var/tmp/*
 /var/log/*
 /media/*  
 
 
 
3. バックアップ用のマイクロSDカードを準備
 
①. Raspberry PiのSDカードを Win32DiskImager を使ってバックアップ。
②. バックアップ用のマイクロSDカードにバックアップした img をリストア。
③. もともとのSDカードをRaspberry Piに差し込んでRaspberry Piを起動。
④. USBアダプタにバックアップ用のマイクロSDカードをつけ、USBに装着。
  ・・・ この時のマウント先を確認 = /media/usb1
 
 
 
4. Raspberry Pi を rsync で同期してみる
 
rsync を使って実際に同期してみる。
sudo rsync -aEv --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1/
 
rsyncコマンドとオプション。
sudo rsync -aEv --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1/

-a : アーカイブモード
-E : 実行可能属性を保持する
-v : コピーしているファイル名やバイト数などの情報を表示するイル名やバイト数などの情報を表示するト数などの情報を表示するの情報を表示する
 
rsync-exclude.txt の指定で、除外リストの読み込み。
 /media/usb1/ でUSBメモリを指定。
 
正常に終了すると、次のようなメッセージが出て、完了。
sent 996,399,255 bytes received 1,309,730 bytes 500,732.24 bytes/sec
total size is 3,742,654,824 speedup is 3.75
 
さらに、/media/usb1/ の中に rsync-exclude.txt が入っていれば同期ができている。
 
所要時間:32GBSDカード → 約2分
 
 
 
5. バックアップの実行を cron で自動化する
 
crontabを編集。
sudo crontab -e
 
 7 5 * * * rsync -a --delete-during --exclude-from=/rsync-exclude.txt / /media/usb1/ 
 
上記例は、毎日・5時7分にバックアップを実行。
 
 
 
6. まとめ
 
USBにマイクロSDカードを2枚挿し、cron での自動バックアップと、重要な更新を多く行った時用の手動バックアップ、を併用することとした。
 
※:注意点。
USBにマイクロSDカードを2枚挿す時、挿す位置と順序に留意する必要がある。
 
挿す位置と順序。
USB-a が、
 /dev の /sda1 と /sda2 になり、マウント位置が usb0 と usb1 に
USB-b が、
 /dev の /sdb1 と /sdb2 になり、マウント位置が usb2 と usb3 に
なる。
1つ目は、USB-a に挿し、2つ目は、USB-b に挿す。
抜くときはこの逆にする。
こうしないと、リブートでマウント位置が変わる。
 
参考:
 

以上。
(2017.04.30)

 

 

スポンサー リンク

 

             

 

 

 
モバイルバージョンを終了