Summary ¶
企業のネットが星を被い、電子や光が駆け巡ってもハイパーバイザーやデータが消えてなくなるほど、情報化されていない近未来。
VMware の社内利用を禁じられた企業ネットでは新しい仮想化基盤を構築するべく自宅環境をクローンするのであった。
前回は、仮想マシーンのテンプレートの作成をしました。今回は Proxmox 社が提供している Proxmox Backup Server を構築して Proxmox VE のバックアップ先として利用します。
Proxmox Backup Server とは ¶
Proxmox Backup Server は、VM、コンテナ、物理ホストをバックアップおよび復元するためのバックアップソフトウェアです。完全に重複排除された増分バックアップをサポートすることで、ネットワーク負荷を大幅に軽減し、ストレージスペースを節約します。
主な機能。
- 仮想マシンのバックアップ
- コンテナのバックアップ
- 物理ホストのバックアップ
- APT Repository で配布されている
- 確認出来た対応 OS は下記
- Debian 12 (Bookworm)
- Debian 11 (Bullseye)
- Debian 10 (Buster)
- Ubuntu 20.04 LTS
- ZFSD を利用した重複排除
- Rust で書かれたクライアントを利用することで CPU 負荷を減らし効率的に転送
- リモート同期
- LTO バックアップに対応
スペック ¶
Proxmox Backup Server の最低スペックは下記です。
CPU | 64bit 2+ Core |
Memory | 2GB |
OS Disk | 8GB~ |
Backup Storage | あるだけ |
NIC | 1+ |
また、推奨されているスペックは下記です。
CPU | 64bit 4+ Core |
Memory | 4GB + ZFS 領域 1TiB に対して 1GiB 追加 |
OS Disk | 32GB |
Backup Storage | All FLASH |
NIC | Redundant Multi-GBit/s |
そのため、 Memory
は 1TiB のバックアップストレージとする場合は最低 3GB、 推奨 5GB になります。
今回の構成 ¶
今回は、専用のサーバーを用意出来なかったため QNAP TS-664 を魔改造し TrueNAS SCALE に洗脳済みのハードウェア上に仮想マシンとして構築してみる、スペックは下記。
CPU | 2+ Core (N5105 4C/4T) |
Memory | 6GB |
OS Disk | 32GB |
Backup Storage | SATA SSD 500GB |
NIC | LACP 2x 10GbE |
ISO のダウンロード ¶
例のごとく Proxmox のこのページからダウンロードし sha256sum を確認しておきます。
TrueNAS SCALE に仮想マシンを作成 ¶
TrueNAS SCALE に設定する場合。
インストール ¶
No valid subscription を消す ¶
これは Proxmox VE の開発元がエンタープライズユースでサポートサービスを展開しているためその Subscription が無いという意味。個人で利用するには不要なためこのモーダル表示自体を消してしまう。
よくみる方法では後続で設定する自動アップデートの設定でソースが更新されると再度表示されるためこの方法としているこの方法であれば、 APT 完了後のファイル更新をきっかけに再度非表示化の処理が自動でされる。
SSH の PasswordAuthentication no ¶
Proxmox VE ではクラスターを作成すると自動的にバックエンドで SSH 秘密鍵による Tunnel が root で張られるがこれは、パスワード認証である必要はないため SSH のパスワード認証を無効化する。
この時に、一般サーバーのように PermitRootLogin no
するとクラスターも壊れるので注意。
|
|
sshd -T
コマンドで設定内容を確認しておく。
|
|
Update 設定 ¶
Update の設定を変更しておく。
Administration
>Repositories
を開くpbs-enterprise
を選択しDisable
をクリックし無効化する
Add
をクリックNo-Subscription
を選択しAdd
をクリック
NTP, SMTP relay, unattended-upgrades ¶
前回 Proxmox VE の設定でも設定したので、そちらを参考にしてください。
SMTP relay
は Configuration
> Notifications
にあります、内容はほぼ変わらないため Proxmox VE の記事を参考に設定してください。
- NTP
- unattended-upgrades
ZFS pool の作成 ¶
- 仮想マシンに追加の Disk を作成して追加
Administration
>Storage / Disks
へ移動ZFS
を選択Create: ZFS
をクリック- 必要事項を入力
GC & Prune 設定 ¶
datastore 上でバックアップの保持ポリシーを設定します。
とりあえず、 GC を毎日 21:00 にかける設定を追加。 保持設定は下記としました。
Max Depth | |
---|---|
Keep Last | 3 |
Keep Hourly | 30 |
Keep Daily | 3 |
Keep Weekly | 4 |
Keep Monthly | 4 |
Keep Yearly | - |
Proxmox VE アクセスユーザーの作成 ¶
Configuration
>User Management
へ移動Add
をクリックUser name
: 適当Password
: 長いやつConfirm Password
: 長いやつ
API Token 作成 ¶
Configuration
>API Token
へ移動Token Name
を入力Add
をクリック
表示された Token ID
と Secret
を Copy Secret Value
で控えておく。
Permissions を設定 ¶
Configuration
>Permissions
へ移動Add
をクリックUser Permission
を開くPath
:/datastore
User
: 先ほど作成したユーザーを設定Role
:DatastoreAdmin
を選択
次に API Token
に権限を付けます。
API Token Permission
を開くPath
:/datastore
API Token
: 先ほど作成した API Token を設定Role
:DatastoreAdmin
を選択
完了すると、 user と API Token の 2 つに権限が付いている。
完了したら、下記の方法で権限を確認しておく。
Configuration
>Permissions
へ移動API Token
をクリックShow Permissions
をクリック/datastore
配下に権限があることを確認
Proxmox VE へ設定 ¶
Datacenter
>Storage
へ移動Add
をクリックProxmox Backup Server
を選択ID
: 無難にホスト名を入力Server
: IP アドレスUsername
: 先ほどの API TokenPassword
: API SecretDatastore
: 今回はbackups
Fingerprint
: Proxmox Backup Server の画面から入手
Backup 設定追加 ¶
Backup 設定を追加して Proxmox Backup Server へバックアップの取得を開始する。
Datacenter
>Backup
General
- Storage:
pbs-02
- Schedule:
*/1:00
- Selection mode
All
- Notification mode:
Default(auto)
- Send email to: ひみつ
- Send email:
On failure only
- Mode:
Snapshot
- Storage:
Note Template
は cluster: {{cluster}}({{node}}), {{vmid}}({{guestname}})
を入力している。
バックアップのテスト ¶
テストは Run now
で開始できる。 Logs に進捗が表示される。
また、 Proxmox Backup Server 側でも完了すると履歴を確認できる。
まとめ ¶
今回は Proxmox Backup Server を構築して Proxmox VE のバックアップ設定をしました。バックアップの計画によっては pool などでタイミングを変更できるため弊宅では template は日時、 VM は毎時で取得しています。一時的に作成した VM は取得しないなど柔軟に設定すると良いでしょう。また今回の方法であれば ZFS の重複排除も効いてくるのでストレージの大幅な削減も可能です。
弊宅では、3 年ほど運用していますが重複排除係数( Deduplication Factor )が 134.0 になっています。弊宅の環境では 500GB のストレージで一杯になっているので雑に計算すると 500*134.0 = 67TB 程度のストレージが必要な所このサイズで収まっています。