Le chemin par défaut pour LXD est /var/lib/lxd
, ainsi les conteneurs sont dans /var/lib/lxd/containers
et les instantanés sont placés dans /var/lib/lxd/snapshots
.
La partition/var/est en train de saturer, je prévois donc d’utiliser une autre partition pour les conteneurs et les instantanés, qui dispose de beaucoup plus d’espace.
Mes options actuelles sont:
Vous ne savez pas quelle méthode est la plus facile et s'il existe d'autres moyens de l'obtenir facilement.
Je crains avoir des problèmes avec apparmor, les autorisations du conteneur ou des problèmes dans lxd/lxc.
Quelle serait la meilleure (ou la meilleure) façon de les déplacer?
LXD 2.9+ prend en charge plusieurs pools de stockage.
Le gros problème avec LXD est qu’à l’heure actuelle, il ne semble prendre en charge qu’un seul pool de stockage. En particulier, cela pose un problème si vous souhaitez exécuter une partie de vos conteneurs dans un volume de disque et une autre dans un autre. Disons que vous avez des conteneurs "rapides" dans un volume SSD et des conteneurs "lents" dans un volume HDD.
Si vous souhaitez exécuter vos conteneurs dans un seul volume, la solution est simple:
Par exemple, si votre nouveau stockage est monté sous/mnt/large pool dans un sous-répertoire nommé lxd, créez le lien ainsi: ln -s /mnt/largepool/lxd /var/lib/lxd
De cette façon, vous aurez vos conteneurs sur votre nouveau volume de stockage.
Attention, si vous utilisez BTRFS ou ZFS comme back-end de stockage, vous voudrez peut-être créer d'abord les sous-volumes nécessaires sur votre nouveau stockage, afin que vos conteneurs se trouvent dans leurs propres sous-volumes. Par exemple, si vous avez btrfs et des conteneurs nommés c1 et c2 et que le répertoire/mnt/largepool/lxd/conteneurs est déjà en place, avant le déplacement réel des fichiers, créez des sous-volumes: btrfs su create /mnt/largepool/lxd/containers/c1 btrfs su create /mnt/largepool/lxd/containers/c2
Cela faciliterait la création d'instantanés de conteneur par la suite.
J'espère que cette information a été utile.
LXD est basé sur une base de données sqlite. Pour modifier l'emplacement de la piscine, il suffit de modifier la base de données:
installer le client sqlite3 si vous n'en avez pas
echo "UPDATE config SET valeur = 'new_pool_lxd' WHERE\key = 'storage.zfs_pool_name';" | sqlite3 / var/lib/lxd/lxd.db
en supposant que votre base de données lxd à l'emplacement par défaut
puis vérifier
echo "SELECT * FROM config;" | sqlite3 /var/lib/lxd/lxd.db
1 | storage.zfs_pool_name | new_pool_lxd
j'espère que cela t'aides