Giter Club home page Giter Club logo

dev-17_virt1-yakovlev_vs's Introduction

Введение в виртуализацию - dev-17_virt1-yakovlev_vs

Задача 1

Опишите кратко, как вы поняли: в чем основное отличие полной (аппаратной) виртуализации, паравиртуализации и виртуализации на основе ОС.

Решение

  • Полная (аппаратная) виртуализация - Полная или аппаратная виртуализация сразу может использовать аппаратные ресурсы сервера и не нуждаетя в операционной системе для управления виртуальными машинами. Гипервизор представляет собой полностью подготовленную операционную систему.
  • Паравиртуализация - Специализированное программное обеспечение, использующее операционную систему для разделения ресурсов между виртуальными машинами. Гипервизор устанавливается как отдельное ПО(надстройка) на хостовую операционную систему.
  • Виртуализация уровня ОС - метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя (контейнеров) вместо одного. С точки зрения пользователя эти экземпляры полностью идентичны реальному серверу. Запущеный контейнер представляет собой отдельный изолированный процесс внутри операционной системы хостовой машины.

Задача 2

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

Организация серверов:

  • физические сервера,
  • паравиртуализация,
  • виртуализация уровня ОС.

Условия использования:

  • Высоконагруженная база данных, чувствительная к отказу.
  • Различные web-приложения.
  • Windows системы для использования бухгалтерским отделом.
  • Системы, выполняющие высокопроизводительные расчеты на GPU.

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

Решение

  • Для высоконагруженных баз лучшим решением будет аппаратная виртуализация типа ESXI или XEN поскольку при этом максимум ресурсов можно выделить для ВМ и при этом обеспечить отказоустойчивость и резевное копирование. Так же можно использовать кластер отдельных физических серверов.
  • Для web-приложений наверное лучшим решением будет использование виртуализации уровня ОС. Web-приложения обычно расходуют меньше ресурсов сервера. Нет жестких требований к аппаратным ресурсам. Гораздо легче масштабировать в зависимости от нагрузки сервисов.
  • Windows системы для использования бухгалтерским отделом - Можно использовать физические сервера или паравиртуализацию (например на Hyper-V). У физического сервера несколько выше производительность, виртуальный легче поддерживать / резервно копировать / восстанавливать / мигрировать на другой хост.
  • Системы, выполняющие высокопроизводительные расчеты на GPU по моему мнению лучше размещать на физическом сервере, для высокопроизводительных расчетов требуется максимальный доступ к аппаратным ресурсам.

Задача 3

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

Сценарии:

  1. 100 виртуальных машин на базе Linux и Windows, общие задачи, нет особых требований. Преимущественно Windows based инфраструктура, требуется реализация программных балансировщиков нагрузки, репликации данных и автоматизированного механизма создания резервных копий.
  2. Требуется наиболее производительное бесплатное open source решение для виртуализации небольшой (20-30 серверов) инфраструктуры на базе Linux и Windows виртуальных машин.
  3. Необходимо бесплатное, максимально совместимое и производительное решение для виртуализации Windows инфраструктуры.
  4. Необходимо рабочее окружение для тестирования программного продукта на нескольких дистрибутивах Linux.

Решение

  • ESXI или Vsphere, в заисимости от бюджета :) Машин довольно много и управлять их резервным копированием, миграцией и ресурсами будет удобно. Более того к гостевым системам нет вообще никаких ограничений.
  • KVM с Proxmox. Если надо производительно и бесплатно, то это лучший вариант по моему мнению.
  • Windows Hyper-V Server ввиду того что управлять им не сильно сложно, эта система имеет много вариантов бэкапа и не требовательна к железу. Для виртуализации Windows инфраструктуры подойдет в самый раз.
  • Docker или LXC, позволяющий довольно просто создавать контейнеры для тестирования с использованием автоматизации.

Задача 4

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

Решение

В управлении несколькими системами виртуализации первая сложность это само управление. Различные сущности требуют различных методов управления - разные консоли и даже различные Операционные системы для этого. Вторая сложность - физические ресурсы будут скорее всего разделены и потребуют различных методов организации серверов, стоек и прочего. Третья сложность это различные навыки в обслуживании различных систем виртуализации и подхода к аппаратным требованиям. Разные среды имеют и свои преимущества - какие-то проще и легче в освоении, быстрее в развертывании. Другие сложнее, но надежнее и выгоднее финансово. Думаю гетерогенные системы имеют право на существование.

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

dev-17_virt1-yakovlev_vs's People

Contributors

valdem88 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.