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

Истоки виртуализации

Время на прочтение
8 мин

Количество просмотров 7.5K

Внимание, вопрос: кто стоял у истоков виртуализации? При всей любви к продуктам этой компании, ответ «VMware» будет неверен. Пионерами на этом рынке были General Electric, Bell Labs и IBM.

Сотворение виртуальной машины

Уже в начале шестидесятых портфолио IBM насчитывало десятки различных систем. Каждое новое поколение разительно отличалось от предыдущего. Покупатели рвали на себе волосы в тщетных попытках поспеть за всеми инновациями и требованиями нового железа. Кроме того, в те годы еще была актуальна парадигма «один компьютер за один присест выполняет только одну задачу». Вам нужно больше? Будьте добры прибегнуть к пакетной обработке (batch processing), когда одно задание выполняется на ЭВМ вслед за другим без вмешательства оператора. Неудобно, правда? Но специалисты IBM не считали это проблемой. Большая часть пользователей их машин принадлежала к научному сообществу. Им вполне хватало.

Но разнообразие систем понемногу начало досаждать IBM. Компания приняла решение заместить свой технологический зоопарк новым мейнфреймом S/360, который ко всему прочему обладал бы обратной совместимостью. Предполагалось, что компьютер будет однопользовательским и сможет работать с пакетами задач. 

К первому июля 1963 года эта концепция развалилась. MIT анонсировал Project MAC — Mathematics and Computation, а не то, о чем вы могли бы подумать. Более поздняя расшифровка этого названия звучит как Multiple Access Computer. Финансировался проект щедрым грантом DARPA объемом в $2 млн — средства были выделены в том числе на изучение особенностей и перспектив компьютеростроения — в основном, в области разработки операционных систем, искусственного интеллекта и теории вычислений. А новый грант — это новые задачи. И, соответственно, новый компьютер, который сможет с ними справиться. MIT требовалась не простая, а многопользовательская машина. Первое, о чем подумали инженеры — «почему бы не заказать готовый компьютер у GE или IBM?». Однако IBM на тот момент пребывала в уверенности, что спроса на машины с разделением времени практически нет. А модифицированную под все хотелки версию стокового IBM-компьютера в MIT покупать не хотели. GE, напротив, с удовольствием приняла предложение MIT и решилась взяться за разработку многопользовательской машины.

И тут оказалось, что спрос на такие машины на рынке есть. Притом весьма солидный — даже в Bell Labs заинтересовались в их приобретении. Тревожный звоночек.

В ответ на предложения от MIT и Bell Labs в IBM была срочно разработана и выпущена CP-40. Это первая операционная система, которая реализовывала полную виртуализацию. CP-40 была предназначена специально для IBM S/360 model 40 и поддерживала до 14 виртуальных машин c 256 Кб виртуальной памяти одновременно. 

Параллельно с CP-40 была разработана программа CMS. Она обеспечивала среду для запуска приложений и взаимодействия с пользователями. CMS была крохотной интерактивной ОС для одного пользователя. Вся магия виртуализации обеспечивалась именно CP. Суть в том, что CP запускалась на мейнфрейме и создавала N-ное количество виртуальных машин под управлением CMS. Первый релиз CP/CMS состоялся в 1968-ом году, а к 1972-му на рынок была выпущена ее стабильная версия.

Традиционно компьютеры с таймшерингом поровну делили между несколькими пользователями процессорное время, память и прочие ресурсы. Характерный пример — ОС MultiCS, разработанная в MIT для Project MAC. Позднее она была передана в Bell Labs, где впоследствии «эволюционировала» в Unix.

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

Вслед за CP-40 была разработана ОС CP-67. Именно ее можно назвать первым «промышленным гипервизором». Позднее CP-67 эволюционировала в VM/370 для мейнфрейма S/370.

Переносимость программного обеспечения

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

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

В зависимости от конфигурации системы пользователь может установить собственный набор дополнительного ПО и управлять политиками безопасности. Но не только этим славна Unix — де-факто, это первая операционная система, открывшая дорогу к виртуализации приложений.

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

Виртуализация приложений

Любой искушенный пользователь Unix, владеющий компиляторами C, мог без труда запустить любую программу на любом компьютере. Удобно? Почти. Осталось найти способ переносить приложения между компьютерами, минуя процесс компиляции. То есть виртуализировать их.

В 1990 году Sun Microsystems запустила проект Stealth. Он был инициирован инженерами компании, которым не нравился подход Sun к использованию API C и C++. Они были уверены в том, что есть лучший способ писать и запускать приложения. Проект несколько раз переименовывали — среди версий были даже экзотичные Oak и Web Runner. Как вы уже наверняка догадались, в 1995 году проект достиг релиза под окончательным именем Java.

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

Java был уникален в своем роде. Можно было запустить написанную на нем программу на любом компьютере с установленной бесплатной Java Run-Time Environment (JRE).

Говоря упрощенно, Java работает так: сначала написанная программа компилируется в байт-код Java. Это своеобразный язык-посредник, с которым умеет работать JRE. Непосредственно в момент запуска программы JRE компилирует программу из байт-кода для целевого железа. Программисту не надо заботиться о том, для какого «железа» и какой ОС он пишет код, а пользователю не приходится заниматься компиляцией.

JRE включает в себя массу компонентов, наиболее интересным из которых является Java Virtual Machine. Любое приложение запускается именно в ней. Можно представить себе JVM как очень маленькую ОС, созданную для того, чтобы запускать Java-приложения. Заботы о портировании JVM для всех мыслимых устройств Sun/Oracle берет на себя. Тем не менее, этот подход имеет известные ограничения.

Широкое распространение аппаратной виртуализации

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

Еще в январе 1987 года Insignia Solutions продемонстрировала программный эмулятор под названием SoftPC. Он позволял запускать приложения DOS на рабочих станциях под управлением Unix. Это был невероятный цифровой подвиг. В то время ПК, способный запустить MS-DOS, стоил порядка $1500, а использование SoftPC «обходилось» всего в $500.

К 1989 году Insignia Solutions выпустила версию SoftPC для Mac. В этой версии была добавлена ​​возможность запускать приложения Windows. К 1994 году Insignia Solutions начала продавать свое программное обеспечение с разными предустановленными операционными системами — в том числе с SoftWindows и SoftOS/2.

Успех SoftPC вдохновил и других игроков. В 1997 году Apple создала программу под названием Virtual PC и начала распространять ее через компанию Connectix. Virtual PC, как и SoftPC, позволял пользователям запускать копию Windows на Mac, это позволило обойти проблему несовместимости программного обеспечения. А в 1998 году была основана всемирно известная компания VMware. Год спустя на рынок вышла первая версия VMware Workstation. Сначала она была доступна только в Windows, но позже добавилась ​​поддержка других операционных систем.

VMware достойна упоминания хотя бы потому, что на данный момент это безусловный лидер рынка виртуализации. В 2001 году VMware выпустила два новых продукта для корпоративного сегмента: ESX Server и GSX Server. GSX Server позволял пользователям запускать виртуальные машины поверх существующей операционной системы, например Microsoft Windows. Это так называемый гипервизор 2-го типа. ESX Server, гипервизор 1-го типа, не требует наличия ОС-хоста.

Гипервизоры 1-го типа намного более эффективны, поскольку для их работы не требуется выделять ресурсы на запуск «основной» системы. Кроме того, они традиционно более гибки в настройке.

После выпуска ESX Server в 2001 году в корпоративном сегменте наметился экспоненциальный рост интереса к виртуализации. VMware добавила много дополнительных продуктов для улучшения функционала ESX Server.

Появились и другие поставщики ПО для виртуализации. В 2003 году Microsoft приобрела Connectix, и Virtual PC была переиздана. Сначала под брендом Microsoft Virtual PC 2004, затем — Microsoft Virtual Server 2005.

В 2007 на рынке виртуализации появился еще один игрок — Citrix Inc. Компания приобрела XenSource, платформу виртуализации с открытым исходным кодом, созданную в 2003 году, и вскоре после этого переименовала продукт в XenServer.

Публикация приложений

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

Windows и OS/2 не давали удаленного доступа к приложениям без использования сторонних инструментов. А существовавшее специализированное ПО было доступно только одному пользователю за раз.

Кому-то в IBM пришла в голову идея создать многопользовательский интерфейс для OS/2, однако боссам компании идея не пришлась по вкусу. В 1989 году Эд Якобуччи ушел из IBM и основал собственную компанию под названием Citrus. Вскоре компания была переименована в Citrix, комбинацию Citrus и Unix.

Citrix получила лицензию на исходный код OS/2 и приступила к созданию программного расширения для нее. Два года спустя OS/2 таки получила многопользовательский интерфейс MULTIUSER.

В 1991 году Microsoft объявила об окончании поддержки OS/2, и Citrix пришлось свернуть проект. Однако полученный опыт позволил переориентироваться на создание подобного ПО, но уже для Windows.

В 1993 году Citrix приобрела Netware Access Server у Novell. В 1995 году этот продукт начал продаваться под именем WinFrame. WinFrame представляла из себя Windows NT 3.5 с возможностями удаленного доступа. Сразу несколько пользователей могли одновременно подключиться к ней для удаленного запуска приложений.

Во время разработки WinFrame для Windows NT 4.0 Microsoft отказала Citrix в лицензии, и продукт по соглашению сторон был интегрирован в Windows NT 4.0 в качестве набора служб терминалов. Citrix согласилась не создавать конкурирующий продукт, но получила возможность расширить функциональные возможности служб терминалов.

Виртуальные рабочие столы

Виртуальные рабочие столы в их современном понимании — это весьма молодая тема. В чем-то их концепция похожа на то, что IBM предложила в далеких 1960-х. Каждый пользователь получает собственную выделенную ОС и может делать в ней всё, что ему заблагорассудится, не подвергая опасности других пользователей в системе. 

