fix homework 5.1

This commit is contained in:
2022-04-22 10:37:56 +07:00
parent 89a102965c
commit fa0db0f0c9

View File

@@ -1,22 +1,21 @@
Выполнение [домашнего задания](https://github.com/netology-code/virt-homeworks/blob/master/05-virt-01-basics/README.md) Выполнение [домашнего задания](https://github.com/netology-code/virt-homeworks/blob/virt-11/05-virt-01-basics/README.md)
по теме "5.1. Основы виртуализации". по теме "5.1. Основы виртуализации".
## Q/A ## Q/A
### Задача 1 ### Задача 1
> Вкратце опишите, как вы поняли - в чем основное отличие паравиртуализации и виртуализации на основе ОС. > Опишите кратко, как вы поняли: в чем основное отличие полной (аппаратной) виртуализации, паравиртуализации и виртуализации на основе ОС.
Главное отличие паравиртуализации от виртуализации на основе ОС в том, что в качестве гостевой операционной системы используются ОС с модифицированным ядром, Главное отличие данных типов вирутализации в том, как именно ОС внутри виртуальной машины взаимодействует с реальным аппаратным комплексом:
которые взаимодействуют с гипервизором посредством определённого API. 1. Полной (аппаратная) виртуализация - это полноценная операционная система, которая имеет непосредственный доступ к "железу".
2. Паравиртуализация реализует взаимодействие через прослойку-гипервизор, которая имеет специальное API для гостевой ОС,
При этом виртуализация на основе ОС предоставляет гостевой ОС доступ но при этом обращается к аппаратной части через ядро хостовой операционной системы.
непосредственно до системных вызовов ядра хостовой операционной системы, при этом изолируя данные вызовы. 3. Виртуализации на основе ОС реализует непосредственное взаимодействие гостевой ОС через системные вызовы ядра хостовой операционной системы
В таком случае не нужна модификация операционной системы для использования внутри виртуальных машин.
### Задача 2 ### Задача 2
> Выберите тип один из вариантов использования организации физических серверов, в зависимости от условий использования. > Выберите один из вариантов использования организации физических серверов, в зависимости от условий использования.
> >
> Организация серверов: > Организация серверов:
> * физические сервера > * физические сервера
@@ -25,8 +24,8 @@
> >
> Условия использования: > Условия использования:
> * Высоконагруженная база данных, чувствительная к отказу > * Высоконагруженная база данных, чувствительная к отказу
> * Различные Java-приложения > * Различные web-приложения
> * Windows системы для использования Бухгалтерским отделом > * Windows системы для использования бухгалтерским отделом
> * Системы, выполняющие высокопроизводительные расчеты на GPU > * Системы, выполняющие высокопроизводительные расчеты на GPU
> >
> Опишите, почему вы выбрали к каждому целевому использованию такую организацию. > Опишите, почему вы выбрали к каждому целевому использованию такую организацию.
@@ -37,13 +36,14 @@
риски на стабильность работы системы. При этом во взаимодействии между гостевой ОС и хостом есть дополнительные расходы, риски на стабильность работы системы. При этом во взаимодействии между гостевой ОС и хостом есть дополнительные расходы,
что тоже может быть очень критично в высоконагруженных системах. что тоже может быть очень критично в высоконагруженных системах.
2. Различные Java-приложения 2. Различные web-приложения
В данном случае лучше всего использовать виртуализацию уровня операционной системы. Это обосновано тем, В данном случае лучше всего использовать виртуализацию уровня операционной системы. Это обосновано тем,
что по задаче приложения имеют различное назначение. При этом они должны запускаться в определённом окружении (желательно одинаковым для каждого приложения), что по задаче приложения имеют различное назначение (нет уточнений про отказоусточивость, ожидаемую нагрузку, скалируемость и т.п.).
При этом они должны запускаться в определённом окружении (желательно одинаковым для каждого приложения),
а для безопасности, данные приложения должны быть изолированы. Таким образом вируализация уровня ОС подходит под данную задачу. а для безопасности, данные приложения должны быть изолированы. Таким образом вируализация уровня ОС подходит под данную задачу.
3. Windows системы для использования Бухгалтерским отделом 3. Windows системы для использования бухгалтерским отделом
В данном случае лучше всего будет использовать паравиртуализацию, В данном случае лучше всего будет использовать паравиртуализацию,
что обеспечит изолированность систем с минимальной потерей скорости взаимодействия пользователей с системами. что обеспечит изолированность систем с минимальной потерей скорости взаимодействия пользователей с системами.
@@ -56,7 +56,60 @@
### Задача 3 ### Задача 3
> Как вы думаете, возможно ли совмещать несколько типов виртуализации на одном сервере? Приведите пример такого совмещения. > Выберите подходящую систему управления виртуализацией для предложенного сценария. Детально опишите ваш выбор.
Да, совмещение нескольких типов виртуализации возможно. Например, на одну машину возможно установить `VirtualBox` для полной или пара-виртуализации 1. 100 виртуальных машин на базе `Linux` и `Windows`, общие задачи, нет особых требований. Преимущественно `Windows` based инфраструктура, требуется реализация программных балансировщиков нагрузки, репликации данных и автоматизированного механизма создания резервных копий.
и `Docker` для виртуализации на уровне ОС.
Для данного сценария наиболее предпочтительно будет использование решение `Microsoft Hyper-V`. Выбор обсловлен следующими факторами:
* `Преимущественно Windows based инфраструктура`, а значит лучшим выбором здесь будет решение, которое нативно умеет поддерживать данную ОС.
При этом, `Hyper-V` имеет поддержку и [Linux-систем](https://www.windowscentral.com/how-run-linux-distros-windows-10-using-hyper-v).
* "Из коробки" имеет поддержку репликации и миграции виртуальных машин, а значит подходит под требование резервного копирования и балансировки нагрузки.
* Так как больше нет никаких особых требований, то в этом случае более низкий порог вхождения для инженеров в данную технологию будет плюсом.
2. Требуется наиболее производительное бесплатное open source решение для виртуализации небольшой (20-30 серверов) инфраструктуры на базе Linux и Windows виртуальных машин.
В данном сценарии наиболее подходящей технологией является `Xen`:
* `Xen` - это open source решение.
* Имеет поддержку гостевых ОС как `Linux`, так и `Windows`. Для каждого типа ОС есть свой оптимальный режим виртуализации.
Данные режимы можно использовать одновременно на одном хосте.
* Имеет высокую производительность.
* Каждая виртуальная машина утилизирует только точно выделенные ресурсы без влияния на производительность других соседних виртуальных машин.
Подобная проблема есть в `KVM`, поэтому здесь предпочтение отдаётся `Xen`.
3. Необходимо бесплатное, максимально совместимое и производительное решение для виртуализации Windows инфраструктуры.
В данном случае стоит использовать `Microsoft Hyper-V Server`:
* Является бесплатной операционной системой
* Разработан для нативной поддержки виртуальных машин на базе Windows, а значит имеет максимальную совместимость и производительность для текущих потребностей.
4. Необходимо рабочее окружение для тестирования программного продукта на нескольких дистрибутивах `Linux`.
Для данного сценария подойдёт `KVM`. Из плюсов этого выбора можно выделить:
* Хорошая поддержка `Linux` в качестве гостевых ОС
* Близкая к нативной производительность, что полезно для тестирования, так как минимизирует различные накладные расходы на взаимодействие с виртуальной машиной.
* Есть возможность построить мониторинг всех виртуальных машин для тестов на хосте, то есть считывать различные метрики приложений из хостовой ОС.
* В моём понимании тестирование продукта - это краткосрочный процесс, который предполагает,
что виртуальная машина поднимается на короткий срок, и после окончания тестирования удаляется.
Исходя из этого понимания, появляется преимущество в виде создания шаблонов виртуальных машин для тестирования в формате ISO-образа,
которые могут использоваться как для развёртывания ВМ внутри стенда, так для использования людьми (например, специалистами QA-отдела или разработки).
### Задача 4
> Опишите возможные проблемы и недостатки гетерогенной среды виртуализации (использования нескольких систем управления виртуализацией одновременно) и что необходимо сделать для минимизации этих рисков и проблем.
Самая большая проблема гетерогенной среды виртуализации - это высокие расходы на поддержку и управления нескольких систем управления виртуальными машинами одновременно.
То есть, для подобного решения необходимо сразу несколько инженеров, которые будут специалистами в своей конкретной области/технологии.
Ещё одна проблема, которая может возникнуть - проблемы перемещения данных между виртуальными машинами, работающими в разных гипервизорах.
Для минимизации проблем, в общем случае, необходимо стараться максимально стандартизировать подход к виртуализации внутри компании.
> Если бы у вас был выбор, то создавали бы вы гетерогенную среду или нет? Мотивируйте ваш ответ примерами.
Для выбора решения необходимо на этапе построения всей инфраструктуры решить множество вопросов:
* определить, какие решения есть на рынке виртуализаций и сделать некие прогнозы на будущее
* сделать анализ рынка вакансий, определить "популярность" решений вирутализации
* определить конкретные требования к инфрастуктуре: какие системы/сервисы будут разворачиваться на виртуальных машинах,
кто будет пользовать данными системами и т.п.
* определить требования к безопасности
Только после ответа на данные вопросы можно решить, использовать ли единое решение для построения виртуализации, либо совместить решения.