====== Linux Guests ====== Enable WriteBack to group small writes into batches. ===== Filesystem ===== If ZFS is used on host (CoW filesystem) using CoW filesystem on guest generates overhead. Better is to use simple XFS or Ext4 if BTRFS snapshot and subvolumes functionality is not needed in guest. Linux Guest on BTRFS: * BTRFS with single copy of meta, system and data * metada chunk is 16kb (''--nodesize 16k'') so ''volblock'' size should be >=16kb * I/O is better on modern guest Kernel 6.1 (vs 5.10) * I/O is better whem VM storage is "no cache" * sync writes goes to ZFS ZIL * With "Writeback" cache - ZFS ZIL was not utilized so high like with "no cache" Block sizes: * Default ''zvol''''volblocksize'' was 8k * Latest Proxmox creates ''zvols'' with 16k ''volblocksize'' So it is best to fit guest block sizes into ZFS block (16k) sizes: * btrfs: * mkfs.btrfs options: ''--nodesize 16k'' * btrfs mount options: ''-o noatime'' * ext4: * mkfs.ext4 options: * volblocksize=16kB ''-b 4096 -E stride=4,stripe-width=8 -O mmp'' * volblocksize=64kB ''-b 4096 -E stride=16,stripe-width=16 -O mmp'' * volblocksize=128kB ''-b 4096 -E stride=32,stripe-width=32 -O mmp'' * ext4 mount options: ''-o discard,noatime,nodiratime,lazytime,user_xattr'' * xfs: * mkfs.xfs options: '''' * xfs mount options: ''-o noatime,logbiaszie=256k''