zfs/zvol recordsize vs zvolblocksize

{4k} will need to be split on all disks data from your pool.
But if you have let say 3x HDD raidz, then 4k will be split in 2 stripe(2k and 2k) any each will be landing on 2 HDD(2k/HDD). But
your disk use 4k, so it will be write 4k insted of 2k(2k of data, ant the rest of 2k with padding). So for a 4K in reality on your disk will be 8 K of data. The same will be for read!
So in this example the better option is to have {16k}!
Since you seem to have a way better understanding on that subject and me getting lost trying to figure it out by myself reading random posts here and there which in most cases makes things worst, in case you could help here is my case
The Server will have 4 (6gps sas 10K rpm) 1.2Tb disks in zfs raid 10 which according to this (they havent yet delivered to me) specs see page 7 are
512 logical and physical block size
I would (if none would inform me otherwise) let defaults like
ashift=12
compression=on (so lz4)
zvolblocksize 8k
and in addition (in case it matters) would check in datacenter->storage->zfs the thin provisioning box.
The above hardware will be used for
3-4 Windows VMs (2 WinServ2019 and 2 Win 10 Pro) The one WinServ Vm will be for the SQL2019 usage and during installation I would install the paths to a seperate disk which will be of the same portion used for VMs which means the zfs Raid10 again (I will add a portion of it to the VM and will see it as unpartitioned space it will be formated NTFS /4k which are the defaults). The second Win vm will have an sql express 2008 sql database for our shipper needs and the last VM is for having a softether server for remote VPN.
[COLOR=rgb(41, 105, 176)]So do the above info help you recommend the best possible values which you believe (I dont have the time to bench/stress/test (i need it to work with the best theoritical values)[/COLOR]

The second quadrant of disks are 4x 4Tb disks (Nas, 7200rpm sata3) with 512b logical and 4095 physical block size.
I have them in raidz2 (don t know if that was a good decision - I just wanted to have the ability to loose any 2 disks than 2 specific ones)
ashift=12
compression=on (so lz4)
zvolblocksize 8k
and in addition (in case it matters) would check in datacenter->storage->zfs the thin provisioning box.
The above hardware will be used for
-giving a portion of it to the WinServ2019 VM above for A.D storage purposes (so they are going to be formatted by OS as NTFS / 4k)
-giving a portion of it to WinServ2019 VM above for installation space of SQL paths
-giving a portion of it to WinServ2019 VM above to backup the database
-giving a portion of it for space of A.D Server to be shared among users for data that mostly are read there so no high i/o
Any suggestions for the blocksize and my desicion of RaidZ2?


Thank you in advance

PS No encyption would be used anywhere , now for ntfs compression since it compress the database in order afterwards to be backed up on the cloud should I say yes or it was another kind of NTFS compression you were talking about on other posts of yours.
 
Last edited:
3-4 Windows VMs (2 WinServ2019 and 2 Win 10 Pro) The one WinServ Vm will be for the SQL2019 usage and during installation I would install the paths to a seperate disk which will be of the same portion used for VMs which means the zfs Raid10 again (I will add a portion of it to the VM and will see it as unpartitioned space it will be formated NTFS /4k which are the defaults). The second Win vm will have an sql express 2008 sql database for our shipper needs and the last VM is for having a softether server for remote VPN.

For ANY MSSQL, use this:
- do install only OS as minimum is possible on a v(irtual)HDD with default NTFS(4k) or better NTFS (16k) - gparted live CD can format NTFS(16k) before OS install => volblocksize=8k/16k(16 for NTFS 16k)
- do install the MSSQL part on a separate vHDD, but using NTFS(64k - this it what use MSSQL), use zfs compression(lz4) - if you want to use SSD pool for this, is also OK => volblocksize=64k, set zfs propriety primarycache= metadata only for this vHDD


Any suggestions for the blocksize and my desicion of RaidZ2?
ashift=12

Good luck / Bafta!
 
For ANY MSSQL, use this:
- do install only OS as minimum is possible on a v(irtual)HDD with default NTFS(4k) or better NTFS (16k) - gparted live CD can format NTFS(16k) before OS install => volblocksize=8k/16k(16 for NTFS 16k)
Thank you very much for your time and effort helping me out . I just hope since never changed the default allocation size of Win before installation to let OS be installed on such a formatted Vdisk.
just reminding you here in case you overlocked that there is a possibility those sas drives I am still expecting to be 512b both logical and physical Are thosereccomendations still valid for such drives as well? ashift=12 as well?

- do install the MSSQL part on a separate vHDD, but using NTFS(64k - this it what use MSSQL), use zfs compression(lz4) - if you want to use SSD pool for this, is also OK => volblocksize=64k, set zfs propriety primarycache= metadata only for this vHDD
Nice recommendation here as well, even though mssql uses various block sizes depending on the workload as it seems from the below table

1619083217992.png
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!