linux-lvm.redhat.com archive mirror
 help / color / mirror / Atom feed
From: Mark Mielke <mark.mielke@gmail.com>
To: Gionatan Danti <g.danti@assyoma.it>
Cc: LVM general discussion and development <linux-lvm@redhat.com>
Subject: Re: [linux-lvm] Snapshot behavior on classic LVM vs ThinLVM
Date: Fri, 7 Apr 2017 18:24:15 -0400	[thread overview]
Message-ID: <CALm7yL1Qm4xanZ=tbLgC7B7KZ=dzLZtsTJXTd0rsEONxg0nqng@mail.gmail.com> (raw)
In-Reply-To: <fe625ba1be451139dd871982a24fb9ba@assyoma.it>

[-- Attachment #1: Type: text/plain, Size: 4672 bytes --]

On Fri, Apr 7, 2017 at 5:12 AM, Gionatan Danti <g.danti@assyoma.it> wrote:

> Il 07-04-2017 10:19 Mark Mielke ha scritto:
>
>>
>> I found classic LVM snapshots to suffer terrible performance. I
>> switched to BTRFS as a result, until LVM thin pools became a real
>> thing, and I happily switched back.
>>
>
> So you are now on lvmthin? Can I ask on what pool/volume/filesystem size?


We use lvmthin in many areas... from Docker's dm-thinp driver, to XFS file
systems for PostgreSQL or other data that need multiple snapshots,
including point-in-time backup of certain snapshots. Then, multiple sizes.
I don't know that we have 8 TB anywhere right this second, but we are using
it in a variety of ranges from 20 GB to 4 TB.


>
>> I expect this depends on exactly what access patterns you have, how
>> many accesses will happen during the time the snapshot is held, and
>> whether you are using spindles or flash. Still, even with some attempt
>> to be objective and critical... I think I would basically never use
>> classic LVM snapshots for any purpose, ever.
>>
>
> Sure, but for nightly backups reduced performance should not be a problem.
> Moreover, increasing snapshot chunk size (eg: from default 4K to 64K) gives
> much faster write performance.
>


When you say "nightly", my experience is that processes are writing data
all of the time. If the backup takes 30 minutes to complete, then this is
30 minutes of writes that get accumulated, and subsequent performance
overhead of these writes.

But, we usually keep multiple hourly snapshots and multiply daily
snapshots, because we want the option to recover to different points in
time. With the classic LVM snapshot capability, I believe this is
essentially non-functional. While it can work with "1 short lived
snapshot", I don't think it works at all well for "3 hourly + 3 daily
snapshots".  Remember that each write to an area will require that area to
be replicated multiple times under classic LVM snapshots, before the
original write can be completed. Every additional snapshot is an additional
cost.



> I more concerned about lenghtly snapshot activation due to a big, linear
> CoW table that must be read completely...



I suspect this is a pre-optimization concern, in that you are concerned,
and you are theorizing about impact, but perhaps you haven't measured it
yourself, and if you did, you would find there was no reason to be
concerned. :-)

If you absolutely need a contiguous sequence of blocks for your drives,
because your I/O patterns benefit from this, or because your hardware has
poor seek performance (such as, perhaps a tape drive? :-) ), then classic
LVM snapshots would retain this ordering for the live copy, and the
snapshot could be as short lived as possible to minimize overhead to only
that time period.

But, in practice - I think the LVM authors of the thinpool solution
selected a default block size that would exhibit good behaviour on most
common storage solutions. You can adjust it, but in most cases I think I
don't bother, and just use the default. There is also the behaviour of the
systems in general to take into account in that even if you had a purely
contiguous sequence of blocks, your file system probably allocates files
all over the drive anyways. With XFS, I believe they do this for
concurrency, in that two different kernel threads can allocate new files
without blocking each other, because they schedule the writes to two
different areas of the disk, with separate inode tables.

So, I don't believe the contiguous sequence of blocks is normally a real
thing. Perhaps a security camera that is recording a 1+ TB video stream
might allocate contiguous, but basically nothing else does this.

To me, LVM thin volumes is the right answer to this problem. It's not
particularly new or novel either. Most "Enterprise" level storage systems
have had this capability for many years. At work, we use NetApp and they
take this to another level with their WAFL = Write-Anywhere-File-Layout.
For our private cloud solution based upon NetApp AFF 8080EX today, we have
disk shelves filled with flash drives, and NetApp is writing everything
"forwards", which extends the life of the flash drives, and allows us to
keep many snapshots of the data. But, it doesn't have to be flash to take
advantage of this. We also have large NetApp FAS 8080EX or 8060 with all
spindles, including 3.5" SATA disks. I was very happy to see this type of
technology make it back into LVM. I think this breathed new life into LVM,
and made it a practical solution for many new use cases beyond being just a
more flexible partition manager.


-- 
Mark Mielke <mark.mielke@gmail.com>

