Как стать автором
Обновить

Как обновить ядро в системе без перезапуска сервисов (пошаговая инструкция)

Время на прочтение 8 мин
Количество просмотров 13K
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 11

Комментарии 11

Мне пришлось запускать эту задачу в Travis 33 раза

А суммарно по времени сколько ушло? Travis вроде бы достаточно медленный зверь.
Я сначала отладил перезагрузку через kexec и только потом добавил обновление системы. Просто перезагрузка занимает пару минут, с обновлением минут 15-20.

На самом деле не так там все и медленно. Вот, на пример, джоб с компиляцией ядра и прогоном всех наших тестов бежит за пол часа https://travis-ci.org/avagin/criu/builds/186831426
Но не все и быстро :) Патч-то в ванильный криу залили, или тем кто захочет повторить эксперимент надо отсюда их брать?
Баги в CRIU, которые нашли тут, пофиксим. Остальное пока под вопросом.
Просто любопытно, а qemu/kvm не пробовали таким же путем продампить и восстановить?
Если это будет чистое qemu (без kvm), то должно задампиться. С kvm все сложнее, там часть стейта в ядре и его нужно как-то сохранять. Мы этим не занимались, потому что у qemu есть свой механизм миграции и он работает более оптимально, чем это сделаем CRIU.
Если уж вспомнили про докер и неймспейсы. Почему бы не docker run ubuntu:16.04?
Можно сказать docker run, но это будет не одно и то же. Во-первых, ядро будет старое. Во-вторых, в Dockere трудно стартануть всю систему целиком. В-третьих, Travis был просто взят для примера. Применений у этого подхода масса. У меня вот сейчас крутится джоб, который тестирует Linux-next ядра.
Как быстро Вы догадались

А где вариант «по нику»?
По ходу 41 воздержавшийся тоже не нашли этого варианта;). Думаю тебе подошел бы еще ответ: «Так я же еще 8 лет назад это делал».
Думаю тебе подошел бы еще ответ: «Так я же еще 8 лет назад это делал»

В ядре прямо :)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий