Что такое виртуализация

Технологии виртуализации, для чего это нужно?

Технологии виртуализации позволяют создавать на одном сервере несколько логических систем — изолированных виртуальных машин, с полным набором функций физических устройств. Виртуализация возможна не только в рамках одного физического сервера, но и в рамках нескольких серверов, ЦОД или даже нескольких географически разнесённых ЦОД организации. Современные технологии позволяют не только создавать виртуальные машины, но и обеспечивать виртуализацию систем хранения и полнофункциональной сети. При этом, большая часть функционала виртуализации может быть реализована на обычном оборудовании без необходимости покупки узкоспециализированного аппаратного обеспечения, либо сетевых компонент.

Виртуализация значительно упрощает работу ИТ-инфраструктуры, повышая производительность за счёт оптимизации использования ресурсов, сокращения затрат на обслуживание и управление. Радикально снижается время создания типовой инфраструктуры и рационально используются ИТ-ресурсы: как аппаратные, так и человеческие. Немаловажный момент — создание постоянно функционирующей ИТ-инфраструктуры, защищённой от сбоев, и устойчивой к катастрофам. За счёт грамотно построенной среды виртуализации происходит сокращение внеплановых простоев и абсолютное исключение плановых отключений на обслуживание серверов, либо хранилищ данных. При этом все ИТ-службы получают возможность отказаться от привязки к конкретному поставщику. Для компаний любого уровня и на любой стадии развития ИТ-инфраструктуры возможно внедрение автоматизации процессов, так или иначе связанных с выделением вычислительных ресурсов для различных подразделений внутри компании, либо для своих заказчиков.

История виртуальных машин

Началом эпохи ВМ можно считать 70-е годы, когда появились мейнфреймы, например, IBM 360/67.

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

В 1985 году появились микропроцессоры. Встроенная в них опция виртуализации (как через гипервизоры, так и с реализацией на уровне ОС) была крайне важна для производительности вычислительных ресурсов, так как способствовала захвату процессорных тактов, которые терялись в процессе использования современных высокопроизводительных процессоров 3+ ГГц.

ВМ также дают дополнительную безопасность, целостность и удобство, потому что для их создания не требуются большие вычислительные затраты. Можно также расширить возможности виртуальных машин, внедрив опции эмулятора для интерпретаторов типа виртуальной машины Java, и даже функции полных симуляторов. Например, сделать возможным запуск Windows под MacOS или программ для Commodore 64 на современном компьютере под Windows.

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

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

Зачем нужны ВМ?

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

Интерфейс программы VirtualBox

Некоторые разработчики используют ВМ в утилитарных целях, чтобы проверять работоспособность своих проектов. А кто-то таким образом знакомится с новыми для себя операционными системами. Впрочем, обо всем подробнее.

  • Тестирование ПО

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

Можно запустить на одном ПК несколько ВМ параллельно и запускать в них разрабатываемое приложение. С помощью виртуальных машин можно создать несколько «цифровых компьютеров» с различными характеристиками, чтобы узнать, как ваша программа/сервис будет работать на более слабых устройствах.

  • Разработка в безопасной среде

Иногда вести разработку на хостовой операционной системе небезопасно. Из-за прямого подключения к корпоративной сети, из-за активности других приложений либо из-за непредсказуемого поведения написанного кода.

Поэтому можно быстро и дешево (или даже бесплатно) организовать безопасную рабочую среду, где можно тестировать любой код, не переживая, что он как-то навредит основной системе или к нему кто-то получит доступ извне.

Виртуальную машину можно лишить доступа к некоторым компонентам ПК или к сети.

  • Знакомство и работа с новыми ОС

Используя ВМ, можно из праздного интереса установить на ПК какой-нибудь дистрибутив Linux или другую ОС. Неплохой вариант для тех, кто ничем кроме Windows не пользовался и хочет узнать, как там поживают пользователи Linux.

Еще один распространенный сценарий – установка Windows параллельно с macOS в качестве виртуальной машины, чтобы пользоваться эксклюзивными для системы Microsoft продуктами.

  • Развертывание дополнительных инстансов приложения

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

  • Размещение ПО на удаленных серверах

Технологии виртуализации используются на хостинговых платформах. Например, VDS (или VPS) – это Virtual Dedicated Server, то есть виртуальный сервер, имитирующий реальное железо.

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

Для каких категорий пользователей подходит решение

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

Где используется виртуализация

Продукты виртуализации востребованы у тех компаний, которые движутся в сторону цифровой трансформации и умеют считать деньги. Новая технология востребована там, где вместо нескольких маломощных и требующих модернизации машин компания планирует закупить современное оборудование и использовать его ресурсы на 100 %. Рационально переносить в виртуализированную среду мало- и средненагруженные серверы: веб-сервер, контроллеры доменов, сервер БД, с которой работают до двух-трех сотен пользователей.

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

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

Виртуализация сервисов

Виртуализация памяти

