Proxmox Backup Server(PBS)にNASのストレージをマウントしてバックアップする

# 背景
こんにちは，VMWareのライセンス有料化に伴い， Proxmoxに乗り換えようとサーバ構築を行っている者です．
Proxmoxで作成した仮想マシンのバックアップ先をNASのストレージにしたいのですが，Proxmox VE上では設定できません．
そのため __Proxmox Backup Server(PBS)__ を利用して解決します．
PBSからNASへの接続方法に関しては，英語のフォーラムがあったのですが，日本語の記事はおそらくなかった？のでまとめてみました．
参考：https://forum.proxmox.com/threads/playground-time-virtual-pbs-with-iscsi-backend.88395/

# 動作環境
Proxmox Virtual Environment 8.3.5
Proxmox Backup Server 3.2-2
NAS：QTS 5.2.4.3079

# PBSからNASにiSCSI接続する
あらかじめNAS側でiSCSIのターゲットリストを作成しておき，LUNを割り当てておきましょう．
PBSのコンソールで
``` 
iscsiadm --mode discovery --portal [NASのIP] --type sendtargets 
```
と打つと，iSCSIターゲットリスト一覧が「iqn...」というiqn表記で出てくるので目当てのものを探します．

目当てのターゲットリストを使って以下のコマンドでログインします．
``` 
iscsiadm -m node --targetname=[iqn表記のターゲットをコピペ] --login 
```

接続されているiSCSIドライブを確認します．
``` 
iscsiadm -m session -P 3 
```

以下のように出てきたらログイン成功です．

![スクリーンショット 2025-05-12 184952.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4085244/ea1d35cf-d2c2-4304-bebc-2ac2447876d2.png)

起動時に自動でiSCSI接続するよう設定しておきましょう．
```
iscsiadm -m node -T [iqn表記のターゲットをコピペ] -p [NASのIP] --op update -n node.startup -v automatic
```

# パーティションを作る
```iscsiadm -m session -P 3```の出力の中に，```Attaced scsi disk sdb```のような記述があると思います．これがiSCSI接続を行っているPBS側のデバイスファイルです．sdbの部分はsdaやsdcだったりします．

以下のコマンドでデバイスファイルにパーティションを作ります．
```
fdisk /dev/sdb #さっき確認したデバイスファイルを選択
```
このコマンドを打つとエラーが出るかもしれないです．デフォルトでDOSパーティションテーブルというものを作ろうとしますが，これは2TBまでしか対応していないというエラーです．
その場合はGPTパーティションテーブルで対応します．
以下のようにコマンドを入力していってください．
```
Command (m for help): g    # GPTパーティションテーブルを作成
Command (m for help): n    # 新しいパーティションを作成
Partition number (1-128, default 1): [Enter]  # デフォルトを選択
First sector (2048-17179869183, default 2048): [Enter]  # デフォルトを選択
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-17179869183, default 17179869183): [Enter]  # デフォルトで全容量を使用
Command (m for help): w    # 変更を書き込む
```

# パーティションのフォーマット
パーティションが作れたらフォーマットします．
以下のコマンドでパーティションの名前を確認します．
```
lsblk
```
出力を見ると，どこにパーティションが作られているかわかると思います．

![スクリーンショット 2025-05-12 185951.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4085244/092226bf-cf66-4747-a1a2-2098893a2ee4.png)

partと書かれている部分がパーティションです．
パーティションの名前を確認したらフォーマットしましょう．
```
mkfs.ext4 /dev/sdb1 #さっき確認したパーティションを選択
```

# マウントを行う
マウントを行うディレクトリをPBS上に作成します．ディレクトリ名をiscsiとしていますが，名前は何でも良いです．
```
mkdir -p /mnt/iscsi
```

NASストレージをマウントします．
```
mount /dev/sdb1 /mnt/iscsi #sdb1の部分はさっき確認したパーティションを選択
```

# PBS上にストレージを作る
以下のコマンドでPBS上にデータストアを作成します．
```
proxmox-backup-manager datastore create [任意のデータストア名] /mnt/iscsi
```

作成が完了すると，PBSのGUI上で左の「Datastore」欄に作成したデータストアが追加されます．

# 自動マウントの設定
起動時に自動的にマウントされるよう設定しておきましょう．
以下のコマンドを入力します．
```
nano /etc/fstab
```
ファイルの編集画面になるので以下のコマンドを追記します．
```
/dev/sdb1 /mnt/iscsi ext4 defaults,_netdev 0 0
```
追記出来たら，「Ctrl + X」 → y → Enterでファイルを更新します．

# Fingerprintの確認
後ほどバックアップの設定で使うので，以下のコマンドで証明書のフィンガープリントを確認しておきましょう．
```
proxmox-backup-manager cert info
```
Fingerprint(sha256)の記述が確認できると思います．


# ProxmoxVE上でPBSのストレージを追加する
Proxmox VEにログインして，左上の「Datacenter」→ 「Storage」を選択します．
上部の「Add」→ 「Proxmox Backup Server」を選択し以下のように入力してください．
- ID：分かりやすい名前（例：pbs-backups）
- Server：PBSサーバのIPアドレス，またはホスト名
- Username：PBSのユーザ名（デフォルトはroot@pam）
- Password：上記ユーザのパスワード
- Nodes：PBSサーバと接続したいノード，つまりバックアップを取りたいノードを選択する．「All」を選択すると全て選択できる
- Datastore：先ほど設定した任意のデータストア名の部分を入力
- Fingerprint：先ほど確認したFingerprintをコピペ

![スクリーンショット 2025-05-12 185209.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4085244/92d5391c-21ae-48f4-86ec-3ee0473c5b24.png)

入力できたら「Add」を選択

# バックアップの設定を行う
Proxmox VE上で左上の「Datacenter」→ 「Backup」を選択します．
上部の「Add」を選択し以下のように入力してください．
- Node：バックアップを取りたいノードを選択
- Storage：先ほど設定したStorageのIDを選択
- Schedule：バックアップを行うスケジュールを選択
- Selection mode:
    - Include selected VMs：下で選択したVMをバックアップする
    - All：すべて選択．これにしておくと __新しく作成したVMも自動的にバックアップされる__
    - Exclude selected VMs：下で選択したVM以外をバックアップする
    - Pool：よくわからない
- Notification mode：バックアップの成功通知などの設定
    - Default(Auto)：メールアドレスの設定を行える．設定しない場合は通知システムで登録したメールアドレスが使われる．基本これでいい
    - Email(legacy)：システムのsendmailコマンドを使用して通知メールを送信する．（前のバージョンでの方式だから今後なくなるかも？）
    - Notification system：通知システムの設定を利用して通知する
- Send email to：上記の通知先メールアドレスを設定するところだが， __Proxmoxのサーバ構築時に設定したメールアドレスと競合するため空欄でいい__

![スクリーンショット 2025-05-12 185256.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4085244/e37312e8-cc83-4828-bc25-62884b570851.png)

入力できたら「Create」を選択

# 設定完了
以上で設定は完了です．結構大変ですね．．．
成功していれば，設定した日時にバックアップが行われ，メールが届くと思います．届かない場合はSMTPなどの設定が必要かもです．．．
Proxmox VEの画面下「Tasks」からもバックアップのタスクが確認できます．
PBSのバックアップメールはめちゃくちゃ分かりやすいです．ghettoVCBではどのVMが失敗しているのか探すのが大変だったなとしみじみ思います．