mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 15:22:37 +03:00
fix homework 5.1
This commit is contained in:
@@ -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
|
||||||
|
> Опишите возможные проблемы и недостатки гетерогенной среды виртуализации (использования нескольких систем управления виртуализацией одновременно) и что необходимо сделать для минимизации этих рисков и проблем.
|
||||||
|
|
||||||
|
Самая большая проблема гетерогенной среды виртуализации - это высокие расходы на поддержку и управления нескольких систем управления виртуальными машинами одновременно.
|
||||||
|
То есть, для подобного решения необходимо сразу несколько инженеров, которые будут специалистами в своей конкретной области/технологии.
|
||||||
|
|
||||||
|
Ещё одна проблема, которая может возникнуть - проблемы перемещения данных между виртуальными машинами, работающими в разных гипервизорах.
|
||||||
|
|
||||||
|
Для минимизации проблем, в общем случае, необходимо стараться максимально стандартизировать подход к виртуализации внутри компании.
|
||||||
|
|
||||||
|
> Если бы у вас был выбор, то создавали бы вы гетерогенную среду или нет? Мотивируйте ваш ответ примерами.
|
||||||
|
|
||||||
|
Для выбора решения необходимо на этапе построения всей инфраструктуры решить множество вопросов:
|
||||||
|
* определить, какие решения есть на рынке виртуализаций и сделать некие прогнозы на будущее
|
||||||
|
* сделать анализ рынка вакансий, определить "популярность" решений вирутализации
|
||||||
|
* определить конкретные требования к инфрастуктуре: какие системы/сервисы будут разворачиваться на виртуальных машинах,
|
||||||
|
кто будет пользовать данными системами и т.п.
|
||||||
|
* определить требования к безопасности
|
||||||
|
|
||||||
|
Только после ответа на данные вопросы можно решить, использовать ли единое решение для построения виртуализации, либо совместить решения.
|
||||||
|
|||||||
Reference in New Issue
Block a user