0
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 VE 9.0 Backing Chain LVM - ゼロクリア最適化編

Posted at

検証結果を基に、ゼロクリア最適化検証記事を完成させます。

はじめに

前回の検証で、Proxmox VE 9.0のBacking Chain LVM機能におけるスナップショット削除時のゼロクリア処理について基本的な動作確認を行いました。1GBディスクでの検証により、ロールバックとスナップショット削除において約102秒のゼロクリア処理が実行されることが判明しました。

今回は、この処理時間の最適化に焦点を当てた検証を実施します。単一テナント環境での安全性を前提に、2つの最適化手法を検証します。

前回検証結果の要約

ゼロクリア処理の目的について

前回の調査で明らかになった重要な点をお示しします:

情報源と正確な理由

前回の測定結果

  • テスト環境:1GB仮想ディスク
  • 処理時間:約102秒(ロールバック・削除共通)
  • 処理速度:約10MB/s(デフォルト設定)
  • 処理の法則:処理時間 ≒ ディスクサイズ ÷ 約10MB/s

前回の検証コマンド実行結果より

zero-out data on image vm-102-disk-0.qcow2 (/dev/iSCSI-LVM-VG/del-vm-102-disk-0.qcow2)
105906176 B 101.0 MB 10.00 s 10590407 B/s 10.10 MB/s
210763776 B 201.0 MB 20.00 s 10537974 B/s 10.05 MB/s
...
1077936128 B 1.0 GB 102.70 s 10495893 B/s 10.01 MB/s

今回の検証目的

単一テナント環境における以下2つの最適化手法の検証:

  1. ゼロクリア無効化(saferemove 0)
  2. ゼロクリア高速化(saferemove_throughput 50M)

検証の前提条件

  • 環境:単一テナント環境(データ漏洩リスクが限定的)
  • 安全性:同一組織内での利用のため、セキュリティリスクは許容可能
  • 目的:運用効率の向上とスナップショット操作の高速化

検証環境

システム構成

前回と同じ環境での検証を実施:

Proxmox VE: 9.0
ノード名: tx1320m1
iSCSI Target: TrueNAS
テストVM: test (VM ID: 102)
仮想ディスク: 1GB(前回と同じ容量で比較検証)

使用する仮想マシン

既存の仮想マシン(VM ID: 102)を使用して検証を実施します:

root@tx1320m1:~# qm list
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID
       100 rhel9                stopped    4096              60.00 0
       101 RHEL9-Proxmox84-iSCSI stopped    4096             100.00 0
       102 test                 stopped    2048               1.00 0

root@tx1320m1:~# qm config 102
agent: 1
boot: order=scsi0;ide2;net0
cores: 1
cpu: x86-64-v2-AES
ide2: local:iso/rhel-9.6-x86_64-dvd.iso,media=cdrom,size=12462528K
machine: q35
memory: 2048
meta: creation-qemu=10.0.2,ctime=1756222237
name: test
net0: virtio=BC:24:11:17:8C:FD,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsi0: iSCSI-LVM:vm-102-disk-0.qcow2,iothread=1,size=1G
scsihw: virtio-scsi-single
smbios1: uuid=0a310e01-a3d0-485a-a777-eb0c7566f845
sockets: 1
vmgenid: 58da4422-f7e3-4a23-a05a-2a9925b5821b

仮想マシンの特徴

  • 名前: test
  • メモリ: 2048MB
  • CPU: 1コア(x86-64-v2-AES)
  • ディスク: iSCSI-LVM:vm-102-disk-0.qcow2(1GB、Backing Chain対応)
  • ネットワーク: virtio(ファイアウォール有効)

検証1: ゼロクリア無効化(saferemove 0)

設定変更

# storage.cfg の設定変更
vim /etc/pve/storage.cfg

変更後の設定

lvm: iSCSI-LVM
        vgname iSCSI-LVM-VG
        base TrueNAS:0.0.0.scsi-36589cfc0000007974c3b8445544ea1fc
        content images,rootdir
        saferemove 0
        shared 1
        snapshot-as-volume-chain 1

検証手順と結果

1. スナップショット作成

