01 октября 2012
Многоуровневая (сквозная) виртуализация с поддержкой на уровне ОС.
Возможности применения в системах безопасности
Часть 1
В этой статье рассматривается подход архитектурного дизайна облачной системы мониторинга, основанной на принципе многоуровневой (сквозной) виртуализации, который может быть применен для широкого круга современных программно-аппаратных систем, развивающихся в соответствии с тенденциями развития глобальной сети.
Локальная цель данного метода состоит в организации эффективных вычислений, включающих вычисления над метаданными в вычислительной ткани устройств (fabric computing), подключаемых к системе мониторинга. Обосновывается, почему поддержка виртуализации должна быть также обеспечена на уровне ОС устройств, в случае embedded-исполнения, ОС в рамках объединения устройств в слое виртуализации при подключении устройств к рабочей станции или серверу.
Речь идет о том, что в настоящее время сложность вычислительного пространства требует и изменить подход к виртуализации при разработке любых систем, которые предполагают качественную интеграцию в современную вычислительную среду.
Напомним задачу. В разработке находится программно-аппаратная абстракция «телеметрическое облако», которое предполагает обработку информации, поступающей с множества физических и логических сенсорных устройств и абстракций, и реакцию, реализованную с помощью эффекторных устройств. Базовое телеметрическое облако имеет, по крайней мере, две вычислительных ткани: физическую на уровне устройств и логическую на уровне облака [1].

Рис. 1 Телеметрическое облако – две вычислительные ткани
Все физические устройства объединяются в вычислительную ткань, они должны поддерживать интерфейс метаданных, о котором мы начали рассказывать в предыдущих публикациях. Это предполагает увеличение вычислительной нагрузки на ткань. Вычислительные возможности физической ткани ограничены, поэтому в нашем телеметрическом облаке устройства могут получить в качестве сервиса в облаке дополнительные вычислительные возможности, а также данные доступные от других географически распределенных тканей. Таким образом, клиентами сервисного облака становятся не реальные пользователи как это принято обычно, а устройства. В архитектуре нашего облака запросы устройств обслуживает логическая вычислительная ткань на уровне облака, также поддерживающая интерфейс метаданных.
Я не буду приводить многочисленные цитаты мнения экспертов, что представляет собой активно развивающееся в данный момент облачное пространство. Будем относить это к общим знаниям, не требующим цитирование источника. В версии нашей группы, облако – это не просто удаленный сервис, это слой или система виртуализации со специальной облачной архитектурой. Я постараюсь в сжатой форме обосновать свою точку зрения, дать обоснование многоуровневому принципу виртуализации, а также привести анализ подходов и некоторых инициатив, предпринимаемых российскими производителями.
Виртуализация. До настоящего момента системы виртуализации рассматривались локально для решения определенных задач, а именно (список не полный): виртуализация оборудования - памяти, процессора, виртуализация платформ и ресурсов - виртуальные машины на их базе полная или частичная виртуализация, виртуализация логических ресурсов – рабочего стола, приложений, представлений и пр. Разработка технологий виртуализации не подразумевало никакой системности.
Как технологическое направление виртуализация охватывает целый ряд абстракций вычислительных ресурсов, которые могут быть использованы для организации разных аспектов компьютерных вычислений. По сути, виртуализация представляет собой слой сопряжения между логическим и аппаратным слоем или логическим и логическим слоем с принципиально разным устройством. Подобная новая логическая организация в базовой идее должна иметь преимущества перед оригинальной организацией.

Рис. 2 Разделение программного и аппаратного уровня и обеспечения
совместимости за счет стандартного микрокода, IBM System/360
Впервые виртуализация была применена в IBM System/360. Напомним, что этот мейнфрейм подразумевал совершенно новую архитектуру, которая отражала новую техническую стратегию, впоследствии сделавшую из IBM технологического гиганта. Чтобы можно было использовать различные компоненты и различное программное обеспечение на разных компьютерах, был написан слой сопряжения – стандартизованный микрокод. IBM System/360 – это целая линейка первых совместимых компьютеров, которая привела к технологическому прорыву в области вычислительной техники.

Рис. 3 Интерфейсы сопряжения в IBM System/360 Model 67
IBM System/360 была построена на двух впервые примененных принципах архитектурного дизайна: универсальности и совместимости компьютеров. В результате IBM частично перешла на «чужие» компоненты и сконцентрировалась на разработке программного обеспечения. Нужно отметить, что в разработку System/360 было вложено 5 млрд. долларов, это в два раза больше, чем в Манхэттенский проект, в рамках которого разрабатывалась ядерная бомба. Это сравнение приведено неслучайно, а касается значимости нововведений [2].
IBM System/360 не только стала прототипом для отечественной ЕС ЭВМ, но и полностью совместимой платформой, ориентированной на широкий круг задач, а «360» подразумевает «360о круга функциональности». Сначала Винсонт Лирсон (вице-президент IBM) с Бобом Эвансом, возглавлявшим группу разработчиков IBM System/360, решили стандартизировать физические интерфейсы. В результате появились уже ставшие традиционными интерфейсы ввода/вывода I/O, что позволило другим производителям выпускать IBM совместимые компоненты и ввело компьютеры IBM в ряд стандартов «IBM-совместимые». Кроме того, это было дифференцированной реализацией важнейшего архитектурного принципа фон Неймана - «архитектурной жесткости» [3].
Интерфейс I/O – это по факту физический интерфейс сопряжения между «своей» и «чужой» аппаратной архитектурой. К интерфейсу I/O относятся не только порты типа LPT, позволяющие подключать периферийные устройства. Это также и интерфейсы PCI и популярные PCI-Express др. На аппаратном сопряжении IBM не остановилось, появилось логическое сопряжение в виде стандартизованного микрокода для возможности использования программного обеспечения, созданного для других компьютеров.
Для вышеописанных целей понадобилась и специальная операционная система. Была применена операционная система разделения времени, модифицированная CTSS, которую ранее разработали для IBM в МIТ. Она не только обслуживала все процессы, формируемыми аппаратными устройствами и программами, на условиях очереди пакетов, но и реализовывала многопользовательский режим за счет разделения ресурсов и виртуальной машины в IBM System/360 Model 67 (рис. 3). Это было началом эпохи виртуализации, которая с отходом на второй план мейнфреймов была практически забыта на несколько десятилетий.
Продолжение следует