Общая Теория И Археология Виртуализации X86



Введение



Авторский коллектив

Автор: Антон Жбанков ( АнтонVirtual , Cloudarchitect.cc ) Соавторы: Григорий Прялухин , Евгений Парфенов

Общие понятия виртуализации

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

А как известно, спор двух умных людей сводится к спору об определениях.

Давайте определимся, что такое виртуализация и что из нее вытекает. Вероятно, самым близким определением понятия «виртуализация» было бы «абстрагирование» от объектно-ориентированного программирования.

Или, если перевести на нормальный русский, это скрывает реализацию за абстрактным интерфейсом.

Что, конечно, сразу все объяснило.

Попробуем еще раз, но для тех, кто не учился программированию.

Виртуализация — это сокрытие конкретной реализации за универсальным стандартизированным методом доступа к ресурсам/данным.

Если вы попытаетесь применить это определение на практике, вы обнаружите, что оно весьма хорошо работает с совершенно неожиданными объектами.

Допустим, часы.

Солнечные часы были изобретены несколько тысяч лет назад, а механические – в Средние века.

Что у него общего? Солнце и какие-то шестеренки? Ерунда.

А потом кварцевые генераторы и все остальное.

Дело в том, что у нас есть стандартный интерфейс — указатель или цифровой указатель, который указывает текущее время в универсальной стандартной форме.



Но имеет ли для нас значение, как именно этот механизм реализован внутри коробки, если время указано с достаточной для нас точностью?

«Извините, — можете сказать вы, — но я думал, что виртуализация — это машины, процессоры и так далее!»

Да, речь идет о машинах и процессорах, но это лишь частный случай.

Давайте посмотрим шире, поскольку статья смело претендует на роль общей теории.





ПОЗОР!



Увага! Ахтунг! Стыд!

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

Конечно, там есть и большое количество досадных упущений, и просто простых ошибок и опечаток.

Конструктивная критика только приветствуется, особенно в форме «разрешите довести эту часть до вашего сведения».





Виды виртуализации

Вернемся от совершенно абстрактных понятий к более привычным любимым компьютерам.





Виртуализация хранилища

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

В данном случае СХД используется не в смысле большого массива с дисками, подключенными по оптоволоконному каналу, а как логическая подсистема, отвечающая за долговременное хранение данных.





ФС -> LBA -> CHS

Возьмем простейший случай с системой хранения данных на одном жестком магнитном диске.

Формат, который мы привыкли работать с данными, — это файлы, расположенные на логическом диске.

Файл можно открыть, прочитать, закрыть.

Но такого объекта, как файл, просто физически не существует – есть только способ доступа к определенным блокам данных с помощью метода адресации типа «диск:\папка1\папка2\файл».

Те.

Встречаем первый уровень виртуализации — от мнемонического и понятного человеку, мы переводим всё в понятные системе адреса.

В таблицах метаданных драйвер файловой системы ищет, какие именно блоки данных там есть, и мы получаем адрес в системе LBA (адресации логических блоков).

В системе LBA блоки имеют фиксированный размер и следуют друг за другом линейно, т.е.

это тоже может быть как-то связано с хранением данных на магнитной ленте, но жёсткий диск устроен совсем по-другому! И здесь мы переходим ко второму уровню виртуализации — трансляции LBA-адресации в CHS (цилиндр/головка/сектор).



Общая Теория И Археология Виртуализации X86

CHS, в свою очередь, уже в контроллере винчестера начинает переводиться в физические параметры для чтения, но это совсем другая история.

Даже при простом доступе к файлу для, скажем, просмотра видео с мемами мы столкнулись сразу с тремя уровнями виртуализации.

Все было бы слишком просто, если бы слои не начали перекрывать друг друга в случайном порядке и разнообразными способами.





Рейд

Следующий уровень виртуализации, который многие ошибочно не считают виртуализацией, — это RAID (избыточный массив недорогих/независимых дисков).

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

RAID обеспечивает второй уровень адресации LBA поверх нескольких (иногда многих) независимых адресаций LBA. Поскольку мы можем получить доступ к тому RAID, независимо от уровня RAID, точно так же, как и к одному диску без RAID, мы можем с уверенностью сказать:

RAID — это виртуализация дисковой системы.

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





Виртуализация презентаций

