Среда виртуализации: Основы виртуализации (обзор) / Хабр

Основы виртуализации (обзор) / Хабр

Привет, Хабр!

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

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

История

На заре развития компьютеры (или ЭВМ, электронно-вычислительные машины) были очень дорогим и штучным инструментом, позволить который могли себе только наиболее крупные институты и предприятия. Вычислительные ресурсы приходилось экономить всеми возможными способами. Первые разработчики писали код в режиме «офлайн» и передавали их оператору ЭВМ, который последовательно вводил программы в машину и производил расчеты. В начале 1960-х годов зародилась концепция разделения времени (time-sharing) – распределение вычислительных ресурсов между несколькими пользователями: пока один вводит данные, машина занимается расчетами других. Первые проекты с поддержкой данной концепции – Compatible Time-Sharing System (CTSS), Project MAC и предшественница ОС семейства Unix Multics – стали настоящим прорывом, однако они были небезопасными, сложными и, как следствие, не слишком стабильными.

В поисках путей решения проблемы оптимизации использования вычислительных ресурсов командой инженеров IBM был предложен новый подход – в рамках одной ЭВМ предоставить каждому пользователю виртуальную машину со своей ОС. Так в 1964 году появился проект CP-40, который позволил запускать несколько экземпляров клиентских ОС, например CMS. В 1967 году на основе проекта CP-40/CMS появилась CP-67/CMS – многопользовательская операционная система с разделением времени. CP-67/CMS работала на аппаратном мейнфрейме IBM System/360-67 и состояла из двух компонентов:

  • CP (Control Program)
    Программа управления виртуализацией (прообраз современного гипервизора).

  • CMS (Cambridge Monitor System)
    Одна из наиболее распространенных однопользовательских операционных систем для запуска в виртуальном окружении CP (клиентская, или гостевая, ОС).

Пользователи подключались к гостевым ОС с помощью специальных устройств ввода-вывода – терминалов.

Виртуализация обладала существенными преимуществами над концепцией разделения времени:

  • Увеличенные надежность и безопасность за счет изоляции пользователей.

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

  • Увеличенная производительность за счет использования легковесных гостевых ОС.

Шло время, компьютеры уменьшались в размерах и дешевели. В 1980-х годах x86 серверы и персональные компьютеры стали доступны для широкого спектра потребителей, вследствие чего мейнфреймы с виртуализацией и терминалами для многопользовательской работы ушли в прошлое. Однако технологии виртуализации продолжали развиваться и решать насущные проблемы. В 1988 году компания Insignia Solutions представила эмулятор программного обеспечения SoftPC, с помощью которого можно было запускать приложения MS DOS на рабочих станциях Unix, что стало своеобразным прорывом. В 1997 году компания Connectix создала программу Virtual PC для запуска под Mac ОС Windows. В 1999 году ныне всемирно известная компания VMware представила VMware Workstation, которая позволила запускать различные ОС в рамках виртуальных машин.

В начале 2000-х годов стали появляться продукты для серверной виртуализации. Эти решения дали возможность запускать несколько изолированных гостевых ОС в виртуальной среде на одном физическом сервере, что упрощало администрирование инфраструктуры, повышало ее отказоустойчивость и снижало простои серверного оборудования. Идея серверной виртуализации быстро набирала популярность. В 2001 году VMware представила ESX Server и GSX Server. В 2003 году Microsoft купила вышеупомянутую Connectix и перезапустила проект Virtual PC, ставший предшественником Microsoft Virtual Server и современного Microsoft Hyper-V). В 2007 году компанией Innotek был представлен VirtualBox. Также в 2007 году на рынок корпоративной виртуализации вышла компания Citrix, которая купила компанию XenSource и начала развивать проект с открытым исходным кодом Xen, предоставляя для клиентов коммерческую версию продукта Citrix XenServer (в настоящее время переименован в Citrix Hypervisor).

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

Читать подробнее:

  • Краткая история виртуализации, или Зачем вообще что-то делить

  • The History of Virtualization

  • History of Virtualization

  • With long history of virtualization behind it, IBM looks to the future

Виртуализация сегодня

Основные понятия

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

Существует много видов виртуализации, однако можно выделить три основных:

  • Аппаратная виртуализация.
    Позволяет создавать независимые и изолированные друг от друга виртуальные компьютеры с помощью программной имитации ресурсов (процессора, памяти, сети, диска и др.) физического сервера. Физический сервер называют хостовой машиной (хостом), виртуальные компьютеры – виртуальными машинами, ВМ (иногда их также называют гостями). Программное обеспечение, которое создает виртуальные машины и управляет ими, называют гипервизором (а также виртуальным монитором или контрольной программой – вспомните CP-40 из начала статьи). На практике на виртуальных машинах могут использоваться разные ОС для разных целей – например, Windows Server под контроллер домена Active Directory и Debian под веб-сервер NGINX.

  • Виртуализация рабочих столов.
    Позволяет отделить логический рабочий стол (набор пользовательских программ, работающий под ОС) от физической инфраструктуры (например, персональных компьютеров).  Одной из наиболее распространенных форм виртуализации рабочих столов является VDI (Virtual Desktop Infrastructure) – инфраструктура виртуальных рабочих столов. Каждый пользователь VDI имеет программную имитацию ОС с необходимым набором программ на физическом сервере под управлением гипервизора и может подключаться к ней по сети. На практике VDI может использоваться для работы большого количества сотрудников на «удаленке» для того, чтобы не закупать им отдельные рабочии станции и управлять инфраструктурой централизованно.

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

Читать подробнее: 

  • Общая теория и археология виртуализации x86

  • What is Virtualization?

  • Зачем же нужна виртуализация?

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

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

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

  • Оптимизировать затраты на покупку серверного оборудования.
    Под каждую задачу выделяется виртуальный сервер с необходимым количеством ресурсов (ЦПУ, ОЗУ и др.), простои оборудования минимизируются.

  • Упростить сопровождение инфраструктуры.
    Создание, удаление или обслуживание виртуальной машины как правило проще и быстрее, чем аналогичные операции с физическим сервером.

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

Гипервизор обеспечивает изолированную среду выполнения для каждой виртуальной машины, а также управляет доступом ВМ и гостевых ОС к аппаратным ресурсам физического сервера. Говоря простыми словами, гипервизор обеспечивает параллельное и независимое  функционирование нескольких операционных систем на одном компьютере. В классическом подходе гипервизоры группируются по двум типам: гипервизоры первого типа запускаются непосредственно на аппаратном обеспечении компьютера («железе»), а гипервизорам второго типа для работы необходимо наличие хостовой операционной системы. В последние несколько лет классическая классификация претерпевает изменения – добавился гибридный тип гипервизоров (тип 1.5), который сочетает характеристики первого и второго типов.

Гипервизоры первого типа (native, bare-metal)

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

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

Примеры:

  • VMWare ESXi;

  • KVM (Proxmox VE) – может быть также отнесен ко второму типу;

  • Xen (Xenserver, Citrix Hypervisor), Hyper-V – могут быть также отнесены к гибридному типу.

Гипервизоры второго типа (hosted)

Гипервизор второго типа выполняется поверх хостовой операционной системы (как правило Linux). Он управляет гостевыми операционными системами, в то время как эмуляцией и управлением физическими ресурсами занимается хостовая ОС.

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

Примеры: 

  • Oracle VM VirtualBox, VMWare Workstation;

  • KVM (Proxmox VE) – может быть также отнесен к первому типу.

Гипервизоры гибридного типа (hybrid)

Гибридный гипервизор сочетает в себе характеристики гипервизоров первого и второго типов – он выполняется поверх специализированной сервисной (или базовой) операционной системы. Сервисная ОС называется родительским разделом или доменом (parent partition в терминологии Hyper-V или domain dom0 в терминологии Xen). После установки гипервизора ядро ОС переходит в режим поддержки виртуализации и передает управление ресурсами процессора и памяти гипервизору. При этом родительский раздел берет на себя функцию обработки обращений к драйверам устройств и операциям ввода-вывода.

Данный подход удобен с точки зрения совместимости с оборудованием: не требуется добавлять в гипервизор драйверы устройств (расширяется список совместимого аппаратного обеспечения). Также гипервизор освобождается от задачи обработки вызовов к драйверам устройств – эти вызовы обрабатывает сервисная ОС.

Примеры: Xen (XenServer, Citrix Hypervisor), Hyper-V – могут быть также отнесены к первому типу

Читать подробнее:

  • Общая теория и археология виртуализации x86

  • НОУ ИНТУИТ Лекция 5: серверная виртуализация

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

  • What is a hypervisor? The basics of virtualization technology

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

