Raspberry PiのシステムSDを定期バックアップ

図1. ダイヤグラム

実家で運用しているRaspberry Piで構成される汎用サーバー群に、先日不具合が発生しました。

結局、システムの入ったSDカードを取り外し、PCから中身をチェックして設定ファイルをいくつか修正して復帰させましたが、この時、定期的なシステムのバックアップの必要性を感じた次第です。

図1. ダイヤグラム
図1. ダイヤグラム

今回は上記ダイヤグラムの日本サイトにある2つのRaspberry PiのシステムSDイメージを、ファイルサーバのストレージに使用しているUSBストレージへ出力する作業を考えます(上図中、dd RAWと記載されている2本の遷移)。

ddして圧縮してそれを保存するなり、ssh介して保存するというのが大まかな流れ、それをワンライナーで実現したいと調べてみると、やはり同じことを考える方はいらっしゃいます。


home Pi 2の場合、USBストレージはローカルですので、

pvはパイプの進捗を表示してくれる便利なツールで、検証用に挟んでいます。
gzipの圧縮率と速度の相対関係については、こちらの検証記事を参考にしました。


二つの異なる圧縮率で実験を行い、掛かった時間と生成されたバックアップファイルのサイズを比較してみます。

圧縮レベル 1:   18分  /  916MB
圧縮レベル 6:   31分  /  811MB (デフォルトレベル)

次にhome Pi 3の場合、圧縮後の出力先はssh先であるhome Pi 2になります。

こちらでも同様の条件で実験してみます。

圧縮レベル 1:   19分  /  1451MB
圧縮レベル 6:   25分  /  1157MB (デフォルトレベル)


ネットワークを介することが、ボトルネックになっていないのは意外です。

尚、home Pi 3の方がシステムサイズが大きいのは、運用期間が1年多いことや、搭載サービスが多いためです。

いずれも夜間の定期作業には充分ですので、ここは圧縮率優先でスケジューラへ登録です。ブロックデバイスを扱うので実行者はroot権限で。


home Pi 2のUSBストレージ上に置いておけば、別のタスクで、home Pi 3のバックアップ用USBストレージや、
香港サイトにあるNASへ複製されるので安心というわけです。

home Pi 2ファイルサーバのRAID10構成なUSBストレージについてはまた別の機会に紹介したいと思います。

投稿者: ServerCan

香港在住の日本人技術者です。技適が無いのでのびのび創作しています。 twitter: @ryan_j23 Mastodon: servercan@servercan.xyz

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA