Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

SnowFlock

Глава 18 из 1 тома книги "Архитектура приложений с открытым исходным кодом".

Оригинал: SnowFlock
Авторы: Roy Bryant, Andres Lagar-Cavilla
Перевод: А.Панин

Creative Commons. Перевод был сделан в соответствие с лицензией Creative Commons. С русским вариантом лицензии можно ознакомиться здесь.


18.4. Архитектурный дескриптор виртуальной машины

Ключевым архитектурным решением, примененным в SnowFlock, является возможность выполнения отложенной репликации данных состояния виртуальной машины во время ее работы. Другими словами, копирование памяти виртуальной машины является операцией позднего связывания, предоставляющей множество возможностей для оптимизации.

Первым шагом для проведения в жизнь этого архитектурного решения является генерация архитектурного дескриптора для данных состояния виртуальной машины. Это данные, которые будут использованы для создания клонированных виртуальных машин. Дескриптор содержит абсолютный минимум необходимых для создания виртуальной машины и планирования ее работы данных. Как становится ясно из названия, этот абсолютный минимум данных состоит из структур данных, необходимых для удовлетворения требований используемой архитектуры. В случае SnowFlock под архитектурными требованиями понимают комбинацию требований процессора x86 и требований технологии Xen. Таким образом, архитектурный дескриптор содержит такие структуры данных, как таблицы страниц, виртуальные регистры, метаданные устройств, метки времени, и.т.д. Интересующемуся читателю следует обратиться к [LCWB+11] для ознакомления с более подробным описанием содержимого архитектурного дескриптора.

Архитектурный дескриптор имеет три важных свойства: Во-первых, он может быть создан за короткий промежуток времени; нередко это промежуток времени длительностью 200 миллисекунд. Во-вторых он имеет малый размер, обычно на три порядка меньше, чем объем памяти, зарезервированной во время работы родительской виртуальной машины (1 МБ для 1 ГБ памяти виртуальной машины). И в-третьих, клонированная виртуальная машина может быть создана из дескриптора менее чем за секунду (обычно за 800 миллисекунд).

Последствием, конечно же, является тот факт, что клонированные виртуальные машины не обладают большинством своих данных состояния в момент их создания из дескриптора. В следующих разделах мы опишем способ решения этой проблемы, а также способ реализации возможностей оптимизации, предоставляемых данным подходом.


Далее: 18.5. Компоненты на стороне родительской виртуальной машины