Для ядра Linux предложен механизм раздельного учёта времени в контейнерах

20 сентября 2018 года

Для обсуждения в списке рассылки разработчиков ядра Linux предложен набор патчей с реализацией пространства имён для времени. После завершения разработки обсуждаемый механизм позволит раздельно управлять временем в каждом контейнере, давая возможность выставлять своё дату/время, синхронизировать время независимо от базового окружения и корректно возобновлять показания таймеров при восстановления контейнера после заморозки.

В текущем виде ядро Linux предоставляет общие счётчики всех видов времени для контейнеров, что создаёт трудности при миграции контейнеров между узлами и восстановлении после заморозки их состояния. При восстановлении остановленного на какое-то время контейнера важно не столько изменение показания календарного времени (CLOCK_REALTIME), сколько правильность восстановления значений монотонных часов (CLOCK_MONOTONIC) и часов времени после загрузки (CLOCK_BOOTTIME).

Монотонные часы отражают неразрывно увеличивающееся время, прошедшее с момента определённого события в прошлом, т.е. если контейнер был заморожен, то показания монотонных часов должны восстановить значение на момент заморозки, пропустив интервал времени, в котором контейнер находился в состоянии заморозки или сна. Аналогичная ситуация возникает при восстановлении времени с момента загрузки (в современных ядрах Linux значения CLOCK_MONOTONIC и CLOCK_BOOTTIME совпадают).

Суть предложенных изменений в добавлении для каждого пространства имён дополнительных смещений к базовым значениям системных часов. При обращении процесса, находящегося в некорневом пространстве имён, к системным вызовам, связанным с манипуляцией временем, указанные смещения будут суммироваться c базовыми показаниями времени. В представленном на рассмотрение наборе изменений смещение пока реализованы только для таймеров CLOCK_MONOTONIC и CLOCK_BOOTTIME. Для CLOCK_REALTIME детали реализации пока находятся на стадии обсуждения и непонятно, достаточно ли будет смещения, как поступать при смене времени в хост-окружении и есть ли необходимость в корректировке времени, используемом для отражения момента создания или изменения файлов в VFS.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Для ядра Linux предложен механизм раздельного учёта времени в контейнерах», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.