Виртуализация на одном физическом сервере дает неплохие результаты, однако имеет ряд очевидных недостатков – например, в случае отказа этого сервера построенная инфраструктура полностью теряет работоспособность. По-настоящему ярко технология виртуализации раскрывается только при создании кластера из нескольких физических хостов. Кластер узлов виртуализации (или просто кластер виртуализации) – это объединение группы физических серверов, которое представляется конечным потребителям как общий вычислительный ресурс с единой точкой управления. При этом виртуальные машины запускаются на разных физических серверах и могут перемещаться (мигрировать) между ними, что обеспечивает высокую доступность (High Availability, HA) и гибкое распределение ресурсов (нагрузки).  Практически все вышеперечисленные гипервизоры имеют программные механизмы для объединения в кластер – VMWare vSphere, Hyper-V Failover Clustering и др.

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


За помощь в подготовке статьи автор выражает искреннюю благодарность @novikov0805, @Eviil и @KoPashka

Все статьи серии:

  1. Основы Linux (обзор с практическим уклоном)

  2. Основы виртуализации (обзор)

  3. Основы контейнеризации (обзор Docker и Podman)

  4. Основы мониторинга (обзор Prometheus и Grafana)

Какая система виртуализации лучше? / Хабр

День добрый.

Люди, имеющие опыт поднятия виртуалок, на различных системах, подскажите:
Какую систему виртуализации (из opensource) поставить на сервер, с учетом, что гостевые системы преимущественно будут заниматься роутингом?

У нас на фирме сейчас зоопарк серверов (обычные PC-шки), которые занимаются всем — от роутинга пакетов, до FTP-серверов. Всё это жрет электричество, требует охлаждения, и замены деталей по мере старения.

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

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

Решение видится в затаскиванию всех этих железных монстров внутрь одной машины.

Т.к. большинство наших «серверов» по мощности остались далеко позади одного современного компа на базе Core 2 Duo или Core 2 Quad — то в расчетах мы исходили из того, что на компьютер на базе Core 2 Duo E6400 @ 3GHz / 4096 RAM удасться затащить хотя бы 4 реальных машины.

В качестве кандидатов к переносу выбраны были самые важные серверы: VPN (около 500 одновременных сессий), пару софтовых Linux-роутеров, radius-сервер, и пару серверов, отоброжающих админский web-интерфейс.

Дальше начался подбор систем виртуализации. Из кандидатов были:

-OpenVZ

-KVM

-Xen

-VMWare ESXi

В результате отбора получилось следущее:

-OpenVZ. Опыт работы с ним уже был. Он вообще фактически не разграничивает системы между собой, и работает чисто на уровне эмуляции вызовов ядра. Кроме того, он не позволяет поднимать новые сетевые интерфейсы внутри системы, а значит VPN сервер на нем уже не получится. Для web-хостинга еще пойдет. Для роутеров — нет

-VMWare ESXi не смогли запустить ни на одном из доступных нам компов. Установщик либо просто не запускался, либо система после установки банально не грузилась.

-Xen — отпал потому, что в каждой гостевой машине должно быть то же ядро, что и на хост-машине. Кроме того. Собственно заставить его работать мне вообще не удалось. Может быть виной мои кривые ручки. Поэтому мы перешли к последнему кандидату…

-KVM — ему без разницы, какая гостевая машина запускается внутри хост-машины. Хоть с Виндой, хоть c OS/2. По сути полная изоляция машин друг от друга. Подкупило и то, что RedHat делает ставку именно на эту систему, и советует ее для Enterprise применений. Соответственно всем нашим требованиям оно соответствовало.

Поставили KVM. Быстро разобрались как ставить внутри системы, наладили сетку и маршрутизацию между виртуалками.

Схема была такая. У хост-машины 2 сетевых карты, внутри они связаны в следующую систему:

eth0-хост-машины — виртуальный br0 — [eth0-гостевой-машины-1 — eth2-гостевой-машины-1] — виртуальный br1 — [eth0-гостевой-машины-2 — eth2-гостевой-машины-2] — виртуальный br2 — eth2-хост-машины

Стали тестить. В тестах такая схема вела себя замечательно. Нагрузки почти никакой. Работает стабильно.

Поставили в продакшн. И тут БАЦ! Нагрузка возросла в разы.

Выяснилось, что при потоке трафика через виртуалку около 15Мбит, она жрёт 40% процессора (согласно top) на хост машине. Соответственно уже 2 машины сжирают почти всю процессорную мощность на хост-машине. При этом внутри виртуалок загрузка 1-2%.

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

Попробовали. И столкнулись с двумя непонятными вещами:

1) При включении virtio гостевая машина может просто упасть без объяснения причин через 3-8 часов работы

2) Нагрузка на хост-машине не уменьшилась, а осталась на прежнем уровне.

На хост-машине система Gentoo, с ядром 2.6.30, собранным вручную. Всё, что нужно для виртуализации в нее уже вкомпилено.