Следующий тип виртуализации, который многие из нас используют практически каждый день, но не считают его виртуализацией, — это подключение к удаленному рабочему столу.

Терминальные серверы, VDI и даже просто RDP через VPN к серверу — все это виртуализация сеансов.

Через стандартный интерфейс (монитор, клавиатура, мышь) мы работаем либо с реальной машиной, либо с непонятной конструкцией из виртуального рабочего стола на связанном клоне с контейнерным приложением, из которого мы передаем данные через буфер в приложение с потоковая доставка.

Или нет, кто это разберёт, кроме того, кто это спроектировал?



Введение в виртуализацию x86



История и обзор процессоров



Выполнение программы

На первом уроке спецкурса по программированию Владимир Денисович Лелюх (пух ему пухом) сказал студентам: компьютер, несмотря на свое название, не умеет считать, он умеет делать вид, что умеет считать.

Но если что-то выглядит как утка, ходит как утка и крякает как утка, то с практической точки зрения это утка.

Попробуем запомнить это для дальнейшего практического использования.

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



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

Но если программа выполняется, как вообще можно вводить данные? И вообще как-то с компом взаимодействовать?

Вот почему были изобретены аппаратные прерывания.

Пользователь нажимает клавишу — контроллер клавиатуры сигнализирует об этом, и происходит выполнение текущего потока кода.

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

В свою очередь обработчик по идее должен все быстро обработать, на то он и обработчик, записать нажатую клавишу в нужный буфер и вернуть управление обратно.

Таким образом создается впечатление, что приложение запущено, и мы можем взаимодействовать с системой.

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

Что в конечном итоге часто приводило к проблеме зависаний — ошибка в драйвере не позволяла выйти из прерывания.





Многозадачность

Что делать в ситуации, когда необходимо одновременно выполнить несколько программ (потоков кода с их данными и структурами памяти)? Очевидно, что если потоков кода больше, чем устройств, способных их выполнить, то возникает проблема.

Появляется псевдомногозадачность — когда задача завершается прямым переключением на нее.

В дальнейшем появляется кооперативная (невытесняющая многозадачность) — исполняемая задача сама понимает, что ресурсы процессора ей больше не нужны, и передает управление кому-то другому.

Но всего этого недостаточно.

И здесь нам на помощь снова приходят перебои + умение притворяться.

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

Если таймер срабатывает достаточно часто (скажем, 15 мс), то для пользователя все выглядит как параллельная работа.

Так появилась современная вытесняющая многозадачность.





Реальный режим

Реальный режим процессора в этой статье можно охарактеризовать достаточно просто — вся память доступна каждому.

Любое приложение, включая вредоносное ПО, вредоносное программное обеспечение, может получить доступ где угодно, как на чтение, так и на запись.

Это начальный режим работы процессоров семейства Intel x86.



Защищенный режим

В 1982 году в процессоре Intel 80286 (далее просто 286) появилось новшество – защищённый режим работы, который понёс с собой новшества в организации работы с памятью (например, выбор типов сегментов памяти – код, данные, стек).

.

Но самое главное, что процессор 286 принес в мир x86, — это концепция защитных колец, которую мы используем до сих пор.

Концепция колец защиты первоначально появилась в ОС Multics для мэйнфрейма GE645 (1967 г.

) с частичной программной реализацией, а полностью аппаратная реализация уже в 1970 г.

на системе Honeywell 6180.

Общая Теория И Археология Виртуализации X86

Основная идея защитных колец напоминает многоуровневые средневековые крепости, самое ценное лежит в самом центре за многочисленными стенами.

В этом случае самое ценное — это неограниченный прямой доступ к любой области оперативной памяти и контроль над всеми процессами.

Им обладают процессы, работающие в кольце нулевой защиты.

За стеной, в первом кольце, работают менее важные процессы, например драйверы устройств, а в самом последнем кольце запускаются пользовательские приложения.

Принцип простой - изнутри выйти можно, а снаружи зайти нельзя.

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

В самой первой полноценной реализации Honeywell 6180 было реализовано 8 колец защиты, но Intel решила упростить схему до 4, из которых на практике производители ОС стали использовать только два — нулевое и третье.





32бит

В 1985 году был выпущен еще один чрезвычайно архитектурно важный процессор линейки x86 — 80386 (далее 386), реализовавший 32-битную адресацию памяти и использовавший 32-битные инструкции.