Переход от виртуальных рабочих столов на мэйнфреймах к виртуальным рабочим столам в том виде, в каком мы их знаем сегодня, на самом деле произошел только в 2007 году, когда VMware представила свой продукт для VDI. В принципе, сотрудники компаний и ранее могли пользоваться виртуальными рабочими столами в качестве основного ПК, но это было сопряжено с массой административных сложностей. А появление Virtual Machine Manager и аналогичных продуктов дало мощный старт целому направлению в области виртуализации.

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

Каталог статей

    • KVM технологии виртуализации
      • Один, предварительное знание
        • 1. Состав компьютера
        • 2.cpu
        • 3. Переключение контекста
        • 4. Процесс
        • 5. Резьба
        • 6. Процесс против потока
        • 7. Пользовательское пространство
        • 8. Пространство ядра
        • 9. архитектура Linux
        • 10. Статус выполнения процесса
      • 2. Виртуализация
        • 1. Определение технологии виртуализации
        • 2. Классификация технологий виртуализации.
        • 3. Технология виртуализации VMM
        • 4. Историческое развитие технологии виртуализации.
          • 4.1 Два типа гипервизора
          • 4.2 Виртуализация Type1 и Type2
          • 4.3 разработка сервера x86
          • 4.4 Технология полной виртуализации
          • 4.5 Технология паравиртуализации
          • 4.6 Полная виртуализация с аппаратной поддержкой
          • 4.7 Развитие технологии виртуализации
      • Три, KVM
        • 1./dev/kvm & qemu
        • 2. Установка и управление KVM
          • 2.1 Просмотр
          • 2.2 Шаги по созданию виртуальной машины
      • Четыре, проблема
        • 1. Виртуализация оборудования и виртуализация программного обеспечения
        • 2. Полная виртуализация и паравиртуализация
          • 2.1 Технология полной виртуализации
          • 2.2 Технология паравиртуализации
          • 2.3 Внедрение технологии виртуализации
        • 3.qemu&kvm
        • 4. Технологии виртуализации разных производителей.
          • 4.1 KVM
          • 4.2 Xen
          • 4.3 vmware
          • 4.4 Microsoft HyperV
        • 5.Отношение kvm и openstack
          • 5.1 openstack
          • 5.2 kvm
          • 5.3 Судьба с Linux
          • 5.4 OpenStack и KVM отражают друг друга
        • 6.docker
        • 7. Облачные вычисления
          • 6.1 Определение
          • 6.2 Согласно многоуровневой модели обслуживания

KVM технологии виртуализации

1. Предварительные знания

1. Состав компьютера

  • cpu
  • RAM
  • Различные ресурсы
    Графическая карта
    дисковод компакт-дисков
    клавиатура
    и другие периферийные устройства

2.cpu

3. Переключение контекста

​ context switching

4. Процесс

Процесс — это экземпляр запущенной программы, а процесс — это наименьшая единица распределения ресурсов.
pid
Дескриптор процесса
память
io и т. д.

5. Резьба

Поток — это наименьшая единица планирования ЦП

6. Процесс против потока

  • Проведя простую аналогию: процесс = поезд, поток = каретка.
  • Поток опускается в процессе (чистая каретка не может работать)
  • Процесс может содержать несколько потоков (в поезде может быть несколько вагонов)
  • Трудно обмениваться данными между различными процессами (пассажиров одного поезда сложно пересадить на другой поезд, например, при пересадке на станцию)
  • Легко обмениваться данными между разными потоками в одном процессе (каретку A легко заменить на каретку B)
  • Процессы потребляют больше компьютерных ресурсов, чем потоки (несколько поездов потребляют больше ресурсов, чем несколько вагонов)
  • Процессы не будут влиять друг на друга, и зависание одного потока приведет к зависанию всего процесса (поезд не повлияет на другой поезд, но если средний вагон в поезде горит, это повлияет на все вагоны)
  • Процесс можно распространить на несколько машин, и процесс подходит максимум для нескольких ядер (разные поезда могут двигаться по нескольким путям, а вагоны одного и того же поезда не могут находиться на разных путях)
  • Адрес памяти, используемый процессом, может быть заблокирован, то есть, когда поток использует некоторую разделяемую память, другие потоки должны дождаться его завершения, прежде чем использовать эту память. (Типа туалета в поезде) — «блокировка взаимного исключения»
  • Адрес памяти, используемый процессом, может ограничивать объем использования (например, ресторан в поезде, только то, сколько людей может войти, если он заполнен, вам нужно ждать у двери и ждать, пока кто-нибудь выйдет, прежде чем вы сможете войти) — «семафор»

7. Пользовательское пространство

Пользовательское пространство — это рабочее пространство пользовательской программы.

8. Пространство ядра

Пространство ядра — это операционное пространство ядра Linux.

top
us
Процент процессорного времени, проводимого в пространстве пользователя
sy
Процент времени, проведенного в пространстве ядра
ni
Аббревиатура от nice, процент времени, затрачиваемого ЦП на хороший процесс (низкий приоритет).
id
Аббревиатура для простоя: процент времени, в течение которого ЦП потребляется простаивающими процессами. Чем ниже значение, тем больше загружен ЦП.
wa
Аббревиатура ожидания, процент времени, в течение которого ЦП ожидает внешнего ввода-вывода. В это время ЦП не может выполнять другие действия, но не выполняет вычисления. Если это значение слишком велико, это означает, что возникла проблема с внешним устройством.
hi
Аббревиатура для аппаратного прерывания, процент времени, в течение которого ЦП отвечает на запросы аппаратного прерывания.
si
Аббревиатура от программного прерывания, процент времени, в течение которого ЦП отвечает на запросы программного прерывания.
st
Аббревиатура украденного времени, этот индикатор действителен только для виртуальных машин и представляет процент времени, украденного другими виртуальными машинами на том же физическом компьютере, среди процессорного времени, выделенного текущей виртуальной машине.
команда time: просмотреть время выполнения команды
real: все время, в течение которого программа выполняется от начала до конца. Это время, которое может воспринимать пользователь, включая время, когда ЦП переключается на выполнение других задач.
пользователь: время выполнения программы в пользовательском пространстве.
sys: время выполнения программы в пространстве ядра.

Процессорное время процесса = пользователь + система

В случае нескольких процессоров может появиться user + sys> real

9. архитектура Linux

10. Статус выполнения процесса

2. Виртуализация

1. Определение технологии виртуализации

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

2. Классификация технологий виртуализации.

По типу объекта

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

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

3. Технология виртуализации VMM

Монитор виртуальной машины, также известный как гипервизор
Три основных условия структуры виртуализированной системы

  • Управление ресурсами (Resource Control). Программа управления должна уметь управлять всеми системными ресурсами.
  • Эквивалентность. Программа, работающая под управлением управляющей программы (включая операционную систему), за исключением времени и доступности ресурсов, должна быть точно такой же, как и при отсутствии управляющей программы, и заранее запрограммированные привилегированные инструкции могут выполняться свободно.
  • Эффективность (КПД). Подавляющее большинство клиентских инструкций должно выполняться непосредственно аппаратным обеспечением хоста без участия управляющей программы.

4. Историческое развитие технологии виртуализации.

4.1 Два типа гипервизора

  • type2

    VMM работает в традиционной операционной системе, как и другие компьютерные программы.

    • Характеристики
      VMM работает как приложение в основной среде операционной системы.
      Операционная эффективность обычно ниже, чем у типа I.
    • Дело реализации
      До VMware 5.5
      Версии до Xen 3.0
      ​ Virtual PC 2004

  • type1
    Эти гипервизоры запускаются непосредственно на оборудовании хоста, чтобы контролировать оборудование и управлять гостевой операционной системой
    • Характеристики
      требуется поддержка оборудования
      VMM как основная операционная система
      Высокая операционная эффективность
    • Случай реализации:
      VMware 5.5 и более поздние версии
      ​ workstation
      esxi на базе операционной системы linux
      Xen 3.0 и более поздние версии
      ​ Virtual PC 2005
      ​ KVM

4.2 Виртуализация Type1 и Type2

4.3 разработка сервера x86
  • Проблема
    Низкое использование инфраструктуры
    Высокая стоимость инфраструктуры
    Затраты на ИТ-эксплуатацию и обслуживание высоки
    Недостаточная защита от сбоев и аварий
    Стоимость обслуживания рабочего стола конечного пользователя высока
  • архитектура x86
    ЦП Для обеспечения безопасности выполнения программного кода, независимости нескольких пользователей и стабильности операционной системы предлагается концепция состояния выполнения ЦП. Он эффективно ограничивает возможности доступа к данным между различными программами, предотвращает незаконные операции с данными в памяти, а также предотвращает ошибочное управление физическим оборудованием компьютера приложениями. Как правило, ЦП делится на пользовательский режим и режим ядра, а ЦП x86 подразделяется на четыре состояния выполнения Ring 0 ~ 3.
    • RING0
      Ring0 Kernel Mode: это состояние выполнения (рабочий режим) ядра операционной системы. Код, работающий в основном режиме, может оказывать неограниченное влияние на системную память, драйверы устройств и сетевые карты. Доступ к внешним устройствам, таким как интерфейс и графический интерфейс.
      Очевидно, что только операционная система может неограниченно обращаться к данным периферийных аппаратных устройств, таких как память, диск, клавиши мыши, поскольку операционная система существует как диспетчер ресурсов компьютерного оборудования. Это «специальное приложение», которое позволяет более просто и безопасно запускать несколько общих приложений на одном компьютере.
    • RING3
      Пользовательский режим Ring3: программный код, работающий в пользовательском режиме, должен быть проверен ЦП, а программный код пользовательского режима может иметь доступ только к программному коду пользовательского режима, указанному в элементе таблицы страниц памяти. Виртуальный адрес страницы, к которой осуществляется доступ (ограниченный доступ к памяти), и он может получить доступ только к портам, доступ к которым может осуществляться программным кодом пользовательского режима, указанным в битовой карте разрешений ввода-вывода, и не может напрямую обращаться к периферийным аппаратным устройствам и не может вытеснять ЦП.
      Очевидно, что все приложения должны работать в пользовательском режиме. Когда прикладной программе требуется доступ к периферийному аппаратному устройству, ЦП вызывает код состояния ядра через специальный интерфейс, а прикладная программа вызывает аппаратное устройство в этом методе обхода. Если приложение пользовательского режима напрямую вызывает аппаратное устройство, оно будет перехвачено операционной системой и вызовет исключение, и появится окно с предупреждением.

