1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Proxmox × iSCSI (+ LVM) で共有ストレージを作り、VMマイグレーションしてみた

Last updated at Posted at 2025-02-24

背景

  • Proxmox でクラスタを組むときは、よく Ceph を共有ストレージとして使う記事が多い。
  • ただ、一般的な iSCSINFS を利用した事例は少なめで、本当に動くのか気になった。
  • 調べてみると、iSCSI をクラスタで共有しようとした際にトラブル報告があるケースもあるらしい。
  • iSCSI ターゲットとして TrueNAS を使えば簡単にできそう
  • Proxmox に iSCSI イニシエータ設定をしてから、そのブロックデバイスを LVM でまとめて管理してみた。

結論から言うと、LVM (通常の LVM) を iSCSI 上に作った場合、VM マイグレーションがちゃんと動く し、時間もほとんどかからなくて快適でした。

(※ 後述しますが、同じことを LVM-ThinZFS でやったら色々トラブったので、今回は普通の LVM で成功した話に絞ります。)


環境イメージ

  • TrueNAS(詳細設定は割愛)
    • iSCSI ターゲットを用意して、Proxmox ノードからアクセス可能にしている
  • Proxmox ノード (pve53, pve54, pve55) の合計3台
    • すでにクラスタ化済み
    • すべて iSCSI のイニシエータ設定を行い、TrueNAS 上の LUN に接続する

iSCSI Target 側の設定

  • TrueNAS で iSCSI ターゲットを作成 (Portal, Initiator Group, Target, Extent など)
  • このへんは TrueNAS の UI でやれば簡単ですので割愛。

image.png
image.png
image.png
image.png
image.png
image.png
image.png

Proxmox 側での iSCSI 接続設定

Proxmox の WebUI で “iSCSI” ストレージを追加します。

  • Datacenter -> Storage -> “iSCSI” 追加
  • IP, Target 名、LUN の設定などをして、全ノードで利用できるようにする

image.png

これで各 Proxmox ノード上から、同じ /dev/sdX として iSCSI デバイスが見えるようになります。

root@pve53:~# ls -alF /dev/sda
brw-rw---- 1 root disk 8, 0 Feb 24 20:16 /dev/sda
root@pve54:~# ls -alF /dev/sda
brw-rw---- 1 root disk 8, 0 Feb 24 20:24 /dev/sda
root@pve55:~# ls -alF /dev/sda
brw-rw---- 1 root disk 8, 0 Feb 24 20:24 /dev/sda

LVM で物理ボリューム & ボリュームグループを作成

今回は CLI を使ってサクッと作りました。

# まず iSCSI デバイスを確認
root@pve53:~# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sda                8:0    0  150G  0 disk   <-- iSCSI上のブロックデバイス
...

# PV 作成
root@pve53:~# pvcreate /dev/sda
  Physical volume "/dev/sda" successfully created.

# VG 作成
root@pve53:~# vgcreate testvg /dev/sda
  Volume group "testvg" successfully created

# LV 作成
LV Proxmox にて自動的に作成されるため、手動での作成は不要です。

もちろん、このとき iSCSI のデバイスはノードごとに名前が違う場合もある ので注意してください。
fdisk -llsblk などで要確認です。


Proxmox 上で LVM ストレージとして登録

続いて Proxmox の WebUI で “LVM” ストレージを追加します。

  1. 「Datacenter -> Storage -> 追加(Add) -> LVM」を選択
  2. ID はわかりやすい名前 (例: LVM)
  3. Volume Group: さきほど作った testvg
  4. Contents: “Disk Image” にチェック
  5. “Shared” にチェック ← これ大事 (複数ノードで共有する)
    • ここにチェックを入れない場合、マイグレーション時にローカルディスク間のデータ移動と同様、すべてのディスクデータをコピーしようとしてしまうため、非常に時間がかかります。
    • 共有ストレージとして認識させることでディスク移動不要になり、高速なマイグレーションが可能になります。
  6. 保存

image.png

このストレージに VM ディスクを作れば、クラスタ全ノードから同じ VG/LV が見える状態になります。


VM のマイグレーションを試す

新規 VM を作成するとき、ディスクの保存先に「LVM」を選べばOK。
実際に適当な OS をインストールして起動してみます。

image.png

マイグレーションやってみた

  • VM を右クリック -> マイグレート (あるいは CLI の qm migrate <VMID> <宛先ノード> )
  • すると、「ローカルストレージ→ローカルストレージ」のコピーではなく、共有ストレージを参照しているだけなのでディスクを移動する必要がない ため、非常に速いです。
  • ほぼメモリの同期だけで済むので、ネットワーク帯域も最小限。あっという間にマイグレーションが完了して感動。

この手順を実践したところ、普通にマイグレーションが成功 しました。
マイグレーション後の VM の設定ファイルも、自動的に /etc/pve/nodes/pve54/qemu-server/100.conf のように移動されるので特にトラブルなし。
移行先ホストでの ゲスト OS の動作にも問題ありません。
移行中のping落ちも発生しませんでした。

image.png
image.png
image.png

スナップショット出来なかった

残念ながら、LVMではスナップショットはサポートされていません。
Proxmox Backup Server で代用したり、ストレージ側で対処するなど必要となります。
image.png


LVM-Thin や ZFS (iSCSI) でトラブった件

実は最初に「LVM-Thin iSCSI でやったら便利そう」と思って試したのですが、Proxmox クラスタに非対応っぽく“メタデータ”がずれてしまい、別ノード上ではストレージが “?” になったり しました。
ZFS で iSCSI をやってみようとしたときも同様にいろいろ怪しい動作が出てしまい、断念…。

このあたりは、別記事 でまとめようと思います。
とりあえず、素直に通常の LVM でやるのが無難でストレスなく動いた というのが今回の結論です。


参考情報

Fibre Channel Setup
How To Set Up Shared FC-SAN With Proxmox: All Steps


まとめ

  • TrueNAS上のiSCSIターゲットLVM (非Thin) を作り、Proxmox で “Shared” ストレージ として設定すると、複数ノードで問題なく利用できた。
  • VMマイグレーションをしてもディスクのコピーが不要なので高速。
    • “Shared” にチェックを入れないと、ローカル同士のコピーのように時間がかかる。
  • LVM-Thin や ZFS iSCSI はうまくいかなかった(別記事にまとめる予定)。

Proxmox をクラスタ環境で利用する際には、Ceph を利用する構成がよく紹介されていますが、一般的な iSCSI (+ LVM) 構成でも十分実用的でした。
もし同じように クラスタ環境でのProxmoxの共有ストレージ で悩んでいる方がいたら、まずは「iSCSI (+ LVM) で共有ストレージを組んでみる」のがおすすめです。

以上、「iSCSI 上に LVM を作って複数ノードでマウントし、Proxmox のマイグレーションも OK だった!」という成功事例でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?