How to create a striped LVM thin-pool?

,

It is in principle possible to create a striped thin pool with native lvm tools. That info I can find.

Yet with ‘lxc storage …’ I fail to do so. On ‘linuxcontainers’ I’ve read it should be possible, yet when passing ‘lvm.stripes=X’ I’m always told that it is not possible for thin pools or thin volumes.

Background:

I’m having IO limiting issues on a server. The thin pool lives in a volume group with 3 SSDs, so I’d like to have 3 stripes to hopefully speed up things. Possible data loss on drive failure doesn’t concern me at the moment. Sequential IO is decent (for one stripe), yet random IO is … rather sad.

Can you show your reproducer steps please?

Also please show the precise error you get.

Thanks

LXD_LVM: existing volume group with some free space

Using the reference: https://documentation.ubuntu.com/lxd/en/latest/reference/storage_lvm/

lvm.stripes string same as volume.lvm.stripes Number of stripes to use for new volumes (or thin pool volume)

root@debian:~# lxc storage volume create LXD_LVM test-vol lvm.stripes=3
Error: lvm.stripes cannot be used with thin pool volumes

This made me search a bit further and I found that with lvm tools itself I would have to create a striped thin pool myself.

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/thinly_provisioned_volume_creation

Unfortunately LXD is not really good at just using that. I’d have to mess with internal configs.

I could use a stacked LVM setup, but that just doesn’t feel right, e.g. create a striped logical volume manually and use that to “feed” lxd and have it create its thin-pool using that.

I may be misreading the reference, but to me it looks like lxd should support striped thin pool volumes out of the box.

And the volume group is backed by multiple disks?

Can you show lvs output please.

I’ve gained a few more insights.

  1. ‘lvs’ does not show stripes of anything with the default view, it has to be ‘lvs -o+stripes’
  2. ‘-a’ must be added as well, to show thin pool ‘tmeta’ and ‘tdata’. The latter is striped if created accordingly.

For posterity:

These two articles were very helpful. They deal with creating / using a striped (thin) pool

  1. https://discuss.linuxcontainers.org/t/weekly-status-131/6545
  2. https://askubuntu.com/questions/1222407/setup-lxd-storage-thin-pool-on-an-existing-lvm-volume-group-of-the-host

This would be a good topic for a ‘howto’

1 Like