[linux-lvm] Looking ahead - tiering with LVM?

John Stoffel john at stoffel.org
Wed Sep 9 19:53:31 UTC 2020


>>>>> "Gionatan" == Gionatan Danti <g.danti at assyoma.it> writes:

Gionatan> Il 2020-09-09 20:47 John Stoffel ha scritto:
>> This assumes you're tiering whole files, not at the per-block level
>> though, right?

Gionatan> The tiered approach I developed and maintained in the past, yes. For any 
Gionatan> LVM-based tiering, we are speaking about block-level tiering (as LVM 
Gionatan> itself has no "files" concept).

>> Do you have numbers?  I'm using DM_CACHE on my home NAS server box,
>> and it *does* seem to help, but only in certain cases.   I've got a
>> 750gb home directory LV with an 80gb lv_cache writethrough cache
>> setup.  So it's not great on write heavy loads, but it's good in read
>> heavy ones, such as kernel compiles where it does make a difference.

Gionatan> Numbers for available space for tiering vs cache can vary
Gionatan> based on your setup. However, storage tiers generally are at
Gionatan> least 5-10X apart from each other (ie: 1 TB SSD for 10 TB
Gionatan> HDD). Hence my gut fealing that tiering is not drastically
Gionatan> better then lvm cache. But hey - I reserve the right to be
Gionatan> totally wrong ;)

Very true, numbers talk, annecdotes walk... 

>> So it's not only the caching being per-file or per-block, but how the
>> actual cache is done?  writeback is faster, but less reliable if you
>> crash.  Writethrough is slower, but much more reliable.

Gionatan> writeback cache surely is more prone to failure vs
Gionatan> writethoug cache. The golden rule is that writeback cache
Gionatan> should use a mirrored device (with device-level powerloss
Gionatan> protected writeback cache if sync write speed is important).

Even in my case I use mirrored SSDs for my cache LVs.  It's the only
sane thing to do IMHO.

Gionatan> But this is somewhat ortogonal to the original question:
Gionatan> block-level tiering itself increases the chances of data
Gionatan> loss (ie: losing the SSD component will ruin the entire
Gionatan> filesystem), so you should used mirrored (or parity) device
Gionatan> for tiering also.

It does, you really need to have a solid setup in terms of hardware,
with known failures modes you can handle, before you start trying to
tier blocks.

Though maybe a write through block cache would be ok, since the cache
would only be for reads, not writes.  Which could help if you have a
bunch of VMs (or containers, or whatevers) with alot of duplicated
data that are all hitting the disk systems at once.




More information about the linux-lvm mailing list