И конечно, виртуализация памяти.

Как уже говорилось, виртуализация – это сокрытие фактической реализации за счет предоставления искусственных «виртуальных» ресурсов.

В данном случае речь идет об адресации памяти.

Внутри сегмента памяти она имеет свою адресацию, никак не связанную с реальным расположением ячеек памяти.

Процессор оказался настолько популярным, что выпускался до 2007 года.

Архитектура в терминах Intel называется IA32.



64бит

Конечно, даже без виртуализации в середине 2000-х индустрия уже боролась с ограничениями 32 бит. Были частичные обходные пути в виде PAE (Physical Address Extension), но они делали код более сложным и медленным.

Переход на 64 бита был предрешён.



AMD представила свою версию архитектуры, которую назвала AMD64. Intel возлагала надежды на платформу IA64 (Intel Architecture 64), которую мы также знаем как Itanium.

Однако рынок встретил эту архитектуру без особого энтузиазма, и в результате Intel была вынуждена реализовать собственную поддержку инструкций AMD64, которая сначала называлась EM64T, а затем просто Intel 64.

В конечном счете, мы все знаем эту архитектуру как AMD64, x86-64, x86_64 или иногда x64.

Поскольку основное использование серверов в то время предполагалось физическое, без виртуализации, с первыми 64-битными процессорами в виртуализации случился технический курьёз.

Вложенные гипервизоры часто использовались в качестве лабораторных серверов; не каждый мог позволить себе несколько кластеров физических серверов.

И в итоге оказалось, что загрузочная ВМ во вложенном гипервизоре может работать только в 32-битном режиме.

В первых процессорах x86-64 разработчики, сохранив полную совместимость с 32-битным режимом работы, выбросили значительную часть функционала в 64-битном режиме.

В данном случае проблема заключалась в сильно упрощенной сегментации памяти.

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

Соответственно, гостевая ОС смогла его модифицировать.

Впоследствии AMD вернула возможность ограничения сегментов, а Intel просто дождалась внедрения аппаратной виртуализации.





УМА

Многопроцессорные системы x86 начали работать в режиме UMA (Uniform Memory Access), при котором расстояние от любого процессора (задержка доступа к ячейке памяти) до любой карты памяти одинаково.

В процессорах Intel такая схема работы сохранялась даже после появления многоядерных процессоров вплоть до поколения 54xx (Harpertown).

Начиная с поколения 55xx (Nehalem), процессоры перешли на архитектуру NUMA. С точки зрения логики выполнения – это появление дополнительных аппаратных потоков, которым могут быть назначены потоки кода для параллельного выполнения.





НУМА

NUMA (Non Uniform Memory Access) — это архитектура с неравномерным доступом к памяти.

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

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

У процессоров Intel Xeon Scalable v2 2019 года внутренняя архитектура по-прежнему остаётся UMA внутри сокета, превращаясь в NUMA для других сокетов (хотя на самом деле это не так, и это только притворяется).

Процессоры AMD Opteron имели архитектуру NUMA еще во времена древнего UMA Xeon, а затем они стали NUMA даже внутри сокета до последнего поколения Rome, в котором они вернулись к NUMA=socket.



Виртуальная машина

Виртуальная машина (ВМ, от англ.

virtualmachine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение определенной платформы (целевой — целевой, или гостевой платформы) и выполняющая программы для целевой платформы на хост-платформе (хост-платформе).

— хост-платформа, хост-платформа), или виртуализация определенной платформы и создание на ней сред, изолирующих программы и даже операционные системы друг от друга.

Википедия.

В этой статье мы будем говорить «виртуальная машина», имея в виду «системные виртуальные машины», которые позволяют полностью моделировать все ресурсы и оборудование в виде программных конструкций.

Существует два основных типа программного обеспечения для создания виртуальных машин — полное и соотв.

неполная виртуализация.

Полная виртуализация — подход, при котором эмулируется все оборудование, включая процессор.



Позволяет создавать аппаратно-независимые среды и запускать, например, ОС и прикладное программное обеспечение для платформы x86 на системах SPARC, или известные эмуляторы Spectrum с процессором Z80 на обычном x86. Обратной стороной полной независимости являются высокие затраты на виртуализацию процессоров и низкая производительность.

Неполная виртуализация — подход, при котором виртуализируется не 100% оборудования.

