ボリュームバックアップのメモ。
 
 
Go to file
rohhie 723f59a024 First version 2022-10-17 20:03:03 +09:00
baseimage First version 2022-10-17 20:03:03 +09:00
Dockerfile First version 2022-10-17 20:03:03 +09:00
README.md First version 2022-10-17 20:03:03 +09:00
backup.sh First version 2022-10-17 20:03:03 +09:00
do-backup.sh First version 2022-10-17 20:03:03 +09:00
docker-compose.yml First version 2022-10-17 20:03:03 +09:00
entrypoint.sh First version 2022-10-17 20:03:03 +09:00

README.md

hogedomain backup

概要

ホームラボのサーバーで稼働している3システムのボリュームをバックアップする。
操作ミスでボリュームが削除されないよう、バックアップ用のコンテナを削除しない。

ホームラボのサーバーをバックアップすることを目的としており、汎用的にできていない。
雑なバックアップをする際のテンプレート&やり方メモ。
(名前のhdは、HOGEDOMAINの略称)

構築方法

ダウンロード

このリポジトリからダウンロードする。

git clone https://gitea.rohhie.net/rohhie/hd-backup.git
cd hd-backup

ベースとなるイメージを作成

バックアップコンテナのベースとなるイメージを作成する。
スクリプトの修正等でコンテナを作り直す際に、最低限のダウンロードで済ませるため。

sudo baseimage/mkbaseimage.sh

なお、ベースイメージにはSambaをインストールしている。
sysvolディレクトリの拡張属性をバックアップするためなので、不要な場合はapk addのところから削除する。

バックアップ対象のボリュームを設定

docker-compose.ymlを編集し、バックアップ対象のボリュームを設定する。

コンテナ内の/tmp配下にマウントしているが、このディレクトリは存在しなければ作られる。
ただし、バックアップでsambaの機能(拡張属性の取得)を使うため、/etc/sambaと/var/lib/sambaは所定の場所にマウントしている。

バックアップ先は、ホストの/var/backupsにしている。

バックアップスクリプトを修正

ホームラボでバックアップしたいボリュームを固める処理を書いている。
sysvolについては、拡張属性を取り出して、復元用のスクリプトを作成している。

バックアップ対象のボリュームにあわせて、バックアップスクリプトを修正する。

バックアップ実行スクリプトを修正

バックアップ対象のコンテナを停止し、バックアップを実行し、コンテナを起動する。
3システム(5コンテナ)を停止・起動しているが、必要に応じて修正する。

使い方

バックアップ実行スクリプトを実行する。

sudo ./do-backup.sh

環境によっては、クーロンに登録しても良いと思われる。
ホームラボでは、サーバーが常時動いていないので、手動で実行することにしている。

リストア

リストアする際には、バックアップスクリプトが動作しないように docker-compose.yml を変更する。

      DO_BACKUP: "false"

設定変更後、コンテナを起動し、コンテナの中でリストア操作をする。

sudo docker compose up -d
sudo docker exec -it backup ash --login

Samba ad dcについては拡張属性設定スクリプトを用意しているので、復元後に実行しておく。
var/lib/samba/NTACL

その他

詳細はメインサイト参照。
https://rohhie.net/back-up-the-docker-volume/

ライセンス

MIT