Какая роскошь! ! !

  • виртуализация x86
    • Архитектура x86, естественно, не является виртуализируемой архитектурой. В ЦП архитектуры x86 есть 17 инструкций, которые становятся самым большим препятствием для виртуализации. Неправильное выполнение этих инструкций может привести к тому, что операционная система будет отображать предупреждения, завершать работу приложений или даже полностью аварийно завершить работу.
    • В то время VMware предложила идею решения этой проблемы: когда виртуальная машина генерирует эти специальные инструкции, они «захватываются», а затем преобразуются в виртуализированные безопасные инструкции, при этом гарантируя, что все остальные инструкции выполняются без помех. Это создает высокопроизводительную виртуальную машину, которая соответствует оборудованию хоста и поддерживает полную совместимость программного обеспечения.
      Полная виртуализация
      VMM должен быть построен с использованием чистой программной реализации. VMware стала пионером в этой технологии и прочно занимает лидирующие позиции в области виртуализации.

4.4 Технология полной виртуализации

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

4.5 Технология паравиртуализации

Паравиртуализация — это технология, которая изменяет часть кода гостевой ОС, которая получает доступ к привилегированному состоянию для прямого взаимодействия с VMM. В паравиртуализированной виртуальной машине часть аппаратного интерфейса предоставляется гостевой ОС в виде программного обеспечения, которое может быть предоставлено через Hypercall (прямой вызов, предоставляемый VMM гостевой ОС, аналогично системному вызову). Например, гостевая ОС изменила код переключения таблицы страниц для вызова Hypercall, чтобы напрямую изменить теневой регистр CR3 и преобразовать адрес. Поскольку нет необходимости создавать дополнительные исключения и моделировать часть процесса выполнения оборудования, паравиртуализация может значительно повысить производительность.Самые известные VMM включают Denali и Xen.

4.6 Полная виртуализация с аппаратной поддержкой

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

4.7 Развитие технологии виртуализации
  • В январе 2007 года Sun выпустила программное обеспечение виртуализации с открытым исходным кодом VirtualBox. В том же году компания Xen была приобретена Citrix.
  • В феврале 2007 года ядро ​​Linux 2.6.20 включило в себя модуль ядра виртуализации KVM (Kernel-based Virtual Machine), разработанный израильской компанией Qumranet. Предварительным условием для поддержки KVM является то, что ЦП должен поддерживать технологию виртуализации. .
  • В первом квартале 2008 года Microsoft также выпустила Windows Server 2008 R2 и свой продукт виртуализации Hyper-V.
  • В июне 2008 года Linux Container (LXC) выпустил версию 0.1.0, которая может обеспечивать легкую виртуализацию для изоляции процессов и ресурсов. Это поддержка технологии контейнеров, которая изначально использовалась Docker.
  • 4 сентября 2008 года Red Hat приобрела израильскую компанию Qumranet и начала использовать KVM для замены Xen, используемого в Red Hat.
  • 21 октября 2010 года НАСА выпустило OpenStack, облачную операционную систему IaaS (инфраструктура как услуга). Первая версия была известна как Austin (Остин).
    • R
    • S

Три, KVM

Kernel-Based Virtual Machine

1./dev/kvm & qemu

  • В QEMU-KVM KVM работает в пространстве ядра, QEMU работает в пространстве пользователя и фактически имитирует создание и управление различным виртуальным оборудованием. QEMU интегрирует KVM и вызывает / dev / kvm через / ioctl, тем самым преобразуя часть инструкции CPU Оставьте это модулю ядра. KVM реализует виртуализацию ЦП и памяти, но KVM не может виртуализировать другие аппаратные устройства. Следовательно, qemu также имеет функцию моделирования устройств ввода-вывода (дисков, сетевых карт, видеокарт и т. Д.). KVM плюс QEMU завершен Виртуализация серверов в смысле.
  • QEMU-KVM две основные функции
    • Обеспечивает виртуализацию процессора, памяти (отвечает KVM), устройства ввода-вывода (отвечает QEMU)
    • Управление созданием и вызовом различных виртуальных устройств (отвечает QEMU)
  • В этом решении QEMU моделирует другое оборудование, такое как сеть и диск, что также влияет на производительность этих устройств. Таким образом, проход через паравиртуализированные устройства virtio_blk и virtio_net были созданы для повышения производительности устройства.

Сначала выключите, в настройках виртуальной машины найдите процессор, выберите второй

2. Установка и управление KVM

2.1 Просмотр
[[email protected] tmp]# egrep -c 'vmx|svm'  /proc/cpuinfo
1
[[email protected] tmp]# ls -l /dev/kvm
crw-rw-rw-. 1 root kvm 10, 232 Mar 21 05:06 /dev/kvm
[[email protected] tmp]# modinfo kvm
[[email protected] tmp]# lsmod  | grep kvm
kvm_intel             170086  0 
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm

установка

[[email protected] tmp]# yum install libvirt qemu-kvm qemu-kvm-tools

Управляем запуском libvirtd

[[email protected] tmp]# systemctl start libvirtd.service
[[email protected] tmp]# systemctl enable libvirtd.service

Вы можете увидеть мостовую сетевую карту virbr0 через ifconfig

[[email protected] tmp]# ifconfig

Через ps aux | grep dns вы можете увидеть, что dnsmasq (функции dns и dhcp) запускается автоматически

[[email protected] tmp]# ps aux | grep dns

2.2 Шаги по созданию виртуальной машины
  • Закройте selinux и установите брандмауэр
    • centos6
      • vim /etc/selinux/config
        • selinux=disabled
      • iptables -F && /etc/init.d/iptables save
    • centos7
      • vim /etc/selinux/config
        • selinux=disabled
      • firewall-cmd —zone=public —add-port=5900/tcp —permanent
        • Для удаленного vnc

Готов к работе

Закройте selinux и настройте брандмауэр.

[[email protected] tmp]# vim /etc/selinux/config
SELINUX=disabled

Для удаленного vnc

[[email protected] tmp]# firewall-cmd --zone=public --add-port=5900/tcp --permanent
success

1. Создайте виртуальный диск

[[email protected] ~]# qemu-img create -f raw /data/virt/centos-7.raw 10G
Formatting '/data/virt/centos-7.raw', fmt=raw size=10737418240 

Не забудьте сначала создать папку / data / virt

2. Используйте virt-install для установки виртуальной машины.

[[email protected] tmp]# yum install virt-install

3. Откройте службу libvirtd.

[[email protected] ~]# systemctl enable libvirtd.service
[[email protected] ~]# systemctl start libvirtd.service
[[email protected] ~]# systemctl status libvirtd.service

4. Загрузите файл образа.

[[email protected] virt]# wget http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso

Создайте сетевую виртуальную машину по умолчанию

virt-install --virt-type kvm --name Centos7 --ram 2048 --cdrom /data/virt/CentOS-7-x86_64-Minimal-1908.iso --disk path=/data/virt/centos-7.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

После создания виртуальной машины она будет/run/libvirt/qemu/Создайте его в каталогеxmlФайл создается автоматически. Редактируя этот XML-файл, вы можете изменять такую ​​информацию, как память виртуальной машины, номер ЦП и т. Д. Ниже подробно рассказывается, как управлять виртуальной машиной kvm и оптимизировать ее.

Независимо от того, отслеживается ли порт 5900, порт прослушивания виртуальной машины kvm будет постепенно увеличиваться с 5900

[[email protected] virt]# netstat -lntup | grep kvm
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      41733/qemu-kvm 

5. Управляйте виртуальными машинами через virsh

Соответствующий порядок

• виртуальная машина домена

• virsh list —all

[[email protected] virt]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     Centos7                        running

• virsh domstats NAME

• virsh start NAME

• virsh suspend NAME

• virsh resume NAME

• virsh dumpxml NAME> x.xml резервная копия

[[email protected] qemu]# virsh dumpxml Centos7 > x.xml
[[email protected] qemu]# ls
Centos7.pid  Centos7.xml  x.xml

• virsh edit NAME

• virsh define x.xml

• virsh undefine NAME удалить

• virsh destroy NAME закрыт

6. Измените файл .xml.

Измените xml-файл виртуальной машины

[[email protected] virt]# vim /run/libvirt/qemu/Centos7.xml
 Измените параметры
<vcpu placement='auto' current=1>4</vcpu> 

Перезагрузите виртуальную машину

[[email protected] virt]# virsh shutdown Centos7
[[email protected] virt]# virsh start Centos7

7. Динамически настраивайте vcpus.

[[email protected] virt]# virsh setvcpus Centos7 2 --live
error: invalid argument: requested vcpus is greater than max allowable vcpus for the live domain: 2 > 1

Конечно, нужно иметь достаточно процессора, но здесь его недостаточно.

8. Динамическая регулировка памяти.

[[email protected] virt]# virsh qemu-monitor-command Centos7 --hmp --cmd balloon 1024

9. Управление дисками

Просмотр информации о диске виртуальной машины

[[email protected] qemu]# qemu-img info Centos7.xml
image: Centos7.xml
file format: raw
virtual size: 10K (10240 bytes)
disk size: 12K

Необработанный формат изображения можно преобразовать в другие форматы, но не наоборот.

[[email protected] qemu]# qemu-img convert -f raw -O qcow2 /data/virt/centos-7.raw /data/virt/centos-7.qcow2

10. Управление сетью

Установите виртуальную машину в режим моста

  • Добавьте мостовую сетевую карту к хосту и подключите физическую сетевую карту eth0

1. Просмотр

[[email protected] qemu]# brctl show

2. Добавьте br0

[[email protected] qemu]# brctl addbr br0
[[email protected] qemu]# brctl show

Удалить delbr

3. Мост Ens33 к br0

# Добавляем порт ens33 к мосту br0
brctl addif br0 ens33

 # Удаляем порт ens33 с моста br0
