Виртуализация: различия между версиями

Материал из Базы знаний сообщества разработчиков Эльбрус
Перейти к навигации Перейти к поиску
м (Добавление shortcut)
(→‎Виртуализация аппаратуры: Обновление статуса аппаратной поддержки виртуализации)
Строка 3: Строка 3:
 
== Виртуализация аппаратуры ==
 
== Виртуализация аппаратуры ==
  
Аппаратной поддержки виртуализации, позволявшей бы запускать полноценные виртуальные машины, в процессорах Эльбрус пока нет — она появится в 6-м поколении, которое ожидается во второй половине 2022 года: это Эльбрус-16С, 12С, 2С3. Когда она всё же появится, то позволит запускать виртуальные машины не только в родных кодах e2k, но также x86.
+
Аппаратная поддержка виртуализации, позволяющая запускать полноценные виртуальные машины, появилась в 6-м поколении процессоров Эльбрус — это Эльбрус-16С, 12С, 2С3. Для операционных систем семейства Linux гипервизор реализован на базе KVM с использованием Qemu и возможностью управления через <code>libvirt</code> — консольную утилиту <code>virsh</code> и графический интерфейс <code>virt-manager</code>.
  
Для ядра Linux 2.6.33 был разработан механизм паравиртуализации на основе гипервизора KVM, позволяющий запускать разные экземпляры ядра без поддержки со стороны аппаратуры. Проект не был доведён до состояния готового продукта. Сейчас работы возобновлены, однако пока нет тестовых версий для внешних пользователей возможно, появятся в течение 2021 года.
+
: Помимо гостевых операционных систем в машинных кодах родной системы команд e2k, внутри виртуальной машины может функционировать двоичный транслятор уровня системы ([[Lintel]]) для запуска операционных систем в машинных кодах x86 / x86-64. Таким образом, поддерживается ''виртуализация x86-систем'', но '''не''' ''x86-виртуализация'': то есть поддерживается запуск нескольких «тонких» виртуальных машин с одиночной x86-системой в каждой виртуальной машине, однако не поддерживается запуск «толстой» виртуальной машины с x86-гипервизором типа ESXi, KVM-x86, Hyper-V, VirtualBox, Xen HVM и созданием виртуальных машин через него использовать надо родной гипервизор KVM-e2k.
  
Через двоичный транслятор уровня системы ([[Lintel]]) возможен запуск x86 Linux с гипервизором Xen и через него создание паравиртуальных машин — в режиме PV (не PVH, не PVHVM).
+
Для ядра Linux 2.6.33 был разработан механизм паравиртуализации на основе гипервизора KVM, позволяющий запускать разные экземпляры ядра без поддержки со стороны аппаратуры. Проект не был доведён до состояния готового продукта. Сейчас для ядра Linux 5.4 – 5.10 работы возобновлены, однако полноценная работа пока не гарантируется.
 +
 
 +
Через двоичный транслятор уровня системы ([[Lintel]]) возможен запуск x86 Linux с гипервизором Xen и через него создание ''пара''виртуальных машин — в режиме PV (не PVH, не PVHVM).
  
 
== Контейнерная виртуализация ==
 
== Контейнерная виртуализация ==

Версия 15:07, 21 ноября 2023

Короткий адрес этой страницы: 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), многоместных рабочих станций (multiseat в ОС Альт).