Назад | Перейти на главную страницу

Установка флага noatime для файловых систем внутри контейнера lxc

Моя файловая система хоста ext4 установлен с noatime флаг. Но внутри lxc-контейнера флаг отсутствует.

Вот результат mount на хосте: /dev/sdb1 on /home type ext4 (rw,noatime)

А вот результат mount в контейнере: /dev/sdb1 on / type ext4 (rw)

Теперь у меня два вопроса:

1. Имеет ли значение, если noatime устанавливается в контейнер?

Я предполагаю да.

2. Как лучше всего установить noatime для контейнера?

В идеале я бы хотел настроить так, чтобы он всегда учитывал флаги файловой системы хоста.

Обновить В /proc/mounts показывает несколько разные записи:

rootfs / rootfs rw 0 0
/dev/sdb1 /home ext4 rw,noatime 0 0
  1. Это действительно имеет значение. atime в контейнере функционирует так, как вы ожидаете, что отрицательно сказывается на производительности.
  2. В соответствии с этот билет вам нужно использовать обходной путь, используя крючок монтирования вместо того, чтобы LXC делал монтирование за вас

Мой угадать заключается в том, что когда системный вызов записывает в файл, код ядра, который реализует, смотрит на состояние флага noatime и получает эту информацию из той же процедуры ядра, которая предоставляет информацию файловой системе proc.

Однако это далеко не авторитетная точка зрения, и если она имеет значение, вы должны ее проверить.

Действительно ли время обновляется? Зарегистрируйте как хост, так и размещенную систему. Я сомневаюсь, что время записывается по-другому, но, опять же, это предположение.

В зависимости от того, как долго вам нужно рассчитывать, что ответ будет правильным, вам также может потребоваться поискать авторитетный ответ о том, каким должно быть поведение. Если в настоящее время это не работает так, как задумано, это может измениться в будущем, и помните, что LXC еще не так уж и далек от своего первого производственного выпуска. Задавая вопросы, вы можете стабилизировать ответ, но, может быть, перенесите его в список разработчиков LXC?

Не совсем ответ, скорее мысль: кроме того, как можно было бы поверить, основные инструменты fs (mount, df) используют / etc / mtime, который представляет собой простой текстовый файл, написанный с помощью mount и другими инструментами, в качестве источника информации о fs / mount. Если вы используете chrooted, ваш / etc / mtab может иметь или не иметь содержимое, отражающее реальную ситуацию в вашей системе, в зависимости от того, когда был создан chrooted / etc / mtab. Ваш / etc / mtab в контейнере, очевидно, не отражает фактическую конфигурацию (как видно в / proc / mounts).

Я думаю, это ошибка в обновлении файла / etc / mtime. Проверьте / proc / mounts как в контейнере, так и на хосте.