[linux-lvm] Snapshot behavior on classic LVM vs ThinLVM

Gionatan Danti g.danti at assyoma.it
Sun May 14 20:39:21 UTC 2017

Il 12-05-2017 15:42 Joe Thornber ha scritto:
> On Fri, May 12, 2017 at 03:02:58PM +0200, Gionatan Danti wrote:
>> On 02/05/2017 13:00, Gionatan Danti wrote:
>> >>Anyway, I think (and maybe I am wrong...) that the better solution is to
>> >>fail *all* writes to a full pool, even the ones directed to allocated
>> >>space. This will effectively "freeze" the pool and avoid any
>> >>long-standing inconsistencies.
> I think dm-thin behaviour is fine given the semantics of write
> and flush IOs.
> A block device can complete a write even if it hasn't hit the physical
> media, a flush request needs to come in at a later time which means
> 'flush all IOs that you've previously completed'.  So any software 
> using
> a block device (fs, database etc), tends to generate batches of writes,
> followed by a flush to commit the changes.  For example if there was a
> power failure between the batch of write io completing and the flush
> completing you do not know how much of the writes will be visible when
> the machine comes back.
> When a pool is full it will allow writes to provisioned areas of a thin 
> to
> succeed.  But if any writes failed due to inability to provision then a
> REQ_FLUSH io to that thin device will *not* succeed.
> - Joe

True, but the real problem is that most of the failed flushes will *not* 
bring the filesystem read-only, as both ext4 and xfs seems to go 
read-only only when *metadata* updates fail. As this very same list 
recommend using ext4 with errors=remount-ro on the basis that putting 
the filesystem in a read-only state after any error I the right thing, I 
was somewhat alarmed to find that, as far I can tell, ext4 goes 
read-only on metadata errors only.

So, let me reiterate: can we consider thinlvm + xfs as safe as thinlvm + 
ext4 + errors=remount-ro?

Danti Gionatan
Supporto Tecnico
Assyoma S.r.l. - www.assyoma.it
email: g.danti at assyoma.it - info at assyoma.it
GPG public key ID: FF5F32A8

More information about the linux-lvm mailing list