自宅サーバ(CentOS7)のバックアップをとる

シェアする

スポンサーリンク

はじめに

また、この記事の内容について間違いを発見された場合は、指摘していただけると私の技術向上に繋がるほか、このブログを見てくださっている方にも役立つと思われますので、コメントなどで指摘していただけると幸いです

追記: この一般的なバックアップ方法では、サービスをすべて終了してからでないとバックアップデータに不整合が生じる可能性があります。オンラインバックアップ(サービスを動かしたままバックアップすること)に興味がある方は、 CentOS7でLVMのスナップショットを用いたオンラインバックアップをとる も併せて御覧ください。
前回はサーバーを止めてからすべてのバックアップを取る方法を紹介しました。しかし、毎日バックアップを取るなら、いちいちサーバーを止めてはいられないですよね。そこで、CentOS7の標準的な環境においてサーバーを止めずにバックアップを取る方法を紹介します。

バックアップをしようと思ったきっかけ

バックアップの重要性

私自身、バックアップの重要性については、前から承知していたつもりでした。本当に重要なデータについては、クラウドとローカルの両方に置くことを心がけていました。

しかし、特にこれといったルールを決めていたわけでもなく、どっちのファイルが新しいか分からなくなることもありましたし、まさにファイル管理の悪い例。いつかはちゃんとしなきゃと思って履いたものの、面倒で放置…今までデータが飛ばなかったことを喜ぶべきでしょう。

丁度いい機会

最近、メインPCのプライマリをHDDからSSDに変更しようと思い、余計なファイルを消す作業をしています。ちょうど、サイズの大きい動画や音楽ファイルなどは、自宅サーバのファイルサーバに移し終わったところです。

今まで、サーバにあるデータは大したことのないものでした。特に、このブログを始めるまでは、Linuxのデータ以外ほとんど何も入っていなかったと言ってもいいと思います。しかし、メインPCに入っていたデータを移すとなると、話は変わってきます。そこで、今回、ようやく重い腰を上げてバックアップをしようと決意したわけです

やってみよう

目的

HDD全体のデータをバックアップして、今のHDDが故障したときにデータ/システムを素早く復旧できるようにしたい。

準備

新しいHDD

SATAケーブル

(後ろに写っているのはHDDケース)

実はこれ、全部半年前くらいに買ったものなんです。

バックアップのために。

つまり、半年間、いつでもバックアップに取り掛かれたのに…

どうやってバックアップを取るか

バックアップに関して無知だった私は、ただ単にデータをzipにしてHDDに入れておけばいいかなどと思っていました。まあ、実際それでもデータのバックアップは取れそうですが、調べてみるとファイルシステムごとバックアップするdumpというコマンドがあるそうです。dumpコマンドはフルバックアップのみならず、差分を取ることができるなど自分でファイルをコピーするよりも優れた点があります。

今回はdumpコマンドを使ってバックアップを取ってみたいと思います。

ファイルシステムを調べる

今回バックアップを取りたいのは、rootとhomeとbootなので、ファイルシステムはxfsですね。

・・・dumpコマンドはext2/ext3/ext4ファイルシステムしか使えませんCentOS7からはext系ではなくxfsに変わったそうです。xfsではどうすればいいんだろう。調べてみたら、どうやらxfsdumpというコマンドを使うそうです(単純だな・・・)

ところが、dumpとxfsdumpはオプション関係が少し違うみたい(後述)

HDDのマウント

新しく接続したHDDは/dev/sdbみたいだということが分かりました。

ということで、そちらにパーティションを作成します。バックアップ用なので1つにしました。

xfsでフォーマットします

これで新しいHDDの準備は完了です。

xfsdumpの使い方

まず、シングルユーザモードになります。

これは、バックアップ中にファイルが変更されることで、整合性が取れなくなったり、バックアップデータが破壊されたりするのを避けるためです。

いろいろ調べた結果、こんな感じでよさそうなので、こうしました(適当)

実際、話が難しすぎてよくわからなかったのです。

先頭から説明すると、-Mでメディアラベル?の指定、-Lでセッションラベル?の指定ができます。

-lはラベルを設定するオプションで、フルバックアップのときは0を指定します。1以上は差分バックアップのためで、1を指定すると0との差分が、2を指定すると2より小さい(1または0)との差分が保存されます。9までしか指定できないので気をつけてください。

-uはログを残すみたいです。-fバックアップしたデータの保存先を指定します。最後に、df -Tで調べたバックアップしたいファイルシステムのパスを指定します。

また、dumpコマンドでは-zを使ってダンプファイルを圧縮することができますが、xfsdumpではできないようです。

今回は、1回切りのバックアップなので、この後、umountしました。

リストア

リストアに関しては、後から別な記事として書きたいと思います。

追記(2018/03/13): HDDのデータが全て吹っ飛んだと仮定して真っさらな状態からバックアップデータを用いて復元することに成功しました。いつか記事にしたいなと思っていますが、割と手順が複雑だったので長くなりそうです。データを戻すだけなら簡単なんですがね。(起動するためのデータが…)

感想

各ファイルシステムのバックアップを1つのファイルにまとめられるのは便利。

理解しないまま、調べてやったので、なんか間違っているかもという不安。

でも、ファイルサイズ見てる限り大丈夫そう?(頼りない)

今後の課題

最後までお読みいただきありがとうございました。

スポンサーリンク

シェアする

フォローする