В 1960-х память на магнитных сердечниках стоила очень дорого. А мейнфреймы, встроенная память которых превосходила бы 1 Мбайт, встречались редко. Всё это способствовало развитию концепции виртуальной памяти, которая активируется небольшими дополнениями к аппаратной части благодаря набору инструкций. Выделяют страничную и сегментную организацию виртуальной памяти.

Страничная организация виртуальной памяти

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

С помощью буфера ассоциативной трансляции (TLB) номер виртуальной страницы преобразуется процессором в адрес соответствующей ей физической страницы. Если не получается это выполнить, понадобится дозаполнение буфера через обращения к таблице страниц (Page Walk). Это может осуществить либо сам процессор, либо ОС. Если страницу выгрузили из оперативной памяти, подкачка страницы выполняется с жёсткого диска в процессе обработки события Page fault. Когда происходит запрос на выделение памяти, ОС переносит страницы, к которым долго не обращались, на жёсткий диск. При этом критические данные остаются в оперативной памяти.

Сегментная организация

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

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

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

В случае сегментной организации памяти виртуальный адрес представляется парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес образуется сложением начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

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

Технология виртуализации памяти позволила 1мБайту ОЗУ на IBM 360/67 поддерживать полноценное 24-битное адресное пространство (16 МБ), входящее в компьютерную архитектуру, а каждая ВМ могла получить свой набор виртуальной памяти.

Благодаря этому аппаратное обеспечение, созданное для работы одной программы или одной ОС стало доступно сразу для нескольких пользователей. Но из-за того, что оперативная память превосходит по скорости жесткие диски, быстродействие может быть снижено. Чтобы такого не происходило, в облаке Cloud4Y все ресурсы являются выделенными. То есть на каждую ВМ выделяются только свободные мощности, которые не будут использоваться другими машинами.

Виртуализация вычислительных ресурсов

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

Гипервизор

Гипервизор — это программа, которая работает на компьютере и превращает часть реального железа в начинку для виртуального компьютера. Например, у нас есть процессор 8 ядер, 16 гигабайт оперативной памяти, SSD на 512 гигабайт и Wi-Fi.

После запуска гипервизор берёт это железо, отщипывает от него понемножку и собирает это всё в один виртуальный компьютер. При этом Wi-Fi он не делит, а берёт целиком, но пропускает через себя, как будто в компьютере стоит другой модуль беспроводной связи. На выходе у нас получается виртуальный компьютер, где стоит 4 гигабайта оперативной памяти, двухъядерный процессор и 100 гигабайт на жёстком диске.

Задача гипервизора — следить за тем, чтобы гостевая система работала только внутри выделенных ресурсов и не залезала в хост-систему. А ещё он смотрит за работоспособностью гостевой системы и сообщает, если что-то идёт не так.

Как запустить операционку внутри операционки внутри операционки

Программная виртуализация

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

Как устроены файлы

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

Как запустить операционку внутри операционки внутри операционки
Ubuntu работает внутри Windows благодаря гипервизору Oracle VirtualBox

Как запустить операционку внутри операционки внутри операционки

Четыре виртуальные системы, запущенные одновременно. Гипервизор — VMWare Workstation

Кстати, Bluestack, эмулятор Андроида на ПК — это программный гипервизор, который превращает часть ресурсов компьютера в телефонное железо:

Как запустить операционку внутри операционки внутри операционки

Аппаратная виртуализация

Аппаратный гипервизор работает иначе: вместо того чтобы запускаться на хост-системе, он сам становится такой системой. По сути, аппаратный гипервизор — это такая мини-операционная система, единственная задача которой запускать поверх себя любые другие операционные системы и давать им больше свободы в доступе к железу.

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

Как запустить операционку внутри операционки внутри операционки
Окно настроек аппаратного гипервизора Xen

Преимущества

Для владельцев бизнеса и топ-менеджеров:

  • Сокращение стоимости поддержки ИТ-систем.
  • Сокращение стоимости внедрения новых ИТ-сервисов.

Для руководителей ИТ-подразделений:

  • Сокращение сроков внедрения новых ИТ-сервисов.
  • Простота обслуживания инфраструктуры.
  • Повышение надежности ИТ-систем в целом.

Для ИТ-персонала:

  • Повышение удобства управления инфраструктурой.
  • Сокращение низкоквалифицированных работ.
  • Повышение собственной квалификации.

Недостатки

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

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

Виртуализация снижает затраты

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

Что даёт виртуализация:

  • делает IT-процессы более гибкими, эффективными, удобными и производительными благодаря обширному набору функций.
  • Является лучшей альтернативой физическим серверам, которая даёт ощутимые экономические преимущества.
  • Способствует активной разработке программного обеспечения под виртуализированные среды.
  • Внимание с «железа» переключилось на работу с данными из любого места в любое время.

Виртуализация становится основной стратегией развития IT-сферы. Мало какая другая инновация оказала столь большое влияние, как появление облачной инфраструктуры. И это влияние будет только расти.

