Мы начинаем публичное бета-тестирование системы автоматического обновления ядер для облачных серверов. После того, как тестирование будет закончено, эта система будет предложена всем клиентам и пойдёт во все новые облачные сервера по умолчанию.
Наше ядро — это адаптированное под debian/ubuntu/arch-linux ядро из OpenSUSE, в настоящий момент это 3.7-xen.

За счёт организации автоматической пересборки и публикации и тестирования, ядро обновляется вслед за обновлениями в OpenSUSE, в том числе переход на более новые версии. Для selectel-testing это будет происходить всегда автоматически (то есть выйдет новая OpenSUSE с новым ядром, автоматически обновится номер версии и тут), для selectel-stable (то, что потом будет у всех клиентов и что мы анонсируем отдельно) переход между мажорами будет проверяться вручную, минорные исправления (security fixes, исправление критических ошибок) будет публиковаться автоматически.
Кого это касается? Пользователей Debian, Ubuntu, Arch Linux. У пользователей CentOS используется штатное ядро, у пользователей OpenSUSE это ядро в комплекте «из коробки».
Как начать использовать?
Временный возврат на старое ядро: Во вкладке «загрузка» указать пункт меню grub «2», перезагрузить.
Постоянный возврат: после временного возврата на старое ядро и загрузки, зайти в систему, сказать
Нужно выбрать rescue initrd и сделать infiltrate_root (выбор пункта меню grub, к сожалению, не сработает — особенность Арча).
За некоторыми исключениями, штатные upsream-ядра старше 3.0 работают нормально. Известные проблемы:
Из-за этого мы остаёмся с -xen ядрами.
Наше ядро — это адаптированное под debian/ubuntu/arch-linux ядро из OpenSUSE, в настоящий момент это 3.7-xen.

За счёт организации автоматической пересборки и публикации и тестирования, ядро обновляется вслед за обновлениями в OpenSUSE, в том числе переход на более новые версии. Для selectel-testing это будет происходить всегда автоматически (то есть выйдет новая OpenSUSE с новым ядром, автоматически обновится номер версии и тут), для selectel-stable (то, что потом будет у всех клиентов и что мы анонсируем отдельно) переход между мажорами будет проверяться вручную, минорные исправления (security fixes, исправление критических ошибок) будет публиковаться автоматически.
Кого это касается? Пользователей Debian, Ubuntu, Arch Linux. У пользователей CentOS используется штатное ядро, у пользователей OpenSUSE это ядро в комплекте «из коробки».
Как начать использовать?
Debian/Ubuntu
Установка
- Добавить в файл /etc/apt/sources.list следующую строчку:
deb mirror.selectel.ru/selectel-testing selectel-testing main
- Выполнить
aptitude update
- Выполнить
aptitude install linux-image-selectel
- Если нужны заголовки ядра:
aptitude install linux-headers-selectel
- reboot
Что делать, если сломалось?
Временный возврат на старое ядро: Во вкладке «загрузка» указать пункт меню grub «2», перезагрузить.
Постоянный возврат: после временного возврата на старое ядро и загрузки, зайти в систему, сказать
aptitude remove linux-image-selectel
-
dpkg -l|grep linux-image-selectel
, выбрать «неправильное» ядро (не переусердствуйте — хотя бы одно ядро должно оставаться установленным ('i')). - Удалить его (например,
aptitude remove linux-image-3.7.10-1.16-xen
) - Выставить пункт меню grub в 0, перезагрузиться. (сначала пункт меню, потом перезагрузка!)
Arch Linux
Установка
- В файл /etc/pacman.conf, ПЕРЕД разделом [selectel] нужно добавить:
[selectel-testing] Server = http://mirror.selectel.ru/$repo/os/$arch/ SigLevel = Optional
- Выполнить
pacman -Syu
и согласиться установить новое ядро - reboot
Что делать, если сломалось?
Нужно выбрать rescue initrd и сделать infiltrate_root (выбор пункта меню grub, к сожалению, не сработает — особенность Арча).
- Удаляем вышеуказанный блок из файла /etc/pacman.conf
- Cтавим старую версию ядра из кеша:
pacman -U /var/cache/pacman/pkg/linux-selectel-3.1.0-5-*.pkg.tar.xz
Если вы уже очистили кеш, то пакет можно взять с миррора:mirror.selectel.ru/selectel/os/x86_64/linux-selectel-3.1.0-5-x86_64.pkg.tar.xz
(Не забудьте поменять архитектуру в имени пакета на свою) - Возвращаем настройки загрузки виртуальной машины в «0» (пункт меню grub)
- reboot
Почему не upstream?
За некоторыми исключениями, штатные upsream-ядра старше 3.0 работают нормально. Известные проблемы:
- При перемиграции виртуальных машин съезжает время в dmesg, возможно, ломаются таймеры. Связано это с тем, что -xen ядра смену tsc при миграции маскируют, а pv_ops (upstream) — нет.
- Память внутри облачного сервера меньше, чем было выделено. Реальной разницы никакой, но -xen ядра служебную память маскируют в использованной, а pv_ops соответственно уменьшают доступную
- При некоторых обстоятельствах ядро может забыть отправить grace arp после миграции, что приводит к неответу по сети в течение срока жизни ARP (около 10 минут)
Из-за этого мы остаёмся с -xen ядрами.
Комментарии (6)
smartly
05.09.2013 11:26Что даст новое ядро старому облачному серверу? У меня сейчас 2.6.34-12-xen. А модули ядра лежат на внешнем диске.
amarao Автор
05.09.2013 11:26Для старого пула (1) изменения не возможны в настоящий момент. Мы планируем постепенно предоставить возможности обновления, но работы займут ещё 2-3 месяца.
Эти изменения касаются виртуальных машин, на которых ядра устанавливаются штатным методом (то есть пулы 2 и 3).
Главное, что это даст — своевременный деплой исправленых ядер. Вообще же, с 2.6.34 до 3.7 список изменений слишком обширный, чтобы его глазами окинуть. Изменения режимов блокировки ядра (удаление глобальных блокировок), значительные изменения в сторону per-cpu структур данных относительно процессов, изменения в блочном и сетевом стеке. Я его весь и не вспомню.
f1045
А где взять ключик для вашего deb-репозитория?
amarao Автор
Вероятнее всего, у вас старый облачный сервер. На новых уже полтора года как наш ключ добавляется при установке.
Сам ключ добавляется так (debian/ubuntu):
wget -O - http://mirror.selectel.ru/selectel/RPM-GPG-KEY-selectel | sudo apt-key add -