Как знают администраторы виртуальных сред и некоторые разработчики, на многих платформах виртуализации существует возможность запуска виртуальных машин в виртуальных машинах с установленным в них гипервизором - так называемая "вложенная виртуализация" (Nested Virtualization). Например, такие возможности есть в VMware vSphere (что позволяет запускать не только свой вложенный гипервизор ESXi, но машины на вложенном гипервизоре Hyper-V).
Компания Ravello нашла интересный способ использовать вложенную виртуализацию в своем продукте Cloud Application Hypervisor, который позволяет универсализовать развертывание ВМ разных платформ виртуализации в публичных облаках различных сервис провайдеров.
Основным компонентом этой системы является технология HVX - собственный гипервизор (на базе Xen), являющийся частью ОС Linux и запускающий вложенные виртуальные машины без их изменения средствами техник бинарной трансляции. Далее эти машины можно разместить в облаках Amazon EC2, HP Cloud, Rackspace и даже частных облаках, управляемых VMware vCloud Director (поддержка последнего ожидается в скором времени).
Продукт Ravello - это SaaS-сервис, а такие матрешки можно просто загружать на любой из поддерживаемых хостингов, вне зависимости от используемого им гипервизора. Виртуальная сеть между машинами создается через L2-оверлей над существующей L3-инфраструктурой хостера с использованием GRE-подобного протокола (только на базе UDP):
Сама механика предлагаемого сервиса Cloud Application Hypervisor такова:
Пользователь загружает виртуальные машины в облако (поддерживаются машины, созданные на платформах ESXi/KVM/Xen).
С помощью специального GUI или средствами API описывает многомашинные приложения.
Публикует свои ВМ в одном или нескольких поддерживаемых облаках.
Получившаяся конфигурация сохраняется в виде снапшота в облаке Ravello (потом в случае чего ее можно восстановить или выгрузить) - это хранилище может быть создано как на базе облачных хранилищ Amazon S3, CloudFiles, так и на базе собственных блочных хранилищ или NFS-томов.
После этого каждый пользователь может получить многомашинную конфигурацию своего приложения по требованию.
Очевидный вопрос, который возникает первым: что с производительностью? Ну, во-первых, решение Cloud Application Hypervisor рассчитано на команды разработки и тестирования, для которых производительность не является критичным фактором.
А во-вторых, результаты тестов производительности таких вложенных матрешек показывают не такие уж и плохие результаты:
Для тех, кто заинтересовался технологией HVX, есть хорошее обзорное видео на рунглише:
Больше подробностей о продукте Cloud Application Hypervisor и технологии HVX можно узнать из этого документа.