18 Виртуализация в OC Linux.

 

 

Виртуализация - это далеко не новое явление: фактически ей уже более четырех десятков лет. Самые первые применения виртуализации имели место в компьютерах IBM

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

·                    Виртуальное окружение — работает с оборудованием (хост-система)

o                   программная виртуальная машина, работающая в обычной ОС

o                   специализированная ОС для виртуализации (гипервизор)

·                    Пользователь — совокупность процессов (гостевая ОС)

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

1. Эмуляция аппаратуры.

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

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

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

3. Паравиртуализация.

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

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

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

Проекты виртуализации для Linux-систем

 

Проект

Тип

Лицензия

Bochs

Эмуляция

LGPL

QEMU

Эмуляция

LGPL/GPL

VMware

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

Proprietary

z/VM

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

Proprietary

Xen

Паравиртуализация

GPL

UML

Паравиртуализация

GPL

Linux-VServer

Виртуализация уровня ОС

GPL

OpenVZ

Виртуализация уровня ОС

GPL

Xen (паравиртуализация)

Xen - это свободное решение с открытыми кодами от компании XenSource, реализующее паравиртуализацию уровня операционной системы. Вспомним, что в случае паравиртуализации и гипервизор, и операционная система участвуют в процессе виртуализации, что требует внесения изменений в ОС, но зато обеспечивает почти естественную производительность.

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

Windows может быть запущена в Xen, но только на системах, в которых запущена Intel Vanderpool или AMD Pacifica. Другие операционные системы, поддерживающие Xen - это Minix, Plan 9, NetBSD, FreeBSD и OpenSolaris.

OpenVZ (виртуализация уровня операционной системы)

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

Листинг 1. Создание VPS из командной строки

$ vzctl create 42 --ostemplate fedora-core-4

Creating VPS private area

VPS private area was created

$ vzctl start 42

Starting VPS ...

VPS is mounted

Вы можете также получить список всех существующих в данный момент VPS, используя команду vzlist, которая работает примерно таким же образом, как стандартная Linux-команда ps.

Для управления процессами в OpenVZ включен двухуровневый планировщик задач (диспетчер) ЦПУ. Этот диспетчер, во-первых, определяет, какой VPS должен получить доступ к ЦПУ. Когда это сделано, планировщик второго уровня запускает процесс на выполнение, устанавливая для него стандартные для Linux приоритеты.

OpenVZ содержит также компонент, который называется beancounters . Beancounter представляет собой набор параметров, определяющих выделение ресурсов для заданного VPS. Этот набор определяет, сколько памяти предоставляется VPS, какие средства межпроцессорного взаимодействия (IPC) доступны объектам, и так далее, задавая тем самым определенный уровень контроля над VPS.

Уникальной особенностью OpenVZ является возможность задавать контрольные точки (to checkpoint) и переносить VPS с одного физического сервера на другой. Задание контрольной точки (Checkpointing) означает что состояние выполняющегося VPS "замораживается" и сохраняется в файле. Этот файл может быть перемещен на новый сервер, где этот VPS может быть восстановлен и запущен в работу с той же точки.

OpenVZ поддерживает различные типы аппаратных архитектур, включая x86, x86-64 и PowerPC.

Hosted by uCoz