При сравнении использования диска для смонтированного жесткого диска использование полностью отличается при сравнении между хостом и контейнером. Я запускаю 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
Обновление: После размонтирования использования диска 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
доступный в контейнере?
Причина, хост имеет доступ к подсоединенному внешнему диску, контейнер не делает. Это вызвано тем, что нет ничего смонтированного в /mnt/SSD
в контейнере. Так доступы хоста и хранит данные на SSD (/dev/nvme0n1
), когда это идет вне /mnt/SSD
, в то время как контейнер действительно получает доступ к каталогу на своем корневом диске (/dev/mapper/sifr--vg-root
).
, Чтобы иметь это в контейнере Вам нужно bind
, монтируются, и можно позволить, создают каталог в файловой системе контейнера. Чтобы сделать так, необходимо добавить create=dir
опция в fstab контейнера:
/mnt/SSD /moint/point/in/the/container none bind,create=dir
>
create=dir (сделает mkdir_p на пути)
create=file (сделает mkdir_p на dirname + fopen на пути)