Использование диска для одного и того же диска показывает 20 КБ на хосте и 16 ГБ в контейнере

При сравнении использования диска для смонтированного жесткого диска использование полностью отличается по сравнению между хостом и контейнером. Я использую Ubuntu 14.04 на хосте и в контейнере lxc.

Жесткий диск установлен на хосте, что подтверждается /etc/mtab который имеет следующую запись: /dev/nvme0n1 /mnt/SSD ext4 rw 0 0, Однако привод не монтируется с помощью /etc/fstab, Диск монтируется внутри контейнера lxc с помощью настроек fstab в: /var/lib/lxc/container_name/fstab,

От хозяина:

# 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

Из контейнера:

$ 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. Как и почему один и тот же диск показывает два разных использования?
  2. Какое правильное использование?

Обновление: после размонтирования диска с помощью sudo umount /dev/nvme0n1Теперь я вижу использование 16 ГБ на хосте:

$ du -hs /mnt/SSD/
16G     /mnt/SSD/

Я установил другой диск /dev/sdb с помощью /etc/fstab и дал контейнеру доступ к нему тем же способом: /var/lib/lxc/container_name/fstab, Использование второго диска также согласовано, и содержимое доступно как в контейнере, так и на хосте.

Различия между двумя дисками заключаются в том, что /dev/nvme0n1 это диск nvme, который был установлен вручную, тогда как /dev/sdb является магнитным приводом и был установлен с помощью /etc/fstab,

Что может быть причиной различий в поведении и как сделать /dev/nvme0n1 в наличии в контейнере?

1 ответ

Решение

Причина в том, что хост имеет доступ к подключенному диску, а контейнер - нет. Это потому, что на /mnt/SSD в контейнере. Таким образом, хост получает доступ и хранит данные на SSD (/dev/nvme0n1) когда это выходит за рамки /mnt/SSD в то время как контейнер имеет доступ к каталогу на своем корневом диске (/dev/mapper/sifr--vg-root).

Чтобы иметь это в контейнере, вам нужен bind mount и вы можете разрешить создание каталога в файловой системе контейнера. Для этого вам нужно добавить create=dir опция в fstab контейнера:

/mnt/SSD      /moint/point/in/the/container    none   bind,create=dir

>

  • create = dir (будет делать mkdir_p на пути)

  • create = file (создаст mkdir_p для dirname + fopen на пути)

Другие вопросы по тегам