Опишите кратко, как вы поняли: в чем основное отличие полной (аппаратной) виртуализации, паравиртуализации и виртуализации на основе ОС.
- Полная (аппаратная) виртуализация - Полная или аппаратная виртуализация сразу может использовать аппаратные ресурсы сервера и не нуждаетя в операционной системе для управления виртуальными машинами. Гипервизор представляет собой полностью подготовленную операционную систему.
- Паравиртуализация - Специализированное программное обеспечение, использующее операционную систему для разделения ресурсов между виртуальными машинами. Гипервизор устанавливается как отдельное ПО(надстройка) на хостовую операционную систему.
- Виртуализация уровня ОС - метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя (контейнеров) вместо одного. С точки зрения пользователя эти экземпляры полностью идентичны реальному серверу. Запущеный контейнер представляет собой отдельный изолированный процесс внутри операционной системы хостовой машины.
Выберите один из вариантов использования организации физических серверов, в зависимости от условий использования.
Организация серверов:
- физические сервера,
- паравиртуализация,
- виртуализация уровня ОС.
Условия использования:
- Высоконагруженная база данных, чувствительная к отказу.
- Различные web-приложения.
- Windows системы для использования бухгалтерским отделом.
- Системы, выполняющие высокопроизводительные расчеты на GPU.
Опишите, почему вы выбрали к каждому целевому использованию такую организацию.
- Для высоконагруженных баз лучшим решением будет аппаратная виртуализация типа ESXI или XEN поскольку при этом максимум ресурсов можно выделить для ВМ и при этом обеспечить отказоустойчивость и резевное копирование. Так же можно использовать кластер отдельных физических серверов.
- Для web-приложений наверное лучшим решением будет использование виртуализации уровня ОС. Web-приложения обычно расходуют меньше ресурсов сервера. Нет жестких требований к аппаратным ресурсам. Гораздо легче масштабировать в зависимости от нагрузки сервисов.
- Windows системы для использования бухгалтерским отделом - Можно использовать физические сервера или паравиртуализацию (например на Hyper-V). У физического сервера несколько выше производительность, виртуальный легче поддерживать / резервно копировать / восстанавливать / мигрировать на другой хост.
- Системы, выполняющие высокопроизводительные расчеты на GPU по моему мнению лучше размещать на физическом сервере, для высокопроизводительных расчетов требуется максимальный доступ к аппаратным ресурсам.
Выберите подходящую систему управления виртуализацией для предложенного сценария. Детально опишите ваш выбор.
Сценарии:
- 100 виртуальных машин на базе Linux и Windows, общие задачи, нет особых требований. Преимущественно Windows based инфраструктура, требуется реализация программных балансировщиков нагрузки, репликации данных и автоматизированного механизма создания резервных копий.
- Требуется наиболее производительное бесплатное open source решение для виртуализации небольшой (20-30 серверов) инфраструктуры на базе Linux и Windows виртуальных машин.
- Необходимо бесплатное, максимально совместимое и производительное решение для виртуализации Windows инфраструктуры.
- Необходимо рабочее окружение для тестирования программного продукта на нескольких дистрибутивах Linux.
- ESXI или Vsphere, в заисимости от бюджета :) Машин довольно много и управлять их резервным копированием, миграцией и ресурсами будет удобно. Более того к гостевым системам нет вообще никаких ограничений.
- KVM с Proxmox. Если надо производительно и бесплатно, то это лучший вариант по моему мнению.
- Windows Hyper-V Server ввиду того что управлять им не сильно сложно, эта система имеет много вариантов бэкапа и не требовательна к железу. Для виртуализации Windows инфраструктуры подойдет в самый раз.
- Docker или LXC, позволяющий довольно просто создавать контейнеры для тестирования с использованием автоматизации.
Опишите возможные проблемы и недостатки гетерогенной среды виртуализации (использования нескольких систем управления виртуализацией одновременно) и что необходимо сделать для минимизации этих рисков и проблем. Если бы у вас был выбор, то создавали бы вы гетерогенную среду или нет? Мотивируйте ваш ответ примерами.
В управлении несколькими системами виртуализации первая сложность это само управление. Различные сущности требуют различных методов управления - разные консоли и даже различные Операционные системы для этого. Вторая сложность - физические ресурсы будут скорее всего разделены и потребуют различных методов организации серверов, стоек и прочего. Третья сложность это различные навыки в обслуживании различных систем виртуализации и подхода к аппаратным требованиям. Разные среды имеют и свои преимущества - какие-то проще и легче в освоении, быстрее в развертывании. Другие сложнее, но надежнее и выгоднее финансово. Думаю гетерогенные системы имеют право на существование.
Я бы стремился к однородной среде, которую легче масштабировать, обновлять и управлять из единого центра.