Виртуализация

Материал из Базы знаний сообщества разработчиков Эльбрус
(перенаправлено с «Virtualization»)
Перейти к навигации Перейти к поиску
Короткий адрес этой страницы: Virt

Виртуализация аппаратуры

Аппаратная поддержка виртуализации, позволяющая запускать полноценные виртуальные машины, появилась в 6-м поколении процессоров Эльбрус — это Эльбрус-16С, 12С, 2С3. Для операционных систем семейства Linux гипервизор реализован на базе KVM с использованием Qemu и возможностью управления через libvirt — консольную утилиту virsh и графический интерфейс virt-manager.

Помимо гостевых операционных систем в машинных кодах родной системы команд e2k, внутри виртуальной машины может функционировать двоичный транслятор уровня системы (Lintel) для запуска операционных систем в машинных кодах x86 / x86-64. Таким образом, поддерживается виртуализация x86-систем, но не x86-виртуализация: то есть поддерживается запуск нескольких «тонких» виртуальных машин с одиночной x86-системой в каждой виртуальной машине, однако не поддерживается запуск «толстой» виртуальной машины с x86-гипервизором типа ESXi, KVM-x86, Hyper-V, VirtualBox, Xen HVM и созданием виртуальных машин через него — использовать надо родной гипервизор KVM-e2k.

Для ядра Linux 2.6.33 был разработан механизм паравиртуализации на основе гипервизора KVM, позволяющий запускать разные экземпляры ядра без поддержки со стороны аппаратуры. Проект не был доведён до состояния готового продукта. Сейчас для ядра Linux 5.4 – 5.10 работы возобновлены, однако полноценная работа пока не гарантируется.

Через двоичный транслятор уровня системы (Lintel) возможен запуск x86 Linux с гипервизором Xen и через него создание паравиртуальных машин — в режиме PV (не PVH, не PVHVM).

Контейнерная виртуализация

Создание нескольких изолированных окружений (каждое со своими настройками, файловыми системами, сетевым стеком) на базе одного экземпляра ядра Linux возможно с помощью LXC. Для настройки контейнеров LXC используются утилиты командной строки. Такого автоматизированного инструментария, как Docker, пока нет: конкретно Docker требует языка Go, а перенос компилятора Go на архитектуру Эльбрус ещё не завершён. В любом случае надо понимать, что существующие публичные репозитории Docker с x86-образами не подходят для развёртывания на Эльбрусе — нужны соответствующие архитектуре e2k-образы.

Виртуализация рабочих столов

Из готовых решений VDI на платформу Эльбрус портированы программные продукты «Тионикс».

Базовые средства организации удалённых рабочих столов (VNC, RDP, SSH) имеются практически в любой операционной системе семейства Linux, а в ОС Альт также реализована поддержка многоместных рабочих станций (multi-seat).