time qm snapshot 102 test-saferemove-0 --description "Test snapshot with saferemove disabled"

実行結果

snapshotting 'drive-scsi0' (iSCSI-LVM:vm-102-disk-0.qcow2)
  Renamed "vm-102-disk-0.qcow2" to "snap_vm-102-disk-0_test-saferemove-0.qcow2" in volume group "iSCSI-LVM-VG"
  Rounding up size to full physical extent 1.00 GiB
  Logical volume "vm-102-disk-0.qcow2" created.
Formatting '/dev/iSCSI-LVM-VG/vm-102-disk-0.qcow2', fmt=qcow2 cluster_size=131072 extended_l2=on preallocation=metadata compression_type=zlib size=1073741824 backing_file=snap_vm-102-disk-0_test-saferemove-0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16

real    0m1.668s
user    0m0.738s
sys     0m0.248s

2. ロールバック実行

time qm rollback 102 test-saferemove-0

実行結果

  Logical volume "vm-102-disk-0.qcow2" successfully removed.
  Rounding up size to full physical extent 1.00 GiB
  Logical volume "vm-102-disk-0.qcow2" created.
Formatting '/dev/iSCSI-LVM-VG/vm-102-disk-0.qcow2', fmt=qcow2 cluster_size=131072 extended_l2=on preallocation=metadata compression_type=zlib size=1073741824 backing_file=snap_vm-102-disk-0_test-saferemove-0.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16

real    0m1.820s
user    0m0.750s
sys     0m0.303s

3. スナップショット削除

time qm delsnapshot 102 test-saferemove-0

実行結果

vm-102-disk-0.qcow2: deleting snapshot 'test-saferemove-0' by commiting snapshot 'current'
running 'qemu-img commit /dev/iSCSI-LVM-VG/vm-102-disk-0.qcow2'
Image committed.
delete vm-102-disk-0.qcow2
  Logical volume "vm-102-disk-0.qcow2" successfully removed.
rename snap_vm-102-disk-0_test-saferemove-0.qcow2 to vm-102-disk-0.qcow2
  Renamed "snap_vm-102-disk-0_test-saferemove-0.qcow2" to "vm-102-disk-0.qcow2" in volume group "iSCSI-LVM-VG"

real    0m1.411s
user    0m0.698s
sys     0m0.223s

重要なポイント

