Lorsque vous comparez l'utilisation du disque pour un disque dur monté, l'utilisation est complètement différente par rapport à l'hôte et au conteneur. J'utilise Ubuntu 14.04 sur l'hôte et dans le conteneur lxc.
Le disque dur est monté sur l'hôte comme confirmé par /etc/mtab
qui a l'entrée suivante: /dev/nvme0n1 /mnt/SSD ext4 rw 0 0
. Cependant, le lecteur n'est pas monté à l'aide de /etc/fstab
. Le lecteur est monté à l'intérieur du conteneur lxc à l'aide des paramètres fstab dans: /var/lib/lxc/container_name/fstab
.
Depuis Host:
# du -hs /mnt/SSD/
20K /mnt/SSD/
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 63G 4.0K 63G 1% /dev
tmpfs 13G 1.4M 13G 1% /run
/dev/mapper/sifr--vg-root 314G 241G 58G 81% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 63G 0 63G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/sda1 236M 100M 124M 45% /boot
/dev/nvme0n1 1.1T 71M 1.1T 1% /mnt/SSD
Depuis le conteneur:
$ du -hs /mnt/SSD/
16G /mnt/SSD/
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/sifr--vg-root 314G 241G 58G 81% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 13G 136K 13G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 63G 4.0K 63G 1% /run/shm
none 100M 0 100M 0% /run/user
pdate: Après avoir démonté le lecteur à l'aide de Sudo umount /dev/nvme0n1
, Je vois maintenant une utilisation du disque de 16 Go dans l'hôte:
$ du -hs /mnt/SSD/
16G /mnt/SSD/
J'ai monté un autre lecteur /dev/sdb
en utilisant /etc/fstab
et lui a donné accès en utilisant la même méthode: /var/lib/lxc/container_name/fstab
. L'utilisation du deuxième lecteur est également cohérente et le contenu est disponible à la fois dans le conteneur et l'hôte.
Les différences entre les deux disques sont que /dev/nvme0n1
est un lecteur nvme qui a été monté manuellement, tandis que /dev/sdb
est un lecteur magnétique et a été monté à l'aide de /etc/fstab
.
Qu'est-ce qui pourrait causer la différence de comportement et comment faire /dev/nvme0n1
disponible dans le conteneur?
La raison en est que l'hôte a accès au lecteur monté, mais pas le conteneur. C'est parce qu'il n'y a rien monté sur /mnt/SSD
dans le conteneur. Ainsi, l'hôte accède et stocke les données sur le SSD (/dev/nvme0n1
) quand cela va au-delà de /mnt/SSD
tandis que le conteneur accède à un répertoire sur son disque racine (/dev/mapper/sifr--vg-root
).
Pour l'avoir dans le conteneur, vous avez besoin d'un montage bind
et vous pouvez laisser créer un répertoire dans le système de fichiers du conteneur. Pour ce faire, vous devez ajouter le create=dir
option dans le fstab du conteneur:
/mnt/SSD /moint/point/in/the/container none bind,create=dir
>
create = dir (fera un mkdir_p sur le chemin)
create = file (fera un mkdir_p sur le dirname + un fopen sur le chemin)