rsync バックアップの危険性

嶋田大貴さん(@shimariso ) と K.Nambaさん(@ipv6labs ) の会話より
7
嶋田大貴 @shimariso

長年バックアップに rsyncを使ってる人が一度は経験する何か 「ニュースをお伝えします。ディスクが飛んだのでバックアップをあたったところ、現場からは半年前に刺さって動かなくなったrsyncのプロセスが発見されており」

2020-05-27 10:39:00
嶋田大貴 @shimariso

あと自分はやったことないけど /var/lib/mysql とかをスナップショット取らずに直接 rsync(とかでコピー)してる人マジで見直したほうがいいぞ

2020-05-27 10:42:07
嶋田大貴 @shimariso

cronでシェルスクリプト走らせてバックアップする場合、何もかもが正常に完了した場合だけ done ってファイルをどこかに作るようにして、そのファイルのタイムスタンプが一定以上古くなってないかを監視ツールで監視すると良いよ。

2020-05-27 10:45:56
嶋田大貴 @shimariso

ファイルの最終更新からの経過秒数はこれで得ると良いです $(( $(date +%s) - $(stat -c %Y /path/to/done) ))

2020-05-27 10:47:09
嶋田大貴 @shimariso

一時的なスナップショットを作ってバックアップする処理を自作している人は、スナップショットをアンマウントする処理とか使い終わったスナップショットを削除する処理が「失敗」した場合のことも考慮しないと翌日以降のバックアップが失敗したりスナップショットが溜まっていって死んだりするぞ。

2020-05-27 11:15:15
嶋田大貴 @shimariso

@ipv6labs うちも必ず btrfs subvolume snapshot か lvcreate -s(+mount) しますね

2020-05-27 11:03:44
嶋田大貴 @shimariso

@ipv6labs で、「なんかしらんけどディスクの調子が悪くて使い終わったスナップショットがちゃんと消えず翌日のバックアップに支障が」のパターンもあるあるです。

2020-05-27 11:04:52
K.Namba/(お菓子|おやつ)エバンジェリストDX🍩 @ipv6labs

@shimariso 1週間7世代でだいたいやってますね。 週末はフル、平日は差分 差分 zfs send 最高です。

2020-05-27 11:15:17
嶋田大貴 @shimariso

@ipv6labs うちも `date +%a` で曜日名を使って7世代やってます。うちの場合はrsyncで完全に同期したものを曜日名で btrfs subvolume snapshotしてます

2020-05-27 11:20:40
K.Namba/(お菓子|おやつ)エバンジェリストDX🍩 @ipv6labs

@shimariso %w = 0 がフルバックアップのスナップショットイメージ %w > 0 が差分のスナップショットイメージ まず 0-Sun に戻して、5-Fri をさらに戻す 感じです。(リストアの際 snapshot 自体が残っているなら zfs rollback しちゃいますが。

2020-05-27 11:27:10
嶋田大貴 @shimariso

@ipv6labs zfs sendみたいにストリーム化されたイメージだとテープでの運用に置き換えることもできる強みがありますね。

2020-05-27 11:31:50
K.Namba/(お菓子|おやつ)エバンジェリストDX🍩 @ipv6labs

@shimariso tar はもちろん、dd よりもずっとはやい! HDD な ZFS でも LTO の速度にリニアに乗せられます。

2020-05-27 20:56:16
akiatoji @akiatoji

自分は正常完了した処理からredisにexpire(生存期限)付きのキーを書いて、そのキーを監視して存在しなかったらアラートが出るようにしてる。どこで処理が行われてもredisサーバーを覗けば良いだけなので監視を一元管理できて便利。 twitter.com/shimariso/stat…

2020-05-27 11:19:52