web-dev-qa-db-fra.com

L'utilisation du disque pour le même lecteur affiche 20K dans l'hôte et 16G dans le conteneur

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
  1. Comment et pourquoi le même lecteur présente-t-il deux utilisations différentes?
  2. Quelle est la bonne utilisation?

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?

2
Greg

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)

1
cmks