The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

20.09.2018 21:37

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

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

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

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

  1. Главная ссылка к новости (https://lkml.org/lkml/2018/9/1...)
  2. OpenNews: Разработчики VPN WireGuard представили новую криптографическую библиотеку Zinc
  3. OpenNews: Facebook открыл код для обработки ситуации нехватки памяти в системе
  4. OpenNews: Компания Huawei предложила новую ФС EROFS для ядра Linux
  5. OpenNews: В состав ядра 4.18 одобрено включение нового пакетного фильтра bpfilter
  6. OpenNews: Для Linux предложена новая ФС NOVA, спроектированная для NVM-памяти
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49308-clock
Ключевые слова: clock, time, linux, kernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (45) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:44, 20/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    Ну вот, началось. Не прошлой и трёх дней как Линус отошёл....
     
     
  • 2.4, Аноним (-), 22:21, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    объясните тем, кто в танке - что плохого в предложеной приблуде?
     
     
  • 3.6, Аноним (6), 22:29, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Наоборот, хорошо. Представьте, что Вы выставили таймер по монотонному времени на 1 секунду и заморозили контейнер. После разморозки таймер тут же сработает. Так могут неправильно работать различные системы таймаута, сделанные своими силами в приложениях, например.
     
     
  • 4.10, anonymous yet another (?), 23:01, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Монотонные часы гарантируют строгую упорядоченность счётчика
    и ничего дополнительно не гарантируют (и не могут) для
    дистанции между элементами.
     
     
  • 5.11, мужик (?), 23:20, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    монотонные часы гарантируют только то, что они будут тикать, пока система не в состоянии suspend to sleep. для контейнеров заморозка это тоже самое, что suspend для системы. так что вполне логично, что появились патчи.
     
     
  • 6.15, anonymous yet another (?), 23:30, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Успехов.
     
  • 4.20, Аноним (20), 01:10, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Вы выставили таймер по монотонному времени на 1 секунду и заморозили контейнер. После разморозки таймер тут же сработает.

    а почему он не должен сработать? секунда же прошла.

     
     
  • 5.44, Аноним (6), 18:57, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Попробуйте сделать семафор своей реализации с таймаутом через монотонные часы и узнаете, почему это он не должен был сработать.
     
  • 4.50, Аноним (50), 20:33, 27/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > могут неправильно работать различные системы таймаута, сделанные своими силами в приложениях,
    > например.

    Таймаут в случае заморозки приложения в любом случае может сделать нечто странное. Если хотели таймаут через 5 секунд, а приложение было в коме полчаса - таймаут всяко пропущен. И надо ли этот таймаут кому-то через полчаса - большой вопрос. Еще больший вопрос - надо ли кому-то этот таймаут через полчаса и пять секунд, или ровно полчаса, как правильно и есть ли какая-то разница, если это через полчаса.

     
  • 2.7, proninyaroslav (ok), 22:38, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так Грег не ушёл же.
     
  • 2.24, Аноним (24), 03:15, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Блин, вы так не пугайте! (Линус отошел от дел, если что. И то временно)
     
     
  • 3.40, Аноним (40), 16:44, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Хахаха. Наивный.
    Среди разработчиков ядра уже начались чистки.
    >Less than 24 hours after Linux applied the COC, SJW troll Sarah "Sage" Sharp is using it to try and purge the Linux team of one of her enemies.

    Целью стал Theodore Ts'o - не много ни мало создатель ext4.

    Не прошло и дня.

     
     
  • 4.41, Michael Shigorin (ok), 18:10, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Less than 24 hours after Linux applied the COC, SJW troll Sarah "Sage" Sharp
    >> is using it to try and purge the Linux team of one of her enemies.
    > Целью стал Theodore Ts'o - не много ни мало создатель ext4.
    > Не прошло и дня.

    Надеюсь, в результате выпилят как дуру Сару, так и дурацкий текст.

     
     
  • 5.45, Аноним (45), 23:13, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, надейся и жди..
    Надёжнейший рецепт.
    Опробован миллиардами людей с немного предсказуемым результатом.

     
  • 5.51, Аноним (50), 20:37, 27/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Надеюсь, в результате выпилят как дуру Сару, так и дурацкий текст.

    Кто по итогам дурой окажется тоже еще вопрос. Если у кого-то на вас серьезный зуб - вы таки должны ожидать за это определенные неприятности как один из вариантов развития событий. Устроен этот мир так. Так что если влезать в клещи и рубки - так и не обижаться потом на последствия.

     

  • 1.2, Аноним (2), 21:50, 20/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Млин , вот бы кто из гнома так ушел.
     
     
  • 2.8, th3m3 (ok), 22:42, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Хоть речь не совсем про это, но недавно ушёл с Gnome в Xfce. Всё летает, ничего не глючит, стабильности давно такой не видел. Оперативки мало занимает. В лёгкую организовал себе подобие Gnome, даже Unity с глобальным меню.
     
     
  • 3.9, Аноним (-), 22:50, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Давай назад! Наведи там порядок
     
  • 3.19, kiwinix (?), 00:40, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не поверишь, но кеды тоже мало оперативы едят
     
     
  • 4.21, Аноним (21), 01:33, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А dwm ещё меньше!
     
     
  • 5.25, Аноним (25), 06:54, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    чудненько, сравниваешь DE с WM ?
     
  • 4.28, th3m3 (ok), 08:59, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Не поверишь, но кеды тоже мало оперативы едят

    Столько же, сколько и Gnome. Но точно больше, чем Xfce.

     
  • 2.34, Аноним (34), 12:54, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Гному станет только лучше (хотя ему уже сложно помочь). А ядру, я вангую, станет сейчас плохо релиза два-три так это будет продолжаться.
     
     
  • 3.37, Аноним (40), 16:29, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Гном изуродован ради планшетиков, которые так и не появились.
    >Гному станет только лучше (хотя ему уже сложно помочь)

    Очень просто.
    rm Gnome3/ -rf
    unzip Gnome2.src.zip

    Нет ни одной причины по которой надо было бросать второй гном и клепать
    это мерзейшее, неудобное, блевотное угребище.

    Это как взять и зарезать собственного ребенка и усыновить трансексуального, аутичного беженца из Гамбии. Так прогрессивно!

     
  • 2.36, Аноним (40), 16:20, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Предлагаю скидываться всем сообществом.
    Отправим разработчиков Гнома на Марс.
    В туристическое путешествие.
    А можно сразу в другую галактику.
     

  • 1.13, мужик (?), 23:21, 20/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > современных ядрах Linux значения CLOCK_MONOTONIC и CLOCK_BOOTTIME совпадают

    не совпадают они

     
     
  • 2.38, Аноним (40), 16:30, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Даже стоящие часы иногда показывают точное время.
    Два раза в день.
     
     
  • 3.49, zamorskij gost (?), 17:21, 25/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    V SUTKI :)))))))
     
  • 3.52, Аноним (52), 20:40, 27/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже стоящие часы иногда показывают точное время.

    А если часы тикают, они могут и не показать одинаковое время за обозримый интервал. Например, если у меня пара часов, одни отстали на 15 минут от других, ждать пока они станут показывать одинаковое время придется довольно долго, явно более 1 дня.

     

  • 1.14, мужик (?), 23:22, 20/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    CLOCK_BOOTTIME -- это CLOCK_MONOTONIC + суммарное время в суспенде
     
     
  • 2.16, Аноним (16), 23:38, 20/09/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > CLOCK_BOOTTIME -- это CLOCK_MONOTONIC + суммарное время в суспенде

    С недавних пор это не так. Время сна начиная с ядра 4.17 учитывается и в CLOCK_MONOTONIC.

    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=

     
     
  • 3.54, eisaev (?), 11:13, 25/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это изменение откатили почти сразу: https://github.com/torvalds/linux/commit/a3ed0e4393d6885b4af7ce84b437dc696490a
     

  • 1.18, Аноним (-), 23:53, 20/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Монотонные часы отражают неразрывно увеличивающееся время, прошедшее с момента определённого события в прошлом

    Так что там, на быстрых машинах время будет замедляться?

     
     
  • 2.22, EuPhobos (ok), 01:52, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Да, если машину зашвырнуть со скоростью близкой к световой, почему бы и нет.
    Ну или машину отправить к чёрной дыре, смотря какая теория.
    А кварц он и в африке кварц.
     
     
  • 3.31, Аноним (31), 10:50, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А кварц он и в африке кварц.

    в том то и фишка, для синхронизации с отстающими придётся ускорять, а это как-бы сложнее чем замедлять...

     
  • 3.53, Аноним (52), 20:41, 27/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А кварц он и в африке кварц.

    Кварц и в африке кварц. И зависит от дюжины факторов. Самый очевидный конечно же температура.

     
  • 2.23, Никонор Бонифатич (?), 02:51, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    и иногда идти назад
     
     
  • 3.30, Аноним (30), 10:10, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    и вверх
     
  • 2.33, VladSh (?), 12:43, 21/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    На быстрых же должно ускоряться? :)
     

  • 1.32, Аноним (32), 11:17, 21/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    А что шаревару с ограниченным временем бесплатной работы уже в докерах распространяют?
     
  • 1.42, Аноним (42), 18:48, 21/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Они бы определились, контейнеры это виртуальные машины или нет. Вроде, пяткой в грудь били, что нет.
     
  • 1.43, Аноним (42), 18:50, 21/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Контейнеры - голый король. Управление ресурсами и привилегиями процессов очень важно, но было задолго до контейнеров, есть и сейчас. Прекрасно работает.
     
  • 1.46, Аноним (46), 22:12, 23/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Кот из дома - мыши в пляс
     
  • 1.47, evkogan (?), 15:26, 24/09/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вообще это очень нужная вещь. Странно что тут все покритиковали. Например Оракл нельзя сделать онлайн миграцию контейнера именно из-за проблем, что он сам себя мониторит с жесткой привязкой ко времени. Конечно ложка хороша к обеду, у меня он был лет 5 назад, ну еще 3 года назад. Но лишним точно не будет
     
     
  • 2.48, Аноним (46), 00:22, 25/09/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Для нормального софта (т.е. когда программист прочитал мануал и понимает значение слова "монотонный") знание настоящего изменения времени может быть полезнее, чем имитация его остановки.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру