Proxmox VE から Proxmox Backup Server へのバックアップ・リストア手順

# Proxmox VE から Proxmox Backup Server へのバックアップ・リストア手順

## 1. 概要

- 本記事は **Proxmox Backup Server (PBS)** が既に稼働していることを前提とします。  
- **Proxmox VE (PVE)** 上の仮想マシンやコンテナを PBS にバックアップし、必要に応じてリストアするまでの流れを解説します。  
- 特に、バックアップの **全体リストア** と **ファイル単位リストア**（ファイルレベルリストア）の手順も紹介しています。  
- 記事の最後に、バックアップ実行時によく見られる **「trying to get global lock waiting..」エラー** について解説しています。

---

## 2. PBS を Proxmox VE にストレージとして追加

### 2.1 PBS 側の情報を確認

- **PBS のホスト名 or IPアドレス**  
  - 例: `192.168.11.46`  
- **PBS Web UI にログインして Fingerprint を確認**
  - PBS の Web UI で `[Configuration] -> [Certificates]` を開くと `Fingerprint` が表示されます  
  - または PBS CLI で `proxmox-backup-manager cert info` を実行  

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/10d875b9-b86b-9111-268f-5c15314137a9.png)

- **PBS のユーザ名とパスワード**  
  - `root@pam` / インストール時に設定したパスワード  
- **Datastore 名**  
  - PBS Web UI の左ペイン `Datastore` 一覧で名前を確認 (例: `pbs-nfs`, `local`, etc.)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/821a3675-e1eb-986e-d581-194a6be2ab5a.png)

### 2.2 Proxmox VE にストレージ追加

1. **Proxmox VE Web UI** に管理者権限でログイン  
2. 左ペインで **`データセンター`** → 右画面上部 **`Storage`** タブ  
3. **`Add`** → **`Proxmox Backup Server`** を選択  
4. 以下の情報を入力  
   - **ID**: 任意の名前 (例: `pbs-backup`)  
   - **Server**: PBS ホスト名 or IP (例: `192.168.11.46`)  
   - **Fingerprint**: PBS 証明書のフィンガープリント (そのままコピペ)  
   - **Username** / **Password**: PBS の認証情報 (例: `root@pam` / `********`) 
   - **データストア**: PBS 側に設定されているデータストア (例: `nfs-datastore`)  
5. **追加** ボタンで保存

登録が成功すると、左ペインに `pbs-backup`（例）が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/94528533-5e1a-f59c-f7d6-e5f76df85e65.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/ffe3a43e-c007-13df-33c6-6d20c0015248.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/3ee60a4d-a78c-42d5-f81d-557b2bc46397.png)

---

## 3. バックアップ手順

### 3.1 バックアップジョブの作成

1. Proxmox VE 左ペイン **`データセンター`** → 右ペイン **`バックアップ`** タブ  
2. **`追加`** ボタンでジョブを追加  
3. 各項目を設定  
   - **ストレージ**: 先ほど登録した PBS (`pbs-backup`)  
   - **選択モード**: バックアップ対象の VM や CT を選択
   - **Schedule**: バックアップ実行スケジュール (CRON形式/日次/週次など)  
   - **Compression (圧縮方式)**, **Retention (保持ポリシー)** などを必要に応じて設定  
4. **`作成`** で保存

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/5d3ae371-f40d-6fae-6f25-0262331f445a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/64155591-230f-6907-e4a5-d5876af6c5e5.png)

### 3.2 バックアップの実行

- 設定したスケジュールになれば自動バックアップが走ります。  
- すぐにテストしたい場合は、該当ジョブを選択 → **`直ちに実行`** で手動実行できます。  
- 実行ログは Proxmox VE の下ペイン **`タスク`** をダブルクリックすることで確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/cbf3f7f9-0147-6051-f18f-2789784e0107.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/7e319168-7f0b-b196-869e-e53f28c525e0.png)

---

## 4. リストア手順

ここでは、**(A) 仮想マシン/コンテナ全体のリストア** と、**(B) ファイル単位のリストア (ファイルレベルリストア)** を解説します。

### 4.1 (A) 全体リストア (VM/CT 復元)

1. Proxmox VE 左ペインで **対象ノード** を選択  
2. 右ペイン **`バックアップ`** タブ → **`ストレージ: pbs-backup`** → を選択  
3. リストアしたいバックアップをクリック → 上部の **`リストア`** をクリック  
4. **`リストア`** を押して実行

リストアが完了すると、新しい VM (または CT) として復元されます。  
問題なく起動・動作するか確認しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/75dffb54-e0c8-6067-6b49-e8f539c606d9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/94707d53-8ee2-8b91-a0cc-731cfd808ca7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/c1ab97c1-43f1-35f4-7ae9-6a8fa216b02f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/3f551d26-8cf8-a3c5-bf6c-b95986af323d.png)