brctl delif br0 ens33
  • Адрес исходной сетевой карты хоста переносится на мостовую сетевую карту.
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    bridge=br0
    vim /etc/sysconfig/network-scripts/ifcfg-br0
    ip,netmask,gateway

inet 192.168.184.100 netmask 255.255.255.0 broadcast 0.0.0.0

  • Отредактируйте xml-файл виртуальной машины
<interface type='bridge'>
 <mac address='52:54:00:0d:5e:a3'/>
 <source bridge='br0'/>
 <model type='virtio'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
 </interface>

Четыре, проблема

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

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

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

Аппаратное обеспечение, поддерживающее виртуализацию:

  • Intel-VT- (Intel Virtualization Technology) — это технология, представленная Intel для устранения недостатков в надежности, безопасности и производительности чисто программных решений виртуализации. Он может заставить ЦП работать как несколько ЦП, работающих параллельно, что позволяет одновременно запускать несколько операционных систем на компьютере.
  • AMD-V- (AMD Virtualization) — это технология виртуализации AMD. Это набор аппаратных расширений и технологий виртуализации с аппаратной поддержкой для архитектуры процессорной системы x86, которые могут упростить чисто программные решения виртуализации, улучшить дизайн VMM (монитора виртуальных машин), полностью использовать аппаратные ресурсы и улучшить серверы. И эффективность виртуализации центра обработки данных

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

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

Программную виртуализацию можно разделить на следующие категории:

  • Полная виртуализация: (Полная виртуализация) Виртуальная машина полностью имитирует базовую аппаратную среду и процесс выполнения привилегированных инструкций, так что гостевая операционная система может работать независимо. Программное обеспечение, поддерживающее полную виртуализацию: Parallels Workstation, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V, VMware Workstation, QEMU и т. Д.
  • Виртуализация с аппаратной поддержкой: (Виртуализация с аппаратной поддержкой) относится к функции поддержки смоделированной операционной среды с помощью аппаратного обеспечения, чтобы гостевая операционная система могла работать независимо и обеспечивать полную виртуализацию. Программное обеспечение, поддерживающее виртуализацию с аппаратной поддержкой: Linux KVM, VMware Workstation, VMware Fusion, Virtual PC, Xen, VirtualBox, Parallels Workstation и т. Д.
  • Частичная виртуализация: (частичная виртуализация) виртуализирует только часть аппаратных ресурсов.Виртуальная машина имитирует часть базовой аппаратной среды, особенно адресное пространство. Такая среда поддерживает совместное использование ресурсов и независимость потоков, но не позволяет создавать независимую гостевую операционную систему.
  • Параллельная виртуализация: виртуальная машина (пара-виртуализация) не нуждается в моделировании оборудования, но предоставляет часть аппаратного интерфейса гостевой операционной системе в виде программного обеспечения. Например: ранний Xen.
  • Виртуализация на уровне ОС: (виртуализация на уровне ОС). Эта технология виртуализирует ядро ​​операционной системы, позволяя разделить экземпляры программного обеспечения в пользовательском пространстве на несколько независимых модулей для запуска в ядре вместо запуска одного экземпляра. . Этот экземпляр программного обеспечения также называется контейнером, механизмом виртуализации и виртуальным частным сервером. Процесс каждого контейнера независим, и для пользователя это похоже на использование собственного выделенного сервера.
    Контейнерная технология Docker относится к категории виртуализации уровня операционной системы.

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

2. Полная виртуализация и паравиртуализация

2.1 Технология полной виртуализации

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

2.2 Технология паравиртуализации

Паравиртуализация — это технология, которая изменяет часть кода гостевой ОС, которая получает доступ к привилегированному состоянию для прямого взаимодействия с VMM. В паравиртуализированной виртуальной машине часть аппаратного интерфейса предоставляется гостевой ОС в виде программного обеспечения, которое может быть предоставлено через Hypercall (прямой вызов, предоставляемый VMM гостевой ОС, аналогично системному вызову). Например, гостевая ОС изменила код переключения таблицы страниц для вызова Hypercall, чтобы напрямую изменить теневой регистр CR3 и преобразовать адрес. Поскольку нет необходимости создавать дополнительные исключения и моделировать часть процесса выполнения оборудования, паравиртуализация может значительно повысить производительность.Самые известные VMM включают Denali и Xen.

2.3 Внедрение технологии виртуализации

Ядро относится к ядру операционной системы.

У всех операционных систем есть ядро, будь то Windows или Linux, они управляют тремя важными ресурсами: вычислениями, сетью и хранилищем.

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

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

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

Чтобы различать режим ядра и режим пользователя, ЦП специально устанавливает для этого четыре уровня привилегий 0,1,2,3.

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

Когда большие коровы пишут ядро ​​Linux, если программа пользовательского режима что-то делает, они повернут ключ до уровня 3. Как только они захотят подать заявку на дополнительные ресурсы, им нужно подать заявку на то, чтобы ключ был повернут на уровень 0, чтобы ядро ​​могло быть на высоком уровне. Авторизуйтесь для доступа к этим ресурсам, после подачи заявки на ресурсы вернитесь в пользовательский режим, а затем верните ключ.

Эта программа работала очень гладко до появления виртуальной машины.

Если вы использовали настольную версию Vmware или настольную версию Virtualbox, вы можете использовать это программное обеспечение для виртуализации для создания виртуальной машины, установки Linux или Windows на виртуальной машине, а внешней операционной системой также может быть Linux или Windows.

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

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

Но когда вы думаете о жизни с точки зрения ядра виртуальной машины, вы сбиваетесь с толку. Что я?

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

Я раскололся.

Уровень виртуализации, то есть Vmware или Virtualbox, должен помочь мне решить эту проблему.

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

Реальный режим работы такой.

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

Режим приложения памяти следующий.

Ядро виртуальной машины: мне нужна память 4G для запуска, поэтому я могу передать ее в свое приложение, указанное выше.
Программное обеспечение для виртуализации: нет проблем, только 4G, вы являетесь ядром, немедленно обращайтесь.
Программное обеспечение виртуализации обратилось к ядру физической машины: отчет, экономка, я запустил виртуальную машину, для которой требуется память 4G, и дал мне 4 комнаты.
Ядро физической машины: зачем нужна еще одна виртуальная машина? Хорошо, дайте вам 90,91,92,93 четыре комнаты.
Программа виртуализации обращается к ядру виртуальной машины: приятель, есть память, все четыре комнаты 0,1,2,3 принадлежат вам, смотрите, вы — ядро, Эксклюзивные ресурсы, пронумерованные от 0, принадлежат вам.
Ядро виртуальной машины: кажется, что я действительно ядро, и я могу использовать его с нуля. Что ж, позвольте мне положить кое-что в третий шкаф в комнате 2.
Программное обеспечение для виртуализации: я должен поставить вещи, без проблем. Я подумал про себя: я проверил, эта виртуальная машина находится в начале комнаты 90. Он хочет поместить вещи в комнату 2, что эквивалентно помещению вещей в комнату 92.
Программное обеспечение виртуализации обращается к ядру физической машины: докладывай, дворецкий, виртуальной машине надо мной что-то нужно поместить в третий шкаф комнаты 92.

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

Одним из недостатков этого подхода является то, что он медленный, что часто бывает невыносимо.

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

Но как решить проблему уровня разрешения? Так что Intel VT-x и AMD AMD-V помогли на аппаратном уровне. Вначале, кто позволяет вам, ребята, которые пишут ядро, так экстравагантно использовать уровень, если у вас кончился 0, он равен 3, и вам не нужно немного экономить. Нет никакого способа, но вам нужно начать заново и получить новый бит флага, что означает, что вы в настоящее время находитесь в состоянии виртуальной машины. Все еще под ядром реальной физической машины.

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

Поэтому при установке виртуальной машины обязательно включите этот флаг физического процессора. Для Intel вы можете просмотреть grep «vmx» / proc / cpuinfo, а для AMD вы можете просмотреть grep «svm» / proc / cpuinfo.

Это называется виртуализацией с аппаратной поддержкой.

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

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

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

3.qemu&kvm

  • В QEMU-KVM KVM работает в пространстве ядра, QEMU работает в пространстве пользователя и фактически имитирует создание и управление различным виртуальным оборудованием. QEMU интегрирует KVM и вызывает / dev / kvm через / ioctl, тем самым преобразуя часть инструкции CPU Оставьте это модулю ядра. KVM реализует виртуализацию ЦП и памяти, но KVM не может виртуализировать другие аппаратные устройства. Следовательно, qemu также имеет функцию моделирования устройств ввода-вывода (дисков, сетевых карт, видеокарт и т. Д.). KVM плюс QEMU завершен Виртуализация серверов в смысле.
  • QEMU-KVM две основные функции
    • Обеспечивает виртуализацию процессора, памяти (отвечает KVM), устройства ввода-вывода (отвечает QEMU)
    • Управление созданием и вызовом различных виртуальных устройств (отвечает QEMU)
  • В этом решении QEMU моделирует другое оборудование, такое как сеть и диск, что также влияет на производительность этих устройств. Таким образом, проход через паравиртуализированные устройства virtio_blk и virtio_net были созданы для повышения производительности устройства.

4. Технологии виртуализации разных производителей.

​ xen
​ vmware
Microsoft HyperV
​ kvm

4.1 KVM

KVM относится к виртуальной машине ядра Linux (на основе ядра) (виртуальной машине). Самым большим преимуществом KVM является то, что он интегрирован с ядром Linux, поэтому работает очень быстро. Хост-операционная система KVM должна быть Linux. Поддерживаемые гостевые операционные системы включают Linux, Windows, Solaris и BSD. Он работает на аппаратных архитектурах x86 и x86_64, которые поддерживают расширения виртуализации. ЦП поддерживает технологию VT.

4.2 Xen

Xen — это монитор виртуальных машин с открытым исходным кодом, разработанный Кембриджским университетом. Недостатком Xen является то, что операционная система должна быть явно модифицирована («портирована») для работы в Xen (но для обеспечения совместимости с пользовательскими приложениями), поэтому это более проблематично. Это позволяет Xen достичь высокопроизводительной виртуализации без специальной аппаратной поддержки. Официальное ядро ​​Linux ранее лишило поддержки Xen.

