[OpenIndiana-discuss] Inefficient zvol space usage on 4k drives
Richard Elling
richard.elling at richardelling.com
Thu Aug 8 15:11:19 UTC 2013
On Aug 7, 2013, at 2:50 PM, Jason Lawrence <jjlawren at gmail.com> wrote:
> This might be a better question for the Illumos group, so please let me know.
>
> I have a zvol for a KVM instance which I felt was taking up too much space. After doing a little research, I stumbled upon http://support.freenas.org/ticket/2383 and repeated the test on my machine. I'm running a RAIDZ2 pool with eight "advanced format" 4k sector drives. I created the pool with ashift=12 with this in mind.
>
> root at hostname:~# zfs create -V 20g -o volblocksize=32k storage/testbed/32k
> root at hostname:~# zfs create -V 20g -o volblocksize=8k storage/testbed/8k
>
> root at hostname:~# dd if=/dev/zero of=/dev/zvol/rdsk/storage/testbed/32k bs=1048576 count=20400
> 20400+0 records in
> 20400+0 records out
> 21390950400 bytes (21 GB) copied, 493.836 s, 43.3 MB/s
>
> root at hostname:~# dd if=/dev/zero of=/dev/zvol/rdsk/storage/testbed/8k bs=1048576 count=20400
>
> 20400+0 records in
> 20400+0 records out
> 21390950400 bytes (21 GB) copied, 548.916 s, 39.0 MB/s
>
> root at hostname:~# zfs list | grep testbed
> storage/testbed 64.2G 5.79T 307K /storage/testbed
> storage/testbed/32k 21.3G 5.79T 21.3G -
> storage/testbed/8k 42.8G 5.79T 42.8G -
>
>
> The 8k blocksize zvol takes up twice the space of the 32k blocksize zvol. As 8k is the default, this must be affecting others...
This is expected. For 4K sector sizes and > 9 disks per raidz2 set:
volblocksize = 8k, raidz2 writes 2 data (8k) + 2 parity (8k) [like mirroring]
volblocksize = 32k, raidz2 writes 8 data (32k) + 2 parity (8k) [like RAID-6]
What most folks miss is:
volblocksize = 4k, raidz2 writes 1 data (4k) + 2 parity (8k) [like triple mirroring]
so, don't do 4k recordsize with 4K sector disks unless you are mirroring.
-- richard
--
Richard.Elling at RichardElling.com
+1-760-896-4422
More information about the OpenIndiana-discuss
mailing list