[linux-lvm] Does LVM RAID1 have TRIM support?

Brassow Jonathan jbrassow at redhat.com
Thu Sep 11 23:31:06 UTC 2014


On Sep 8, 2014, at 1:47 PM, Jarkko Oranen wrote:

> On Mon, 2014-09-08 at 12:47 -0500, Brassow Jonathan wrote:
>> On Sep 4, 2014, at 6:06 AM, Jarkko Oranen wrote:
>> 
>>>> TRIM is not yet supported in LVM RAID.  However, if MD has a solid TRIM implementation, it should be simple to enable it for LVM.  (This is because the MD kernel modules are used to perform RAID for LVM.  There is only a thin wrapper layer (linux/drivers/md/dm-raid.c) in device-mapper used to set-up the device.)
>>> 
>>> Thanks for the reply! Unfortunately, "simple" is relative.
>> 
>> By "simple", I mean that from our side all we should need to do is set 'num_discard_bios = 1' in dm-raid.c.  That is, if things are working fine in MD.  We could even make that conditional depending on the type of RAID (e.g. discards for RAID1, but not RAID5).  It could end up being that simple, but I need to know if MD has proper support for discards and all the kinks have been worked out.
>> 
> 
> dm-raid.c already has         
> 
>  ti->num_discard_bios = 1;
> 
> in raid_ctr in the kernel source I'm looking at (3.15.6; not the most
> recent, but it's what I happen to have locally available). As I said, to
> me it looks like it should already work, but it doesn't, so I spent a
> bit of time trying to understand why. 
> 
> Digging at it again, eg. lsblk -D seems to report discard information
> identical to other discard-supporting block devices, suggesting that
> discard passthrough should work fine, but the actual ioctl fails (when
> testing via either fstrim or blkdiscard) with "not supported" for
> whatever reason.
> 
> As far as I know, discard support in MD is stable, and has been so for a
> long while; my current setup consists of linear logical volumes on top
> of a software RAID PV created with mdadm, and I haven't had a single
> issue with discards. It seems RAID1 discard support was merged in
> January 2011 (git commit 5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4), so
> it's definitely not new.

dm-raid.c does not have that - dm-raid1.c does.  dm-raid1.c is a mirroring implementation specific to device-mapper.  It is used by LVM for pvmove functionality (and is otherwise being slowly phased out).  dm-raid.c is the device-mapper wrapper around the MD RAID personalities.  It does not have discard support.

I will ask Neil what the current state of discard support is in MD.  I see that "support" was added in Oct of 2012 (starting at commit 2ff8cc2), but I remember them having problems with discards + any resync operations.  If Neil says it is ok, I will turn it on.

 brassow





More information about the linux-lvm mailing list