Поскольку неполная виртуализация является наиболее распространенной в отрасли, мы о ней и поговорим.

О платформах и технологиях системных виртуальных машин с неполной виртуализацией для архитектуры x86. В этом случае имеет место неполная виртуализация процессора, т.е.

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





Программная виртуализация

Очевидным следствием архитектуры процессора и привычки операционных систем работать в нулевом кольце стала проблема — ядро гостевой ОС не может работать на привычном месте.

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



Но решение оказалось довольно простым: поскольку для гипервизора гостевая ОС — это всего лишь набор страниц памяти с полным прямым доступом, а виртуальный процессор — всего лишь очередь команд, почему бы их не переписать? Гипервизор прямо на лету удаляет из очереди команд для выполнения на виртуальном процессоре все инструкции, требующие нулевых привилегий кольца, заменяя их менее привилегированными.

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

Таким способом можно виртуализировать вообще что угодно, вплоть до полного отсутствия гостевой ОС.

Именно такой подход был реализован командой разработчиков в 1999 году в продукте VMware Workstation, а затем в 2001 году в серверных гипервизорах GSX (второй тип, как и Workstation) и ESX (первый тип).





Паравиртуализация

Паравиртуализация Это очень простая концепция, которая предполагает, что гостевая ОС знает, что она находится на виртуальной машине, и знает, как связаться с хостовой ОС для выполнения определенных системных функций.

Это устраняет проблему эмуляции нулевого кольца — гостевая ОС знает, что она не в нулевом кольце, и ведет себя соответствующим образом.



Паравиртуализация в x86 появилась в 2003 году вместе с проектом Linux Xen.

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

Например, VMware ESXi имеет паравиртуальный адаптер SCSI для виртуальных машин, PVSCSI, который может повысить общую производительность виртуальных машин с интенсивными дисковыми операциями, например загруженных СУБД.

Драйверы для паравиртуальных устройств входят в дополнительные пакеты (например, VMware Tools) или уже включены в дистрибутивы Linux (open-vm-tools).





Аппаратная виртуализация

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

Проблема решилась очень просто — добавлены фирменные технологии аппаратной виртуализации Intel VT-x и AMD-V, если отбросить глубокие технические детали, минус первое кольцо защиты гипервизора.

Таким образом, окончательно установилась обычная рабочая ситуация для ОС в нулевом кольце.





Типы гипервизоров



Тип 2 (хостинговый)

Гипервизоры типа 2 — это приложения, которые работают поверх операционной системы хоста.

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

Гипервизоры второго типа сильно ограничены в производительности, поскольку приложение-гипервизор, не имея права на эксклюзивное распределение вычислительных ресурсов, вынуждено конкурировать за них с другими пользовательскими приложениями.

С точки зрения безопасности гипервизоры второго типа напрямую зависят от политик безопасности пользовательской ОС и ее уязвимости к атакам.

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

Однако они хорошо подходят для кроссплатформенной разработки и развертывания стендов непосредственно на машинах разработчиков программного обеспечения, поскольку ими легко управлять и развертывать.

Примеры гипервизоров второго типа: VMware Workstation/Fusion, Oracle VM VirtualBox, Parallels Desktop, VMware Server (ex-GSX), Microsoft Virtual Server 2005.



Тип 1 (голый металл)

Первый тип гипервизоров не требует ОС общего назначения, в отличие от предыдущих.

Сам гипервизор представляет собой монолит, который управляет как распределением вычислительных ресурсов, так и операциями ввода-вывода.

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

В этой архитектуре гипервизор управляет распределением вычислительных ресурсов и сам контролирует весь доступ виртуальных машин к устройствам.

VMware ESX долгое время считался первым гипервизором типа 1 для x86, хотя сейчас мы бы отнесли его к 1+.



Единственным «честным» представителем этого типа на сегодняшний день является VMware ESXi — преемник ESX, после того как он откусил родительский раздел с помощью RHEL.

Например, рассмотрим архитектуру ESXi. Команды управления гипервизором выполняются через API агента, который работает поверх VMkernel. Может показаться, что это прямое подключение к гипервизору, но это не так.

Прямого доступа к гипервизору нет, что отличает этот тип гипервизора от гипервизора второго типа с точки зрения безопасности.



Общая Теория И Археология Виртуализации X86

