микровиртуальную машину Firecracker с собственным ядром Linux, файловой системой и сетевым пространством имен, обеспечивающими изоляцию на уровне ядра. Управление жизненным циклом песочниц осуществляется через HTTP-API на основе Axum, которое направляет запросы оркестратору. Файловая система rootfs работает через ublk в пользовательском пространстве, используя overlaybd для слоистых образов: базовые слои доступны только для чтения и совместно используются песочницами, тогда как каждая песочница имеет свой собственный перезаписываемый верхний слой. Внутри гостевой виртуальной машины демон envd (порт 49983) обрабатывает команды, файловые операции и отчеты о состоянии; обратный прокси-сервер маршрутизирует HTTP- и WebSocket-трафик от клиентов к службам виртуальной машины. Особое внимание уделяется снижению накладных расходов: кэш страниц хоста используется совместно для данных хранилища и снимков памяти, а механизм регулировки памяти (memory ballooning) позволяет возвращать избыточную гостевую память хосту, поддерживая переподписку по мере расхождения сред. Ключевые функции включают создание снимков, приостановку, возобновление и разветвление (forking). Снимки являются инкрементальными, а не полными. Согласно опубликованным данным, загрузка или возобновление из снимка занимает менее 50 мс, приостановка — менее 100 мс, а инкрементальные снимки даже при интенсивной записи завершаются менее чем за 100 мс. Функция разветвления, специфичная для RL, позволяет клонировать работающую песочницу в до 16 независимых дочерних песочниц на том же узле. Родительская песочница временно приостанавливается во время захвата состояния, а затем возобновляется. Все дочерние экземпляры наследуют файловую систему, память и конфигурацию ресурсов родителя. Это позволяет выполнять дорогостоящую
Показать ещё ↓