4.3 vmware

VMWare (Virtual Machineware) — это программное обеспечение для управления виртуальными машинами «виртуальный компьютер». Его продукт может заставить вас запускать две или более системы Windows, DOS, LINUX одновременно на одной машине. По сравнению с системой «multi-start», VMWare использует совершенно иную концепцию. Система с несколькими запусками может запускать только одну систему за раз, и машину необходимо перезапустить при переключении системы. VMWare действительно работает «одновременно», несколько операционных систем переключаются на платформу основной системы, как стандартные приложения Windows. И для каждой операционной системы вы можете выполнить виртуальное разбиение и настройку, не затрагивая данные реального жесткого диска.Вы даже можете подключить несколько виртуальных машин к локальной сети через сетевую карту, что чрезвычайно удобно. Производительность операционной системы VMware намного ниже, чем у системы, непосредственно установленной на жесткий диск, поэтому она больше подходит для обучения и тестирования.

4.4 Microsoft HyperV

Hyper-V — это технология виртуализации гипервизора, предложенная Microsoft. Она использует архитектуру микроядра и учитывает требования безопасности и производительности. Базовый гипервизор Hyper-V работает с наивысшим уровнем привилегий. Microsoft называет его кольцом -1 (а Intel называет его корневым режимом), в то время как ядро ​​ОС и драйверы виртуальной машины работают в кольце 0, а приложение запускается. В кольце 3 эта архитектура не требует использования сложной технологии BT (двоичная привилегированная трансляция инструкций), которая может еще больше повысить безопасность. С точки зрения архитектуры Hyper-V имеет всего три уровня «аппаратно-Hyper-V-виртуальная машина». Он очень маленький, простой по программному обеспечению и не содержит сторонних драйверов, поэтому он безопасен и надежен, эффективен в исполнении и может полностью использовать аппаратные ресурсы. Сделайте производительность системы виртуальной машины ближе к реальной производительности системы.

Hyper-V поддерживает изоляцию на уровне раздела. Раздел — это логически изолированная единица, поддерживаемая гипервизором, и в ней выполняется операционная система. Гипервизор Microsoft должен иметь хотя бы один родительский / корневой раздел для работы 64-разрядной версии операционной системы Windows Server 2008. Стек виртуализации работает в родительском разделе и может напрямую обращаться к аппаратным устройствам. Впоследствии корневой раздел создаст дочерние разделы для размещения гостевой операционной системы. Корневой раздел использует виртуализацию для вызова интерфейсов прикладного программирования (API) для создания подразделов.

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

Технология виртуализации Виртуализация серверов Виртуализация рабочего стола Виртуализация приложений Виртуализация хранилища Виртуализация сети Платформа управления облаком
VMWare vSphere Horizon ThinApp vSAN NSX vRealize Suit
Microsoft Hyper-V RDS APP-V Storage Space Direct Network Controller System Center
Citrix XenServer XenDesktop XenApp PVS SD-WAN Citrix Cloud Services
HuaWei FusionCompute FusionAccess FusionAccess FusionStorage FusionNetwork ManageOne

5.Отношение kvm и openstack

5.1 openstack

OpenStack: проект управления открытым исходным кодом

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

lOpenStack Compute (Nova) — это набор контроллеров, используемых для вычислений виртуальных машин или групп для запуска экземпляров виртуальных машин;

l Служба образов OpenStack (Glance) — это набор систем поиска и извлечения образов виртуальных машин для реализации управления образами виртуальных машин;

l OpenStack Object Storage (Swift) — это набор систем хранения, которые используют объекты как единое целое с помощью встроенных механизмов избыточности и отказоустойчивости в крупномасштабных масштабируемых системах, подобных Amazon S3;

lOpenStack Keystone, используемый для службы идентификации пользователей и управления ресурсами

lOpenStack Horizon, основанный на интерфейсе панели управления Django, представляет собой графический интерфейс управления.

Этот проект с открытым исходным кодом, первоначально разработанный NASA и Rackspace в сотрудничестве в конце 2010 года, направлен на создание платформы облачных вычислений, которую легко развертывать, богато функциями и легко расширять. Первая задача проекта OpenStack:Упростите процесс развертывания облака и обеспечьте ему хорошую масштабируемостьПопытка стать операционной системой дата-центра, Облачная операционная система.

5.2 kvm

KVM: открытая технология виртуализации

KVM (виртуальная машина на основе ядра) — это модуль виртуализации системы с открытым исходным кодом, который требует аппаратной поддержки, такой как технология Intel VT или технология AMD V. Это аппаратная полная виртуализация, полностью встроенная в Linux.

В 2008 году Red Hat приобрела Qumranet, чтобы получить технологию KVM и продвигать ее как часть своей стратегии виртуализации. Когда в 2011 году был выпущен RHEL6, KVM поддерживался как единственный гипервизор. KVM ориентирован на высокую производительность, масштабируемость, высокую безопасность и низкую стоимость.

5.3 Судьба с Linux

Linux, который некоторыми энтузиастами стал эрой облачных вычислений, представляет собой операционную систему с открытым исходным кодом для публичных и частных облаков. Один из них является частью ядра Linux, которое преобразует Linux в гипервизор Type-1 и может без каких-либо изменений пользоваться существующим планированием процессов ядра Linux, управлением памятью и поддержкой устройств.

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

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

5.4 OpenStack и KVM отражают друг друга

OpenStack поддерживает практически все гипервизоры, будь то гипервизоры с открытым исходным кодом (Xen и KVM) или от поставщиков (Hyper-V и VMware). Но в прошлом OpenStack разрабатывался на основе KVM, и KVM часто становился гипервизором по умолчанию. Оба используют одну и ту же концепцию открытого исходного кода и метод разработки.

6.docker

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

  • Ко второму уровню относится быстрый запуск докера. Для запуска виртуальной машины обычно требуется несколько минут.

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

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

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

7. Облачные вычисления

6.1 Определение

1. Модель доставки ресурсов

2. Необходимо использовать через Интернет.

3. Гибкие вычисления, оплата по факту, быстрое расширение.

6.2 Согласно многоуровневой модели обслуживания

​ IAAS
​ PAAS
​ SAAS

1.IAAS

  • Инфраструктура как услуга

2.PAAS

  • Платформа как услуга

3.SAAS

  • Программное обеспечение как услуга
    • Облачный диск, корпоративный почтовый ящик и т. Д.

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

Очередь к компьютеру

Представьте на секунду: начало 60-х годов 20 века, крупный научный институт, несколько сот сотрудников. На весь институт одна вычислительная машина. Если учёному нужно что-то посчитать, он пишет программу и несёт человеку, который работает с ЭВМ — оператору. Тот запускает машину, а когда обработка заканчивается, отдаёт программисту результат.

Вычислительные машины в те годы были редкими, медленными и очень дорогими. У самих программистов доступа к ним не было, потому что «индивидуальная работа» считалась неэффективной: пока человек вводил данные или думал, машина простаивала, а это недопустимо. Чтобы простоя не было, разработчиков и ЭВМ разделяли.

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

Концепция разделения времени или time-sharing — это когда вычислительные ресурсы распределяют между многими пользователями. Она появилась в начале 1960-х годов и привела ко многим революционным изменениям, в том числе, появлению виртуализации.

ЭНИАК, первая электронно-вычислительная машина

Высокоскоростное переключение между задачами

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

Оборудование становилось всё мощнее, задач нескольких пользователей ему уже не хватало. Тогда процессор научили переключаться между задачами чаще. Каждая задача получала «квант» времени, когда процессор занимался её обработкой. Если не успевал завершить, переходил к другой, а первая задача ждала следующего кванта. Переключения происходили так быстро, что каждому пользователю казалось, будто он использует машину единолично.

Впервые концепция разделения времени была реализована в Compatible Time-Sharing System в Массачусетском технологическом институте где-то в начале 1960-х. Она была совместима с Fortran Monitor System и работала на майнфрейме IBM 7090.

Кстати, примерно в то же время систему с разделением времени сделали в Дармутском колледже (том самом, где придумали Бэйсик). Ученым даже удалось её продать, хоть широкого распространения она и не получила.

Консоль IBM 7094. Никаких экранов и привычных устройств ввода-вывода, только кнопки и лампочки. ©️

ArnoldReinhold

Консоль IBM 7094, два накопителя магнитных лент и считыватель перфокарт. Компьютер размером с комнату. ©️

NASA Ames Resarch Center

От разделения времени к виртуализации

Первой операционной системой с поддержкой time-sharing стала Multics, предшественник ОС семейства Unix. И Multics, и система из Дармутского колледжа нашли себе применение, но были далеки от совершенства: медленные, нестабильные, небезопасные. Ученые хотели и знали, как сделать лучше, только возможности оборудования были ограничены. Нужна была поддержка производителей, и вскоре те подключились к работе.

В 1968 году компания IBM создала мейнфрейм нового типа, а к нему, совместно с учёными из Кембриджа, систему CP/CMS. Это была первая ОС с поддержкой виртуализации. В основе CP/CMS лежал монитор виртуальных машин или гипервизор.

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

  1. виртуальные машины используют ресурсы мейнфрейма совместно, а не по очереди, поэтому эффективность выше;
  2. каждая ВМ — точная копия исходной аппаратуры, можно запустить любую ОС, на разных виртуальных машинах разные;
  3. у каждого пользователя своя ОС, поэтому они не влияют друг на друга — вся система становится надёжнее.

Позже CP/CMS усовершенствовали, переименовали и запустили в продажу. Она легла в основу ОС VM/370, с которой поставлялся один из самых популярных мейнфреймов IBM — System/370.

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

Терминал IBM 3270. Выпущен в 1972 году. Напоминает компьютер, но впечатление обманчиво — это просто устройство ввода, все вычисления происходят на мейнфрейме. ©️ Jonathan Schilling

Закат и рассвет технологий виртуализации

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

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

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

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

