Hi,
Right now I am using 2x Intel S3700 100GB as mirror for system+swap and 4x S3710 200GB + 1x S3700 200GB as raidz1 with 32K volblocksize as VM storage. My VM storage is using around 200-400GB of the 600GiB capacity (I set the quota to 80% so the pool can't get full and slow).
I would like to switch to a striped mirror to get more performance and a lower volblocksize so I bought another 2x S3710 200GB + 1x S3700 200GB.
The question is now how to setup the storage.
I woukd like to keep the 2x S3700 100GB as mirror for the OS.
But what to do with the other SSDs?
Option A): Two striped mirrors of 4 SSDs each.
Option B): One striped mirrors of 6x S3710 200GB and one mirror of 2x S3700 200GB.
Option C One big striped mirror of 6x S3710 200GB + 2x S3700 200GB.
But I've got some questions...
1.) Should option C be faster than option B? Data would be striped across 4 and not only 3 drives so that should be faster in theory but the S3700 are a little bit slower than the S3710 so the pool might need to wait for the S3700 to finish the write.
2.) Best volblocksize for a striped mirror of 4 drives is 8K for ashift of 12. But what about 6 or 8 drives? Should that be 12K for 6 and 16K for 8 drives?
3.): Could a striped mirror of only 6 drives be a performance problem if the volblocksize is 12K because 12K is not part if 2^x?
4.): Which setup would help the most with the write amplification? Right now I've got a write amplification of around 20x (7x from VM to host and 3x from host to SSDs NAND) and would be great if I could lower that.
5.) Is it possible to switch the virtio SCSI blocksize from 512B to 4K? Using KVM on TrueNAS allows this. I wasn't able to find a way (GUI and CLI) how to tell Proxmox to use 4K. Right now Virtio SCSI is writing with 512B blocks to a 32K zvol and I would like to test if writing 4K blocks to the 32K zvol would result in a lower write amplification and less IOPS.
How would you setup these 4 drives?
Right now I am using 2x Intel S3700 100GB as mirror for system+swap and 4x S3710 200GB + 1x S3700 200GB as raidz1 with 32K volblocksize as VM storage. My VM storage is using around 200-400GB of the 600GiB capacity (I set the quota to 80% so the pool can't get full and slow).
I would like to switch to a striped mirror to get more performance and a lower volblocksize so I bought another 2x S3710 200GB + 1x S3700 200GB.
The question is now how to setup the storage.
I woukd like to keep the 2x S3700 100GB as mirror for the OS.
But what to do with the other SSDs?
Option A): Two striped mirrors of 4 SSDs each.
Option B): One striped mirrors of 6x S3710 200GB and one mirror of 2x S3700 200GB.
Option C One big striped mirror of 6x S3710 200GB + 2x S3700 200GB.
But I've got some questions...
1.) Should option C be faster than option B? Data would be striped across 4 and not only 3 drives so that should be faster in theory but the S3700 are a little bit slower than the S3710 so the pool might need to wait for the S3700 to finish the write.
2.) Best volblocksize for a striped mirror of 4 drives is 8K for ashift of 12. But what about 6 or 8 drives? Should that be 12K for 6 and 16K for 8 drives?
3.): Could a striped mirror of only 6 drives be a performance problem if the volblocksize is 12K because 12K is not part if 2^x?
4.): Which setup would help the most with the write amplification? Right now I've got a write amplification of around 20x (7x from VM to host and 3x from host to SSDs NAND) and would be great if I could lower that.
5.) Is it possible to switch the virtio SCSI blocksize from 512B to 4K? Using KVM on TrueNAS allows this. I wasn't able to find a way (GUI and CLI) how to tell Proxmox to use 4K. Right now Virtio SCSI is writing with 512B blocks to a 32K zvol and I would like to test if writing 4K blocks to the 32K zvol would result in a lower write amplification and less IOPS.
How would you setup these 4 drives?
Last edited: