Hard Disk

業務や自宅環境のバックアップは、Proxmox Backup Serverで行っています。導入後、順調に定期的なバックアップも無事取れているので障害時にどうやってバックアップを復元すればよいのかを記録しておきたいと思います。

Proxmox Backup Serverは設定済みとします。データストアやその他の設定などは、他の記事でまとめたいと思います。

クライアント環境

Laptop / ArchLinux

PBSを使う上で知っておくと良い事

Backup Repository Locations

proxmox-backup-clientを利用する際、指定されたフォーマットに従ってデータストアを指定します。

1
[[username@]server[:port]:]datastore

ユーザ名を指定しない場合は、root@pamが自動的に設定されます。また、サーバーを指定しない場合はlocalhostになります。

また、NATポートフォワードでホストを公開してる場合は、ポート番号を指定することで利用可能です。

環境変数

環境変数を設定しておくことで、コマンド実行時にリポジトリを指定しなくても環境変数の値を利用することが可能です。

他にも、多くの機能がProxmox Backup Serverにはあります。詳しくは、公式ドキュメントをご参照ください。

Backup Client Usage

Proxmox Backup Clientのインストール

Debian系のディストロの場合は、Proxmox公式リポジトリからインストール可能です。その他のディストロの場合は、Proxmoxのリポジトリからコンパイルすれば動作すると思います。

今回は、 ArchLinuxProxmox Backup Clientを導入します。

1
paru proxmox-backup-client
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
❯ proxmox-backup-client
Error: no command specified.
Possible commands: backup, benchmark, catalog, change-owner, garbage-collect, help, key, list, login, logout, map, mount, prune, restore, snapshot, status, task, unmap, version

Usage:

proxmox-backup-client backup {<backupspec>} [OPTIONS]
proxmox-backup-client benchmark [OPTIONS]
proxmox-backup-client catalog dump <snapshot> [OPTIONS]
proxmox-backup-client catalog shell <snapshot> <archive-name> [OPTIONS]
proxmox-backup-client change-owner <group> <new-owner> [OPTIONS]
proxmox-backup-client garbage-collect [OPTIONS]
proxmox-backup-client help [{<command>}] [OPTIONS]
proxmox-backup-client key change-passphrase [<path>] [OPTIONS]
proxmox-backup-client key create [<path>] [OPTIONS]
proxmox-backup-client key create-master-key
proxmox-backup-client key import-master-pubkey <path>
proxmox-backup-client key import-with-master-key [<path>] --encrypted-keyfile <string> --master-keyfile <string> [OPTIONS]
proxmox-backup-client key paperkey [<path>] [OPTIONS]
proxmox-backup-client key show [<path>] [OPTIONS]
proxmox-backup-client key show-master-pubkey [<path>] [OPTIONS]
proxmox-backup-client list [OPTIONS]
proxmox-backup-client login [OPTIONS]
proxmox-backup-client logout [OPTIONS]
proxmox-backup-client map <snapshot> <archive-name> [OPTIONS]
proxmox-backup-client mount <snapshot> <archive-name> <target> [OPTIONS]
proxmox-backup-client prune <group> [OPTIONS]
proxmox-backup-client restore <snapshot> <archive-name> <target> [OPTIONS]
proxmox-backup-client snapshot files <snapshot> [OPTIONS]
proxmox-backup-client snapshot forget <snapshot> [OPTIONS]
proxmox-backup-client snapshot list [<group>] [OPTIONS]
proxmox-backup-client snapshot notes show <snapshot> [OPTIONS]
proxmox-backup-client snapshot notes update <snapshot> <notes> [OPTIONS]
proxmox-backup-client snapshot protected show <snapshot> [OPTIONS]
proxmox-backup-client snapshot protected update <snapshot> <protected> [OPTIONS]
proxmox-backup-client snapshot upload-log <snapshot> <logfile> [OPTIONS]
proxmox-backup-client status [OPTIONS]
proxmox-backup-client task list [OPTIONS]
proxmox-backup-client task log <upid> [OPTIONS]
proxmox-backup-client task stop <upid> [OPTIONS]
proxmox-backup-client unmap [<name>]
proxmox-backup-client version [OPTIONS]

データストアの使用量の確認

