仮想マシンの Proxmox Backup Server で iSCSI

過去に一度、PBS は諦めた。ただ、その時は DeskMini のメモリーの相性に問題があったのが原因なので、今の環境で再度試してみる。
といいつつも新規に PC を調達するのは無駄なので、公式では推奨されていないけど仮想マシンに PBS をインストールする。ちなみに各ホストともメモリーは 32GB に増設済み。
ついでに、DS118 は iSCSI にも対応しているから、NFS じゃなく iSCSI を使ってみる。本来は PBS 用の物理マシンを用意して、ストレージもローカル(SSD)が望ましいけど自鯖だから良しとする。

NFS をストレージにする場合はこちらのサイトなどを参考に。

目次

DS118 の設定(iSCSI Target サービスの開始)

Synology のサイトを見ながら設定した。

で、いきなりつまずいたのが SAN Manager 。NFS はコントロールパネルのファイルサービスから有効化できるけど、iSCSI はメニューに無い。どこにあるんだろうと少し探してみたらパッケージセンターにあった(画像はインストール後)。DS118 を全然使いこなしてないのがバレバレ。

SAN Manager

最初の画面はこんな感じ。

最初の画面

LUN をクリックして「作成」。

LUNの作成

LUN のプロパティを設定する。サイズは後から小さくすることはできないから注意。
必要事項を入力して次へ。

LUN プロパティ

そのまま次へ。

iSCSI の選択

LAN 内の全てのイニシエータを許可するからそのまま次へ。

アクセス許可

設定の確認。

設定の確認

LUN の設定完了画面。ステータス「正常」で以下、設定どおりになっているハズ。

LUN 設定完了

続いて iSCSI を作成する。

iSCSI 追加

名前はご自由に。CHAP は自宅 LAN の閉じられた環境なので今回はチェックしない。次へ。

新規 iSCSI Target 作成

既存の LUN にマッピングする。

LUN マッピング

設定を確認して完了。

iSCSI 設定完了

Proxmox Backup Server の設定

インストール手順は割愛。以下のサイトをご覧ください。

PBS で外部ストレージの iSCSI を使うのは冒頭のとおり本来の推奨構成じゃない。そのせいなのか GUI の設定画面はなく、基本的にコマンドラインで設定する。次のサイトが分かりやすかった。

PBS と iSCSI(DS118)の接続テスト

DS118 の IP アドレスは 192.168.1.11。iscsiadm を実行すると次の2行が表示される。

root@pbs:~# iscsiadm -m discovery -t st -p 192.168.1.11
192.168.1.11:3260,1 iqn.2000-01.com.synology:DS118.Target-1.123456ABCDE
[fe80::9209:d0ff:fe0c:6267]:3260,1 iqn.2000-01.com.synology:DS118.Target-1.123456ABCDE

最初のコマンドで /etc/iscsi/nodes/iqn.2000-01.com.synology:DS118.Target-1.123456ABCDE/192.168.1.11,3260,1 のディレクトリが作られる。後で、この中のファイル default を編集する。

2つ目のコマンドでターゲットに接続できることを確認(ctrl + c で抜ける)。

root@pbs:~# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2000-01.com.synology:DS118.default-target.c86fb5b741b, portal: fe80::9209:d0ff:fe0c:6267,3260]
Logging in to [iface: default, target: iqn.2000-01.com.synology:DS118.default-target.c86fb5b741b, portal: 192.168.1.11,3260]
^Ciscsiadm: caught SIGINT, exiting... 

★ctrl+c で抜けた後logoutする場合は以下。
root@pbs:~# iscsiadm --mode node --logoutall=all
Logging out of session [sid: 4, target: iqn.2000-01.com.synology:DS118.default-target.c86fb5b741b, portal: 192.168.1.11,3260]
Logout of [sid: 4, target: iqn.2000-01.com.synology:DS118.default-target.c86fb5b741b, portal: 192.168.1.11,3260] successful.
root@pbs:~#

3つ目のコマンドで tcp の session が確立していることを確認。

root@pbs:~# iscsiadm -m session -o show
tcp: [1] 192.168.1.11:3260,1 iqn.2000-01.com.synology:DS118.Target-1.123456ABCDE (non-flash)
root@pbs:~#

パーティションの確認。ターゲットのデバイスが sdb として 500GB で認識されている。

root@pbs:~# cat /proc/partitions
major minor  #blocks  name

   8        0   33554432 sda
   8        1       1007 sda1
   8        2     524288 sda2
   8        3   33029103 sda3
 253        0    4063232 dm-0
 253        1   24903680 dm-1
   8       16  524288000 sdb
root@pbs:~#

iSCSI が起動時に有効になるよう、 ファイル default を編集する。

root@pbs:~# vi /etc/iscsi/nodes/iqn.2000-01.com.synology\:DS118.Target-1.123456ABCDE/192.168.1.11\,3260\,1/default

次の2行を manual から automatic に変更
node.startup = automatic
node.conn[0].startup = automatic

/etc/iscsi/iscsid.conf も同様に。

root@pbs:~# vi /etc/iscsi/iscsid.conf

次の行を manual から automatic に変更
node.startup = automatic

ZFS pool の作成

例では backups という名称の ZFS pool を作成する。

root@pbs:~# zpool create -f backups /dev/sdb
root@pbs:~# zpool list
NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
backups   496G   106K   496G        -         -     0%     0%  1.00x    ONLINE  -
root@pbs:~#

PBS 管理画面にログインしてストレージ/ディスクの ZFS を確認すると backups という名前で pool が作成、ONLINE であることが確認できる。

