Large root volume vs attached volumes

In a clustered production environment what have people found to work the best?

A single large root volume on a container?
Attaching a block volume or filesytem based container?

The use case would be a mysql container with data that should be easily migrated to another lxd host during maintenance. Its not a huge Db at 6Gb of data. I have read the docs that you need to snapshot both the container and the datavol if you go the separate route.

Can you resize a container after its started while its running? or do you have to make it an image and then restart it?

can you resize a block attached volume while the container is running?

You can always grow both, for shrinking it depends on the storage driver used as some require an instance restart to be able to shrink a volume.

1 Like

I make the choice by workload. If it’s a light container, I am okay snapshotting the whole root fs. If it’s a database, I am inclined to mount a storage volume for the data path.

This is especially true with traditional RDBMS. Usually you can count on 1) a pretty well-documented server migration procedure, that probably involves taking your /data (or equivalent) folder, moving it to another server, and doing some kind of recovery/init, and also 2) RDMBS are usually picky about versioning in their on-disk format, so if you need to roll back a version - or test an upgrade - it is convenient to be able to move the volume around.

1 Like