All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Oranen <oranenj@iki.fi>
To: LVM general discussion and development <linux-lvm@redhat.com>
Cc: oranenj+lvm@iki.fi
Subject: Re: [linux-lvm] Does LVM RAID1 have TRIM support?
Date: Thu, 04 Sep 2014 14:06:40 +0300	[thread overview]
Message-ID: <1409828800.6181.19.camel@kurenai.local> (raw)
In-Reply-To: <5211F372-B9BB-43A8-B569-AC1E3B077D15@redhat.com>

On Tue, 2014-09-02 at 16:49 -0500, Brassow Jonathan wrote:
> On Aug 24, 2014, at 11:08 AM, Jarkko Oranen wrote:
> 
> > Hello
> > 
> > Yesterday I experimented a bit with my RAID configuration on a pair of
> > SSDs, and it seems that LVM's native RAID does not have TRIM support...
> > At least, when I try to run fstrim manually, it complains even though
> > issue_discards is enabled. Plain LVs on top of an MD RAID PV do work, of
> > course.
> > 
> > Am I perhaps missing some configuration, or do RAID1 logical volumes
> > simply not have support for TRIM yet? I'm running a fairly recent kernel
> > (3.15.8) and lvm version says this:
> > 
> >  LVM version:     2.02.106(2) (2014-04-10)
> >  Library version: 1.02.85 (2014-04-10)
> >  Driver version:  4.27.0
> 
> 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. I have no
experience with kernel hacking at all (or even much C programming,
though I can read it), but I took a look at the code anyway to try to
pinpoint the place that tells userspace the ioctl isn't supported. 

From my cursory browsing of the code I couldn't really tell how it
works, but for the most part it seemed like it *should* just work... It
does work just fine for linear volumes, and md/dm-linear.c doesn't seem
to do anything special to enable discard/FITRIM support, while discard
is specifically marked as supported in the md/linear.c and md/raid*.c
files if the underlying device supports it.

However, in dm.c there's the dm_blk_ioctl function which says the
following:
        /* We only support devices that have a single target */
        if (dm_table_get_num_targets(map) != 1)
                goto out;

Intuitively it looks like this could prevent a raid1 target from working
as it apparently consists of rmeta and rimage subcomponents, but I
couldn't determine for certain if my intuition is correct. I did some
testing, and discards work just fine on a linear volume spanning two
different partitions, while they fail on a "RAID" mirror of two similar
partitions. Clearly, two devices in a mapping are not a problem.

> 
> > As an aside, can anyone point me to documentation or other resources
> > about the pros and cons of LVM native RAID1 setup (which I understand
> > uses MD RAID internally?) vs. MD RAID PV + LVM. It seems I might be able
> > to save some SSD space and only mirror the LVs I actually need to keep
> > safe from crashes.
> 
> I don't know if there is a specific list to point to out there, but I can give you a couple pros/cons.
> PRO:
> - use one volume manager instead of two
> - LVM is better suited to creating devices of varying sizes - leaving spare capacity for snapshots, etc
> 
> CONS:
> - no trim support with RAID through LVM (although, I'm not sure of the state in MD)
> - no reshaping (changing from one RAID type to another) capability in LVM RAID.
> 
>  brassow
> 
> _______________________________________________
> linux-lvm mailing list
> linux-lvm@redhat.com
> https://www.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

  reply	other threads:[~2014-09-04 11:07 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-24 16:08 [linux-lvm] Does LVM RAID1 have TRIM support? Jarkko Oranen
2014-09-02 21:49 ` Brassow Jonathan
2014-09-04 11:06   ` Jarkko Oranen [this message]
2014-09-08 17:47     ` Brassow Jonathan
2014-09-08 18:47       ` Jarkko Oranen
2014-09-11 23:31         ` Brassow Jonathan
2014-09-12  7:24           ` Jarkko Oranen
2014-09-24  4:17             ` Brassow Jonathan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1409828800.6181.19.camel@kurenai.local \
    --to=oranenj@iki.fi \
    --cc=linux-lvm@redhat.com \
    --cc=oranenj+lvm@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.