ВИРТУАЛИЗАЦИЯ архитектура

 

Гипервизоры:

-Автономный гипервизор (тип1, х) (VMware ESX, Citrix XenServer.)

-На основе базовой ОС (тип 2, v) (Microsoft Virtual PC, VMware Workstation, QEMU, Parallels, VirtualBox.)

-Гибридный (тип 1+) (Sun Logical Domains, Xen, Citrix XenServer, Microsoft Hyper-V.)

 

VMWare vSphere (ESXi) -готовая, бесплатная, законченная, плюшки платные (проблемы с RAID, HCL)

Hyper-V - нет. Есть поддержка паравиртуализации Windows

KVM  -всё делаешь сам, но очень гибкий (proxmox для debian, opennode, oVirt для centos)

 

RHEV  -платная

https://habrahabr.ru/post/218461/

 

Полная виртуализация - гостевая ОС ни о чем не догадывается, паравиртуализация - запускаются только модифицированные ОС. HVM требует расширения оборудования Intel VT или AMD-V.

-виртуализация представлений(тонкий клиент)

-виртуализация приложений

-виртуализация сервера

 

-PV

-HVW

-PVHVW - для windows

-PVH  -В Xen Project 4.4 для DomU,Xen 4.5 Project представил PVH для Dom0 В двух словах, PVH имеет меньше кода и меньше интерфейсов в Linux / FreeBSD: следовательно, он имеет меньший TCB и атакуемую поверхность, и, таким образом, меньше возможных уязвимостей. После утверждения и оптимизации, она должна также иметь более высокую производительность и низкую задержку, в частности, на 64-битных хостах. сейчас xen 4.8

 

Чтобы как-то улучшить показатели гостей HVM, были разработаны специальные драйверы, называемые PVHVM-drivers 2. Подобные драйверы для PV-гостей уже встроены в ядро, а потому в их установке нет никакой необходимости.

http://blog.bissquit.com/unix/debian/ustanovka-windows-na-xen/

 

3 критерия виртуализации:

-производительность

-безопасность

-пластичность

 

/ xen / kvm / vmware esx / Hyper-V /qemu / docker / lxc /

 

  • интерпретация и динамическая рекомпиляция Bochs PearPC QEMU — MS VirtualPC for MAC;
  • паравиртуализация и портирование — Xen — UML lguest — Hyper-V — KVM(*);
  • виртуализация на уровне ОС — Jail — Linux-VServer OpenVZ — Virtuozzo — Zones;
  • виртуализация — VMware — MS VirtualPC — MS Virtual Server — Hyper-V — QEMU с модулем kqemu — KVM;

 

В ядра Linux была включена поддержка PV начиная с 2.6.24.

 

Проблема со снапшотами: http://www.vmgu.ru/news/vmware-esx-snapshot-delete-all

 

KVM лучше XEN:

 

-поддержка KVM в каждом ядре linux с 2.6.24

-Патчи исходного кода ядра, необходимые для поддержки Xen, предоставлялись лишь для определенных версий ядра.

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

-Гипервизор Xen представляет собой отдельный автономный элемент исходного кода со своими потенциальными дефектами, которые независимы от дефектов операционной системы, хостинг которой осуществляет этот гипервизор. KVM — это неотъемлемая часть Linux-ядра, поэтому на использование KVM в качестве гипервизора способны влиять только дефекты этого ядра.                

 

https://www.ibm.com/developerworks/ru/library/l-using-kvm/index.html

----------------------+

Xen -гипервизор(гибридный тип1) с поддержкой паравиртуализации для процессоров x86. Выполнение привилегированных операций запрещено, вместо них совершаются гипервызовы (англ. hypercalls) — обращения ядра гостевой ОС к гипервизору с просьбой о выполнении тех или иных операций. в нем есть и аппаратная виртуализация (HVM) и паравиртуализация (PV). Используется минимизация функций гипервизора. драйверы в domU и программы в dom0, frontend — часть модуля, находящегося в domU, backend — часть, находящаяся в dom0. Для живой миграции необходимо, чтобы оба физические сервера Xen видели одно и то же хранилище, на котором находятся данные виртуальной машины. (технологий SAN или NAS, например Fibre Channel, iSCSI или DRBD.) Всё эмулирует dom0.

