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

Некоторые крупные компании, чаще всего это провайдеры услуг, делая, казалось бы, шаг назад, заменяют свои «серверные фермы» мэйнфреймами. Они «сливают» их физически, оставляя логически независимыми. В системах такого рода традиционный компьютер S/390, недавно переименованный в сервер IBM zSeries, обычно работает либо непосредственно под управлением Linux on zSeries, либо под управлением операционной системы zVM (VM/ESA), образуя платформу для большого числа виртуальных Linux-серверов, замещающих собой реальные серверы. Таким способом решается задача консолидации серверов, ставшая сегодня весьма актуальной в силу необходимости повышать надежность, снижать эксплуатационные расходы. Широко используется и альтернативное решение, основанное на мощных многопроцессорных Unix-серверах последнего поколения с SMP-архитектурой, допускающих разбиение на разделы. За последние несколько лет компании Sun Microsystems, Hewlett-Packard и IBM выпустили соответствующие модели Unix-серверов (так называемые «мидфреймы»).

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

Этой категории пользователей настало время обратить внимание на новую программную технологию Virtual Platform, разработанную, запатентованную и производимую компанией VMware. О ней можно сказать, что это «знакомая незнакомка». В силу ряда обстоятельств первоначально эта технология приобрела популярность и в нашей стране, и за рубежом среди энтузиастов ОС Linux [1,2] и пока гораздо меньше известна руководителям информационных служб предприятий. Иногда «линуксоидный» имидж даже мешает, сужая представления о сфере применимости данной технологии, хотя на самом деле она разрабатывалась в расчете именно на корпоративные приложения. Смена приоритетов на начальном этапе вполне объяснима. Дело в том, что хронологически первым программным продуктом, выпущенным VMware, был пакет VMware Workstation, позволяющий, в частности, Windows работать поверх Linux. В этом качестве он обеспечивает возможность выполнения традиционных офисных приложений, возможность, недостающую реализациям этой свободно распространяемой операционной системы. Данное решение было принято на ура, тем более, что его можно загрузить из Сети бесплатно, если и купить, то по вполне умеренной цене, да еще и со скидкой для университетов.

Однако в 2001 году в дополнение к виртуальной рабочей станции появился, наконец, и виртуальный сервер, точнее говоря, программные инструменты, виртуализирующие серверы. Объявлены две модели, VMware GSX server (здесь G, видимо, обозначает group) и ESX server (E — enterprise), предназначенные соответственно для работы на уровне подразделения и предприятия. Новые продукты стоят в пределах нескольких тысяч долларов в зависимости от комплектации. Виртуальные серверы рассчитаны на совершенно иную рыночную нишу, нежели виртуальные станции: они-то в полной мере реализуют потенциал, заложенный в Virtual Platform.

GSX server и ESX server не просто дают удобную возможность пользования двумя операционными системами на одном ПК. Они позволяют воспроизвести «мэйнфреймовскую» идею виртуализации, консолидировав на относительно мощном многопроцессорном Intel-сервере десятки виртуальных серверов. Одновременно обеспечиваются единые средства мониторинга всеми этими виртуальными серверами. В итоге количество физических серверов можно сократить в несколько раз.

Надо сказать, появление серверных продуктов возвращает программное обеспечение VMware к первоосновам. Дело в том, что его ядро, монитор виртуальных машин VMM (virtual machine monitor), задумывался как серверный проект, рассчитанный на поддержку до 1000 процессоров в одной системе, однако в силу материальных ограничений на начальном этапе свелся к созданию рабочей станции. И лишь теперь компания смогла выпустить виртуальные серверы.

О компании VMware

