web-dev-qa-db-fra.com

Ajouter un périphérique bloc au conteneur LXC

Je veux utiliser un faux dispositif de bloc dans mon conteneur. J'ai créé des périphériques en boucle et ajouté un disque à un conteneur, mais je ne le vois pas dans la liste/dev/directory.

# truncate -s 10G xfs.img
# mkfs.xfs xfs.img
# losetup -f xfs.img
# lxc config device add Cont01 BDisk disk source=/dev/loop0 path=/mnt/disk
# lxc exec Cont1 -- df -h
...
/dev/loop0                9.8G     36.0M      9.2G   0% /mnt/disk
# lxc exec Cont1 "ls /dev/ | grep loop"
#

Je suppose que cela est lié à l'apparmor ou à la politique de sécurité. Quelqu'un peut-il conseiller un moyen sûr d'obtenir un accès LXC à un périphérique de faux bloc?

UPDATE le moyen de monter un faux périphérique de bloc:

$ lxc config device add ceph04 BDisk unix-block path=/dev/loop1
1
Mancubus

Le LXD GitHub a beaucoup de documentation liée à la configuration.

https://github.com/lxc/lxd/blob/master/doc/configuration.md

Cherchez-y "unix-block" et vous trouverez ce dont vous avez besoin.

Citation suit:

Configuration des appareils

LXD fournira toujours au conteneur les périphériques de base nécessaires au fonctionnement d’un système POSIX standard. Celles-ci ne sont pas visibles dans la configuration du conteneur ou du profil et ne peuvent pas être remplacées.

Ceux-ci comprennent:

/ dev/null (périphérique de caractères)/dev/zero (périphérique de caractères)/dev/full (périphérique de caractères)/dev/console (périphérique de caractères)/dev/tty (périphérique de caractères)/dev/random (périphérique de caractères)/dev/urandom (périphérique de caractères)/dev/net/tun (périphérique de caractères)/dev/Fuse (périphérique de caractères) lo (interface réseau)

Tout le reste doit être défini dans la configuration du conteneur ou dans l'un de ses profils. Le profil par défaut contient généralement une interface réseau destinée à devenir eth0 dans le conteneur.

Pour ajouter des périphériques supplémentaires à un conteneur, des entrées de périphérique peuvent être ajoutées directement à un conteneur ou à un profil.

Des périphériques peuvent être ajoutés ou supprimés pendant l'exécution du conteneur.

Chaque entrée de périphérique est identifiée par un nom unique. Si le même nom est utilisé dans un profil ultérieur ou dans la propre configuration du conteneur, la nouvelle définition remplace l'intégralité de l'entrée.

Les entrées de périphérique sont ajoutées via: lxc config device add [clé = valeur] ...

= = = end quote = = =

Un exemple de commande:

lxc profile device add [clé = valeur] ...

De plus, si vous utilisez LXD, je vous recommande vivement de vous abonner à l'alias de messagerie de lxc-users, car les développeurs le surveillent et répondent à des questions/réponses quotidiennement.

https://lists.linuxcontainers.org/

Enfin, il existe un sous-reddit LXD sur Reddit (si vous utilisez Reddit?) Qui n'est PAS destiné à l'assistance mais fournit beaucoup d'informations intéressantes sur LXD.

https://www.reddit.com/r/LXD/

1
bmullan