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 (+ Thin-LVM) をクラスタで試したらトラブった話

Last updated at Posted at 2025-02-24

これは、私が Thin-LVM を Proxmox×TrueNAS(iSCSI) 環境で試した際の記録です。
結論から言うと、クラスタ環境では Thin-LVM のメタデータまわりで問題が起きてしまい、思うように使えなかった という話になります。
同様の構成を考えている方の参考になれば幸いです。

背景

  • Proxmox クラスタで共有ストレージを使う際、記事としては Ceph を導入する例が多い。
  • 一般的な iSCSINFS を使った事例は少なく、気になって調べてみた。
  • 別記事で紹介した「iSCSI + 通常のLVM」の組み合わせでは問題なくマイグレーションができたが、同じ iSCSI 上に “Thin-LVM” を作ったらどうなるのか? 試してみた。
  • 結果として、他ノードで “?” 表示になったり してしまい、運用が出来ないことが分かった。

環境イメージ

  • TrueNAS(詳細設定は割愛)
    • iSCSI ターゲットを用意して、Proxmox ノード (pve53, pve54, pve55) からアクセス
  • Proxmox 3ノードでクラスタを構成
  • iSCSI イニシエータ 設定済み -> 全ノードで同じ LUN を参照できる状態

iSCSI Target 側の設定

  • TrueNAS で Portal, Initiator Group, Target, Extent などを適宜作成
  • Proxmox 側から /dev/sda などとして同じブロックデバイスが見えるようにしている

Proxmox 側での iSCSI 接続設定

  • Datacenter -> Storage -> “iSCSI” 追加
  • Portal, ターゲットの設定などをして、全ノードで利用できるようにする

image.png

root@pve53:~# lsblk | grep sdb
sdb                         8:16   0   100G  0 disk
root@pve54:~# lsblk | grep sdb
sdb                         8:16   0   100G  0 disk
root@pve55:~# lsblk | grep sdb
sdb                         8:16   0   100G  0 disk

Thin-LVM プールを作成してみる

普通の LVM と違い、Thin-LVM はメタデータ用の LV とデータ用の LV を作る必要があります。
私は次のようにやってみました。

# iSCSI デバイスを確認
lsblk
# 例: sdb  100G

# PV として作成
pvcreate /dev/sdb
# VG 作成
vgcreate testvg2 /dev/sdb

```bash
root@pve55:~# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
root@pve55:~# vgcreate testvg2 /dev/sdb
  Volume group "testvg2" successfully created

LVM Thinプール作成

例: testvg2 内に thinpool という名前で 80G のプールを作成

lvcreate -L 80G -n thinpool --type thin-pool testvg2

root@pve55:~# lvcreate -L 80G -n thinpool --type thin-pool testvg2
  Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data.
  Logical volume "thinpool" created.

ここで、lvscan などをすると、testvg2/thinpool が認識されます。

root@pve55:~# lvscan | grep thinpool
  ACTIVE            '/dev/testvg2/thinpool' [80.00 GiB] inherit

Proxmox に “LVM-Thin” ストレージとして登録

Proxmox の WebUI でストレージ追加を行います。

  1. Datacenter -> Storage -> Add -> LVM-Thin
  2. ID: ThinLVM
  3. ボリュームグループ: testvg2
  4. Thin Pool: thinpool
  5. 内容: “ディスクイメージ, コンテナ”
  6. 保存

image.png

これで、“ThinLVM” というストレージができ、VM ディスクを置けるようになります。ただし、3つのノードに表示されるThinLVMが、追加作業を行ったノード以外では、“?” 表示になっています。

image.png


いざ使おうとしたら…… 他ノードで “?” 表示に

  • LVM-Thinを作成したノード (例: pve55) のWebUIストレージ欄のサマリとVMディスクを見ると、正しく容量が表示されます。

image.png
image.png

  • しかしながら、他のノード (例: pve54) のWebUIのストレージ欄のサマリとVMディスクを見ると、サマリの容量が表示されず、VMディスクでもエラー no such logical volume testvg2/thinpool (500) が表示されます。

image.png
image.png

  • 念のため、各ノードでlvscanを実行するも、正しく認識できているように見えます。
root@pve53:~# lvscan | grep thinpool
  inactive          '/dev/testvg2/thinpool' [80.00 GiB] inherit
root@pve54:~# lvscan | grep thinpool
  ACTIVE            '/dev/testvg2/thinpool' [80.00 GiB] inherit
root@pve55:~# lvscan | grep thinpool
  ACTIVE            '/dev/testvg2/thinpool' [80.00 GiB] inherit

ThinLVMを作成したノードで VM ディスクを Thin-LVM に作成

新規 VM 作成画面で、ディスクの保存先を “ThinLVM” にしてインストール開始。
問題なく OS がインストールでき、VM も普通に起動しますが、上のエラーは解消されませんでした。

ThinLVMを作成したノード以外 VM ディスクを Thin-LVM に作成

新規 VM 作成画面で、ディスクの保存先を “ThinLVM” にしようとするも、残容量が0 Bとなっていました。選択して強行するも、TASK ERROR: unable to create VM 102 - no such logical volume testvg2/thinpool とエラーが出て失敗しました。

image.png

image.png


調べてみると、どうも LVM-Thin はクラスタ運用には対応していない という情報がありました。
通常の LVM なら clvm(clustered LVM) と組み合わせる方法もあるようですが、Proxmox の標準機能では対応していないようで、Thin-LVM メタデータの同期が期待どおり動作しない らしいです。


結論: クラスタ環境なら素直に “通常の LVM” または “他の共有ストレージ” が無難

  • Proxmox×TrueNAS(iSCSI) で Thin-LVM を試すと、クラスタ運用では メタデータの整合性 が取れず、ノードによって “?” 表示や認識不可、といったトラブルに遭遇した。
  • クラスタ環境でスナップショットや Thin Provisioning が必要なら、Ceph, NFS(qcow2) など 別の選択肢を検討した方が良さそう。
  • 普通の LVM なら問題なくクラスタ共有ができてマイグレーションも高速なので、まずはそちらを使うのがおすすめ。

今回は以上です。もし「Thin-LVM で共有してもうまくいってるよ!」という事例をご存知の方がいたら、ぜひ教えてください。

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?