[dm-devel] Performance issue when building thin-pool on top of RAID6 device

Zdenek Kabelac zkabelac at redhat.com
Tue Feb 18 09:34:05 UTC 2014


Dne 18.2.2014 10:13, Teng-Feng Yang napsal(a):
> Dear all,
>
> I have been working on tuning the dm-thin performance on my storage server.
> I surprisingly find out that the write performance of newly created
> thin volume formatted as EXT4 has degraded significantly, when
> building thin-pool on top of RAID6 device.
> Thin pools in all experiment use 1MB block size, and I format all
> target volumes as EXT4 and mount them on /mnt.
> The following is the performance statistics I gather under different
> circumstances.
>
> Thin volume on top of a thin pool created by a Plextor M5P 128GB SSD
> as metadata device
> and a RAID6 block device composed by 7 disks (chunk size = 512KB) as a
> data device
> dennis at desktop:~$ sudo dd if=/dev/zero of=/mnt/zero.img bs=1M count=25000
> 25000+0 records in
> 25000+0 records out
> 26214400000 bytes (26 GB) copied, 245.808 s, 107 MB/s
>
> Directly make filesystem on RAID6 block device composed by 7 disks
> dennis at desktop:~$ sudo dd if=/dev/zero of=/mnt/zero.img bs=1M count=25000
> 25000+0 records in
> 25000+0 records out
> 26214400000 bytes (26 GB) copied, 129.543 s, 202 MB/s
>
> Thin volume on top of a thin pool created by a Plextor M5P 128GB SSD
> as metadata device
> and a RAID0 block device composed by 7 disks as a data device
> dennis at desktop:~$ sudo dd if=/dev/zero of=/mnt/zero.img bs=1M count=25000
> 25000+0 records in
> 25000+0 records out
> 26214400000 bytes (26 GB) copied, 46.1227 s, 568 MB/s
>
> Directly make filesystem on RAID6 block device composed by 7 disks
> dennis at desktop:~$ sudo dd if=/dev/zero of=/mnt/zero.img bs=1M count=25000
> 25000+0 records in
> 25000+0 records out
> 26214400000 bytes (26 GB) copied, 48.1104 s, 545 MB/s
>
> It is clear that the write performance has degraded significantly when
> we use RAID6 as thin-pool,
> but there is no similar behavior when using RAID0 as thin-pool instead.
> I dig a little deeper on this issue and find that if we can perfectly
> fit a pool block into a RAID6 stripe,
> there would be only 20~30% performance loss comparing to RAW RAID6.
> However, this poses a restriction on the disks number we can use to
> build a RAID6 for pool, and limit the maximum pool size as well.
> Is there any other way I can do to improve the write performance when
> using RAID6 as pool?


Since you have not provided any  'dmsetup table' output - it's hard to guess 
how your thin-pool target is created, but my guess is - you are using
'zeroing' for provisioned blocks.

i.e. here is some sample for thin-pool target line with disabled zeroing:

vg-pool-tpool: 0 40960 thin-pool 253:1 253:2 128 0 1 skip_block_zeroing


(and example of lvm2 command line:  'lvcreate -T -L100G -Zn -c1M vg/pool'

Zdenek




More information about the dm-devel mailing list