ゼロクリア処理の完全スキップ

  • ロールバック時に「zero-out data」メッセージが一切出力されない
  • 前回の102秒から1.8秒に大幅短縮(約98%の時間短縮
  • CPU負荷も最小限(vmstatでwa(I/O待機)がほぼ0%)

検証2: ゼロクリア高速化(saferemove_throughput 50M)

設定変更

# storage.cfg の設定変更
vim /etc/pve/storage.cfg

変更後の設定

lvm: iSCSI-LVM
        vgname iSCSI-LVM-VG
        base TrueNAS:0.0.0.scsi-36589cfc0000007974c3b8445544ea1fc
        content images,rootdir
        saferemove 1
        shared 1
        snapshot-as-volume-chain 1
        saferemove_throughput 50M

検証手順と結果

1. スナップショット作成

time qm snapshot 102 test-throughput-50m --description "Test snapshot with 50M throughput"

実行結果

snapshotting 'drive-scsi0' (iSCSI-LVM:vm-102-disk-0.qcow2)
  Renamed "vm-102-disk-0.qcow2" to "snap_vm-102-disk-0_test-throughput-50m.qcow2" in volume group "iSCSI-LVM-VG"
  Rounding up size to full physical extent 1.00 GiB
  Logical volume "vm-102-disk-0.qcow2" created.
Formatting '/dev/iSCSI-LVM-VG/vm-102-disk-0.qcow2', fmt=qcow2 cluster_size=131072 extended_l2=on preallocation=metal compression_type=zlib size=1073741824 backing_file=snap_vm-102-disk-0_test-throughput-50m.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16

real    0m1.466s
user    0m0.719s
sys     0m0.226s

2. ロールバック実行

time qm rollback 102 test-throughput-50m

実行結果

  Renamed "vm-102-disk-0.qcow2" to "del-vm-102-disk-0.qcow2" in volume group "iSCSI-LVM-VG"
  Rounding up size to full physical extent 1.00 GiB
  Logical volume "vm-102-disk-0.qcow2" created.
Formatting '/dev/iSCSI-LVM-VG/vm-102-disk-0.qcow2', fmt=qcow2 cluster_size=131072 extended_l2=on preallocation=metadata compression_type=zlib size=1073741824 backing_file=snap_vm-102-disk-0_test-throughput-50m.qcow2 backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
zero-out data on image vm-102-disk-0.qcow2 (/dev/iSCSI-LVM-VG/del-vm-102-disk-0.qcow2)
524288000 B 500.0 MB 10.00 s 52427643 B/s 50.00 MB/s
1049624576 B 1.0 GB 20.00 s 52479660 B/s 50.05 MB/s
1077936128 B 1.0 GB 20.56 s 52428145 B/s 50.00 MB/s
zero out finished (note: 'No space left on device' is ok here): write: No space left on device
  Logical volume "del-vm-102-disk-0.qcow2" successfully removed.
successfully removed volume vm-102-disk-0.qcow2 (iSCSI-LVM-VG/del-vm-102-disk-0.qcow2)

real    0m30.913s
user    0m0.783s
sys     0m1.134s

3. スナップショット削除

time qm delsnapshot 102 test-throughput-50m

実行結果

vm-102-disk-0.qcow2: deleting snapshot 'test-throughput-50m' by commiting snapshot 'current'
running 'qemu-img commit /dev/iSCSI-LVM-VG/vm-102-disk-0.qcow2'
Image committed.
delete vm-102-disk-0.qcow2
  Renamed "vm-102-disk-0.qcow2" to "del-vm-102-disk-0.qcow2" in volume group "iSCSI-LVM-VG"
rename snap_vm-102-disk-0_test-throughput-50m.qcow2 to vm-102-disk-0.qcow2
  Renamed "snap_vm-102-disk-0_test-throughput-50m.qcow2" to "vm-102-disk-0.qcow2" in volume group "iSCSI-LVM-VG"
zero-out data on image vm-102-disk-0.qcow2 (/dev/iSCSI-LVM-VG/del-vm-102-disk-0.qcow2)
524288000 B 500.0 MB 10.00 s 52428334 B/s 50.00 MB/s
1048576000 B 1.0 GB 20.00 s 52428428 B/s 50.00 MB/s
1077936128 B 1.0 GB 20.55 s 52465546 B/s 50.04 MB/s
zero out finished (note: 'No space left on device' is ok here): write: No space left on device
  Logical volume "del-vm-102-disk-0.qcow2" successfully removed.
successfully removed volume vm-102-disk-0.qcow2 (iSCSI-LVM-VG/del-vm-102-disk-0.qcow2)

real    0m30.582s
user    0m0.777s
sys     0m1.023s

重要なポイント

正確な50MB/sでの処理実行

  • 設定通りの50.00MB/sでゼロクリア処理が実行
  • 前回の102秒から約30秒に短縮(約70%の時間短縮
  • vmstatでI/O負荷が高くなる(wa値が12-13%まで上昇)

システムリソース使用量分析

vmstat監視結果

saferemove 0の場合

# CPU使用率:us=0-1%, sy=0-1%, wa=0-1%
# I/O:bi/bo共に最小限
# 処理中もシステム負荷はほぼゼロ

saferemove_throughput 50Mの場合

# CPU使用率:us=0-2%, sy=1-2%, wa=12-13%
# I/O:bo(書き込み)が49152-230028の範囲で変動
# メモリ使用量が段階的に増加(bufferキャッシュの活用)

比較結果

処理時間比較

設定 スナップショット作成 ロールバック スナップショット削除 備考
デフォルト(saferemove 1) 約1.7秒 約102秒 約102秒 セキュリティ重視
無効化(saferemove 0) 1.668秒 1.820秒 1.411秒 最高速(98%短縮)
高速化(50MB/s) 1.466秒 30.913秒 30.582秒 セキュリティとのバランス(70%短縮)

処理内容の差異

設定 ゼロクリア処理 実際のスループット セキュリティレベル CPU負荷
saferemove 1(デフォルト) 実行される 約10MB/s
saferemove 0 完全スキップ N/A 最小
saferemove_throughput 50M 高速実行される 正確に50MB/s

推奨設定

環境別推奨事項

単一テナント環境(今回のケース)

lvm: iSCSI-LVM
        vgname iSCSI-LVM-VG
        base TrueNAS:0.0.0.scsi-36589cfc0000007974c3b8445544ea1fc
        content images,rootdir
        saferemove 0
        shared 1
        snapshot-as-volume-chain 1

理由:98%の時間短縮効果、データ漏洩リスクが低い環境では最適

セキュリティ重視かつ性能も考慮する環境

lvm: iSCSI-LVM
        vgname iSCSI-LVM-VG
        base TrueNAS:0.0.0.scsi-36589cfc0000007974c3b8445544ea1fc
        content images,rootdir
        saferemove 1
        saferemove_throughput 50M
        shared 1
        snapshot-as-volume-chain 1

理由:セキュリティを保ちつつ70%の時間短縮、CPU負荷は増加

マルチテナント環境

lvm: iSCSI-LVM
        vgname iSCSI-LVM-VG
        base TrueNAS:0.0.0.scsi-36589cfc0000007974c3b8445544ea1fc
        content images,rootdir
        saferemove 1
        shared 1
        snapshot-as-volume-chain 1
        # デフォルト設定でセキュリティ最優先

理由:データ漏洩防止を最優先、処理時間は二の次

注意事項とリスク

セキュリティ面の考慮

  1. データ残存リスク(saferemove 0)

    • 削除データが物理的に残存
    • 単一テナント環境では許容可能
    • 機密データの場合は要検討
  2. コンプライアンス要件

    • 業界規制との整合性確認が必要
    • 監査対応での説明責任

運用面の考慮

  1. CPU・I/O負荷(saferemove_throughput設定時)

    • I/O待機時間が12-13%まで上昇
    • 他のVMへの影響を監視
    • ピーク時間帯の運用は要注意
  2. 容量との関係

    • 大容量ディスクほど効果が顕著
    • 100GBディスクなら5時間→1時間の短縮効果

まとめ

検証結果総括

今回の検証により、Proxmox VE 9.0のBacking Chain LVM機能におけるゼロクリア最適化の劇的な効果が実証されました。

主要な成果

  • saferemove 0: 98%の処理時間短縮(102秒→1.8秒)
  • saferemove_throughput 50M: 70%の処理時間短縮(102秒→30秒)
  • 正確な速度制御: 設定値通りの50MB/sでの動作確認

最適化効果の評価

処理時間短縮効果

  • saferemove 0:98%短縮(最大効果、セキュリティトレードオフあり)
  • saferemove_throughput 50M:70%短縮(セキュリティ維持、CPU負荷増加)

実用性の評価

  • 単一テナント環境では大幅な効率化が可能
  • セキュリティ要件に応じた柔軟な設定選択
  • システムリソースとのバランス考慮が重要

Backing Chain LVM機能の総合評価

メリット

  • スナップショット容量の効率化
  • 柔軟な性能チューニング(今回実証)
  • セキュリティレベルの選択可能
  • 劇的な処理時間短縮(最大98%)

デメリット

  • Technology Preview段階
  • 設定の複雑性
  • パフォーマンス調整の必要性
  • セキュリティとのトレードオフ

今後の展望

  1. Proxmox VE 9.Xでの正式リリース対応

    • 正式版での機能改善に期待
    • 追加パラメータの検証継続
  2. 大容量環境での効果検証

    • 100GB以上での検証予定
    • 実運用環境での長期評価

関連記事・参考情報

本シリーズ記事

  • 第1回:「Proxmox VE 9.0 Backing Chain LVM - iSCSI設定手順編」
  • 第2回:「Proxmox VE 9.0 Backing Chain LVM - 動作確認(失敗編)」
  • 第3回:「Proxmox VE 9.0 Backing Chain LVM - 動作確認(成功編)」
  • 第4回:「Proxmox VE 9.0 Backing Chain LVM - ゼロクリア最適化編」

技術情報源

0
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
0
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?