Недостатком здесь являются драйверы устройств: для обеспечения «тонкости» платформы и устранения ненужных усложнений драйверы устройств ротируются от версии к версии, что делает физическую инфраструктуру зависимой от HCL (списка совместимости оборудования).





Тип 1+ (Гибридный гипервизор)

Гибридные гипервизоры (также известные как тип 1+, 1a, 1.5) характеризуются изоляцией базовой ОС в специальный объект, называемый родительским разделом в терминологии Microsoft Hyper-V или родительским доменом (домен dom0 в терминологии Xen).

Итак, после установки роли гипервизора ядро переходит в режим поддержки виртуализации и гипервизор отвечает за распределение ресурсов на хосте.

Но родительский раздел берет на себя функцию обработки вызовов драйверов устройств и операций ввода-вывода.

По сути, родительский раздел становится своего рода провайдером между всеми объектами стека виртуализации.



Такой подход удобен с точки зрения совместимости с железом: нет необходимости встраивать драйверы устройств в гипервизор, как в случае с ESXi, а значит, список устройств значительно расширяется и меньше зависит от HCL.

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

Архитектура верхнего уровня гипервизоров типа 1+ выглядит следующим образом:

Общая Теория И Археология Виртуализации X86

К гипервизорам этого типа относятся: несуществующие VMware ESX, Microsoft Hyper-V, гипервизоры на базе Xen (реализации Citrix XenServer и Xen в различных дистрибутивах Linux).



Напомним, Citrix XenServer — это немного урезанная ОС на базе RHEL, а ее версионирование и функциональность напрямую зависели от текущей версии Red-Hat Enterprise Linux.

В случае с другими реализациями Xen ситуация мало чем отличается: это то же ядро Linux в режиме гипервизора Xen и базовая ОС в домене dom0. Это приводит к однозначному выводу, что гипервизоры на базе Xen относятся к гибридному типу и не являются честными гипервизорами 1-го типа.





Основные технологии промышленных платформ

За основу будет взята терминология VMware, как самой технологичной платформы виртуализации.

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

Весь расширенный функционал, реализуемый дополнительными продуктами за дополнительные деньги, останется за кадром.

Технологии сгруппированы в условные группы по их основному назначению, как показалось автору, с которым вы имеете право не согласиться.





Соглашение об уровне обслуживания

Он содержит технологии, которые в основном влияют на реализацию соглашений об уровне обслуживания (RPO/RTO).





Х.

А.

High Availability — технология обеспечения высокой доступности виртуальных машин в кластере с помощью гипервизора.

Если хост умирает, виртуальная машина автоматически перезапускается на оставшихся хостах.

Эффект: минимизация RTO до таймаута HA + перезапуск ОС/сервисов.





Ф.

Т.

Fault Tolerance — технология, обеспечивающая непрерывную работу ВМ даже в случае смерти хоста.

На втором хосте создается теневая ВМ, полностью идентичная основной и повторяющая ее инструкции.

Таким образом, разница в состояниях ВМ измеряется десятками и сотнями миллисекунд, что вполне приемлемо для многих сервисов.

Когда хост умирает, выполнение автоматически переключается на теневую виртуальную машину.

Эффект: сведение RTO к нулю.





ТШО

Здесь собраны технологии, которые в первую очередь влияют на совокупную стоимость владения.





vMotion

vMotion — это технология динамической миграции точки выполнения виртуальной машины с одного полностью работоспособного хоста на другой.

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

без прерывания работы продуктивных сервисов.

Эффект: снижение RTO до нуля для плановых простоев на обслуживание серверов и, как следствие, частичная ликвидация самого простоя.





Хранилище vMotion

Storage vMotion — это технология динамической миграции точки хранения виртуальной машины из одного полностью работоспособного хранилища в другое.

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

Эффект: снижение RTO до нуля для плановых простоев на обслуживание СХД и, как следствие, частичная ликвидация самого простоя.





ДПМ

Distributed Power Management — технология мониторинга уровня нагрузки хостов и включения/отключения питания хостов при изменении нагрузки на кластер.

Для работы требуется DRS. Эффект: общее снижение энергопотребления.





Распределенный виртуальный коммутатор

Distributed vSwitch — технология централизованного управления сетевыми настройками хост-виртуальных коммутаторов.

Эффект: сокращение объема и сложности работ по реконфигурации сетевой подсистемы, снижение риска возникновения ошибок.