В связи с тем, что сам гипервизор (около 500—600 КБ) реализует только «ядро» системы, вся остальная функциональность выносится на прикладной уровень, работающий в dom0. Набор программ, реализующий функциональность за пределами Xen называют англ. toolstack ( «стек управления»).

Существуют две версии toolstack для Xen: основанная на xend (входит в большинство поставок Xen) и основанная на xapi (входит в состав Citrix XenServer и Xen Cloud Platform). Xapi написан на OCaml, на момент написания имел меньший набор возможностей, но работал более стабильно.

Являясь гибридным гипервизором типа 1, Xen запускается непосредственно на аппаратной платформе, но для своей работы требует управляющей операционной системы в dom0. dom0 может быть на linux или solaris

http://blog.bissquit.com/unix/debian/ustanovka-gipervizora-xen/

Начиная с v2.6.37 в ядре Linux появился механизм pv_ops для взаимодействия с гипервизорами[28]. Данный механизм позволяет ядру работать как в паравиртуальном режиме, так и непосредственно на железе. Начиная с версии Xen 4.0 поддерживает механизм pv_ops для ядра Linux в dom0[29]. Ядра Linux 3.0 выше также полностью поддерживает Xen и для dom0 и для domU[30].

 

Большинство операционных систем могут быть запущены в режиме аппаратной виртуализации HVM, однако для достижения высокой скорости исполнения применяется технология паравиртуализации. Операционные системы семейства Microsoft Windows могут быть запущены в режиме полной виртуализации HVM начиная с Xen 3 на процессорах с поддержкой аппаратной виртуализации.

 

Управляющий домен (или Domain 0) является специализированной виртуальной машиной, которая имеет специальные привилегии, такие как возможность прямого доступа к устройствам, обработка доступа к функциям системы ввода / вывода и взаимодействие с другими виртуальными машинами. Он также предоставляет интерфейс управления с внешним миром, с помощью которого контролируется система. Гипервизор Xen Project не может использоваться без Domain 0, который является первой ВМ, созданной в системе.

 

Xen Project может быть запущен со стеком управления по умолчанию, с Libvirt или XAPI.

 

В XenServer 7 реализована поддержка контейнеров не только для Linux, но и для Windows Server 2016

 

Технология Xen предоставляет гипервизор с открытым исходным кодом, который осуществляет управление ресурсами и их диспетчеризацию. При загрузке на физических аппаратных средствах без ОС (на "голом железе") гипервизор Xen запускает главную виртуальную машину (Domain0 или домен управления), которая предоставляет возможности для централизованного управления всеми остальными виртуальными машинами (Domain1 — DomainN или машины типа Xen guest), размещенными на этом физическом хосте.        

+производительность + миграция + горяч добавление  процессоров + windows +

Xen не скрывает себя от гостевых систем, наоборот, они должны быть подготовлены к Xen. Xen полностью интегрирован с Linux

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

 

С каждым новым ядром Linux разница между ядром в репозитории Xen и последним ядром, работающим на голом железе (bare metal), увеличивается и увеличивается, и шансов, что поддержка Xen будет интегрирована в основное ядро, становится всё меньше и меньше. Можно сказать, что их уже практически нет, для этого реализована поддержка pv_ops.

 

клонирование xen https://sysadmins.ru/topic475375.html

вытаскивание снапшотов xen  -https://habrahabr.ru/post/141870/

проблемы с цепочкой xen снапшотов https://www.citrix.com/blogs/2011/01/17/xenclient-disk-management-vhd-files-and-chains/

http://wiki.babitch.com/virtualization/xenserver/tips/vmexportimport

-----------------------------------------------------------------------------------------------------------+