Когда развились разные операционные системы, понадобилось запускать одну ОС на другой. И это тоже про виртуализацию. В 1988 году анонсировали SoftPC — ПО, которое позволяло запускать приложения Windows и MS-DOS на других операционных системах. Еще через несколько лет появилась Virtual PC, через которую другие операционные системы можно было запускать в ОС Windows.

С развитием интернета для виртуализации появилось еще одна причина возродиться — рынок хостинга.

Серверная виртуализация

Интернет привёл к настоящему расцвету технологий виртуализации.

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

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

Сначала сдавали место на FTP-сервере (фактически, в разных папках одного компьютера) или целый сервер. Но FTP-хостинг был ненадёжным и небезопасным, а целый сервер — дорогим.

Виртуальные сервера стали хорошей альтернативой shared-хостингу: недорогие, а по надёжности близкие к выделенным серверам.

Начали развиваться решения для серверной виртуализации. В начале 2000-х компания VMware представила продукт для рынка серверов x86 — ESX Server. Позже появилось много других решений: гипервизоры Xen, OpenVZ и др. А технологии виртуализации легли в основу облачных технологий, но о них в другой раз.

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

Современный дата-центр. В нём могут храниться часть данных одного крупного интернет-магазина вроде Amazon, а могут — миллионы небольших сайтов. © Switch

VMmanager — современная панель управления виртуализацией

Скриншот раздела Виртуальные машины в VMmanager 6

Раздел «Виртуальные машины» в VMmanager 6. Здесь доступен быстрый просмотр ВМ, быстрые действия и массовые операции

VMmanager делает технологии виртуализации доступными любым компаниям. С его помощью можно создавать виртуальные машины на Linux — и Windows как для продажи, так и для собственных нужд.

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

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

Другие преимущества VMmanager:

  1. Всё в одном месте: панель заменяет консоль, таблицы для учета оборудования, инструменты диагностики и мониторинга.
  2. Простой и удобный интерфейс: конечный пользователь легко сможет сам создать ВМ нужной конфигурации, админ сэкономит время на настройке.
  3. Управление задачами: если возникнет проблема, через журнал задач в панели легко найти причину.

Чтобы оценить интерфейс и возможности VMmanager, запустите демо. Если хотите установить на своё оборудование, скачайте панель. 30 дней бесплатно!

Подпишитесь на статьи экспертов по управлению серверной инфраструктурой

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

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

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

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

Виртуализация — это изоляция вычислительных процессов и вычислительных ресурсов друг от друга.

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

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

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

Затраты на обеспечение работы гипервизора невелики — порядка 3% от вычислительных ресурсов сервера. Но благодаря тому, что теперь можно использовать один сервер одновременно для нескольких приложений, виртуализация позволяет поднять КПД сервера с 10 до 70%! А раз так, нет необходимости для каждого нового приложения выделять новый сервер. Более того, количество серверов можно даже уменьшить.

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

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

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

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

Виртуализация бизнес-приложений позволяет запускать несколько приложений на одном физическом сервере (хосте) вместо того, чтобы выделять для каждого приложения свой сервер. Этот процесс называется консолидацией серверов. Теперь все необходимые для работы организации приложения могут работать на меньшем количестве серверов. Консолидация серверов позволяет снизить затраты на содержание серверной инфраструктуры на 50-60%.

Виртуализация также позволяет существенно повысить надежность работы приложений и их устойчивость к сбоям. В случае отказа одного из серверов размещенные на нем виртуальные машины могут быть автоматически перезапущены на другом сервере и продолжат работу. Этим способом может быть обеспечена высокая доступность в том числе и для таких приложений, которые «не поддаются» традиционной кластеризации средствами Microsoft Windows Server.

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

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

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

Компания VMware, созданная в 1998 году, является пионером виртуализации для платформы x86.

На сегодняшний день VMware — безоговорочный лидер в области виртуализации и облачных вычислений. По итогам 2010 года доля VMware на рынке виртуализации составила 76%.

Продукты VMware по своим функциональным характеристикам превосходят продукты конкурентов. Например, VMware предлагает наиболее компактный и эффективный гипервизор, который обеспечивает более высокие показатели производительности виртуальных машин, а также позволяет разместить на одном сервере большее их количество (т.е. повысить «плотность» виртуальных машин — VM density).

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

Многие технологии, которые «придуманы» и реализованы компанией VMware, до сих пор отсутствуют в продуктах конкурентов. Например, технология Fault Tolerance — создание резервной «зеркальной» виртуальной машины, или технология Storage Live Migration — возможность переноса данных работающих виртуальных машин с одной системы хранения на другую (необходимость в этом может возникнуть, например, для проведения планового технического обслуживания системы хранения).

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

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

Информация о ценах на продукцию VMware — в нашем прайс-листе.


Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

ВВЕДЕНИЕ

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

В наши дни лидерами рынка виртуализации являются VMware, Microsoft, Citrix и Red Hat, однако эти компании не стояли у истоков данной технологии. В 1960-х годах прошлого века все начиналось с разработок специалистов таких компаний, как General Electric (GE), Bell Labs, IBM и др.

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

1 ЗАРОЖДЕНИЕ ВИРТУАЛИЗАЦИИ

Виртуализация зародилась в качестве средства для расширения размеров оперативной памяти компьютеров в 60-х годах прошлого века.

В те времена речь шла о том, чтобы добиться возможности исполнения нескольких программ — первым суперкомпьютером, в котором процессы операционной системы были разделены, стал проект департамента электротехники Университета Манчестера (The University of Manchester) под названием Atlas (финансировался компанией Ferranti Limited).

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

Впервые в Atlas была использована виртуальная память (one-level store) — системное хранилище памяти было отделено от использовавшегося пользовательскими программами. Данные разработки стали первыми шагами по направлению к созданию уровня абстракции, использованного в дальнейшем во всех основных технологиях виртуализации.

Следующим шагом в развитии технологий виртуализации стал проект корпорации IBM. Американские исследователи пошли дальше британских коллег и разработали концепцию «виртуальной машины», попытавшись разделить компьютер на отдельные небольшие части.

Основным компьютером был «научный» IBM 7044 (M44), на котором запускались виртуальные машины 7044 (40X) — на данном этапе виртуальные машины пока ещё не могли в полной мере симулировать работу настоящего «железа».

1.1 CP/CMS

IBM работала над мейнфреймом S/360 — планировалось, что этот продукт станет заменой предыдущим разработкам корпорации. S/360 была однопользовательской системой, которая могла запускать несколько процессов одновременно.

Фокус деятельности корпорации начал меняться после 1 июля 1963 года, когда ученые Массачусетского технологического института (MIT) запустили проект MAC. Изначально сокращение системы было образовано от фразы Mathematics and Computation, показывая направленность разработки, но позднее под MAC стали понимать Multiple Access Computer («компьютер множественного доступа»).[2]

Проект MAC получил грант от американского оборонного агентства DARPA в размере $2 млн — среди поставленных задач было проведение исследований в области операционных систем, искусственного интеллекта и теории вычислений.

Для решения некоторых из этих задач ученым MIT понадобилось компьютерное «железо», с помощью которого могли бы работать несколько пользователей одновременно. Запросы о возможности создания таких систем были отправлены в IBM, General Electric и некоторым другим вендорам.

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

Потеря контракта стала настоящим ударом для IBM — особенно после того, как в корпорации узнали об интересе к многозадачным компьютерам со стороны Bell Labs.[3]

Для удовлетворения нужд MIT и Bell Labs был создан мейнфрейм CP-40. Частным клиентам этот компьютер никогда не продавался и использовался лишь учеными, однако данная разработка является крайне важной вехой в истории виртуализации, поскольку именно она позднее эволюционировала в систему CP-67, которая стала первым коммерческим мейнфреймом с поддержкой виртуализации.

Операционная система CP-67 называлась CP/CMS — первые две буквы были сокращением от Control Program, а CMS — сокращением фразы Console Monitor System.

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

В данном проекте была впервые реализована интерактивность — ранее системы IBM могли только «съедать» поданные на вход программы и печатать результаты вычислений, в CMS появилась возможность взаимодействия с программами во время их работы.[2]

Публичный релиз CP/CMS состоялась в 1968 году. В дальнейшем IBM создала многопользовательскую операционную среду на компьютерах IBM System 370 (1972 году) и System 390 (операционная система VM/ESA).

Проекты IBM оказали наибольшее влияние на развитие технологий виртуализации, однако были не единственными разработками в данном направлении. Среди подобных проектов были:

Livermore Time-Sharing System (LTSS) — разработка лаборатории Лоуренса Ливермора. Исследователи создавали операционную систему для суперкомпьютеров Control Data CDC 7600, которые отобрали звание самых быстрых суперкомпьютеров у проекта Atlas.

Cray Time-Sharing System (CTSS — ранние разработки IBM также скрывались за аналогичной аббревиатурой, не стоит их путать) — система для первых суперкомпьютеров Cray, созданная научной лабораторией Лос-Аламоса в сотрудничестве с лабораторией Ливермора. Компьютеры Cray X-MP с операционной системой CTSS использовались министерством энергетики США для проведения ядерных исследований.

New Livermore Time-Sharing System (NLTSS). Новейшая версия CTSS, поддерживавшая самые передовые технологии своего времени (например, TCP/IP и LINCS). Проект был свернут в конце 80-х годов.[3]

2 ВИРТУАЛИЗАЦИЯ В СССР

В СССР аналогом IBM System/370 являлся проект СВМ (Система Виртуальных Машин), запущенный в 1969 году. Одной из главных задач проекта была адаптация системы IBM VM/370 Release 5 (её более ранняя версия CP/CMS). В СВМ была реализована последовательная и полная виртуализация (на виртуальной машине можно было запустить другую копию СВМ и т.д.).

В 1988 году компания Insignia Solutions представила эмулятор программного обеспечения SoftPC, с помощью которого можно было запускать приложения DOS на рабочих станциях Unix — функциональность, которая ранее была недоступна. В то время PC с возможностью запуска MS DOS стоил около $1500, а рабочая UNIX-станция с SoftPC обошелся бы всего в $500.

В 1989 году была выпущена Mac-версия SoftPC — пользователи этой ОС смогли не только запускать приложения DOS, но и Windows-программы.

