Администрирование нагруженных серверов
145,55
рейтинг
18 февраля 2014 в 11:45

Разное → Анализ современных технологий виртуализации


В настоящее время все большую популярность набирают технологии виртуализации. И это не случайно – вычислительные мощности компьютеров растут. В результате развития технологий, появляются шести-, восьми-, шестнадцатиядерные процессоры (и это еще не предел). Растет пропускная способность интерфейсов компьютеров, а также емкость и отзывчивость систем хранения данных. В результате возникает такая ситуация, что имея такие мощности на одном физическом сервере, можно перенести в виртуальную среду все серверы, функционирующие в организации (на предприятии). Это возможно сделать с помощью современной технологии виртуализации.

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

В данной статье приведен анализ современной технологии виртуализации, ее преимуществ и недостатков. Также рассмотрены современные системы виртуализации и подходы к созданию виртуальных сред.

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

Виртуализацией также называется ситуация, когда несколько компьютеров представляются как один отдельный компьютер. Обычно это называют серверным кластером или grid computing.

Виртуализация тема не новая, фактически ей уже более четырех десятилетий. IBM признала важность виртуализации еще в 1960-х вместе с развитием компьютеров класса «мэйнфрэйм». Например, System/360™ Model 67 виртуализировала все интерфейсы оборудования через программу Virtual Machine Monitor (VMM). На заре вычислительной эры операционную систему называли супервизор (supervisor). Когда стало возможным запускать одну операционную систему на другой операционной системе, появился термин гипервизор (hypervisor) (был введен в 1970-х).

VMM запускается непосредственно на основном оборудовании, позволяющем создавать множество виртуальных машин (VM). При этом каждая виртуальная машина может обладать своей собственной операционной системой.

Другое использование виртуализации заключается в симуляции процессора. Это, так называемая, P-code (или pseudo-code) машина. P-code – это машинный язык, который выполняется на виртуальной машине, а не на реальном оборудовании. P-code стал известен в начале 1970-х. С помощью него происходило компилирование программы на Pascal в P-code и потом выполнение ее на P-code виртуальной машине.

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

Когда производится виртуализация, существует несколько способов ее осуществления, с помощью которых достигаются одинаковые результаты через разные уровни абстракции. У каждого способа есть свои достоинства и недостатки, но главное что каждый из них находит свое место в зависимости от области применения.

Можно считать, что самая сложная виртуализация обеспечивается эмуляцией аппаратных средств. В этом методе VM аппаратных средств создается на хост-системе, чтобы эмулировать интересующее оборудование.

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


Эмуляция оборудования использует VM, чтобы моделировать необходимые аппаратные средства.

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

Главная проблема при эмуляции аппаратных средств состоит существенном замедлении выполнения программ в такой среде. Поскольку каждая команда должна моделироваться на основных аппаратных средствах, при этом замедление в 100 раз при эмуляции является обычным делом. Однако эмуляция аппаратных средств имеет существенные преимущества. Например, используя эмуляцию аппаратных средств, можно управлять неизмененной операционной системой, предназначенной для PowerPC® на системе с ARM процессором. также можно управлять многочисленными виртуальными машинами, каждая из которых будет моделировать другой процессор.

Полная (аппаратная) виртуализация, или «родная» виртуализация, является другим способом виртуализации. Эта модель использует менеджер виртуальных машин (гипервизор), который осуществляет связь между гостевой операционной системой и аппаратными средствами системы.


Полная виртуализация использует гипервизор, чтобы разделять основные аппаратные средства.

Взаимодействие между гостевой операционной системой (ОС) и оборудованием осуществляется посредством гипервизора. Внутри гипервизора должна быть установлена и настроена определенная защита, потому, что основные аппаратные средства не принадлежат ОС, а разделяются гипервизором. При построении крупных корпоративных систем, как правило, используется именно аппаратная виртуализация. При этом крупные вендоры такие как VMware, IBM и Microsoft разрабатывают свои платформы виртуализации на базе технологий аппаратной виртуализации Intel VT (VT-x), AMD-V.

Паравиртуализация — это другой популярный способ, который имеет некоторые сходства с полной виртуализацией. Этот метод использует гипервизор для разделения доступа к основным аппаратным средствам, но объединяет код, касающийся виртуализации, в непосредственно операционную систему. Этот подход устраняет потребность в любой перекомпиляции или перехватывании, потому что сами операционные системы кооперируются в процессе виртуализации.


Паравиртуализация разделяет процесс с гостевой операционной системой.