KVM — Kernel-based Virtual Machine, система виртуализации для Linux. Позволяет запускать виртуализованную ОС при аппаратной поддержке процессора (Intel VT, AMD-V и др.) и эмуляции периферии при помощи qemu. Модифицированная под KVM версия эмулятора QEMU. В зависимости от типа процессора host системы используется kvm_intel или kvm_amd модуль соответственно. Наличие в процессоре технологии Intel VT-x или AMD-V является необходимым условием для использования этих модулей.

QEMU поддерживает два режима эмуляции: пользовательский режим [User-mode] и системный режим [System-mode].

 

/ oVirt /proxmox / virtual-manager

 

В архитектуре KVM, виртуальная машина выполняется как обычный Linux-процесс, запланированный стандартным планировщиком Linux.

 

-oVirt рассчитан на RHEL/CentOS, и с гипервизорами на других ОСях работать не будет

-если у тебя меньше 10-20 виртуалок, то обычного kvm + virtmanager должно быть достаточно.

 

В отличие от технологий контейнерной виртуализации, например, того же Docker, KVM позволяет запускать в качестве гостевой системы любую ОС, но при этом имеет и большие накладные расходы на виртуализацию.

 

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

https://www.ibm.com/developerworks/ru/library/cl-hypervisorcompare-kvm/index.html

 

- инкапсуляция / изоляция / совместимость / изолированность оборудования

KVM (Kernel-based Virtual Machine) – полное решение виртуализации для платформ Linux/x86, поддерживающее аппаратные расширения (Intel VT и AMD-V). В его составе – загружаемый модуль ядра kvm.ko, обеспечивающий базовую инфраструктуру виртуализации, и модуль для конкретного процессора – kvm-intel.ko или kvm-amd.ko. Проще говоря, KVM это модуль ядра, который обеспечивает доступ к аппаратной виртуализации.

Мы используем связку KVM+QEMU. Модуль ядра kvm.ko использует в своей работе эмулятор QEMU, который представляет собой утилиту командной строки. К этой утилите есть управлятор в виде библиотеки libvirt.

+ безопасность / управление памятью / хранение данных /динамическая миграция / драйверы устройств / производительность и масштабируемость

 

поддерживая виртуальные машины с 16 виртуальными процессорами и 256 ГБ оперативной памяти, а также хост-системы с 256 ядрами и более 1 ТБ ОЗУ.

 

ovirt  -для управления KVM, позволяет управлять машинами через Веб-интерфейс

!В заключение темы по виртуализации серверов — отмечу, что виртуализация не всегда одинаково полезна. В частности, не всегда будет хорошей идеей переносить в виртуальную среду высоконагруженные сервера, а особенно — высоконагруженные по дисковой подсистеме — это «тяжелые» СУБД, Exchange Server, особенно — роль Mailbox Server, и прочие высоконагруженные приложения. А вот сервера с меньшей нагрузкой (контроллеры доменов AD, WSUS, всевозможные System Center * Manager, веб-сервера) виртуализировать можно и даже нужно.

 

libvirt — это система, которая хранит настройки виртуальных машин, управляет ими, ведёт по ним статистику, следит за тем, чтобы при старте у виртуальной машины поднимался интерфейс. Минусы 2011: Абсолютно невменяемые сообщения об ошибках, Невозможность изменять часть конфигурации виртуальной машины на лету,

https://habrahabr.ru/post/120432/

 

virsh — утилита для командной строки Linux, предназначенная для управления виртуальными машинами и гипервизорами KVM и Xen.

http://xgu.ru/wiki/kvm_backup

--------------------------------------------------+

Docker — это инструмент, предоставляющий удобный интерфейс для работы с LXC. С помощью Docker вы можете запускать процессы в изолированном окружении. Docker использует «слоеную» файловую систему AuFS, благодаря которой контейнеры могут совместно использовать одинаковые части файловой системы, Docker не позволит вам запустить Windows, если вы сидите под Ubuntu.