読者です 読者をやめる 読者になる 読者になる

解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

GNU/Linux で使えるバックアップ用ソフトウェア

昨日から今日の昼頃まで季節外れの気温で、「もう春本番?!」と思うくらいだった不気味な天気でした。 近年は気候が異常なのが顕著で、対応と抑制が喫緊の死活問題だなと思います。

精密機器は温度と湿度が重要で、HDDは温度が高すぎても低すぎても壊れやすいようですし、SSDは湿度に弱いそうです。

私もHDDの故障には何度も遭遇しています。 異音で事前に察知したこともありますし、S.M.A.R.T. で気がついたこともあります。ちなみに、 S.M.A.R.T. の調査には smartmontoolsが便利です。 しかし、制御回路上の半導体の急死で事前に察知し得なかったこともあります(昔の、富士通の 5400 rpm のやつとか……)。

HDDは扱い方次第で5年も10年も保つ可能性がありますが、SSDは使い続けていると書換耐性が落ちて確実に使えなくなります。

いずれにせよ、バックアップは重要です。消えたら原状回復不可能なものはバックアップすることです。 GNU/Linuxでは /etc/homeのバックアップが挙げられますが、Gentoo だと /var/lib/portage/world のほかに /var/db/pkg のバックアップも挙げられます。

バックアップの方法

さて、バックアップの方法の問題です。

ディスクイメージごと

例えば、パーティションのイメージごとバックアップをするという方法もあります。 しかし、不必要なものまで入るのでサイズが巨大になります。 参考: ArchWiki

rsync

rsync を使うとディレクトリをまるごとコピー可能なので構造的に簡単で、変更されたファイルだけを同期させられます。 しかし、 rsync 自体には、一つのファイルにまとめたり圧縮したりする機能がありません。 参考: ArchWiki

自力

手作業で、 tar でアーカイブし(一つのファイルにまとめ)たり、gzip などで圧縮したりすることがあります。 圧縮形式は、gzipGNU のスタンダードですが、 lzip がバックアップに向いていると思われ、plzipを使えば並列処理が可能なのでマルチコアCPUなどでは速くなります。

ここで「バックアップ用に向いている」と言ったのは、万が一にもバックアップファイルが壊れた場合にも復原可能性があるということです。 圧縮率だけをみれば xz が高く、圧縮速度では lz4 が速いです。xz は圧縮率が高いので、 Linux カーネルソースコードの配布にも用いられています。

しかしともあれ、手作業だと大変です。しかも、変更された部分を検知して追加バックアップをする(インクリメンタルバックアップ)というのが困難です。

バックアップ専用ソフトウェア

そこで、アーカイブや圧縮に対応したバックアップ用ソフトウェアを使うと容易になります。

また、バックアップ先をどこに保存するかということが問題です。

手元のHDDやBD-Rにでもバックアップするのなら物理セキュリティの話ですが、災害に非常に脆弱だという欠点があります。紛失しても大変ですが、火災などで破損したら全滅です。

インターネット上の、Dropbox とか MEGA とか Amazon Web Service S3 とか Google Cloud Storage とか、さくらのレンタルサーバ スタンダードプランで scp とか、もしかすると マイクロソフト OneDrive とか Azureという人も居るかもしれず頭の痛いところです。 転送は TLS で暗号化されても、バックアップ先のサービスに全幅の信頼を置くのか、そもそもパスワードとか秘密鍵とかそのまま保存してはいけません。

いずれにせよ、暗号化は重要です。

つまり、インクリメンタルバックアップ対応で、圧縮と暗号化が可能なバックアップソフトウェアが良いということがいえます。 それを見つけるのに ArchWikiには、便利な表があります。

また、バックアップしたけど必要なときになって戻せるのか、想像してみますと、ちゃんとメンテナンスが活発に続いているソフトウェアでないといけません。

そこで私がここで採り上げるのは、duplicityBorgBackup です。 いずれも、圧縮対応、暗号化対応、メンテナンスが現在も活発です。

duplicity

duplicity は、圧縮は gzip 、暗号化は GnuPG です。つまり、tar/gz/gpg の3つを通したファイルが出力されます。 この特徴は利点でもあり欠点でもあります。 gzipGNU の標準的な圧縮ソフトウェアです。しかし圧縮率はそう高くありません。取り立てて速いわけでもありません。 GnuPG は、公開鍵暗号方式で、強力だと一般的にはいえます。しかし、利用可能にするまでの設定作業が別途に必要です。また、秘密鍵の保管が必要で、盗まれないように取扱注意でもあります。

Dupulicity の強みは、多くのオンラインストレージに対応していることDUPLICITY(1) manual page

それと、GUI フロントエンドもつくられています。(あまりおすすめはしませんが)

BorgBackup

BorgBackup、簡単には「Borg」ですが、

Borg の特徴は、リポジトリを作成してそこに追加していくところです。そのため、複雑で習得するまで苦労すると思います。 また、ローカルに保存するか、SSH で転送するかの2つにしか対応していません。他のオンラインストレージには対応していません(自力でアップロードすればいいのですが、手間省けてませんし)。

もうひとつ、重大な特徴は、保存先のシステムにも Borg をインストールすること(サーバ・クライアント方式)。 それが不可能な場合には、sshfs でマウントしてローカルのファイルシステムのように扱うという代替策が提案されています。 Borg - Quick Start - Remote repositories この点を考えると、さくらのレンタルサーバSSHログインを利用してバックアップするのにも難ありかもしれません。(「さくらのVPS 1G」(HDD 100GB)にでもすればいいんですが…)

結論

オンラインストレージを活用するなら duplicity。Google Cloud Storage とか AWS S3 とか Dropbox とか等々使えます しかし圧縮が gzip しかない。暗号化が GnuPG なのは利点にも欠点にもなります

Borg は、圧縮率重視にも、圧縮速度重視にも設定可能。共通鍵方式なので扱いやすい。しかしリモート保存が SSH のみ。リポジトリ式は便利だが、習得までに苦労が要ります