Успех SoftPC сподвиг другие компании к выпуску аналогичных продуктов. В 1997 году Apple создала программу Virtual PC (продавалась через компанию Connectix). С помощью этого продукта пользователи Mac получили возможность запускать ОС Windows, что позволило сгладить недостаток софта под Mac.

В 1998 года была основана компания VMware, которая в 1999 году вывела на рынок аналогичный продукт под названием VMware Workstation. Первоначально программа работала только на Windows, однако позднее была добавлена поддержка других операционных систем. В этом же году компания выпустила первое средство виртуализации для платформы x86 под названием VMware Virtual Platform.

3 ДАЛЬНЕЙШЕЕ РАЗВИТИЕ РЫНКА

3.1 РАЗВИТИЕ РЫНКА В 2000-Х ГОДАХ

В 2001 году VMware выпуcтила два новых продукта, которые позволили компании выйти на корпоративный рынок — ESX Server и GSX Server. GSX позволил пользователям запускать виртуальные машины внутри операционных систем вроде MS Windows (данная технология является гипервизором второго типа — Type-2 Hypervisor). ESX Server относится к гипервизорам первого типа (Type-1 Hypervizor) и не требует наличия домашней операционной системы для запуска виртуальных машин.

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

После выпуска ESXServer компания VMware стремительными темпами захватила корпоративный рынок, опередив конкурентов.Вслед за VMware на данный рынок вышли и другие игроки — в 2003 году Microsoft купила Connectix и перезапустила продукт VirtualPC, а затем, в 2005 году выпустила и энтерпрайз-решение MicrosoftVirtualServer. [6]

В 2007 году на рынок корпоративной виртуализации вышла корпорация Citrix, купившая opensource платформу для виртуализации под названием Xensource. Этот продукт затем был переименован в CitrixXenServer.

3.2 ТЕКУЩЕЕ ПОЛОЖЕНИЕ ДЕЛ НА РЫНКЕ

В настоящий момент существует несколько разновидностей виртуализации (серверная, сетевая, десктоп-виртуализация, виртуализация памяти, виртуализация приложений). Наиболее активно развивается сегмент серверной виртуализации.

По данным аналитической компании IT Candor, объём рынка серверов в 2013 году оценивался в $56 млрд ($31 млрд пришелся на физические сервера, а еще $25 на виртуальные). Лидерство VMware на рынке виртуальных серверов на тот момент времени не подвергалось сомнению. Продажи и распределение долей рынка среди основных компаний в сфере аппаратной визуализации представлены на рисунке 1.

Рисунок 1 – Продажи и распределение долей рынка среди основных

компаний в сфере аппаратной визуализации

Тем не менее, у флагманского продукта VMware vSphere Hypervisor, есть конкуренты — Microsoft Hyper-V, Citrix XenServer, Oracle VirtualBox, Red Hat Enterprise Virtualization Hypervisor (REVH). Продажи этих продуктов растут, а доля VMware на рынке снижается. Аналитики американской биржи NASDAQ предсказывают снижение доли компании на общем рынке виртуализации до чуть более 40% к 2020 году (рисунок 2)[4].

Рисунок 2 – рыночная доля компании VMware

4 ТРЕНДЫ ВИРТУАЛИЗАЦИИ

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

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

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

Компания Bromium создала технологию защиты десктоп-компьютеров, построенную на технологиях виртуализации. Это средство умеет создавать микро-виртуальные машины, «внутри» которых запускаются обычные пользовательские процессы (например, открытие веб-страниц или документов). После закрытия документа или окна браузера микро-виртуальная машина уничтожается.[5]

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

Технология виртуальных сетей хранения данных (Virtual SAN)

Сети хранения данных (Storage Area Network, VSAN) позволяют организациям более эффективно использовать свою, в том числе, виртуальную инфраструктуру. Однако подобные продукты для подключения внешних устройств хранения (оптические приводы, дисковые массивы и т.п.) часто стоят слишком дорого для небольших компаний.

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

ЗАКЛЮЧЕНИЕ

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

Безусловно, аппаратная виртуализация повысит защищенность виртуальных систем в корпоративных средах. Сейчас простота разработки платформ виртуализации с использованием аппаратных техник привела к появлению новых игроков на рынке средств виртуализации. Вендоры систем паравиртуализации широко применяют аппаратную виртуализацию для запуска не модифицированных гостевых систем. Дополнительным преимуществом аппаратных техник виртуализации является возможность запуска 64-битных гостевых систем на 32-битных версиях платформ виртуализации (например, VMware ESX Server).

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

Технологии аппаратной виртуализации // URL: https://www.ixbt.com/cm/virtualization-h.shtml

CP/CMS // URL: https://en.wikipedia.org/wiki/CP/CMS

History of CP/CMS // URL: https://en.wikipedia.org/wiki/History_of_CP/CMS

Система виртуальных машин // URL: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD

Аппаратная виртуализация // URL: http://winsetting.ru/apparatnaya-virtualizaciya.html

Что такое виртуализация // URL: https://guides.hexlet.io/virtualization/

image

В наши дни лидерами рынка виртуализации являются VMware, Microsoft, Citrix и Red Hat, однако эти компании не стояли у истоков технологии. В 1960-х годах прошлого века все начиналось с разработок специалистов таких компаний, как General Electric (GE), Bell Labs, IBM и др.

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

На заре

Виртуализация зародилась в качестве средства для расширения размеров оперативной памяти компьютеров в 60-х годах прошлого века.

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

Суперкомпьютер Atlas

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

image
Суперкомпьютер Atlas

Впервые в Atlas была использована виртуальная память (one-level store) — системное хранилище памяти было отделено от использовавшегося пользовательскими программами. Данные разработки стали первыми шагами по направлению к созданию уровня абстракции, использованного в дальнейшем во всех основных технологиях виртуализации.

Проект M44/44X

Следующим шагом в развитии технологий виртуализации стал проект корпорации IBM. Американские исследователи пошли дальше британских коллег и разработали концепцию «виртуальной машины», попытавшись разделить компьютер на отдельные небольшие части.

Основным компьютером был «научный» IBM 7044 (M44), на котором запускались виртуальные машины 7044 (40X) — на данном этапе виртуальные машины не симулировали полностью работу «железа».

CP/CMS

IBM работала над мейнфреймом S/360 — планировалось, что этот продукт станет заменой предыдущим разработкам корпорации. S/360 была однопользовательской системой, которая могла запускать несколько процессов одновременно.

Фокус деятельности корпорации начал меняться после 1 июля 1963 года, когда ученые Массачусетского технологического института (MIT) запустили проект MAC. Изначально сокращение системы было образовано от фразы Mathematics and Computation, показывая направленность разработки, но позднее под MAC стали понимать Multiple Access Computer («компьютер множественного доступа»).

image
IBM S/360

Проект MAC получил грант от американского оборонного агентства DARPA в размере $2 млн — среди поставленных задач было проведение исследований в области операционных систем, искусственного интеллекта и теории вычислений.

Для решения некоторых из этих задач ученым MIT понадобилось компьютерное «железо», с помощью которого могли бы работать несколько пользователей одновременно. Запросы о возможности создания таких систем были отправлены в IBM, General Electric и некоторым другим вендорам.

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

Потеря контракта стала настоящим ударом для IBM — особенно после того, как в корпорации узнали об интересе к многозадачным компьютерам со стороны Bell Labs.

Для удовлетворения нужд MIT и Bell Labs был создан мейнфрейм CP-40. Частным клиентам этот компьютер никогда не продавался и использовался лишь учеными, однако данная разработка является крайне важной вехой в истории виртуализации, поскольку именно она позднее эволюционировала в систему CP-67, которая стала первым коммерческим мейнфреймом с поддержкой виртуализации.

Операционная система CP-67 называлась CP/CMS — первые две буквы были сокращением от Control Program, а CMS — сокращением фразы Console Monitor System.

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

В данном проекте была впервые реализована интерактивность — ранее системы IBM могли только «съедать» поданные на вход программы и печатать результаты вычислений, в CMS появилась возможность взаимодействия с программами во время их работы.

Публичный релиз CP/CMS состоялась в 1968 году. В дальнейшем IBM создала многопользовательскую операционную среду на компьютерах IBM System 370 (1972 году) и System 390 (операционная система VM/ESA).

Другие проекты того времени

Проекты IBM оказали наибольшее влияние на развитие технологий виртуализации, однако были не единственными разработками в данном направлении. Среди подобных проектов были:

  • Livermore Time-Sharing System (LTSS) — разработка лаборатории Лоуренса Ливермора. Исследователи создавали операционную систему для суперкомпьютеров Control Data CDC 7600, которые отобрали звание самых быстрых суперкомпьютеров у проекта Atlas.
  • Cray Time-Sharing System (CTSS — ранние разработки IBM также скрывались за аналогичной аббревиатурой, не стоит их путать) — система для первых суперкомпьютеров Cray, созданная научной лабораторией Лос-Аламоса в сотрудничестве с лабораторией Ливермора. Компьютеры Cray X-MP с операционной системой CTSS использовались министерством энергетики США для проведения ядерных исследований.
  • New Livermore Time-Sharing System (NLTSS). Новейшая версия CTSS, поддерживавшая самые передовые технологии своего времени (например, TCP/IP и LINCS). Проект был свернут в конце 80-х годов.
Виртуализация в СССР

В СССР аналогом IBM System/370 являлся проект СВМ (Система Виртуальных Машин), запущенный в 1969 году. Одной из главных задач проекта была адаптация системы IBM VM/370 Release 5 (её более ранняя версия CP/CMS). В СВМ была реализована последовательная и полная виртуализация (на виртуальной машине можно было запустить другую копию СВМ и т.д.).

image
Экран текстового редактора XEDIT в ПДО СВМ. Изображение: Wikipedia

SoftPC, Virtual PC и VMware

В 1988 году компания Insignia Solutions представила эмулятор программного обеспечения SoftPC, с помощью которого можно было запускать приложения DOS на рабочих станциях Unix — функциональность, которая ранее была недоступна. В то время PC с возможностью запуска MS DOS стоил около $1500, а рабочая UNIX-станция с SoftPC обошелся бы всего в $500.