Паравиртуализация требует, чтобы гостевая ОС была изменена для гипервизора, и это является недостатком метода. Однако, паравиртуализация предлагает высокую производительность, почти как у реальной системы. При этом, как и при полной виртуализации, одновременно могут поддерживаться различные операционные системы. Но определенным недостатком паравиртуализации можно считать ограниченное количество поддерживаемых ОС. Поскольку есть необходимость вносить изменения в код ядра ОС, что не всегда представляется возможным в силу закрытости некоторых ОС.

Из известных гипервизоров паравиртуализацию наравне с аппаратной виртуализацией использует Xen и его ответвления (Citrix XenServer, XCP).

Виртуализация уровня операционной системы. Эта техника виртуализирует серверы непосредственно над операционной системой. Этот метод поддерживает единственную операционную систему и, в самом общем случае, просто изолирует независимые виртуальные серверы (контейнеры) друг от друга. Для разделения ресурсов одного сервера между контейнерами, данная виртуализация требует внесения изменений в ядро операционной системы (например, как в случае с OpenVZ), но при этом преимуществом является родная производительность, без «накладных расходов» на виртуализацию устройств.


Виртуализация уровня операционной системы изолирует виртуальные серверы.

Этот подход использован в Solaris Containers, FreeBSD jail и Virtuozzo/OpenVZ в ОС Linux и *BSD, а также в Linux Containers (LXC), про которые уже немало написано на Хабре.

Теперь постараемся ответить на вопрос: «Зачем нужна виртуализация?». В настоящее время существует множество причин использования виртуализации. Возможно, что самой важной причиной является, так называемая, серверная консолидация. Проще говоря, возможность виртуализировать множество систем на отдельном сервере. Это дает возможность предприятию (организации) сэкономить на мощности, месте, охлаждении и администрировании из-за наличия меньшего количества серверов. При этом немаловажным фактором является абстрагирование от оборудования. Например, сервера иногда выходят из строя. При этом есть возможность перераспределить нагрузку на оборудование. Отсутствие привязки, к какому либо «железу» существенно облегчает жизнь IT-отделу и снижает риск простоя предприятия.

Другая возможность использования виртуализации заключается в том, что бывает изначально трудно определить нагрузку на сервер. При этом процедура виртуализации поддерживает так называемую живую миграцию (live migration). Живая миграция позволяет ОС, которая перемещается на новый сервер, и ее приложениям сбалансировать нагрузку на доступном оборудовании.

Используя возможности современных ПК можно легко развернуть любой виртуальный сервер даже на домашнем компьютере, а затем легко перенести его на другое оборудование. Виртуализация также важна для разработчиков. Например, виртуализация позволяет управлять несколькими операционными системами, и если одна из них терпит крах из-за ошибки, то гипервизор и другие операционные системы продолжают работать. Это позволяет сделать отладку ядра подобной отладке пользовательских приложений.

В целом можно выделить следующие преимущества использования виртуализации:


1. Сокращение затрат на приобретение и поддержку оборудования. В современных условиях практически в каждой компании всегда найдется один или два сервера имеющие несколько ролей, например, почтовый сервер, файловый сервер, сервер базы данных и т.д. Безусловно, на одной физической машине можно поднимать по несколько программных комплексов (серверов), выполняющих различные задачи. Но очень часто бывают ситуации, когда установка нового ПО требует независимой серверной единицы. В таком случае как раз и придет на выручку виртуальная машина с требуемой ОС. Сюда же можно отнести случаи, когда в сети необходимо иметь несколько независимых друг от друга виртуальных серверов со своим набором служб и своими характеристиками, которые должны существовать как независимые узлы сети. Типичный пример – это услуги VPS-хостинга.

2. Сокращение серверного парка. Преимущество виртуализации состоит в том, что можно значительно сократить количество физических ЭВМ. В результате меньше времени и денег тратится на поиск, закупку и замену оборудования. Наряду с этим сокращаются площади, выделяемые под содержание серверной базы.

3. Сокращение штата IT-сотрудников. На обслуживание меньшего количества физических ЭВМ требуется меньше людей. С точки зрения руководства компании, сокращение штата — это сокращение серьезной статьи расходов предприятия.

4. Простота в обслуживании. Добавить жесткий диск или расширить существующий, увеличить количество оперативной памяти, все это занимает определенное время в случае с физическим сервером. Отключение, отсоединение из стойки, подключение нового оборудования, включение – в случае использования виртуализации все эти действия опускаются, и операция сводится к нескольким щелчкам мыши или командам администратора.

