Proxmox VE
High Availability
Proxmox Documentation: High Availability
Below are relevant excerpts from the above source materials for quick access to necessary commands for various tasks. Please consult the source material for more documentation related to the concepts and commands referenced there.
Error Recovery
ha-manager set vm:100 --state disabled
Node Maintenance
Maintenance Mode
ha-manager status
ha-manager crm-command node-maintenance enable [NODENAME]
ha-manager crm-command node-maintenance disable [NODENAME]
ZFS
Upgrade single disk rpool to mirrored rpool
I added a second M.2 drive to a laptop already running Proxmox VE. From the zpool-attach man page:
If the existing device is a mirror or plain device (e.g. specified as "sda" or "mirror-7"), the new device will be mirrored with the existing device, a resilver will be initiated, and the new device will contribute to additional redundancy once the resilver completes.
Steps:
- Use gdisk or sgdisk to copy the partition table from the existing drive to the new drive and change the GUID.
- Make the second disk bootable
- Attach the new disk to the existing disk using zpool attach.
# backup partition table from the existing disk nvme0n1
gdisk /dev/nvme0n1
b
gdisk.part.nvme0n1
q
# restore the backed up partition table to the new disk nvme1n1
gdisk /dev/nvme1n1
r
l
gdisk.part.nvme0n1
x
g
R
w
# same result as using gdisk above
# I have not actually used this method yet
sgdisk --replicate=/dev/nvme1n1 /dev/nvme0n1
sgdisk --randomize-guids /dev/nvme1n1
pve-efiboot-tool status
# Setup the UEFI bootloader
pve-efiboot-tool format /dev/nvme1n1p2 --force
pve-efiboot-tool init /dev/nvme1n1p2
pve-efiboot-tool status
#
# BEFORE
#
root@pve1:~# zpool status
pool: rpool
state: ONLINE
status: Some supported and requested features are not enabled on the pool.
The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(7) for details.
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
nvme-BC711_NVMe_SK_hynix_256GB____FYB1N066013901U4N-part3 ONLINE 0 0 0
zpool attach rpool nvme-BC711_NVMe_SK_hynix_256GB____FYB1N066013901U4N-part3 nvme-KBG40ZNS256G_NVMe_KIOXIA_256GB_Y96PC1TDPTLL-part3
#
# AFTER
#
root@pve1:~# zpool status
pool: rpool
state: ONLINE
status: Some supported and requested features are not enabled on the pool.
The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(7) for details.
scan: resilvered 30.6G in 00:03:12 with 0 errors on Thu Aug 7 16:40:11 2025
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
nvme-BC711_NVMe_SK_hynix_256GB____FYB1N066013901U4N-part3 ONLINE 0 0 0
nvme-KBG40ZNS256G_NVMe_KIOXIA_256GB_Y96PC1TDPTLL-part3 ONLINE 0 0 0
Add SLOG
# identify the disk(s) you want to use
lsblk -o NAME,MODEL,SERIAL,SIZE,TYPE,MOUNTPOINT
# find the disk / partitions by id
find /dev/disk/by-id/ | grep -e VK0240GFDKF -e MTFDDAK960TCB
# add the log mirror
zpool add z-10k-SAS-DS-Mirror log mirror /dev/disk/by-id/ata-VK0240GFDKF_S269NX0H703269-part1 /dev/disk/by-id/ata-MTFDDAK960TCB_18181C3C1F61-part1
# verify
zpool status
# check usage
zpool iostat -v
# watch usage
zpool iostat -v 1
# or
watch zpool iostat -v
Add cache (L2ARC)
zpool add z-10k-SAS-DS-Mirror cache /dev/disk/by-id/ata-MTFDDAK960TCB_18181C3C1F61-part2
HPE Proliant
Useful additions
Packages to add
apt install lldpd snmpd
snmpd.conf
Minimal configuration for /etc/snmpd/snmpd.conf to enable monitoring physical host resources via snmp.
# file:/etc/snmp/snmpd.conf
sysLocation Undisclosed location
sysContact Ghostbusters! <ghost@busters.loc>
sysServices 72
# master agentx
agentaddress udp:161
rocommunity localmon 10.0.0.0/8
rocommunity localmon 172.16.0.0/12
rocommunity localmon 192.168.0.0/16
#rocommunity6 localmon fe80::/10
includeDir /etc/snmp/snmpd.conf.d
cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.backup.conf
cat << EOF > /etc/snmp/snmpd.conf
# file:/etc/snmp/snmpd.conf
sysLocation Undisclosed location
sysContact Ghostbusters! <ghost@busters.loc>
sysServices 72
# master agentx
agentaddress udp:161
rocommunity localmon 10.0.0.0/8
rocommunity localmon 172.16.0.0/12
rocommunity localmon 192.168.0.0/16
#rocommunity6 localmon fe80::/10
includeDir /etc/snmp/snmpd.conf.d
EOF
-end
Nested Virtualization Benchmarks
Disk benchmark tests
fio simple write test
fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
fio random read job file
[global]
ioengine=libaio
direct=1
group_reporting
runtime=60
time_based
[random_read_job]
rw=randread
bs=4k
iodepth=64
filename=/root/testfile
size=10G
fio sequential read job file
[global]
ioengine=libaio
direct=1
group_reporting
runtime=60
time_based
[random_read_job]
rw=read
bs=4k
iodepth=64
filename=/root/testfile
size=10G
BASH code to generate lots of different commands
for fio_sync in 0 1; do
for fio_bs in 4KB 16KB 1MB; do
for fio_rw in read write randwrite randread; do
echo "fio --name=${fio_rw}_${fio_bs}_${fio_sync} --size=16g --bs=$fio_bs --rw=$fio_rw --ioengine=libaio --sync=$fio_sync --iodepth=32 --numjobs=1 --direct=1 --end_fsync=1 --gtod_reduce=1 --time_based --runtime=60"
done
done
done
Hardware: DELL Latitude 5520 (Laptop)
CPU: 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
Disk: 2 x 256GB
Filesystem: ZFS Raid-1 Mirror
PVE benchmark
# Disk information
root@pve:~# smartctl -a /dev/nvme0n1
Model Number: Micron 2450 NVMe 256GB
Temperature: 43 Celsius
Percentage Used: 15%
root@pve:~# smartctl -a /dev/nvme1n1
Model Number: PC SN520 NVMe WDC 256GB
Temperature: 45 Celsius
Percentage Used: 28%
# CPU Information
root@pve:~# cat /proc/cpuinfo | grep "model name"
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
# Benchmark - write
root@pve:~# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.39
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=60.1MiB/s][w=60 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=1838716: Mon Aug 11 13:47:12 2025
write: IOPS=64, BW=64.1MiB/s (67.2MB/s)(10.0GiB/159737msec); 0 zone resets
clat (usec): min=1521, max=2857.4k, avg=15554.55, stdev=30350.48
lat (usec): min=1564, max=2857.4k, avg=15595.47, stdev=30349.98
clat percentiles (msec):
| 1.00th=[ 3], 5.00th=[ 3], 10.00th=[ 3], 20.00th=[ 15],
| 30.00th=[ 15], 40.00th=[ 16], 50.00th=[ 17], 60.00th=[ 17],
| 70.00th=[ 18], 80.00th=[ 18], 90.00th=[ 20], 95.00th=[ 22],
| 99.00th=[ 32], 99.50th=[ 37], 99.90th=[ 110], 99.95th=[ 226],
| 99.99th=[ 760]
bw ( KiB/s): min= 4096, max=448512, per=100.00%, avg=66923.14, stdev=44636.99, samples=313
iops : min= 4, max= 438, avg=65.35, stdev=43.59, samples=313
lat (msec) : 2=0.50%, 4=12.31%, 10=1.23%, 20=77.88%, 50=7.84%
lat (msec) : 100=0.13%, 250=0.07%, 500=0.02%, 1000=0.01%, >=2000=0.01%
cpu : usr=0.34%, sys=13.49%, ctx=11028, majf=5, minf=10
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=64.1MiB/s (67.2MB/s), 64.1MiB/s-64.1MiB/s (67.2MB/s-67.2MB/s), io=10.0GiB (10.7GB), run=159737-159737msec
# Benchmark - read
root@pve:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.39
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=10.3MiB/s][r=2626 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=1841119: Mon Aug 11 13:54:44 2025
read: IOPS=2638, BW=10.3MiB/s (10.8MB/s)(618MiB/60001msec)
slat (usec): min=167, max=6793, avg=377.03, stdev=155.55
clat (nsec): min=1728, max=36276k, avg=23873354.46, stdev=1833473.80
lat (usec): min=458, max=36588, avg=24250.38, stdev=1850.88
clat percentiles (usec):
| 1.00th=[20579], 5.00th=[21627], 10.00th=[21890], 20.00th=[22414],
| 30.00th=[22938], 40.00th=[23200], 50.00th=[23725], 60.00th=[23987],
| 70.00th=[24511], 80.00th=[25035], 90.00th=[26084], 95.00th=[27132],
| 99.00th=[29754], 99.50th=[31065], 99.90th=[33162], 99.95th=[33817],
| 99.99th=[34866]
bw ( KiB/s): min= 7944, max=11024, per=100.00%, avg=10553.40, stdev=363.11, samples=120
iops : min= 1986, max= 2756, avg=2638.35, stdev=90.78, samples=120
lat (usec) : 2=0.01%, 500=0.01%, 750=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.65%, 50=99.33%
cpu : usr=0.64%, sys=6.66%, ctx=158463, majf=0, minf=72
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=158301,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=10.3MiB/s (10.8MB/s), 10.3MiB/s-10.3MiB/s (10.8MB/s-10.8MB/s), io=618MiB (648MB), run=60001-60001msec
Nested VM Benchmark
Ubuntu 24.04
root@nested-vm-l2:~$ cat /proc/cpuinfo | grep "model name"
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
model name : 11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
root@nested-vm-l2:~$ fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.36
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][97.1%][w=178MiB/s][w=177 IOPS][eta 00m:08s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=1820: Mon Aug 11 18:43:38 2025
write: IOPS=37, BW=37.9MiB/s (39.8MB/s)(10.0GiB/269886msec); 0 zone resets
clat (nsec): min=0, max=44001M, avg=26294437.47, stdev=800866646.25
lat (nsec): min=0, max=44001M, avg=26331483.73, stdev=800866317.34
clat percentiles (usec):
| 1.00th=[ 1270], 5.00th=[ 1385], 10.00th=[ 1434],
| 20.00th=[ 1516], 30.00th=[ 1582], 40.00th=[ 1647],
| 50.00th=[ 1745], 60.00th=[ 1860], 70.00th=[ 2057],
| 80.00th=[ 2606], 90.00th=[ 4293], 95.00th=[ 5997],
| 99.00th=[ 11600], 99.50th=[ 13960], 99.90th=[ 826278],
| 99.95th=[17112761], 99.99th=[17112761]
bw ( KiB/s): min= 2043, max=610304, per=100.00%, avg=332192.42, stdev=168523.35, samples=62
iops : min= 1, max= 596, avg=324.08, stdev=164.57, samples=62
lat (nsec) : 2=0.26%
lat (usec) : 20=0.01%, 100=0.01%, 500=0.03%, 750=0.03%, 1000=0.02%
lat (msec) : 2=67.67%, 4=20.74%, 10=9.56%, 20=1.42%, 50=0.10%
lat (msec) : 100=0.04%, 250=0.01%, 1000=0.01%, >=2000=0.10%
cpu : usr=0.23%, sys=1.18%, ctx=10245, majf=0, minf=16
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=37.9MiB/s (39.8MB/s), 37.9MiB/s-37.9MiB/s (39.8MB/s-39.8MB/s), io=10.0GiB (10.7GB), run=269886-269886msec
Disk stats (read/write):
sda: ios=3017/10737, sectors=75792/21008312, merge=253/833, ticks=3237/526767, in_queue=686667, util=96.37%
# Benchmark - read
root@nested-vm-l2:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.36
Starting 1 process
random_read_job: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [r(1)][100.0%][r=20.0MiB/s][r=5112 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=3300: Mon Aug 11 19:02:19 2025
read: IOPS=4748, BW=18.5MiB/s (19.4MB/s)(1113MiB/60004msec)
slat (nsec): min=0, max=13840k, avg=116055.33, stdev=350395.40
clat (usec): min=2917, max=48588, avg=13307.65, stdev=5035.71
lat (usec): min=2958, max=48739, avg=13423.70, stdev=5063.84
clat percentiles (usec):
| 1.00th=[ 5735], 5.00th=[ 6980], 10.00th=[ 7832], 20.00th=[ 8848],
| 30.00th=[ 9896], 40.00th=[10945], 50.00th=[12125], 60.00th=[13566],
| 70.00th=[15533], 80.00th=[17695], 90.00th=[20317], 95.00th=[22938],
| 99.00th=[27657], 99.50th=[29754], 99.90th=[33817], 99.95th=[35390],
| 99.99th=[39584]
bw ( KiB/s): min=12645, max=34142, per=100.00%, avg=19000.53, stdev=4050.47, samples=119
iops : min= 3161, max= 8535, avg=4749.84, stdev=1012.64, samples=119
lat (msec) : 4=0.01%, 10=30.78%, 20=58.31%, 50=10.90%
cpu : usr=3.98%, sys=90.23%, ctx=2410, majf=0, minf=74
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=284908,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=18.5MiB/s (19.4MB/s), 18.5MiB/s-18.5MiB/s (19.4MB/s-19.4MB/s), io=1113MiB (1167MB), run=60004-60004msec
Disk stats (read/write):
sda: ios=283830/8, sectors=2270640/72, merge=0/1, ticks=1580398/232, in_queue=1580794, util=49.28%
Hardware: HPE
PVE - Mirrored 15K SAS
# CPU
root@btr-pve-c9ne1:~# grep "model name" /proc/cpuinfo
model name : Intel(R) Xeon(R) CPU E5-2687W v4 @ 3.00GHz
# 2 Sockets, 24 Cores per socket, 48 total cores
# DISK: ZFS Mirrored HP EH0300JDYTH 15k SAS
# Benchmark - write
root@pve-hpe:~# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.39
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=100MiB/s][w=100 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=1156898: Mon Aug 11 14:02:36 2025
write: IOPS=93, BW=93.5MiB/s (98.0MB/s)(10.0GiB/109530msec); 0 zone resets
clat (usec): min=8364, max=80908, avg=10618.01, stdev=3390.34
lat (usec): min=8507, max=80994, avg=10691.62, stdev=3390.64
clat percentiles (usec):
| 1.00th=[ 8717], 5.00th=[ 8848], 10.00th=[ 8848], 20.00th=[ 8979],
| 30.00th=[ 9110], 40.00th=[ 9503], 50.00th=[10028], 60.00th=[10552],
| 70.00th=[11076], 80.00th=[11469], 90.00th=[11863], 95.00th=[13042],
| 99.00th=[25035], 99.50th=[32113], 99.90th=[53216], 99.95th=[57934],
| 99.99th=[80217]
bw ( KiB/s): min=51200, max=104448, per=100.00%, avg=95758.09, stdev=11129.23, samples=218
iops : min= 50, max= 102, avg=93.51, stdev=10.87, samples=218
lat (msec) : 10=50.61%, 20=47.46%, 50=1.81%, 100=0.13%
cpu : usr=0.74%, sys=65.95%, ctx=10420, majf=5, minf=8
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=93.5MiB/s (98.0MB/s), 93.5MiB/s-93.5MiB/s (98.0MB/s-98.0MB/s), io=10.0GiB (10.7GB), run=109530-109530msec
# Benchmark - read
root@pve-hpe:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.39
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=820KiB/s][r=205 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=1159109: Mon Aug 11 14:09:42 2025
read: IOPS=217, BW=871KiB/s (892kB/s)(51.0MiB/60001msec)
slat (usec): min=462, max=40890, avg=4580.11, stdev=1975.13
clat (usec): min=13, max=531922, avg=288716.77, stdev=40807.24
lat (msec): min=6, max=535, avg=293.30, stdev=41.16
clat percentiles (msec):
| 1.00th=[ 251], 5.00th=[ 262], 10.00th=[ 266], 20.00th=[ 271],
| 30.00th=[ 271], 40.00th=[ 275], 50.00th=[ 279], 60.00th=[ 284],
| 70.00th=[ 288], 80.00th=[ 292], 90.00th=[ 313], 95.00th=[ 393],
| 99.00th=[ 460], 99.50th=[ 481], 99.90th=[ 527], 99.95th=[ 531],
| 99.99th=[ 531]
bw ( KiB/s): min= 376, max= 1112, per=99.92%, avg=870.73, stdev=99.13, samples=120
iops : min= 94, max= 278, avg=217.68, stdev=24.78, samples=120
lat (usec) : 20=0.01%
lat (msec) : 10=0.01%, 20=0.02%, 50=0.05%, 100=0.09%, 250=0.54%
lat (msec) : 500=98.97%, 750=0.32%
cpu : usr=0.33%, sys=3.76%, ctx=13070, majf=0, minf=408
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.2%, >=64=99.5%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=13061,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=871KiB/s (892kB/s), 871KiB/s-871KiB/s (892kB/s-892kB/s), io=51.0MiB (53.5MB), run=60001-60001msec
PVE - RAIDz3: 10 x 7200 rpm (MM1000GBKAL)
root@pve:/z-7200-SATA-Rz3# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.39
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=37.0MiB/s][w=37 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=1546695: Tue Aug 12 10:18:08 2025
write: IOPS=54, BW=55.0MiB/s (57.6MB/s)(10.0GiB/186319msec); 0 zone resets
clat (msec): min=9, max=206, avg=18.11, stdev=10.06
lat (msec): min=9, max=206, avg=18.19, stdev=10.06
clat percentiles (msec):
| 1.00th=[ 14], 5.00th=[ 15], 10.00th=[ 16], 20.00th=[ 16],
| 30.00th=[ 17], 40.00th=[ 17], 50.00th=[ 17], 60.00th=[ 17],
| 70.00th=[ 17], 80.00th=[ 18], 90.00th=[ 18], 95.00th=[ 21],
| 99.00th=[ 77], 99.50th=[ 93], 99.90th=[ 127], 99.95th=[ 134],
| 99.99th=[ 159]
bw ( KiB/s): min=12288, max=67584, per=100.00%, avg=56300.17, stdev=11089.88, samples=372
iops : min= 12, max= 66, avg=54.98, stdev=10.83, samples=372
lat (msec) : 10=0.03%, 20=94.98%, 50=2.80%, 100=1.90%, 250=0.28%
cpu : usr=0.47%, sys=46.47%, ctx=11448, majf=0, minf=9
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=55.0MiB/s (57.6MB/s), 55.0MiB/s-55.0MiB/s (57.6MB/s-57.6MB/s), io=10.0GiB (10.7GB), run=186319-186319msec
root@pve:/z-7200-SATA-Rz3# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.39
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=436KiB/s][r=109 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=1578323: Tue Aug 12 10:46:14 2025
read: IOPS=105, BW=421KiB/s (431kB/s)(24.7MiB/60008msec)
slat (usec): min=519, max=100246, avg=9492.20, stdev=4271.24
clat (usec): min=14, max=1314.5k, avg=595573.00, stdev=91957.69
lat (msec): min=8, max=1323, avg=605.07, stdev=92.62
clat percentiles (msec):
| 1.00th=[ 550], 5.00th=[ 558], 10.00th=[ 567], 20.00th=[ 567],
| 30.00th=[ 575], 40.00th=[ 575], 50.00th=[ 575], 60.00th=[ 584],
| 70.00th=[ 584], 80.00th=[ 592], 90.00th=[ 617], 95.00th=[ 793],
| 99.00th=[ 927], 99.50th=[ 1301], 99.90th=[ 1318], 99.95th=[ 1318],
| 99.99th=[ 1318]
bw ( KiB/s): min= 112, max= 944, per=100.00%, avg=424.40, stdev=73.04, samples=119
iops : min= 28, max= 236, avg=106.10, stdev=18.26, samples=119
lat (usec) : 20=0.02%
lat (msec) : 10=0.02%, 20=0.02%, 50=0.05%, 100=0.08%, 250=0.27%
lat (msec) : 500=0.44%, 750=92.46%, 1000=5.69%, 2000=0.97%
cpu : usr=0.16%, sys=2.54%, ctx=6315, majf=0, minf=82
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.3%, 32=0.5%, >=64=99.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=6313,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=421KiB/s (431kB/s), 421KiB/s-421KiB/s (431kB/s-431kB/s), io=24.7MiB (25.9MB), run=60008-60008msec
PVE - draid3:6d:10c:1s-0: 10 x 10k SAS (EG1200JEMDA)
root@pve:/# cd z-10K-SAS-dRAID3/
root@pve:/z-10K-SAS-dRAID3# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.39
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=98.0MiB/s][w=98 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=1550993: Tue Aug 12 10:20:41 2025
write: IOPS=90, BW=90.8MiB/s (95.2MB/s)(10.0GiB/112818msec); 0 zone resets
clat (usec): min=7765, max=67166, avg=10939.46, stdev=3638.62
lat (usec): min=7858, max=67210, avg=11012.52, stdev=3639.09
clat percentiles (usec):
| 1.00th=[ 8160], 5.00th=[ 8356], 10.00th=[ 8455], 20.00th=[ 8979],
| 30.00th=[ 9503], 40.00th=[10028], 50.00th=[10552], 60.00th=[10945],
| 70.00th=[11469], 80.00th=[11863], 90.00th=[12125], 95.00th=[12387],
| 99.00th=[28705], 99.50th=[36439], 99.90th=[49021], 99.95th=[56361],
| 99.99th=[64226]
bw ( KiB/s): min=45056, max=112640, per=100.00%, avg=93088.43, stdev=12260.36, samples=225
iops : min= 44, max= 110, avg=90.91, stdev=11.97, samples=225
lat (msec) : 10=39.64%, 20=57.95%, 50=2.31%, 100=0.10%
cpu : usr=0.76%, sys=65.33%, ctx=10540, majf=0, minf=7
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=90.8MiB/s (95.2MB/s), 90.8MiB/s-90.8MiB/s (95.2MB/s-95.2MB/s), io=10.0GiB (10.7GB), run=112818-112818msec
root@pve:/z-10K-SAS-dRAID3# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.39
Starting 1 process
random_read_job: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [r(1)][100.0%][r=576KiB/s][r=144 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=1580837: Tue Aug 12 10:48:22 2025
read: IOPS=163, BW=655KiB/s (671kB/s)(38.4MiB/60004msec)
slat (usec): min=13, max=39844, avg=6090.61, stdev=2135.90
clat (usec): min=12, max=523484, avg=383170.17, stdev=33200.56
lat (msec): min=6, max=529, avg=389.26, stdev=33.38
clat percentiles (msec):
| 1.00th=[ 338], 5.00th=[ 355], 10.00th=[ 363], 20.00th=[ 368],
| 30.00th=[ 372], 40.00th=[ 376], 50.00th=[ 380], 60.00th=[ 384],
| 70.00th=[ 388], 80.00th=[ 393], 90.00th=[ 401], 95.00th=[ 409],
| 99.00th=[ 510], 99.50th=[ 514], 99.90th=[ 523], 99.95th=[ 523],
| 99.99th=[ 523]
bw ( KiB/s): min= 112, max= 1104, per=99.95%, avg=655.40, stdev=75.42, samples=120
iops : min= 28, max= 276, avg=163.85, stdev=18.85, samples=120
lat (usec) : 20=0.01%
lat (msec) : 10=0.01%, 20=0.01%, 50=0.05%, 100=0.08%, 250=0.23%
lat (msec) : 500=97.36%, 750=2.25%
cpu : usr=0.22%, sys=3.94%, ctx=9518, majf=0, minf=256
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.2%, 32=0.3%, >=64=99.4%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=9831,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=655KiB/s (671kB/s), 655KiB/s-655KiB/s (671kB/s-671kB/s), io=38.4MiB (40.3MB), run=60004-60004msec
PVE - ZFS Mirror + SLOG + L2ARC (cache)
2 x 10K SAS DS EH0300JDYTH + 2 x SSD SLOG + 1 x SSD L2ARC (cache)
root@pve:/# cd z-10k-SAS-DS-Mirror/
root@pve:/z-10k-SAS-DS-Mirror# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.39
Starting 1 process
Jobs: 1 (f=1): [W(1)][100.0%][w=69.0MiB/s][w=69 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=1553236: Tue Aug 12 10:22:50 2025
write: IOPS=89, BW=89.3MiB/s (93.7MB/s)(10.0GiB/114626msec); 0 zone resets
clat (msec): min=7, max=315, avg=11.11, stdev= 5.53
lat (msec): min=8, max=315, avg=11.18, stdev= 5.53
clat percentiles (msec):
| 1.00th=[ 9], 5.00th=[ 9], 10.00th=[ 9], 20.00th=[ 9],
| 30.00th=[ 10], 40.00th=[ 11], 50.00th=[ 11], 60.00th=[ 11],
| 70.00th=[ 12], 80.00th=[ 12], 90.00th=[ 13], 95.00th=[ 14],
| 99.00th=[ 33], 99.50th=[ 42], 99.90th=[ 68], 99.95th=[ 88],
| 99.99th=[ 116]
bw ( KiB/s): min=14336, max=108544, per=100.00%, avg=91516.09, stdev=14694.26, samples=229
iops : min= 14, max= 106, avg=89.37, stdev=14.35, samples=229
lat (msec) : 10=39.91%, 20=57.56%, 50=2.22%, 100=0.28%, 250=0.02%
lat (msec) : 500=0.01%
cpu : usr=0.71%, sys=64.60%, ctx=10487, majf=0, minf=7
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=89.3MiB/s (93.7MB/s), 89.3MiB/s-89.3MiB/s (93.7MB/s-93.7MB/s), io=10.0GiB (10.7GB), run=114626-114626msec
root@pve:/z-10k-SAS-DS-Mirror# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.39
Starting 1 process
random_read_job: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [r(1)][100.0%][r=824KiB/s][r=206 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=1583195: Tue Aug 12 10:50:24 2025
read: IOPS=203, BW=812KiB/s (832kB/s)(47.6MiB/60003msec)
slat (usec): min=13, max=123917, avg=4911.77, stdev=3207.67
clat (usec): min=14, max=542655, avg=309167.09, stdev=35242.70
lat (msec): min=7, max=546, avg=314.08, stdev=35.48
clat percentiles (msec):
| 1.00th=[ 262], 5.00th=[ 279], 10.00th=[ 284], 20.00th=[ 292],
| 30.00th=[ 296], 40.00th=[ 300], 50.00th=[ 305], 60.00th=[ 309],
| 70.00th=[ 313], 80.00th=[ 321], 90.00th=[ 334], 95.00th=[ 359],
| 99.00th=[ 472], 99.50th=[ 498], 99.90th=[ 531], 99.95th=[ 535],
| 99.99th=[ 542]
bw ( KiB/s): min= 199, max= 1264, per=99.97%, avg=812.26, stdev=93.13, samples=120
iops : min= 49, max= 316, avg=203.06, stdev=23.32, samples=120
lat (usec) : 20=0.01%
lat (msec) : 10=0.01%, 20=0.01%, 50=0.06%, 100=0.07%, 250=0.27%
lat (msec) : 500=99.21%, 750=0.37%
cpu : usr=0.27%, sys=3.39%, ctx=11691, majf=0, minf=84
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.3%, >=64=99.5%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=12184,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=812KiB/s (832kB/s), 812KiB/s-812KiB/s (832kB/s-832kB/s), io=47.6MiB (49.9MB), run=60003-60003msec
L1 VM - ZFS Mirrored SSD
# Benchmark - write
root@us-pve-101-testing:~# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.36
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][96.6%][eta 00m:06s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=7040: Mon Aug 11 22:41:53 2025
write: IOPS=58, BW=59.0MiB/s (61.8MB/s)(10.0GiB/173676msec); 0 zone resets
clat (usec): min=647, max=45665k, avg=16898.79, stdev=707938.73
lat (usec): min=656, max=45665k, avg=16955.22, stdev=707938.94
clat percentiles (usec):
| 1.00th=[ 988], 5.00th=[ 1352], 10.00th=[ 1450],
| 20.00th=[ 1582], 30.00th=[ 1647], 40.00th=[ 1713],
| 50.00th=[ 1762], 60.00th=[ 1795], 70.00th=[ 1827],
| 80.00th=[ 1860], 90.00th=[ 1909], 95.00th=[ 1958],
| 99.00th=[ 2278], 99.50th=[ 2409], 99.90th=[ 4359],
| 99.95th=[11475616], 99.99th=[17112761]
bw ( KiB/s): min=26677, max=819200, per=100.00%, avg=486353.63, stdev=170810.86, samples=43
iops : min= 26, max= 800, avg=474.84, stdev=166.83, samples=43
lat (usec) : 750=0.17%, 1000=0.89%
lat (msec) : 2=95.51%, 4=3.31%, 10=0.06%, 750=0.01%, >=2000=0.06%
cpu : usr=0.51%, sys=0.95%, ctx=10241, majf=0, minf=13
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=59.0MiB/s (61.8MB/s), 59.0MiB/s-59.0MiB/s (61.8MB/s-61.8MB/s), io=10.0GiB (10.7GB), run=173676-173676msec
Disk stats (read/write):
sda: ios=0/10537, sectors=0/21021040, merge=0/500, ticks=0/4724709, in_queue=4862347, util=97.87%
# Benchmark - read
root@us-pve-101-testing:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.36
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=308MiB/s][r=78.9k IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=7047: Mon Aug 11 22:43:10 2025
read: IOPS=76.1k, BW=297MiB/s (312MB/s)(17.4GiB/60001msec)
slat (usec): min=2, max=5361, avg= 8.95, stdev= 8.40
clat (usec): min=115, max=8190, avg=831.02, stdev=330.81
lat (usec): min=158, max=8199, avg=839.97, stdev=334.39
clat percentiles (usec):
| 1.00th=[ 351], 5.00th=[ 388], 10.00th=[ 416], 20.00th=[ 486],
| 30.00th=[ 562], 40.00th=[ 619], 50.00th=[ 898], 60.00th=[ 1057],
| 70.00th=[ 1090], 80.00th=[ 1123], 90.00th=[ 1172], 95.00th=[ 1221],
| 99.00th=[ 1663], 99.50th=[ 1745], 99.90th=[ 1876], 99.95th=[ 2008],
| 99.99th=[ 2540]
bw ( KiB/s): min=213812, max=539568, per=100.00%, avg=305124.23, stdev=72008.27, samples=119
iops : min=53453, max=134892, avg=76281.10, stdev=18002.05, samples=119
lat (usec) : 250=0.01%, 500=21.93%, 750=26.28%, 1000=4.38%
lat (msec) : 2=47.36%, 4=0.05%, 10=0.01%
cpu : usr=32.95%, sys=65.00%, ctx=11406, majf=0, minf=77
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=4564316,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=297MiB/s (312MB/s), 297MiB/s-297MiB/s (312MB/s-312MB/s), io=17.4GiB (18.7GB), run=60001-60001msec
Disk stats (read/write):
sda: ios=4557508/19, sectors=36460064/176, merge=0/5, ticks=758830/37038, in_queue=832901, util=68.19%
L1 VM - ZFS Mirrored 10K SAS + SLOG + Cache
root@us-pve-101-testing:~# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.36
Starting 1 process
Jobs: 1 (f=1): [W(1)][100.0%][w=185MiB/s][w=185 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=997: Tue Aug 12 14:53:40 2025
write: IOPS=253, BW=253MiB/s (265MB/s)(10.0GiB/40449msec); 0 zone resets
clat (usec): min=1113, max=188603, avg=3871.65, stdev=2642.15
lat (usec): min=1149, max=188642, avg=3943.94, stdev=2641.43
clat percentiles (usec):
| 1.00th=[ 1500], 5.00th=[ 1631], 10.00th=[ 1745], 20.00th=[ 1827],
| 30.00th=[ 1942], 40.00th=[ 2311], 50.00th=[ 4817], 60.00th=[ 5211],
| 70.00th=[ 5407], 80.00th=[ 5604], 90.00th=[ 5932], 95.00th=[ 6128],
| 99.00th=[ 6652], 99.50th=[ 6849], 99.90th=[ 7177], 99.95th=[ 7898],
| 99.99th=[64750]
bw ( KiB/s): min=149504, max=610304, per=100.00%, avg=260124.17, stdev=140385.29, samples=80
iops : min= 146, max= 596, avg=253.86, stdev=137.09, samples=80
lat (msec) : 2=32.85%, 4=15.03%, 10=52.07%, 20=0.03%, 100=0.01%
lat (msec) : 250=0.01%
cpu : usr=3.08%, sys=3.15%, ctx=10243, majf=0, minf=13
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=253MiB/s (265MB/s), 253MiB/s-253MiB/s (265MB/s-265MB/s), io=10.0GiB (10.7GB), run=40449-40449msec
Disk stats (read/write):
sda: ios=1/10259, sectors=8/20959881, merge=0/12, ticks=3/58119, in_queue=77002, util=93.49%
root@us-pve-101-testing:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.36
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=486MiB/s][r=124k IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=1000: Tue Aug 12 14:54:52 2025
read: IOPS=93.0k, BW=363MiB/s (381MB/s)(21.3GiB/60001msec)
slat (usec): min=2, max=525, avg= 7.23, stdev= 7.05
clat (usec): min=106, max=4144, avg=679.83, stdev=343.27
lat (usec): min=166, max=4152, avg=687.06, stdev=346.99
clat percentiles (usec):
| 1.00th=[ 355], 5.00th=[ 383], 10.00th=[ 400], 20.00th=[ 420],
| 30.00th=[ 437], 40.00th=[ 457], 50.00th=[ 486], 60.00th=[ 537],
| 70.00th=[ 832], 80.00th=[ 1139], 90.00th=[ 1188], 95.00th=[ 1254],
| 99.00th=[ 1532], 99.50th=[ 1762], 99.90th=[ 1876], 99.95th=[ 1909],
| 99.99th=[ 2089]
bw ( KiB/s): min=211328, max=580672, per=99.82%, avg=371243.65, stdev=97421.62, samples=119
iops : min=52832, max=145168, avg=92810.87, stdev=24355.37, samples=119
lat (usec) : 250=0.01%, 500=54.35%, 750=14.73%, 1000=2.17%
lat (msec) : 2=28.73%, 4=0.02%, 10=0.01%
cpu : usr=35.72%, sys=62.92%, ctx=11510, majf=0, minf=76
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=5578560,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=363MiB/s (381MB/s), 363MiB/s-363MiB/s (381MB/s-381MB/s), io=21.3GiB (22.8GB), run=60001-60001msec
Disk stats (read/write):
sda: ios=5562235/9, sectors=44497880/80, merge=0/2, ticks=1046679/49508, in_queue=1124064, util=53.76%
Nested VM Benchmark - ZFS Mirrored SSD
# Benchmark - Write
root@us-hv-nested:~# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.36
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][99.1%][w=165MiB/s][w=165 IOPS][eta 00m:02s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=1439: Mon Aug 11 22:26:29 2025
write: IOPS=44, BW=44.5MiB/s (46.6MB/s)(10.0GiB/230323msec); 0 zone resets
clat (usec): min=9, max=28370k, avg=22023.80, stdev=535433.32
lat (usec): min=9, max=28370k, avg=22285.21, stdev=535432.32
clat percentiles (msec):
| 1.00th=[ 4], 5.00th=[ 5], 10.00th=[ 6], 20.00th=[ 6],
| 30.00th=[ 6], 40.00th=[ 6], 50.00th=[ 7], 60.00th=[ 7],
| 70.00th=[ 7], 80.00th=[ 8], 90.00th=[ 9], 95.00th=[ 10],
| 99.00th=[ 16], 99.50th=[ 25], 99.90th=[ 1838], 99.95th=[14429],
| 99.99th=[17113]
bw ( KiB/s): min= 4079, max=176761, per=100.00%, avg=132012.25, stdev=31904.93, samples=157
iops : min= 3, max= 172, avg=128.38, stdev=31.21, samples=157
lat (usec) : 10=0.01%, 500=0.01%
lat (msec) : 2=0.06%, 4=0.99%, 10=94.77%, 20=3.56%, 50=0.33%
lat (msec) : 100=0.06%, 250=0.08%, 500=0.01%, 750=0.01%, 2000=0.02%
lat (msec) : >=2000=0.10%
cpu : usr=0.91%, sys=8.89%, ctx=12455, majf=0, minf=16
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=44.5MiB/s (46.6MB/s), 44.5MiB/s-44.5MiB/s (46.6MB/s-46.6MB/s), io=10.0GiB (10.7GB), run=230323-230323msec
Disk stats (read/write):
sda: ios=111/10313, sectors=3728/20900664, merge=90/235, ticks=2312/790448, in_queue=937669, util=89.85%
# Benchmark - Read
root@us-hv-nested:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.36
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=3498KiB/s][r=874 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=1454: Mon Aug 11 22:27:43 2025
read: IOPS=1151, BW=4608KiB/s (4718kB/s)(270MiB/60009msec)
slat (nsec): min=1200, max=30439k, avg=506941.31, stdev=1047300.59
clat (msec): min=2, max=335, avg=54.75, stdev=34.49
lat (msec): min=3, max=335, avg=55.26, stdev=34.75
clat percentiles (msec):
| 1.00th=[ 15], 5.00th=[ 16], 10.00th=[ 17], 20.00th=[ 19],
| 30.00th=[ 24], 40.00th=[ 37], 50.00th=[ 61], 60.00th=[ 68],
| 70.00th=[ 73], 80.00th=[ 80], 90.00th=[ 93], 95.00th=[ 111],
| 99.00th=[ 157], 99.50th=[ 176], 99.90th=[ 215], 99.95th=[ 288],
| 99.99th=[ 326]
bw ( KiB/s): min= 2003, max=11768, per=100.00%, avg=4613.21, stdev=1889.89, samples=118
iops : min= 500, max= 2942, avg=1152.94, stdev=472.50, samples=118
lat (msec) : 4=0.01%, 10=0.01%, 20=24.47%, 50=21.04%, 100=46.64%
lat (msec) : 250=7.75%, 500=0.08%
cpu : usr=5.15%, sys=81.55%, ctx=7548, majf=0, minf=76
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.9%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=69124,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=4608KiB/s (4718kB/s), 4608KiB/s-4608KiB/s (4718kB/s-4718kB/s), io=270MiB (283MB), run=60009-60009msec
Disk stats (read/write):
sda: ios=69121/20, sectors=552968/288, merge=0/5, ticks=583586/133, in_queue=583767, util=67.38%
Hardware: PVE: MeLE Overclock 4C
# sequential_write
bw ( KiB/s): min=397312, max=444416, per=100.00%, avg=429994.67, stdev=10951.34, samples=48
iops : min= 388, max= 434, avg=419.92, stdev=10.69, samples=48
# random_read
bw ( KiB/s): min=15336, max=16192, per=100.00%, avg=15984.67, stdev=114.94, samples=120
iops : min= 3834, max= 4048, avg=3996.17, stdev=28.74, samples=120
# sequential_read
bw ( KiB/s): min=10184, max=24472, per=100.00%, avg=19554.20, stdev=1018.25, samples=120
iops : min= 2546, max= 6118, avg=4888.53, stdev=254.56, samples=120
root@pmvh2501:~# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.39
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=418MiB/s][w=418 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=2040323: Tue Aug 12 21:03:13 2025
write: IOPS=419, BW=420MiB/s (440MB/s)(10.0GiB/24394msec); 0 zone resets
clat (usec): min=1719, max=48467, avg=2336.25, stdev=896.61
lat (usec): min=1764, max=48512, avg=2380.72, stdev=896.69
clat percentiles (usec):
| 1.00th=[ 2147], 5.00th=[ 2180], 10.00th=[ 2212], 20.00th=[ 2278],
| 30.00th=[ 2278], 40.00th=[ 2311], 50.00th=[ 2311], 60.00th=[ 2311],
| 70.00th=[ 2311], 80.00th=[ 2311], 90.00th=[ 2376], 95.00th=[ 2409],
| 99.00th=[ 2573], 99.50th=[ 2802], 99.90th=[17957], 99.95th=[21365],
| 99.99th=[38536]
bw ( KiB/s): min=397312, max=444416, per=100.00%, avg=429994.67, stdev=10951.34, samples=48
iops : min= 388, max= 434, avg=419.92, stdev=10.69, samples=48
lat (msec) : 2=0.04%, 4=99.70%, 10=0.10%, 20=0.10%, 50=0.07%
cpu : usr=2.16%, sys=92.04%, ctx=12136, majf=5, minf=10
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=420MiB/s (440MB/s), 420MiB/s-420MiB/s (440MB/s-440MB/s), io=10.0GiB (10.7GB), run=24394-24394msec
root@pmvh2501:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.39
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=15.6MiB/s][r=3989 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=2040401: Tue Aug 12 21:04:13 2025
read: IOPS=3996, BW=15.6MiB/s (16.4MB/s)(937MiB/60001msec)
slat (usec): min=151, max=4918, avg=248.40, stdev=43.31
clat (usec): min=2, max=21443, avg=15762.61, stdev=450.75
lat (usec): min=257, max=21696, avg=16011.01, stdev=454.68
clat percentiles (usec):
| 1.00th=[15008], 5.00th=[15139], 10.00th=[15270], 20.00th=[15401],
| 30.00th=[15533], 40.00th=[15664], 50.00th=[15664], 60.00th=[15795],
| 70.00th=[15926], 80.00th=[16057], 90.00th=[16188], 95.00th=[16450],
| 99.00th=[17433], 99.50th=[17695], 99.90th=[18220], 99.95th=[18744],
| 99.99th=[21103]
bw ( KiB/s): min=15336, max=16192, per=100.00%, avg=15984.67, stdev=114.94, samples=120
iops : min= 3834, max= 4048, avg=3996.17, stdev=28.74, samples=120
lat (usec) : 4=0.01%, 500=0.01%, 750=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=99.96%, 50=0.02%
cpu : usr=0.72%, sys=9.61%, ctx=240318, majf=0, minf=72
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=239770,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=15.6MiB/s (16.4MB/s), 15.6MiB/s-15.6MiB/s (16.4MB/s-16.4MB/s), io=937MiB (982MB), run=60001-60001msec
random_read_job: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.39
Starting 1 process
Jobs: 1 (f=1): [R(1)][100.0%][r=18.8MiB/s][r=4820 IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=2041137: Tue Aug 12 21:07:41 2025
read: IOPS=4888, BW=19.1MiB/s (20.0MB/s)(1146MiB/60001msec)
slat (usec): min=135, max=32402, avg=202.85, stdev=82.92
clat (usec): min=2, max=39730, avg=12873.56, stdev=959.97
lat (usec): min=206, max=67804, avg=13076.41, stdev=978.59
clat percentiles (usec):
| 1.00th=[10159], 5.00th=[12387], 10.00th=[12518], 20.00th=[12518],
| 30.00th=[12649], 40.00th=[12780], 50.00th=[12780], 60.00th=[12911],
| 70.00th=[13042], 80.00th=[13042], 90.00th=[13304], 95.00th=[13566],
| 99.00th=[15008], 99.50th=[15795], 99.90th=[30278], 99.95th=[34866],
| 99.99th=[38011]
bw ( KiB/s): min=10184, max=24472, per=100.00%, avg=19554.20, stdev=1018.25, samples=120
iops : min= 2546, max= 6118, avg=4888.53, stdev=254.56, samples=120
lat (usec) : 4=0.01%, 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=0.87%, 20=98.95%, 50=0.17%
cpu : usr=0.86%, sys=11.28%, ctx=293962, majf=0, minf=71
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=293313,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=19.1MiB/s (20.0MB/s), 19.1MiB/s-19.1MiB/s (20.0MB/s-20.0MB/s), io=1146MiB (1201MB), run=60001-60001msec
Hardware: Nutanix NX-8155-G8
2 x SSD + 4 HDD
Benchmark was run during business hours with normal production workloads occurring.
root@nutanix-l1-vm:~# fio --name=sequential_write --rw=write --bs=1M --size=10G --filename=/root/testfile --direct=1
sequential_write: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1
fio-3.28
Starting 1 process
sequential_write: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=143MiB/s][w=143 IOPS][eta 00m:00s]
sequential_write: (groupid=0, jobs=1): err= 0: pid=129336: Tue Aug 12 10:51:08 2025
write: IOPS=155, BW=155MiB/s (163MB/s)(10.0GiB/66001msec); 0 zone resets
clat (usec): min=4496, max=56501, avg=6377.43, stdev=2162.18
lat (usec): min=4542, max=56536, avg=6438.83, stdev=2164.59
clat percentiles (usec):
| 1.00th=[ 4686], 5.00th=[ 4752], 10.00th=[ 4817], 20.00th=[ 4948],
| 30.00th=[ 5080], 40.00th=[ 5276], 50.00th=[ 5669], 60.00th=[ 6128],
| 70.00th=[ 6718], 80.00th=[ 7373], 90.00th=[ 8717], 95.00th=[10290],
| 99.00th=[14222], 99.50th=[16057], 99.90th=[21365], 99.95th=[25035],
| 99.99th=[54789]
bw ( KiB/s): min=120832, max=198656, per=100.00%, avg=159134.29, stdev=25598.04, samples=131
iops : min= 118, max= 194, avg=155.40, stdev=25.00, samples=131
lat (msec) : 10=94.29%, 20=5.58%, 50=0.12%, 100=0.02%
cpu : usr=1.30%, sys=1.36%, ctx=10368, majf=0, minf=11
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,10240,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=155MiB/s (163MB/s), 155MiB/s-155MiB/s (163MB/s-163MB/s), io=10.0GiB (10.7GB), run=66001-66001msec
Disk stats (read/write):
sda: ios=0/20672, merge=0/278, ticks=0/122765, in_queue=122764, util=99.93%
root@nutanix-l1-vm:~# fio random_read_test.fio
random_read_job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.28
Starting 1 process
Jobs: 1 (f=1): [r(1)][100.0%][r=43.5MiB/s][r=11.1k IOPS][eta 00m:00s]
random_read_job: (groupid=0, jobs=1): err= 0: pid=129344: Tue Aug 12 10:53:31 2025
read: IOPS=15.3k, BW=59.7MiB/s (62.6MB/s)(3582MiB/60009msec)
slat (nsec): min=1483, max=352698, avg=2964.05, stdev=2532.94
clat (usec): min=256, max=236442, avg=4184.75, stdev=4942.01
lat (usec): min=258, max=236447, avg=4187.82, stdev=4942.20
clat percentiles (usec):
| 1.00th=[ 537], 5.00th=[ 832], 10.00th=[ 1090], 20.00th=[ 1467],
| 30.00th=[ 1778], 40.00th=[ 2114], 50.00th=[ 2606], 60.00th=[ 3326],
| 70.00th=[ 4424], 80.00th=[ 5997], 90.00th=[ 8979], 95.00th=[ 12387],
| 99.00th=[ 21365], 99.50th=[ 25822], 99.90th=[ 47973], 99.95th=[ 62653],
| 99.99th=[110625]
bw ( KiB/s): min=11144, max=151008, per=100.00%, avg=61258.53, stdev=26522.54, samples=119
iops : min= 2786, max=37752, avg=15314.62, stdev=6630.65, samples=119
lat (usec) : 500=0.72%, 750=3.00%, 1000=4.50%
lat (msec) : 2=28.65%, 4=29.85%, 10=25.19%, 20=6.85%, 50=1.16%
lat (msec) : 100=0.08%, 250=0.01%
cpu : usr=2.75%, sys=8.08%, ctx=475071, majf=0, minf=75
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=916907,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=59.7MiB/s (62.6MB/s), 59.7MiB/s-59.7MiB/s (62.6MB/s-62.6MB/s), io=3582MiB (3756MB), run=60009-60009msec
Disk stats (read/write):
sda: ios=915429/91, merge=0/14, ticks=3817950/1460, in_queue=3819410, util=99.91%
Hardware: Azure VM
Standard D2as v6 (2 vcpus, 8 GiB memory)
Storage: Premium SSD LRS
-end
Troubleshooting
Various notes for random troubleshooting
List all block devices with model
lsblk -o NAME,MODEL,SERIAL,SIZE,TYPE,MOUNTPOINT
Backup to NAS mount via SMB - stale file handle
Testing backups to a QNAP via SMB resulted in failures with the message stale file handle. Setting the option below may have been what fixed the glitch, or it was just unmounting and letting PVE remount. Further testing needed.
pvesm set <storage_ID> --options noserverino
umount /mnt/pve/<storage_ID>
Notifications via Discord
If your test notifications fail with a 400/500 message, make sure you've added the header Content-Type with value application/json. Below is the Body value I'm using currently.
Discord has a limit to the length of messages that can be sent, and PVE likes to send long messages sometimes. If your test messages are still failing with a status 400 message, they're probably too long. Need a way to limit the number of characters.
{
"content": null,
"embeds": [
{
"title": "{{ escape title }}",
"url": "https://[IP]:8006",
"description": "```{{ escape message }}```",
"color": null,
"author": {
"name": "Proxmox Cluster / Node - [cluster / node name]",
"url": "https://[IP]:8006"
},
"footer": {
"text": "Proxmox - [cluster/node name]"
}
}
],
"attachments": []
}
-end
CEPH
Useful commands
# quick status check
ceph status
# summary of storage pools, raw usage, and estimated capacity
ceph df
# utilization per osd
ceph osd df
Adding CEPH Manager Dashboard
# run this on all service manager nodes
apt install ceph-mgr-dashboard
# run this to configure ceph mgr
echo "admin-password" > ~/ceph-dashboard-admin-password.txt
ceph mgr module enable dashboard
ceph dashboard ac-user-create cephdash administrator -i ~/ceph-dashboard-admin-password.txt
ceph config-key set mgr/dashboard/server_addr ::
ceph dashboard create-self-signed-cert
ceph mgr module disable dashboard
ceph mgr module enable dashboard
systemctl restart ceph-mgr@[servername].service
# Then https://[IP or FQDN]:8443 or http://[IP or FQDN]:8080
Shutting down entire Proxmox cluster
If you need to shutdown your entire Proxmox cluster for any reason (maintenance, power issues, moving to a new site, whatever):
# prep for shutdown
ceph osd set noout
ceph osd set nobackfill
ceph osd set norecover
# shutdown all VMs and containers
# prep for service resumption
ceph osd unset norecover
ceph osd unset nobackfill
ceph osd unset noout
# start desired VMs and containers
Upgrading Proxmox running CEPH
This has not yet been tested and verified, but adding it here for future reference.
# Node maintenance
# stop and wait for scrub and deep-scrub operations
ceph osd set noscrub
ceph osd set nodeep-scrub
ceph status
# set cluster in maintenance mode with :
ceph osd set noout
# for node 1..N
# migrate VMs and CTs off node
# (GUI or CLI)
# run updates
apt update && pveupgrade
reboot # if required, e.g., kernel update
# wait for node to come back on line and quorate
# next N
# restore
ceph osd unset noout
# when all the PGs are active, re-enable the scrub and deep-scrub operations
ceph status
ceph osd unset noscrub
ceph osd unset nodeep-scrub
# done