В 1989 году была выпущена Mac-версия SoftPC — пользователи этой ОС смогли не только запускать приложения DOS, но и Windows-программы.

Успех SoftPC сподвиг другие компании к выпуску аналогичных продуктов. В 1997 году Apple создала программу Virtual PC (продавалась через компанию Connectix). С помощью этого продукта пользователи Mac получили возможность запускать ОС Windows, что позволило сгладить недостаток софта под Mac.

В 1998 года была основана компания VMware, которая в 1999 году вывела на рынок аналогичный продукт под названием VMware Workstation. Первоначально программа работала только на Windows, однако позднее была добавлена поддержка других операционных систем. В этом же году компания выпустила первое средство виртуализации для платформы x86 под названием VMware Virtual Platform.

Развитие рынка в 2000-х

В 2001 году VMware выпуcтила два новых продукта, которые позволили компании выйти на корпоративный рынок — ESX Server и GSX Server. GSX позволил пользователям запускать виртуальные машины внутри операционных систем вроде MS Windows (данная технология является гипервизором второго типа — Type-2 Hypervisor). ESX Server относится к гипервизорам первого типа (Type-1 Hypervizor) и не требует наличия домашней операционной системы для запуска виртуальных машин.

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

image
Различия гипервизоров первого и второго типа. Изображение: IBM.com

После выпуска ESX Server компания VMware стремительными темпами захватила корпоративный рынок, опередив конкурентов.

Вслед за VMware на данный рынок вышли и другие игроки — в 2003 году Microsoft купила Connectix и перезапустила продукт Virtual PC, а затем, в 2005 году выпустила и энтерпрайз-решение Microsoft Virtual Server.

В 2007 году на рынок корпоративной виртуализации вышла корпорация Citrix, купившая open source платформу для виртуализации под названием Xensource. Этот продукт затем был переименован в Citrix XenServer.

Общая история развития технологий виртуализации представлена на инфографике ресурса CloudTweaks:

image
По клику изображение откроется в полном размере

Текущее положение дел на рынке

В настоящий момент существует несколько разновидностей виртуализации (серверная, сетевая, десктоп-виртуализация, виртуализация памяти, виртуализация приложений). Наиболее активно развивается сегмент серверной виртуализации.

По данным аналитической компании IT Candor, объём рынка серверов в 2013 году оценивался в $56 млрд ($31 млрд пришелся на физические сервера, а еще $25 на виртуальные). Лидерство VMware на рынке виртуальных серверов на тот момент времени не подвергалось сомнению:

image

Тем не менее, у флагманского продукта VMware vSphere Hypervisor, есть конкуренты — Microsoft Hyper-V, Citrix XenServer, Oracle VirtualBox, Red Hat Enterprise Virtualization Hypervisor (REVH). Продажи этих продуктов растут, а доля VMware на рынке снижается.

Аналитики американской биржи NASDAQ предсказывают снижение доли компании на общем рынке виртуализации до чуть более 40% к 2020 году.

image

Тренды

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

Кроме того называются следующие перспективные сферы и области, связанные с технологиями виртуализации:

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

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

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

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

Технология виртуальных сетей хранения данных (Virtual SAN)

Сети хранения данных (Storage Area Network, VSAN) позволяют организациям более эффективно использовать свою, в том числе, виртуальную инфраструктуру. Однако подобные продукты для подключения внешних устройств хранения (оптические приводы, дисковые массивы и т.п.) часто стоят слишком дорого для небольших компаний.

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

P. S. Если вы заметили опечатку, ошибку или неточность изложения — напишите личным сообщением и мы оперативно все исправим. Спасибо за внимание!

Материалы и ссылки по теме:

  • Ретроспектива развития технологий виртуализации (Вики)
  • Server Virtualization Period Book
  • History of Virtualization
  • Инфографика истории виртуализации
  • Виртуальные сервера Windows и Linux от 1cloud (сайт компании)

Автор: 1cloud

Источник

Павел Круглей, Минск, Беларусь

The history of virtualization and virtual machines is briefly discussed. The main types of virtualization are described, with focus on hardware-aided types: the first generation — VT-x, VT-d, AMD-v technologies, the second one — EPT / RVI, and the wave of technology, virtualization on mobile devices.

Истоки (1970е)

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

Впервые виртуальная машина появилась в 1961 году в супервизоре суперкомпьютера Atlas, который был разработан английской компанией Ferranti. В середине 60-х годов она была реализована в проект IBM M44/44X Project и машине IBM 7044.

Следующим шагом в развитии идеи виртуализации стала концепция «виртуальной машины». Она появилась в 1965 году, когда исследователи в корпорации IBM предприняли экспериментальную попытку разделить компьютер на отдельные небольшие части. Это направление исследований привело к созданию многопользовательской операционной среды на машинах IBM System 370 и System 390 и операционной системы VM/ESA, совместно называемых генеалогической линией IBM VM (Virtual Machine).

Виртуализация в СССР

Проект СВМ/Система Виртуальных Машин являлся частью
комплексной программы ЕС ЭВМ (аналога IBM System/370), которая была начата в 1969 году. Адаптация системы IBM VM/370 Release 5 и программных продуктов ее окружения были основными целями в начале проекта СВМ.

СВМ (VM, и её ранняя версия CP/CMS) — первая система, в которой была реализована технология виртуальных машин. Виртуализация в СВМ была последовательной и полной, в частности, на виртуальной машине можно было запустить другую копию системы СВМ, и так далее.

Архитектурно СВМ состояла из нескольких независимых компонентов. Центральным компонентом был монитор виртуальных машин (МВМ, IBM-овское название — CP, Control Program), который управлял аппаратурой реальной ЭВМ и реализовывал набор виртуальных машин с заданной конфигурацией. Остальные компоненты представляли собой операционные системы или системонезависимые программы виртуальных машин, работавшие под управлением МВМ: подсистема диалоговой обработки (ПДО), подсистема сетевой передачи файлов (ПСП), подсистема логической коммутации абонентских пунктов (ПЛК), подсистема анализа дампов (ПАД), подсистема дистанционной передачи файлов (ПДП), подсистема контроля технических средств (ПКТ), средства генерации и обслуживания (СГО).

Типы виртуализации

Обычно среди решений на основе виртуализации выделяют:

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

Виртуализация в x86

Впервые апаратная виртуализация была реализована в 386-х процессорах и носила название V86 mode. Этот режим позволял запускать параллельно несколько DOS-приложений.

В 2005-м году компании Intel и AMD представили решения аппаратной поддержки виртуализации — INTEL VT и AMD-V. Были введены дополнительные инструкции для предоставления прямого доступа к ресурсам процессора из гостевых систем. Этот набор дополнительных инструкций носит название Virtual Machine Extensions (VMX). VMX предоставляет инструкции: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMREAD, VMWRITE,
VMCALL, VMLAUNCH, VMRESUME, VMXON и VMXOFF.

Архитектура AMDV похожа на VT и предоставляет те же функциональные возможности, однако предусматривает также ряд дополнительных функций, отсутствующих у Intel VT.

Технология VT-d позволяет избежать полной виртуализации
устройств ввода-вывода. Используя VT-d, VMM сможет «прикреплять» драйверы физических устройств к ВМ, что позволит гостевой ОС взаимодействовать с прикрепленным устройством без передачи управления VMM посредством механизма DMA (прямого доступа устройств к памяти минуя процессор).

Следующее поколение аппаратной виртуализации предусматривает виртуализацию памяти. Это технологии AMD NPT (Nested Page Tables) / Intel EPT (Extended Page Tables). В целом технологии HAP (Hardware Assisted Paging), NPT, EPT и RVI (Rapid Virtualization Indexing) — скорее изобретение маркетологов, так как на самом деле обозначают одно и то же. При вызове операций из гостевой ОС, она отдает команду VMLAUNCH и начинает исполнять свой код, пользуясь далее инструкцией VMRESUME. Однако при операциях с памятью, гостевая ОС должна работать через монитор виртуальных машин VMM для управления памятью (механизм называется Shadow Paging). С использованием же Extended Page Tables (EPT) — гостевая ОС может сама управляться со страницами памяти, включая контроль Page Faults, которые, кстати, проходят через гипервизор и вызывают VMEXIT. Инструкция VMEXIT — это по сути передача управления Монитору виртуальных машин гипервизора, от которого ожидаются какие-то действия. Соответственно, чем меньше вызовов VMEXIT — тем лучше.

Мобильная виртуализация

Компания VMware продемонстрировала MVP (Mobile
Virtualization Platform), гипервизор для мобильных устройств, позволяющий одновременно использовать на телефоне такие платформы, как Google Android и Windows Mobile. Разработку планируется использовать для создания на мобильном устройстве дополнительного защищенного окружения для работы с приватными данными.

Гипервизор MVP был продемонстрирован на планшетном ПК Nokia N800. 128MB ОЗУ и 256MB Flash оказалось достаточно для одновременного запуска двух виртуальных машин с Windows CE 6.0 и Google Android.

TRANGO — гипервизор, а точнее виртуальный процессор, весящий 20 Kb, позволяющий запускать на мобильном устройстве с RISC-процессором от ARM или MIPS несколько гостевых ОС: eCos, Linux, Windows CE и другие ОС.

Компания Citrix объединила свои усилия с группой разработчиков Open Kernel Lab (OK Lab), создав уникальную мобильную платформу под рабочим названием Nirvana Phone.

Проект Nirvana Phone можно рассматривать как гибрид карманного смартфона и традиционных настольных гипервизоров. Виртуальный рабочий стол XenDesktop внутри коммуникаторa Nirvana Phone легко разворачивается в полноценное рабочее место с большим монитором, мышью и клавиатурой за счет применения мобильного клиентского модуля виртуализации OKL4 Microvisor 4.0. Сами разработчики считают, что оптимальным способом подключения периферийных устройств будет беспроводной интерфейс
Bluetooth – использование этого канала позволяет применять массу уже выпускаемых серийно устройств.

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