?.

В.

К.

Enhanced vMotion Compatibility — это технология, позволяющая маскировать доступные инструкции процессора для виртуальной машины в автоматическом режиме.

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





качество обслуживания

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





вНУМА

vNUMA — это технология, которая позволяет информировать гостевую ОС в виртуальной машине о виртуальной топологии NUMA для широких машин (vCPU или vRAM > узел NUMA).

Эффект: отсутствие снижения производительности прикладного программного обеспечения, поддерживающего NUMA.



Пул ресурсов

Пулы ресурсов — это технология объединения нескольких виртуальных машин в единый пул ресурсов для контроля потребления или гарантированного распределения ресурсов.

Эффект: упрощение администрирования, обеспечение уровня сервиса.





Лимит/Резерв

Ограничение и резервирование процессора/памяти позволяет ограничить выделение ресурсов или, наоборот, гарантировать их выделение в ситуациях дефицита и конкуренции для обеспечения обслуживания высокоприоритетных ВМ/пулов.





ДРС

Dynamic Resource Scheduler — автоматическая балансировка ВМ по хостам в зависимости от нагрузки для уменьшения фрагментации ресурсов в кластере и обеспечения уровня обслуживания ВМ.

Требуется поддержка vMotion.



Управление вводом-выводом хранилища

Storage IO control — это технология, позволяющая ограничить «шумного соседа» — машину с низким приоритетом и высокой нагрузкой на диск, чтобы сохранить производительность дорогой системы хранения доступной для продуктивных рабочих нагрузок.

Как пример система индексации/внутренняя поисковая система и производительная СУБД.





Управление сетевым вводом-выводом

Network IO Control — технология, позволяющая ограничить «шумного соседа» — машину с низким приоритетом с высокой нагрузкой на сеть.





Интеграция хранилища (VAAI и т. д.)

Раздел интеграции включает в себя две категории технологий:
  • Интеграция системы управления виртуализацией с системой управления хранилищем позволяет существенно упростить выделение и представление томов/общих ресурсов хранения гипервизорам, снижая риск ошибок и сложность работы.

  • Интеграция на уровне протокола — VAAI, ODX. Эти технологии позволяют разгрузить дисковую подсистему, передав часть стандартной нагрузки на интеллектуальную систему хранения.

    Например, к этой категории относятся такие операции, как стирание блоков, клонирование ВМ и т.п.

    За счет этого канал к СХД существенно разгружается, а операции с дисками выполняются самой СХД более оптимальным образом.



Безопасность



Микросегментация

Микросегментация виртуальной сети в практическом применении — это возможность построить виртуальный распределенный межсетевой экран, контролирующий виртуальные сети внутри хоста.

Чрезвычайно повышает безопасность виртуальных сетей.





Безагентный AV

Технология безагентной антивирусной поддержки.

Вместо сканирования агентами в гостевых ОС трафик операций с дисками ВМ отправляется гипервизором на выделенную сервисную ВМ для сканирования.

Значительно снижает нагрузку на процессоры и дисковые системы, эффективно уничтожая «антивирусные штормы».





Гиперконвергентные системы

Конвергентные системы, как следует из названия, — это системы, сочетающие функции.

И в данном случае мы имеем в виду объединение функций хранения и исполнения ВМ.

Вроде все просто, но вдруг в дело врывается маркетинг.

Впервые маркетологи врываются на рынок с термином «конвергентные системы».

По конвергентной системе продавались обычные классические серверы+СХД+коммутаторы.

Всего под один партнерский номер.

Или их даже не продали, а выпустили бумагу под названием «эталонная архитектура».

Мы искренне осуждаем такой подход и переходим к архитектурному рассмотрению.





Архитектура

Сохраняя конвергенцию как архитектурный принцип, мы получаем объединение точки хранения и точки исполнения ВМ в единой системе.

Другими словами, конвергентная архитектура подразумевает использование одних и тех же аппаратных сервисов как для выполнения виртуальных машин, так и для их хранения на локальных дисках.

Хорошо Теги: #Виртуализация #vmware #Системное администрирование #Администрирование серверов #Облачные вычисления #x86 #Hyper-V #виртуализация #esx #virtuozzo

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2011-02-03 19:25:22
Баллов опыта: 564
Всего постов на сайте: 4
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.