[-- Attachment #2: Type: text/html, Size: 6224 bytes --]

  parent reply	other threads:[~2017-04-07 22:24 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-06 14:31 [linux-lvm] Snapshot behavior on classic LVM vs ThinLVM Gionatan Danti
2017-04-07  8:19 ` Mark Mielke
2017-04-07  9:12   ` Gionatan Danti
2017-04-07 13:50     ` L A Walsh
2017-04-07 16:33       ` Gionatan Danti
2017-04-13 12:59         ` Stuart Gathman
2017-04-13 13:52           ` Xen
2017-04-13 14:33             ` Zdenek Kabelac
2017-04-13 14:47               ` Xen
2017-04-13 15:29               ` Stuart Gathman
2017-04-13 15:43                 ` Xen
2017-04-13 17:26                   ` Stuart D. Gathman
2017-04-13 17:32                   ` Stuart D. Gathman
2017-04-14 15:17                     ` Xen
2017-04-14  7:27               ` Gionatan Danti
2017-04-14  7:23           ` Gionatan Danti
2017-04-14 15:23             ` Xen
2017-04-14 15:53               ` Gionatan Danti
2017-04-14 16:08                 ` Stuart Gathman
2017-04-14 17:36                 ` Xen
2017-04-14 18:59                   ` Gionatan Danti
2017-04-14 19:20                     ` Xen
2017-04-15  8:27                       ` Xen
2017-04-15 23:35                         ` Xen
2017-04-17 12:33                         ` Xen
2017-04-15 21:22                     ` Xen
2017-04-15 21:49                       ` Xen
2017-04-15 21:48                     ` Xen
2017-04-18 10:17                       ` Zdenek Kabelac
2017-04-18 13:23                         ` Gionatan Danti
2017-04-18 14:32                           ` Stuart D. Gathman
2017-04-19  7:22                         ` Xen
2017-04-07 22:24     ` Mark Mielke [this message]
2017-04-08 11:56       ` Gionatan Danti
2017-04-07 18:21 ` Tomas Dalebjörk
2017-04-13 10:20 ` Gionatan Danti
2017-04-13 12:41   ` Xen
2017-04-14  7:20     ` Gionatan Danti
2017-04-14  8:24       ` Zdenek Kabelac
2017-04-14  9:07         ` Gionatan Danti
2017-04-14  9:37           ` Zdenek Kabelac
2017-04-14  9:55             ` Gionatan Danti
2017-04-22  7:14         ` Gionatan Danti
2017-04-22 16:32           ` Xen
2017-04-22 20:58             ` Gionatan Danti
2017-04-22 21:17             ` Zdenek Kabelac
2017-04-23  5:29               ` Xen
2017-04-23  9:26                 ` Zdenek Kabelac
2017-04-24 21:02                   ` Xen
2017-04-24 21:59                     ` Zdenek Kabelac
2017-04-26  7:26                       ` Gionatan Danti
2017-04-26  7:42                         ` Zdenek Kabelac
2017-04-26  8:10                           ` Gionatan Danti
2017-04-26 11:23                             ` Zdenek Kabelac
2017-04-26 13:37                               ` Gionatan Danti
2017-04-26 14:33                                 ` Zdenek Kabelac
2017-04-26 16:37                                   ` Gionatan Danti
2017-04-26 18:32                                     ` Stuart Gathman
2017-04-26 19:24                                     ` Stuart Gathman
2017-05-02 11:00                                     ` Gionatan Danti
2017-05-12 13:02                                       ` Gionatan Danti
2017-05-12 13:42                                         ` Joe Thornber
2017-05-14 20:39                                           ` Gionatan Danti
2017-05-15 12:50                                             ` Zdenek Kabelac
2017-05-15 14:48                                               ` Gionatan Danti
2017-05-15 15:33                                                 ` Zdenek Kabelac
2017-05-16  7:53                                                   ` Gionatan Danti
2017-05-16 10:54                                                     ` Zdenek Kabelac
2017-05-16 13:38                                                       ` Gionatan Danti
2018-02-27 18:39                       ` Xen
2018-02-28  9:26                         ` Zdenek Kabelac
2018-02-28 19:07                           ` Gionatan Danti
2018-02-28 21:43                             ` Zdenek Kabelac
2018-03-01  7:14                               ` Gionatan Danti
2018-03-01  8:31                                 ` Zdenek Kabelac
2018-03-01  9:43                                   ` Gianluca Cecchi
2018-03-01 11:10                                     ` Zdenek Kabelac
2018-03-01  9:52                                   ` Gionatan Danti
2018-03-01 11:23                                     ` Zdenek Kabelac
2018-03-01 12:48                                       ` Gionatan Danti
2018-03-01 16:00                                         ` Zdenek Kabelac
2018-03-01 16:26                                           ` Gionatan Danti
2018-03-03 18:32                               ` Xen
2018-03-04 20:34                                 ` Zdenek Kabelac
2018-03-03 18:17                             ` Xen
2018-03-04 20:53                               ` Zdenek Kabelac
2018-03-05  9:42                                 ` Gionatan Danti
2018-03-05 10:18                                   ` Zdenek Kabelac
2018-03-05 14:27                                     ` Gionatan Danti
2018-03-03 17:52                           ` Xen
2018-03-04 23:27                             ` Zdenek Kabelac
2017-04-22 21:22           ` Zdenek Kabelac
2017-04-24 13:49             ` Gionatan Danti
2017-04-24 14:48               ` Zdenek Kabelac

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='CALm7yL1Qm4xanZ=tbLgC7B7KZ=dzLZtsTJXTd0rsEONxg0nqng@mail.gmail.com' \
    --to=mark.mielke@gmail.com \
    --cc=g.danti@assyoma.it \
    --cc=linux-lvm@redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).