:::note norice
リストアを行うと、最初に元のディスクが全て削除されます。
バックアップが正常に行えていない場合、元のディスクが削除され、かつ、リストアが行えないため、完全にデータを失う事となります。
このため、万が一の救済のためにも、予め元の仮想マシンのクローンを取っておくことをお勧めします。

参考までに、バックアップが正常に行えていない場合、リストアを試みると以下のようなエラーが出ました。

```text
ERROR: Backup of VM 105 failed - backup write data failed: command error: write_data upload error: pipelined request failed: detected chunk with wrong digest. INFO: Failed at 2025-02-08 13:35:42
```
:::

---

### 4.2 (B) ファイル単位のリストア (ファイルレベルリストア)

1. **Proxmox VE 左ペイン** → **対象ノード**  
2. 右ペイン **`ストレージ`** → `pbs-backup` → **`バックアップ`** タブ  
3. 対象バックアップをクリック → 上部の **`ファイルのリストア`** をクリック  
4. ファイルブラウザが表示されるので、該当ディレクトリやファイルを探して **`ダウンロード`** をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/95e883fe-b31e-d2ce-7271-84d616e846ba.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/39ed872c-cb95-18e7-ea52-604936ed0e8c.png)

:::note notice
Proxmox Backup Serverを使わず、Proxmox VEでバックアップを行った場合、以下のように、ファイルからリストアメニューが表示されず、ファイル単位のリストアを行うことは出来ません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3789581/aaf2a67b-2c55-34a4-f74f-7213bae7bde3.png)
:::

---

## 5. よくあるエラー：「trying to get global lock waiting..」

### 5.1 エラー内容・現象

PBS でバックアップジョブやガーベジコレクション (GC)、Verify 処理が同時に発生すると、**`trying to get global lock waiting..`** というエラー（またはメッセージ）がログに出ることがあります。  
これは **「PBS がデータ整合性を保つためにグローバルロックを取得しており、別の処理が待たされている」** 状況を意味します。

### 5.2 原因

1. **バックアップジョブが多数同時に走っている**  
   - PBS へのバックアップ要求が一斉に集中すると、内部で排他が必要な操作がロック待ちになる。  
2. **ガーベジコレクション (GC) や Verify と衝突**  
   - 古いスナップショットをクリーンアップする GC や、バックアップデータの整合性をチェックする Verify 処理も、同じロックを必要とする。  
   - これらが同じデータストアで同時タイミングに実行されると競合が起こる。  
3. **PBS のリソース不足**  
   - CPU やメモリ、ディスク I/O、ネットワーク帯域が足りないと処理が長引き、ロックを占有する時間が増える。

### 5.3 対策

1. **ジョブスケジュールの分散**  
   - バックアップ時間をずらす  
   - GC や Verify をバックアップと重ならない時間帯に実行  
   - タイミングが重ならないように CRON 設定を工夫する  
2. **Proxmox VE 側で運用調整**  
   - バックアップジョブの開始時間を少しずつずらす（直接「同時実行数」を設定する仕組みはない）  
   - 大量の VM/CT を一度にバックアップしないよう、複数のジョブに分割するなど工夫する  
3. **PBS のハードウェア増強**  
   - ディスク I/O (SSD / NVMe)、メモリ、ネットワークを改善すると、ジョブが迅速に完了しロック占有時間も短くなる。  
4. **必要に応じて GC / Verify の頻度を見直す**  
   - 毎日 GC/Verify を走らせるのではなく、週1や月1にする (ただしバックアップ容量が膨大にならないよう注意)

### 5.4 まとめ

「trying to get global lock waiting..」は PBS のロック機構による待機メッセージであり、深刻なエラーというよりは **複数のジョブが同時に走りすぎている** ことを示唆しています。  
運用上は **スケジュール分散** や **PBS リソースの増強** を行い、エラーや待機時間を最小化しましょう。

---

## 6. まとめ

本記事では、**Proxmox VE** から **Proxmox Backup Server (PBS)** にバックアップを設定し、**全体リストア・ファイル単位リストア** を行う方法について解説しました。  
最後に、バックアップ実行時に発生しやすい **「trying to get global lock waiting..」** のエラー原因や対策を詳述しています。

- **バックアップの流れ**  
  - PVE で PBS ストレージを追加 → バックアップジョブ作成 → 手動またはスケジュール実行  
- **リストアの流れ**  
  - 全体リストア：`Backups` タブから該当スナップショットを選び、`Restore`  
  - ファイルリストア：`File Restore` で一時マウントし、個別ファイルを取得  
- **よくあるエラー「trying to get global lock waiting..」**  
  - PBS のロック機構が原因 → スケジュール分散やリソース増強で対処  

定期的なバックアップとテストリストアを行い、万一の障害にも迅速に対応できるよう備えてください。