5. Клонирование и резервирование. Еще одним плюсом виртуализации является простота клонирования виртуальных машин. Например, компания открывает новый офис. При этом серверная инфраструктура центрального офиса стандартизирована и представляет собой несколько серверов с одинаковыми настройками. Развертывание такой инфраструктуры сводится к простому копированию образов на сервер нового офиса, конфигурировании сетевого оборудования и изменению настроек в прикладном ПО.



Вы еще не используете виртуализацию?


Сейчас уже сложно представить себе ИТ-отрасль без виртуализации, развитие информационных систем организаций тесно связано с применением технологий виртуализации. Причем данные технологии позволяют значительно сократить расходы, связанные с приобретением и обслуживанием серверных систем, сократить время на восстановление информации или развертывания аналогичных систем в новом оборудовании. Если вы до сих пор еще не используете преимущества виртуализации, то стоит об этом задуматься уже сейчас.
Наша компания широко использует преимущества контейнерной виртуализации практически во всех проектах. И если того требует ситуация, используем также полную виртуализацию. Мы рекомендуем всем предприятиям и организациям, имеющим в своем парке несколько серверов перейти к внедрению описанных в данной статье технологий.

Полезные статьи и ресурсы:

VM GU.RU
Виртуализация серверов
Обзор методов виртуализации, архитектур и реализаций.
Виртуализация: новый подход к построению IT-инфраструктуры
Автор: @1it
Centos-admin.ru
рейтинг 145,55
Администрирование нагруженных серверов