На гостевых машинах пробовали Ubuntu и ArchLinux. Разницы нет. Падают все.

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

Сейчас продолжаю эксперименты с KVM на другой машине, но уже закралась мысль опробовать Xen… и вообще, может быть я что-то делаю неправильно?

Например чтобы работало virtio, нельзя объединять интерфейс виртуалки с реальной сетевушкой в софтовый бридж… А может все правильно делаю, и так и должно быть? Такая нагрузка, такие проблемы…

В общем нужна помощь компетентных людей.

P/S: Огромная просьба, не давать советы вроде «замени всё на Cisco», «линукс фигня, ставьте фряху». Если вы немного подумаете, то поймете почему эти советы довольно далеки от реальности.

Общие сведения о виртуализации

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

Физическое оборудование, оснащенное гипервизором, называется хостом, а множество ВМ, использующих его ресурсы, — гостями. Эти гости рассматривают вычислительные ресурсы, такие как ЦП, память и хранилище, как пул ресурсов, которые можно легко перемещать. Операторы могут управлять виртуальными экземплярами ЦП, памяти, хранилища и другими ресурсами, чтобы гости получали нужные им ресурсы тогда, когда они им нужны.

Перенесите свою виртуальную инфраструктуру на решения Red Hat

Изолированные виртуальные сети могут быть созданы из 1 исходной сети.

Один сервер можно заставить действовать как пара или сотни.

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

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

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

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

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

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

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

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

  • Виртуализация — это технология, которая отделяет функции от оборудования
  • Облачные вычисления — это скорее решение, основанное на этом разделении

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

Потому что речь идет не только о виртуализации. Речь идет о том, что виртуализация может (или не может) сделать для поддержки технологий, которые от нее зависят.

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

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

Виртуализация предоставляет ресурсы, которые могут использовать контейнеры. Эти виртуальные машины представляют собой среды, в которых могут работать контейнеры, но контейнеры не привязаны к виртуальным средам. Некоторое программное обеспечение, например Red Hat® OpenShift® Virtualization, может одновременно управлять контейнерами и виртуальными машинами, но это не означает, что эти две технологии одинаковы.

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

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

Мы поддерживаем разработку виртуализации в течение длительного времени, улучшая гипервизор виртуальной машины на основе ядра (KVM) и внося свой вклад в KVM и oVirt с момента основания обоих сообществ. Red Hat также использует продукты Red Hat для более быстрого внедрения инноваций и создания более гибкой и гибкой операционной среды.

В настоящее время гипервизор KVM является ядром всех основных дистрибутивов виртуализации OpenStack ® и Linux® и устанавливает рекорды по общей производительности и запуску наибольшего количества высокопроизводительных виртуальных машин на одном сервере.

Все это с открытым исходным кодом, что означает, что оно разработано, протестировано и сертифицировано для всех типов оборудования. Мы даже сотрудничали с Microsoft, поэтому вы можете развернуть виртуальные машины на Red Hat ® Enterprise Linux или даже управлять сотнями виртуальных машин на базе Windows с помощью одного продукта виртуализации.

У вас уже есть виртуальная инфраструктура?

Контейнеры Linux и виртуальные машины (ВМ) представляют собой упакованные вычислительные среды, объединяющие различные ИТ-компоненты и изолирующие их от остальной системы.

Виртуальная машина (ВМ) — это изолированная вычислительная среда, созданная путем абстрагирования ресурсов от физической машины.

Виртуальные машины на основе ядра (KVM) — это технология виртуализации с открытым исходным кодом, которая превращает Linux в гипервизор.

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

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

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

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

Помня о безопасности, вы можете снова разделить первый сервер, чтобы он мог выполнять другую задачу, увеличив его использование с 30% до 60%, а затем до 90%. Как только вы это сделаете, теперь пустые серверы можно будет повторно использовать для других задач или полностью вывести из эксплуатации, чтобы снизить затраты на охлаждение и обслуживание.

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

Но в течение следующих нескольких десятилетий популярность других решений проблемы множества пользователей и одной машины росла, а виртуализация — нет. Одним из таких решений было разделение времени, которое изолировало пользователей внутри операционных систем, что непреднамеренно привело к другим операционным системам, таким как UNIX, которые в конечном итоге уступили место Linux®. Все это время виртуализация оставалась в значительной степени непринятой нишевой технологией.

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

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

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

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

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

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

Виртуализация данных

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

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

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

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

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

Узнайте больше о виртуализации серверов

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

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

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

Узнайте больше о виртуализации операционной системы

Виртуализация сетевых функций

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

Подробнее о виртуализации сетевых функций

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