Виртуализация рабочего места

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

Примеры использования виртуализации?

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

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

Разработка и тестирование. Хотя виртуализация серверов поддерживает производственные среды и рабочие нагрузки, гибкость и простота, которые виртуализация привносит в инициирование и развертывание виртуальных машин, делают ее полезной для инициатив по разработке и тестированию. Это простое дело — создать виртуальную машину для тестирования новой сборки программного обеспечения; экспериментировать с конфигурациями, оптимизацией и интеграцией виртуальных машин — заставить несколько виртуальных машин взаимодействовать — и проверить восстановление рабочей нагрузки в рамках тестирования аварийного восстановления. Эти ВМ часто являются временными и могут быть удалены по завершении тестирования.

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

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

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

Поддержка нескольких платформ. Каждая ВМ работает под управлением своей собственной уникальной ОС. Виртуализация стала удобным средством поддержки нескольких ОС на одном физическом сервере, а также серверов во всей среде центра обработки данных. Организации могут запускать желаемые сочетания Windows, Linux и других ОС на одном серверном оборудовании x86, которое полностью абстрагировано гипервизором виртуализации.
Существует очень мало корпоративных рабочих нагрузок, которые не могут хорошо функционировать в виртуальной машине. К ним относятся устаревшие приложения, работа которых зависит от прямого доступа к определенным аппаратным устройствам сервера. Такие проблемы возникают редко и должны исчезнуть, поскольку старые приложения неизбежно пересматриваются и обновляются с течением времени.

Поставщики и продукты

На современном рынке существует множество предложений по виртуализации, но выбор поставщиков и продуктов часто в значительной степени зависит от целей виртуализации и существующей ИТ-инфраструктуры. Организации, которым требуются гипервизоры 1 типа для производственных рабочих нагрузок, обычно выбирают VMware vSphere, Microsoft Hyper-V, Citrix Hypervisor, IBM Red Hat Enterprise Virtualization (RHEV) и Oracle VM Server for x86. VMware доминирует в современном ландшафте виртуализации благодаря своему богатому набору функций и универсальности. Microsoft Hyper-V является распространенным выбором для организаций, которые уже используют платформы Microsoft Windows Server. RHEV обычно используется в средах Linux.

Гипервизоры 2 типа широко распространены в средах тестирования и разработки, а также в многоплатформенных конечных устройствах — таких, как ПК, на которых необходимо запускать приложения Windows и Mac. Популярные предложения включают VMware Workstation, VMware Fusion, VMware Horizon 7, Oracle VM VirtualBox и Parallels Desktop. Многочисленные предложения VMware обеспечивают виртуализацию общего назначения, поддержку ОС Windows и Linux и приложений на оборудовании Mac, а также развертывание инфраструктуры виртуальных рабочих столов в масштабах предприятия. Продукт Oracle также является универсальным и поддерживает несколько ОС на одной настольной системе. Гипервизоры Parallels поддерживают ОС других производителей на оборудовании Mac.

Типы гипервизоров

Как выбрать сервер для виртуализации

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

  • количество ядер процессора. Для каждого пользователя стоит выделить не менее 2 ядер (или хотя бы 2 потока на 1 ядро). При этом не забывайте, что ядер для каждого мало, а значит стоит озаботиться их высокой частотой и поддержкой Turbo Boost (Intel)/Turbo Core (AMD);
  • оперативная память. Ее количество определяется типом операционной системы и возложенными на пользователя задачами. Минимально комфортный объем для программной виртуализации — от 2 ГБ на человека, для аппаратной — от 4 ГБ на человека, если говорить о комфортной работе. Модуль коррекции ошибок (ECC) обязателен;
  • накопители. HDD или SSD типа SATA отметаем сразу, поскольку параллельные запросы они не поддерживают, поэтому только SAS. Заодно появляется возможность горячей замены и более стабильный RAID. Объем рассчитать сложно, поскольку здесь все зависит от задач конкретного оператора.

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

Вместо итогов

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

Использование виртуализации в перспективе снизит потери производительности при одновременном запуске нескольких виртуальных машин на одном физическом сервере. При этом возрастет и степень защищенности, что критически важно для корпоративной среды.

Источники
  • https://rubytech.ru/products/it-infrastruktura/infrastruktura-chastnogo-oblaka/tekhnologii-virtualizatsii/
  • https://www.Cloud4Y.ru/blog/what-is-virtualization/
  • https://timeweb.com/ru/community/articles/chto-takoe-virtualnaya-mashina
  • https://stekspb.ru/blog/virtualizaciya/
  • https://thecode.media/vt-x/
  • https://www.zeluslugi.ru/info-czentr/it-glossary/term-virtualizacziya
  • https://www.itc.by/chto-takoe-virtualizacziya-servera/
  • https://market.marvel.ru/blog/servery/virtualizatsiya-serverov/

Помогла ли вам статья?

Рейтинг
( Пока оценок нет )
iVirt-it.ru