← Back to context

Comment by m4rtink

6 years ago

XFS on LVM thin pool LV. Stable and performant as far as I can tell.

My terrible experiences with thin pools makes me see btrfs as a pool of wonderful, trouble-free and perfect code.

Just ask yourself what happens when a thin pool runs out of actual, physical disk blocks?

  • Isn't this a problem for any over provisioned storage pool ? You can avoid that if you want by not over provisioning & checking space consumed by CoW snapshots. Also what does ZFS do if you run out of blocks ?

    I have actually managed to run out of blocks on XFS on thin LV and it's an interesting experience. XFS always survoved just fine, but some files basically vanished. Looks like mostly those that were open and being written to at exhaustion time, like for example a mariadb database backing store. Files that were just sitting there were perfectly fine as far as I could tell.

    Still, you definitely should never put data on a volume where a pool can be exhausted, without a backup as I don't think there is really a bulletproof way for a filesystem to handle that happening suddenly.

    • >Isn't this a problem for any over provisioned storage pool ?

      ZFS doesn't over-provision anything by default. The only case I'm aware of where you can over-provision with ZFS is when you explicitly choose to thin provision zvols (virtual block devices with a fixed size). This can't be done with regular file systems which grow as needed, though you can reserve space for them.

      File systems do handle running out of space (for a loose definition of handle) but they never expect the underlying block device to run out of space, which is what happens with over-provisioning. That's a problem common to any volume manager that allows you to over provision.

      9 replies →

XFS is not copy on write.

  • XFS has supported reflinks for some time already, just the deduplication is kind of experimental.

    Supporting reflinks is actually more, than can be said about ZoL (see zfsonlinux#405).

    • I think that you're both right - under normal conditions XFS not CoW, but when using the reflink option it does use CoW => kind of a mix.