Комментарии (25)

  • +2
    > 3. Сокращение штата IT-сотрудников. На обслуживание меньшего количества физических ЭВМ требуется меньше людей. С точки зрения руководства компании, сокращение штата — это сокращение серьезной статьи расходов предприятия.

    Виртуальные серверы, сами обслуживаются и сами настраиваются?
    • 0
      Админы также виртуализируются.
      • 0
        Я бы не против иметь пару копий меня. :)
        • 0
          Главное, чтобы зарплата не виртуализировалась.
    • 0
      Время на настройку и обслуживание виртуальных серверов тратиться меньше, поэтому появляется возможность справляться с такой работой меньшим количеством сотрудников.
      • 0
        Исходя из практики — время на настройку и обслуживание «железа» тратится на порядки меньше, чем на обслуживание собственно ПО, так что особого выигрыша не будет.
        • 0
          Верно, но что по вашему контейнерная виртуализация, или полная виртуализация не упрощает процесс деплоя ПО? Один раз правильно настроенный и отлаженный шаблон ВМ или контейнера не упрощает жизнь админу? Дальнейшее сопровождение тоже можно свести к минимуму.
          • 0
            Здоровый конь в бубенцах бежит резвее старой клячи. Вот чудо-расчудесные бубенцы!

            Хорошие админы и до виртуализации ловко подготавливали удобно разливаемые образа или использовали unattended установки. В худших случаях приходилось докручивать autoit'ом но все работало. Плохой и недальновидный админ будет развертывать каждый образ руками и не делать бэкапов.

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

            Виртуализация хороший инструмент но не серебряная пуля
  • 0
    | Преимущество виртуализации состоит в том, что можно значительно сократить количество физических ЭВМ.

    Т.е. виртуалки могут работать без железа? Сколько виртуалок можно запустить в одной пустой комнате 2 на 2 метра?
    • +2
      Сколько угодно, они ведь виртуальные. Сколько выдумаете, столько и запустите.
    • 0
      Наверно, Автор имеет ввиду способность гибко распределять и масштабировать вычислительные русурсы при применении виртуализации,
      что приводит к более экономному расходованию аппаратных ресурсов.
  • 0
    |Вы еще не используете виртуализацию?

    С такими вопросами кэп опоздал лет на 5.
  • 0
    В данной статье приведен анализ современной технологии виртуализации, ее преимуществ и недостатков. Также рассмотрены современные системы виртуализации и подходы к созданию виртуальных сред.

    Если честно, то ожидал сравнений по производительности и другим параметрам между различными типами виртуализации.
    Оказалось статья как одна из множества подобных в интернете — как бы о чём то и ни о чём.
    Если будет продолжение с анализом параметров различных современного уровня технологий виртуализации, то очень хотелось бы почитать. То что в интернете либо проплачено, либо имеет устаревшие данные.
    • 0
      Насчет проплаченного это вы зря так. Я же не за деньги эту статью написал.
      Честно говоря были планы, проанализировать разные технологии, но пока материала недостаточно (есть данные по KVM, OpenVZ, LXC).
      Виртуализация тема широкая, одной статьи мало. Если будет время и будут возможности, буду продолжать.
      • 0
        Не хотел как то обидеть. Видимо не так меня поняли. Я не про вашу статью, а вообще про обзоры технологий виртуализации. Ваша статья для тех кто вообще про виртуализацию ничего не слышал. Надеялся на большее.
      • –1
        Я же не за деньги эту статью написал.


        бедняга
  • 0
    Пофигу. К счастью, системы виртуализации уже никого особо не волнуют. Всех волнуют слои стека выше, а как именно там устроено паравиртуализированное блочное устройство и кто обрабатывает прерывания — гипервизор или ядро хоста просто никого не волнует.

    Производительность линейного выполнения машинного кода после появления VT-x стала стремиться к baremetall, производительность устройств обычно объясляется не особенностями гипервизора, а криворукостью того, как написаны драйвера (с обоих концов).

    Вот management всего это хозяйства важен. Interoperability с другими решениями — важно. Масштабируемость — важно. А сортировка гипервизоров по полочкам (выше ядра, ниже ядра) — это суходротство для Computer Science товарищей, которые спорят какая архитектура ядра архитектурнее какой.
  • 0
    Про «сокращение» штата ИТ вам уже сказали, что Вы нагло соврали. Админы администрируют операционные системы, а не компьютеры, сеть, а не провода и т.д.
    В случае виртуализации сложность администрирования увеличивается и требуется админ с соответствующими скиллами.
    К тому же вы старательно умолчали, что появилась ещё одна «точка отказа», жирная такая точка. И если в случае отказа «обычного» физического сервера отпадает одна служба (напр. БД), то в случае отказа сервера с виртуалками отпадают все сервисы (служба каталогов, файлопомойка, бухгалтерия, CRM и т.д)
    • 0
      Во-первых, эта статья не претендует на звание конечной истины, не стоит столь критично относится ко всему, что здесь написано.
      Во-вторых, что-то я еще нигде не видел организаций, где бы нанимали каких-то админов с «соответствующими скиллами» для внедрения виртуализации, разве что в гос. конторах для прокачки бабла. В нормальных организациях, не обучаемых админов, обычно не держат подолгу.
      В-третьих, про точку отказа я пожалуй забыл сказать, но не «старался». Но кто-то сказал, что нельзя строить отказоустойчивых решений с помощью например технологий VMware и прочих признанных вендоров? И резервное копирование никто не отменял.
      И потом, я же призывал никого слепо кидаться что-то внедрять. Естественно, нужно просчитывать многие вещи, прежде чем внедрять новые технологии, это должен знать и понимать хороший ИТ-руководитель.
  • 0
    Заметил одну странную тенденцию — если до внедрения серверной виртуализации я занимался обновлением firmware, ОС и приложений на серверах, то теперь я еще и гипервизоры с ПО управления обновляю. :-)
    • 0
      Ну в принципе при грамотной архитектуре ИТ должен быть инженер по СХД, по виртуализации, по БД и т.д. и т.п.
      В мелких конторах обычно вообще 1-2 админа с неявным делением специализаций.
      Но в принципе, честно я не помню сильно большой потери времени на обновление того же vmware или hyper-v, тем более, при отлаженной процедуре.
  • 0
    Общий вопрос — виртуализация снижает стоимость владения или нет? Раньше казалось что снижает. F вот в небольшой организации, до 10-ти физических серверов виртуализации, будет ли снижаться стоимость, если смотреть не сразу, а лет через 5 посте перехода на виртуальные системы? Не в идеальной ситуации — при своевременном финансировании, при админах с дипломами от VmWare, при удачных покупках софта в момент наименьших цен, а в реальных условиях.
    • 0
      У многих мелких компаний сейчас вообще переход в амазоны/азуры, и отсутствие серверной инфраструктуры как таковой. что, в общем-то даже позитивное явление именно для СНГ, где разные конторы любят удивлять нежданным визитом в офис с конфискацией милых шумящих железок в прохладной комнате. А так — ну заберут они тонкие клиенты, и что им это даст?
  • 0
    Так что правоохранителям помешает направить требование о выдаче файлов виртуальной машины с вашими данным? Если, конечно, хостер виртуальных машин совсем за рубежом, то да, но та же MS вполне мирно сотрудничает с МВД\ФСБ, так что думаю никто там не будет особо сопротивляться из-за какой-то мелкой фирмы. Могут, конечно, не выдать ваши данные при нарушении юридических норм в запросе или при отсутствии официального, но, если все пункты закона соблюдены? А так с вас же могут и потребовать пояснить что вы и где храните
  • 0
    полезный линк (просто оставлю):

    serverfault.com/questions/222010/difference-between-xen-pv-xen-kvm-and-hvm

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное