proxmox」タグアーカイブ

ProxmoxでZFS ARCの利用上限を設定

ZFSではL1ARCでRAMの50%をデフォルトで使用する。他の用途で優先的に使われ、影響はないとのことだが、Proxmox GUIの表示上、気になるので設定する。

起動直後にAでRAM使用率が50%にスパイクしていることがわかる。BとCはVMを2台起動した挙動。Ballooningが効いている。

現状ステータス確認

“c_max”列に表示される。16GBの場合、”8589934592″がデフォルト値。

nano /proc/spl/kstat/zfs/arcstats

上限設定

以下のサイトによると、システムで2GB、ZFSプール1TBに1GB必要とのこと。今回5GBにしてみる。本番環境では、FreeNASのように8GB以上にしたほうがいいかもしれない。

echo 5368709120 > /sys/module/zfs/parameters/zfs_arc_max
# 再起動後も永続させる
echo 'options zfs zfs_arc_max=5368709120' > /etc/modprobe.d/zfs.conf

結果確認

参考サイト

ARC(メモリキャッシュ)の設定

https://qiita.com/juze9/items/563b67b9f2d67d1fa270

“ZFS uses 50 % of the host memory for the Adaptive Replacement Cache (ARC) by default. Allocating enough memory for the ARC is crucial for IO performance, so reduce it with caution. As a general rule of thumb, allocate at least 2 GiB Base + 1 GiB/TiB-Storage. For example, if you have a pool with 8 TiB of available storage space then you should use 10 GiB of memory for the ARC.”

https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysadmin_zfs_limit_memory_usage

“ZFS will also use available memory as a read cache. I’m not sure of the exact defaults, but its max is usually set somewhere around half the total memory available. All of those things are opportunistic. They’ll use whatever memory they think they might need if it’s available, but will release it other things need it more.”

https://www.reddit.com/r/Proxmox/comments/qlav4j/high_memory_usage_with_one_vm_running/

ProxmoでZFS RAIDZ1のベンチマーク

ProxmoxでSSD*3のZFS RAIDZ1のベンチマークをとる。RAMキャッシュが効いているため、5~10倍くらいの速度になっているが、目安として記録。

UnsafeはVM強制停止すると、NTFSのエラーチェックが走ることがある。Proxmox公式が推奨している、Write Backに帯域リミッターを組み合わせるのが良いかもしれない。

キャッシュなし(既定)

Write back(Unsafe)

Write back

ProxmoxでLXCコンテナがあるとクラスター参加できない

“this host already contains virtual guests”というエラーになる。一度コンテナをバックアップして、クラスター参加後にリストアする必要がある。

Syslogを確認

nano /var/log/syslog
# Ctrl + Wでキーワード検索

ブラウザのWebシェルだと、Ctrl + Wでタブを閉じる動作になるため、nanoで検索できない。PowerShellやSSHクライアントで行う。

参考ページ

https://forum.proxmox.com/threads/cluster-join-failed-this-host-already-contains-virtual-guests.55965/

LXCコンテナはクラスター参加後に作成するのが望ましい。

ネストHyper-Vはパフォーマンスが落ちる

Windows Server2022のHyper-Vで以下のコマンドでネスト仮想化を有効化し、Proxmoxでベンチマークを取ったところ、ディスク速度は1/2以下になった。

Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -OutFile C:\Enable-NestedVm.ps1
C:\Enable-NestedVm.ps1 -VmName "Proxmox"

記憶域スペースで高速化した大容量ディスクをProxmox用のVMプールとして使うのはあまり現実的ではなさそう。また、なぜかキャッシュモードUnsafeのほうがパフォーマンスが落ちた。Virtioドライバ導入済み。

キャッシュモードWriteBack, IOThreadオン

キャッシュモードWriteBack(Unsafe), IOThreadオン