ZFS 確認

ここで PBS を再起動してみると、pool は消える。
このままだと PBS を再起動する度に手動で pool を追加しないとダメなので、ZFS service を作る。

最初に、次のコマンドでディスクを決定する(例では1行目)。

root@pbs:~# systemctl list-units --all --full | grep disk | grep 192.168.1.11
  dev-disk-by\x2dpath-ip\x2d192.168.1.11:3260\x2discsi\x2diqn.2000\x2d01.com.synology:DS118.Target\x2d1.123456ABCDE\x2dlun\x2d1.device          loaded    active   plugged   Storage
  dev-disk-by\x2dpath-ip\x2d192.168.1.11:3260\x2discsi\x2diqn.2000\x2d01.com.synology:DS118.Target\x2d1.123456ABCDE\x2dlun\x2d1\x2dpart1.device loaded    active   plugged   Storage backups
  dev-disk-by\x2dpath-ip\x2d192.168.1.11:3260\x2discsi\x2diqn.2000\x2d01.com.synology:DS118.Target\x2d1.123456ABCDE\x2dlun\x2d1\x2dpart9.device loaded    active   plugged   Storage 9

続いて pbsbks-pool.service(名称は参考サイトのまま)を作る。device の名称が長いから自分の環境に合わせてコピペ推奨。

root@pbs:~# vi /etc/systemd/system/pbsbks-pool.service
[Unit]
After=dev-disk-by\x2dpath-ip\x2d192.168.1.11:3260\x2discsi\x2diqn.2000\x2d01.com.synology:DS118.Target\x2d1.123456ABCDE\x2dlun\x2d1.device
 
[Service]
ExecStart=/usr/sbin/zpool import backups
ExecStartPost=/usr/bin/logger "started ZFS pool backups"
RemainAfterExit=yes
 
[Install]
WantedBy=dev-disk-by\x2dpath-ip\x2d192.168.1.11:3260\x2discsi\x2diqn.2000\x2d01.com.synology:DS118.Target\x2d1.123456ABCDE\x2dlun\x2d1.device

systemctl でサービスを登録、実行する。

root@pbs:~# systemctl daemon-reload
root@pbs:~# systemctl enable pbsbks-pool
Created symlink /etc/systemd/system/dev-disk-by\x2dpath-ip\x2d192.168.1.11:3260\x2discsi\x2diqn.2000\x2d01.com.synology:DS118.Target\x2d1.123456ABCDE\x2dlun\x2d1.device.wants/pbsbks-pool.service → /etc/systemd/system/pbsbks-pool.service.
root@pbs:~# systemctl restart pbsbks-pool

PBS を再起動して backups が出来ていたらOK。

datastore の作成

ここからは PBS の管理画面で設定する。画面左ペインから「データストア追加」をクリックして必要情報を入力する。名称はご自由に。Backing Path は作成した zpool の /backups (スラッシュを忘れずに)。Prune オプションは後から作成した datastore の設定画面で変更可能。
データストアの削除は CUI で(root@pbs:~# proxmox-backup-manager datastore remove datastore)。

データストアの追加
Prune & GC 設定画面

DS118 の SAN Manager で確認すると正常に動作している。

確認

PVE の設定

データセンターのストレージから Proxmox Backup Server を選択して追加する。2段階認証を設定している場合は、PBS 側で API Token の設定を忘れずに。

PBS で API token を追加

最初に PBS で普通にユーザーを追加する。画像の例では user というユーザーで、2段階認証の設定済み。
root だけで運用することもできるけどお勧めはしない。

PBS ユーザー追加

続いて API トークンを追加する。このとき、慌てて画面を閉じないように注意。APIトークンのシークレット値が表示されるのでコピーしておくこと。あとで、PVE にストレージを追加するときのパスワードになる。

API トークンの追加
APIトークンのシークレット値

user@pbs に datastore に対するアクセス権限を付与する。ロールは DatastoreAdmin。
この権限を継承する形で、API トークンにも同じように権限を付与する。
新規ユーザーを追加せず、トークン root@pam!token を作って権限を与えることでも可能。

これで PBS 側の基本的な設定は終了。バックアップを何世代残すか等の運用方法は適宜設定を。

PVE 側で PBS を追加

管理画面のデータセンターのストレージから Proxmox Backup Server を追加する。
ID は区別しやすい名前でOK。サーバー欄には PBS の IP アドレスを入力。ユーザー名は先に PBS で追加した API トークンの user@pbs!token。パスワードはコピーしておいたシークレット値。Datastore 欄は PBS で追加したデータストアの名称(datastore) 。入力間違いさえなければ各ノードのストレージに PBS が出てくる。

PBS 追加

注意

今回は PBS を仮想マシンとして追加している。この状態で PBS を iSCSI へのバックアップ対象として設定するとエラーになった。NFS へのバックアップには仮想マシンとしての PBS を含めても大丈夫。ローカルのデバイスではない iSCSI は含まれずにバックアップされる。

停電時の動作は少し気になる。PBS のイニシエータが停止してからターゲットの DS118 がシャットダウンを開始すればいいだろうということで、DS118 だけシャットダウンの開始を他より10秒遅らせて130秒にしてみた。

ということで、しばらく NFS へのバックアップと iSCSI への PBS によるバックアップの2種類で運用してみる。どっちも DS118 のストレージに対して実行するから無駄な設定といえばそのとおりだけど、自鯖だから誰にも迷惑をかけずに試してみることができるのは何かと便利。

コメント

コメントする

目次