Mar 10, 2022 00:36
Я не так много работал с DigitalOcean. Мельком взглянул на него разок, когда ещё очень-очень давно бывшие коллеги дали мне поглядеть на его личный кабинет и пошариться рутом внутри виртуалок.
Насколько я понял (возможно, неправильно), у данного хостера Qemu / KVM настроен таким образом, что ядро запускается не "изнутри" виртуальной машины, а "снаружи". То есть в момент старта гипервизор сам распаковывает в память процесса виртуальной машины некое заранее статически скомпилированное ядро (выбирается пользователем хостинга в личном кабинете), сам формирует initramfs, и только после этого передает управление init-процессу внутри гостя. Вот тут я могу, правда, ошибаться, т.к. не уверен, что для статически собранного ядра в принципе требуется наличие initramfs.
Таким образом получается, что с одной стороны клиенту предоставляется абсолютно "честная" KVM-виртуалка со своим собственным ядром и рутом. С другой стороны, при таком подходе не требуется ни загрузчик (grub / lilo и т.п.), не надо в виртуалку устанавливать ядро, не нужно таскать за собой в файловой системе его модули и т.д.
Зачем они это сделали - второй вопрос. Ответ на него для меня неочевиден. Но вот так. И если я правильно помню, то во всяком случае раньше DigitalOcean использовал OpenStack.
Прямо сейчас у меня появился какой-то нездоровый чисто академический интерес. Можно ли каким-нибудь набором костылей заставить ProxMox вести себя аналогичным образом. Особой практической пользы от этого, скорее всего, нет. Просто очень любопытно.
хостинги,
виртуализация,
linux