Управление загрузкой виртуальных машин

в 12:33, , рубрики: selectel cloud, Блог компании Селектел, облако, Облачные вычисления, метки: ,

Одна из идей, в рамках которой развивается облако Селектел, является максимальная свобода администратора при работе с облачной машиной. Различия с реальным сервером должны быть минимальны, а все новые функции не должны нарушать ощущения «настоящей» машины.

Сейчас мы сделали очень крупный шаг для реализации этого — реализовали интерфейс управления загрузкой. До этого момента эксперименты с загрузкой (разные версии ядер, опции загрузки и т.д.) могли привести к нерабочей машине, и исправление этой проблемы было проблемным (отключать диск, подключать его обратно и т.д.).

Теперь эта проблема решена. Я думаю, эти два скриншота объяснят возможности системы больше, чем тестовое описание:
опции загрузки вируальной машины в облаке Селектел

Сразу хочу предупредить, что диалог конфигурирования — далеко не самая безопасная вещь. Отсутствие некоторых опций при загрузке или, наоборот, посторонние опции могут сделать виртуальную машину нерабочей.

Не все ядра совместимы со всеми дистрибутивами. Например, грузить с 2.6.18 современные системы — не самая хорошая идея. Грузить Centos с 3.1 — тоже.

Подробное описание

Выбор начинается с указания откуда грузить ядро. Есть два варианта: «с диска виртуальной машины» и «внешнее ядро». Внешнее ядро предоставляем мы (вместе с initrd), внутреннее читается с загрузочного диска. Если выбрано внутреннее ядро, можно указать с какого диска грузиться и указать пункт меню grub. Пустое поле означает «по-умолчанию».

В этом режиме «Параметры ядра» дописываются к аргументам, которые прописаны в grub.cfg (grub.lst). В частности, это открывает путь к опциям single и init=/bin/sh.

Второй режим — режим загрузки внешнего ядра. Для Centos лучше всего выбирать 2.6.18, для всех остальных — 3.1 (2.6.34 оставлено на всякий случай).

Важно: в режиме внешнего ядра аргументы берутся только из поля «параметры ядра». Если здесь не указать все нужные аргументы, будут проблемы с загрузкой. Ключевые параметры, которые должны быть — barrier=off (для 3.1, без него будут проблемы с ext4), console (без него не будет консоли) и root (без него система не будет знать откуда грузиться). Образец параметров подставляется автоматом при выборе того или иного ядра, однако, нужно понимать, что это всего лишь образец, и вероятнее всего, при внешней загрузке, нужно будет указывать дополнительные параметры (например, изменять настройки консоли на console=xvc0 при загрузке 3.1 на дебиан).

Ядро принимает очень много параметров, часть из них обрабатывается ядром, часть модулями. Полный список возможного (не всё это применимо в условиях виртуализации) находится тут.

Автор: amarao


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js