14 KiB
Выполнение домашнего задания по теме "5.1. Основы виртуализации".
Q/A
Задача 1
Опишите кратко, как вы поняли: в чем основное отличие полной (аппаратной) виртуализации, паравиртуализации и виртуализации на основе ОС.
Главное отличие данных типов вирутализации в том, как именно ОС внутри виртуальной машины взаимодействует с реальным аппаратным комплексом:
- Полной (аппаратная) виртуализация - это полноценная операционная система, которая имеет непосредственный доступ к "железу".
- Паравиртуализация реализует взаимодействие через прослойку-гипервизор, которая имеет специальное API для гостевой ОС, но при этом обращается к аппаратной части через ядро хостовой операционной системы.
- Виртуализации на основе ОС реализует непосредственное взаимодействие гостевой ОС через системные вызовы ядра хостовой операционной системы
Задача 2
Выберите один из вариантов использования организации физических серверов, в зависимости от условий использования.
Организация серверов:
- физические сервера
- паравиртуализация
- виртуализация уровня ОС
Условия использования:
- Высоконагруженная база данных, чувствительная к отказу
- Различные web-приложения
- Windows системы для использования бухгалтерским отделом
- Системы, выполняющие высокопроизводительные расчеты на GPU
Опишите, почему вы выбрали к каждому целевому использованию такую организацию.
- Высоконагруженная база данных, чувствительная к отказу
Для данной задачи лучше всего подойдут физические сервера. Это объясняется тем, что любая виртуализация накладывает дополнительные риски на стабильность работы системы. При этом во взаимодействии между гостевой ОС и хостом есть дополнительные расходы, что тоже может быть очень критично в высоконагруженных системах.
- Различные web-приложения
В данном случае лучше всего использовать виртуализацию уровня операционной системы. Это обосновано тем, что по задаче приложения имеют различное назначение (нет уточнений про отказоусточивость, ожидаемую нагрузку, скалируемость и т.п.). При этом они должны запускаться в определённом окружении (желательно одинаковым для каждого приложения), а для безопасности, данные приложения должны быть изолированы. Таким образом вируализация уровня ОС подходит под данную задачу.
- Windows системы для использования бухгалтерским отделом
В данном случае лучше всего будет использовать паравиртуализацию, что обеспечит изолированность систем с минимальной потерей скорости взаимодействия пользователей с системами.
- Системы, выполняющие высокопроизводительные расчеты на GPU
Для данной задачи лучше всего будет использовать физические сервера, так как не все гипервизоры для паравиртуализации имеют поддержку GPU, а некоторые поддерживают GPU только определённых вендоров/моделей. Вирутализация уровня ОС здесь только помешает, так как добавляет дополнительные расходы на взаимодействие виртуальной машины и хоста.
Задача 3
Выберите подходящую систему управления виртуализацией для предложенного сценария. Детально опишите ваш выбор.
- 100 виртуальных машин на базе
LinuxиWindows, общие задачи, нет особых требований. ПреимущественноWindowsbased инфраструктура, требуется реализация программных балансировщиков нагрузки, репликации данных и автоматизированного механизма создания резервных копий.
Для данного сценария наиболее предпочтительно будет использование решение Microsoft Hyper-V. Выбор обсловлен следующими факторами:
Преимущественно Windows based инфраструктура, а значит лучшим выбором здесь будет решение, которое нативно умеет поддерживать данную ОС. При этом,Hyper-Vимеет поддержку и Linux-систем.- "Из коробки" имеет поддержку репликации и миграции виртуальных машин, а значит подходит под требование резервного копирования и балансировки нагрузки.
- Так как больше нет никаких особых требований, то в этом случае более низкий порог вхождения для инженеров в данную технологию будет плюсом.
- Требуется наиболее производительное бесплатное open source решение для виртуализации небольшой (20-30 серверов) инфраструктуры на базе Linux и Windows виртуальных машин.
В данном сценарии наиболее подходящей технологией является Xen:
Xen- это open source решение.- Имеет поддержку гостевых ОС как
Linux, так иWindows. Для каждого типа ОС есть свой оптимальный режим виртуализации. Данные режимы можно использовать одновременно на одном хосте. - Имеет высокую производительность.
- Каждая виртуальная машина утилизирует только точно выделенные ресурсы без влияния на производительность других соседних виртуальных машин.
Подобная проблема есть в
KVM, поэтому здесь предпочтение отдаётсяXen.
- Необходимо бесплатное, максимально совместимое и производительное решение для виртуализации Windows инфраструктуры.
В данном случае стоит использовать Microsoft Hyper-V Server:
- Является бесплатной операционной системой
- Разработан для нативной поддержки виртуальных машин на базе Windows, а значит имеет максимальную совместимость и производительность для текущих потребностей.
- Необходимо рабочее окружение для тестирования программного продукта на нескольких дистрибутивах
Linux.
Для данного сценария подойдёт KVM. Из плюсов этого выбора можно выделить:
- Хорошая поддержка
Linuxв качестве гостевых ОС - Близкая к нативной производительность, что полезно для тестирования, так как минимизирует различные накладные расходы на взаимодействие с виртуальной машиной.
- Есть возможность построить мониторинг всех виртуальных машин для тестов на хосте, то есть считывать различные метрики приложений из хостовой ОС.
- В моём понимании тестирование продукта - это краткосрочный процесс, который предполагает, что виртуальная машина поднимается на короткий срок, и после окончания тестирования удаляется. Исходя из этого понимания, появляется преимущество в виде создания шаблонов виртуальных машин для тестирования в формате ISO-образа, которые могут использоваться как для развёртывания ВМ внутри стенда, так для использования людьми (например, специалистами QA-отдела или разработки).
Задача 4
Опишите возможные проблемы и недостатки гетерогенной среды виртуализации (использования нескольких систем управления виртуализацией одновременно) и что необходимо сделать для минимизации этих рисков и проблем.
Самая большая проблема гетерогенной среды виртуализации - это высокие расходы на поддержку и управления нескольких систем управления виртуальными машинами одновременно. То есть, для подобного решения необходимо сразу несколько инженеров, которые будут специалистами в своей конкретной области/технологии.
Ещё одна проблема, которая может возникнуть - проблемы перемещения данных между виртуальными машинами, работающими в разных гипервизорах.
Для минимизации проблем, в общем случае, необходимо стараться максимально стандартизировать подход к виртуализации внутри компании.
Если бы у вас был выбор, то создавали бы вы гетерогенную среду или нет? Мотивируйте ваш ответ примерами.
Для выбора решения необходимо на этапе построения всей инфраструктуры решить множество вопросов:
- определить, какие решения есть на рынке виртуализаций и сделать некие прогнозы на будущее
- сделать анализ рынка вакансий, определить "популярность" решений вирутализации
- определить конкретные требования к инфрастуктуре: какие системы/сервисы будут разворачиваться на виртуальных машинах, кто будет пользовать данными системами и т.п.
- определить требования к безопасности
Только после ответа на данные вопросы можно решить, использовать ли единое решение для построения виртуализации, либо совместить решения.