VMware была создана несколько лет назад гармонично дополняющими друг друга супругами Менделем Розенблюмом и Дианой Грин [3]. Мендель — классический образец университетского профессора. Он много лет посвятил теоретическим и практическим вопросам виртуализации, участвовал в проектах монитора для виртуальной масштабируемой машины Disco Machine, среды моделирования SimOS, масштабируемой операционной системы Hive, защитил на эту тему диссертацию в университете Беркли. Затем, в 90-е годы, Розенблюм вел исследовательскую работу в Стэндфордском университете, где окончательно и сформулировал идею монитора виртуальной машины, отличающуюся от традиционной мэйнфреймовской. Напротив, Диана, генеральный директор компании, — человек дела. Она училась в Массачусетском технологическом институте, потом увлеклась поиском золота на затонувших испанских галионах, позже закончила университет Беркли. В свои 45 лет она имеет большой опыт работы в больших компьютерных компаниях: Sybase, Tandem и Silicon Graphics. В 1995 году она создала компанию Vxtreme, продвигавшую технологии передачи цифрового видео, и продала ее спустя 18 месяцев корпорации Microsoft за 75 млн. долл. Видимо к тому времени она оценила перспективность разработок собственного мужа и решила коммерциализовать их.

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

Виртуализация IA-32 по VMware

Чаще всего для воспроизведения одной машины или операционной системы на другой, например, MacOS в среде Windows, применяют эмуляцию. Однако слова «эмуляция» и «эмулятор» уже несут в себе определенный отрицательный налет: этот очевидный прием, как и вообще большинство «лобовых» решений, малоэффективен и потому с практической точки зрения (во всяком случае, в тех случаях, когда критична скорость) неоправдан. VMware Workstation получила широкое признание именно потому, что в ней нет никакой эмуляции и она практически не снижает коэффициент полезного действия компьютера. Достоинство же технологии, разработанной в VMware, состоит в том, что она обеспечивает деление ресурсов реального компьютера на виртуальные машины и установку на них разных операционных систем без заметной потери производительности: накладные расходы, оцененные на тестах, ограничиваются пределами 3-5% (рис. 1). Но этого мало, она обеспечивает виртуализацию, т. е. деление ресурсов реального компьютера на независимые виртуальные машины. В чем же хитрость?

Рис. 1. Эволюция идеи виртуальной машины

Прежде всего надо сказать, что технология Virtual Platform в своем нынешнем состоянии рассчитана только на архитектуру x86 (т.е. на процессоры IA-32 и совместимые с ними), которая заметно отличается от архитектуры процессоров мэйнфреймов. Изюминка платформы заключается в том, что она позволяет «виртуализовать» процессоры, напрямую для этой цели не предназначенные.

С этой точки зрения можно заметить, что первопроходцам виртуализации было в известном смысле проще. Много лет тому назад инженеры корпорации IBM, проявив прозорливость, изначально заложили в архитектуру своих процессоров потенциальную возможность виртуализации. Поэтому создателям операционной системы VM не пришлось преодолевать специфические аппаратные проблемы, им нужно было модифицировать классическую трехуровневую модель компьютера, состоящую из приложения, операционной системы и «железа». Они смогли без особых сложностей «врезать» между операционной системой и аппаратной платформой два дополнительных уровня: монитор виртуальной машины основывается непосредственно на аппаратуре, поверх него разместить нужное количество виртуальных машин, а над ними — операционные системы и приложения. Каждая из псевдомашин может иметь имеет свою собственную ОС и свой набор приложений. Такую схему виртуализации называют stand alone virtual machine («автономная виртуальная машина»).