1
2
3
4
5
6
7
8
❯ proxmox-backup-client status --repository DATASTORE_URI
┌───────┬────────────────────────┐
│ total │ 1967846068224  (100 %) │
├───────┼────────────────────────┤
│ used  │ 1612807843840   (82 %) │
├───────┼────────────────────────┤
│ avail │  255001554944   (13 %) │
└───────┴────────────────────────┘

バックアップ一覧

1
2
3
4
5
6
❯ proxmox-backup-client list --repository DATASTORE_URI
┌──────────────┬───────────────────────────────────┬──────────────┬─────────────────────────────────────┐
│ group        │ last snapshot                     │ backup-count │ files                               │
╞══════════════╪═══════════════════════════════════╪══════════════╪═════════════════════════════════════╡
│ host/host900 │ host/host900/2022-01-13T21:56:59Z │            3 │ catalog.pcat1 index.json sites.pxar │
└──────────────┴───────────────────────────────────┴──────────────┴─────────────────────────────────────┘

backup-countから最後のバックアップから何世代前のバックアップがあるか分かります。

スナップショット一覧

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
❯ proxmox-backup-client snapshot list host/host900 --repository DATASTORE_URI
┌───────────────────────────────────┬────────────┬─────────────────────────────────────┐
│ snapshot                          │       size │ files                               │
╞═══════════════════════════════════╪════════════╪═════════════════════════════════════╡
│ host/host900/2022-01-06T05:33:14Z │ 18.479 GiB │ catalog.pcat1 index.json sites.pxar │
├───────────────────────────────────┼────────────┼─────────────────────────────────────┤
│ host/host900/2022-01-06T23:19:37Z │ 18.106 GiB │ catalog.pcat1 index.json sites.pxar │
├───────────────────────────────────┼────────────┼─────────────────────────────────────┤
│ host/host900/2022-01-13T21:56:59Z │ 18.217 GiB │ catalog.pcat1 index.json sites.pxar │
└───────────────────────────────────┴────────────┴─────────────────────────────────────┘

バックアップのリストア

バックアップ内のファイルを一覧

バックアップされたファイルの一覧が可能です。目的のファイルの確認などが行えます。

1
2
3
4
5
6
7
❯ proxmox-backup-client catalog dump host/host900/2022-01-06T05:33:14Z --repository DATASTORE_URI
d "./sites.pxar.didx"
d "./sites.pxar.didx/data"
f "./sites.pxar.didx/data/backup_data.tar.gz" 883319265 2021-12-31T02:16:10Z
.
.
.

対話式リストア

対話シェルで目的のファイルを素早く取り出すことができます。

1
2
3
4
5
6
7
❯ proxmox-backup-client catalog shell host/host900/2022-01-13T21:56:59Z sites.pxar --repository DATASTORE_URI
Starting interactive shell
pxar:/ > ls
data
logs
plugins
readme.txt

様々なコマンドが標準で用意されており、素早く目的のファイルを探し出すことができます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
pxar:/ > help
Usage:

cd [<path>]
clear-selected
deselect <path>
exit
find <pattern> [OPTIONS]
help [{<command>}] [OPTIONS]
list-selected [OPTIONS]
ls [<path>]
pwd
restore <target> [OPTIONS]
restore-selected <target>
select <path>
stat <path>

バックアップのリストア

1
pxar:/ > restore ./ --pattern readme.txt

バックアップをFUSEでマウント

バックアップをFUSEでマウントすることができます。rsyncと併用して他のホストへの転送などが行えます。

1
2
3
4
5
❯ proxmox-backup-client mount host/host200/2022-01-13T21:56:59Z sites.pxar testpoint DATASTORE_URI
Password for "root@pam": ********
FUSE library version: 3.10.5
❯ ls testpoint
data  logs  plugins  readme.txt

対話シェル、FUSEでマウントを行うと、Proxmox Backup Serverのダッシュボードのタスク一覧に読み込みが行われている事が確認できます。

Task List

終わりに

Proxmox Backup Serverは、プル型ではなくクライアントからのプッシュ型での利用を想定されたバックアップサーバーです。そのため、OpenMediaVaultなどのように、「Rsyncでサーバーからリモートのディレクトリを同期」などの手法が使えなくなります。バックアップ時にホスト名を指定することもできないため、自動的にクライアントの名前が設定されます。

自分や会社でのユースケースとしては、主にレガシーシステムのバックアップなので、利用できる手法としてはRsyncしかありません。

現在は、Dockersshfsを利用してバックアップを行っています。やり方については今度まとめたいと思います。