25 ноября 2019

Виктория Федосеенко

Редактор

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

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

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

Представьте на секунду: начало 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 дней бесплатно!

Виктория Федосеенко

Редактор