Простота виртуализации находится в зависимости от связанности процессора и операционной системы. Архитектура IA-32 и ее аналоги не могут быть виртуализованы подобным «простым» способом. Здесь по определению предполагается, что ядру работающей на этой платформе операционной системе будут доступны абсолютно все ресурсы процессора, включая level-0, поэтому отчуждение отдельно взятой ОС от процессора и установка промежуточных виртуализующих «прокладок» теоретически невозможна. Попытка совместить две ОС на паритетных условиях приведет к конфликту между ними. Следовательно, если необходимо, чтобы несколько ОС параллельно сосуществовали на одном или нескольких процессорах, приходится эти ОС ранжировать, выделить из них одну, ту, которая будет обращаться непосредственно к процессорам на нулевом уровне; ее называют «хозяин» (host), а остальные ОС, работающие на вновь созданных виртуальных машинах, являются «гостями» (guest). Скажем, Linux может стать хозяином, а Windows гостем, или же наоборот — в данном случае между ними нет никого приоритета.

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

  • VMware application. Часть архитектуры, являющаяся приложением по отношению к ОС-хозяину. Это приложение, снабженное графическим пользовательским интерфейсом, является инструментом для запуска и конфигурирования ОС-гостей, а также для администрирования виртуальными машинами. Чтобы включить виртуальную машину, VMware application загружает и запускает соответствующий монитор, к нему же этот монитор обращается в процессе работы виртуальной машины, если возникает необходимость в выполнении функций, которые монопольно принадлежат ОС-хозяину.
  • Virtual machine monitor. Часть, которая имеет право на непосредственный доступ к ресурсам процессора. Работает в привилегированном режиме, что позволяет не перегружать ОС-хозяина лишними обращениями. Именно эта часть строго структурирована под x86; в частности, она может оперировать в адресном пространстве, не пересекающемся с ресурсами ОС-хозяина.
  • VMware driver. Часть, включающая драйверы устройств, которые работают под управлением ОС-хозяина. С точки зрения последнего это нормальный процесс, логически же этот компонент выступает шлюзом между VMware application и Virtual machine monitor.

Виртуальные серверы в реальной жизни

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

В качестве аппаратной платформы для VMware ESX Server может использоваться практически любой одно- или многопроцессорный сервер на базе Pentium II, Pentium III, Pentium 4 или AMD Athlon с оперативной памятью в пределах от 512 Мбайт до 4 Гбайт и дисковым пространством не менее 500 Мбайт на каждую планируемую виртуальную машину. В роли ОС-хозяина могут быть использованы Microsoft Windows 2000 (Server и Advanced Server), Windows NT (4.0 Server, Service Pack 3 и выше) и Linux (Red Hat 6.x и 7.x).

Каждая из виртуальных машин, образуемых сервером ESX Server, — это совершенно полноценный компьютер, на который можно ставить любые приложения, СУБД, графику и т.д. Он обладает практически такими же параметрами, как обычный однопроцессорный сервер, в нем «установлен» виртуальный процессор Intel IA-32 с памятью 2 Гбайт, до четырех устройств IDE (жесткие диски или дисководы CD-ROM), до четырех виртуальных адаптеров SCSI, каждый поддерживает до 15 устройств, стандартный набор портов. Консолью для виртуальных машин может быть любой стандартный ПК с самыми минимальными требованиями.

Использование виртуальных серверов становится реальностью. Из крупных производителей, специализирующихся на выпуске Intel-серверов, серьезное внимание к консолидации серверов на основе технологии VMware Virtual Platform уже проявила корпорация Dell. Еще одно неожиданное признание актуальности технологии виртуальных серверов прозвучало на прошедшей в ноябре 2001 года выставке Comdex в Лас-Вегасе. Здесь, разумеется, в центре внимания были ультратонкие серверы, так называемые «бритвы» (blade) и процессоры для них, на них сегодня ставят практически все производители серверов. Но стоит обратить внимание на сообщение сделанное представителем IBM, он сказал, что его компания готовится к выпуску в 2002 году «виртуальных бритв» на основе технологии VMware.

Это в будущем, но уже сейчас можно назвать несколько примеров успешного внедрения VMware ESX Server. Из них наиболее впечатляющим является решение компании PricewaterhouseCoopers, реализованное в 2001 году, где удалось консолидировать 650 серверов, ранее разбросанных по 26 площадкам, всего на 350 серверах, установленных в одном центре обработки данных.

Литература

  1. Виктор Костромин, Две системы на одном компьютере. "Открытые Системы", 2001, № 7-8
  2. Виктор Костромин, Виртуальный компьютер: Обмен данными с реальным миром. "Открытые Системы", 2001, № 11
  3. http://www.oreillynet.com/ pub/ a/ linux/ 2000/ 02/ 18/ interview/ rosenblum1.html
  4. www.cse.nd.edu/ courses/ cse341/ www/ VMWare_whitepaper.pdf
  5. http://ftp.hit.edu.cn/ linux/ Datas/ Docs/ webmirror/ www.vmware.com/ virtualplatform.html