Загрузил Фантомас Михалыч

l-linuxvirt-pdf

реклама
Виртуальный Linux
Обзор методов виртуализации, архитектур и реализаций
М. Тим Джонс ([email protected])
инженер-консультант
Emulex
28.04.2007
Виртуализацию все понимают по-разному. Сейчас это, прежде всего, означает
виртуализацию серверов или хостинг нескольких независимых операционных
систем на одном компьютере. В данной статье рассматриваются основные принципы
виртуализации и обсуждаются пути их реализации. Также рассматриваются и некоторые
другие способы виртуализации, например, виртуализация ОС в Linux.
Виртуализировать означает взять нечто одной формы и заставить его казаться другой
формы. Виртуализировать компьютер означает заставить компьютер казаться сразу
несколькими компьютерами или совершенно другим компьютером.
Виртуализацией также называется ситуация, когда несколько компьютеров представляются
как один отдельный компьютер. Обычно это называют серверным кластером или grid
computing.
Давайте начнем с истоков виртуализации.
Обзор истории виртуализации
Виртуализация тема не новая. Фактически ей уже более четырех десятилетий. Наиболее
раннее использование виртуализации включали IBM® 7044, Compatible Time Sharing System
(CTSS), разработанная Массачусетским Технологическим Институтом (Massachusetts
Institute of Technology - MIT) на IBM 704 и проект Atlas Университета Манчестера (один из
первых суперкомпьютеров в мире), которые начали прокладывать путь в соответствии с
требованиями сопровождения и запросами пользователей.
Виртуализация оборудования
IBM признала важность виртуализации еще в 1960-х вместе с развитием мэйнфрэйма
System/360™ Model 67. Model 67 виртуализировала все интерфейсы оборудования через
Virtual Machine Monitor или VMM. На заре вычислительной эры операционную систему
называли supervisor. Когда стало возможным запускать одну операционную систему на
© Copyright IBM Corporation 2007
Виртуальный Linux
Торговые марки
Страница 1 из 13
developerWorks®
ibm.com/developerWorks/ru/
другой операционной системе, появился термин hypervisor (гипервизор) (был введен в 1970х).
VMM запускается непосредственно на основном оборудовании, позволяющем множество
виртуальных машин (VM). Каждая VM может тогда обладать своей собственной
операционной системой. В первое время это была CMS (Conversational Monitor System). VM
продолжает развиваться, и сейчас можно обнаружить, что она работает на мэйнфрэйме
System z9™. Это обеспечивает обратную совместимость, вплоть до уровня System/360.
Виртуализация процессора
Другое раннее использование виртуализации, в данном случае симуляция процессора,
это P-code (или pseudo-code) машина. P-code -- это машинный язык, который выполняется
на виртуальной машине, а не на реальном оборудовании. P-code был прославлен в
начале 1970-х Pascal system в Калифорнийском Университете, Сан Диего (University of
California, San Diego -- UCSD), которая компилировала программы на Pascal в P-code и
потом выполняла их на P-code виртуальной машине. Это позволило программам на P-code
быть высоко портируемыми и работать везде, где есть доступ к виртуальной машине P-code.
Виртуальная машина Java (JVM)
Язык Java™ поддерживает P-code модель для своей виртуальной машины. Благодаря
этому программы Java могут выполняться на многочисленных архитектурах просто
портированием на виртуальную машину Java.
Такая же концепция была использована в 1960-е для Basic Combined Programming
Language (BCPL), прародителя языка C. В этом случае компилятор перевел бы код BCPL
во вспомогательный машинный код, названный O-code. В качестве второго шага Ocode был переведен в родной язык для заданной машины. Такая модель используется
современными компиляторами для обеспечения гибкости портирующих компиляторов для
новых принимающих архитектур (разделяя front-end и back-end с помощью вспомогательного
языка).
Командная виртуализация
Наиболее новый аспект виртуализации назван командная виртуализация или бинарная
виртуализация. В этой модели виртуальные команды переводятся (транслируются) на
физические команды основного оборудования. Обычно это происходит динамически.
Поскольку код исполняемый, переводится сегмент кода. Если происходит разветвление, то
новый сегмент кода забирается и переводится. Это похоже на операции кэширования, когда
блоки команд перемещаются из памяти в быструю локальную кэш-память для выполнения.
Свежий пример такой модели был использован в Crusoe central processing unit (CPU),
разработанный Transmeta. Эта архитектура использует бинарную трансляцию под торговой
маркой Code Morphing. Похожим примером может служить сканирование кода исполняющей
среды runtime посредством полной виртуализации решений с целью найти и перенаправить
привилегированные команды (чтобы работать в командном окружении конкретного
процессора).
Виртуальный Linux
Страница 2 из 13
ibm.com/developerWorks/ru/
developerWorks®
Виртуализация и игры
Обзор виртуализации будет неполным, если не упомянуть о Multiple-Arcade
Machine Emulator (MAME). Как видно из имени, это полный машинный эмулятор
множества аркадных игр из прошлого. В добавление к виртуализации процессоров,
использованных в этих играх, виртуализируется машина в целом, включая звуковое и
графическое оборудование и управление. MAME -- это очень мощный инструмент, но
он также интересен для понимания пределов, в которых они выполнены.
Типы виртуализации
Когда производится виртуализация, существует не единственный способ ее осуществления.
Фактически есть несколько путей, с помощью которых достигаются одинаковые результаты
через разные уровни абстракции. В этой главе вам будут представлены три самых общих
метода виртуализации в Linux и проанализированы их относительные преимущества и
недостатки. Иногда используются различные термины для описания одного и того же метода
виртуализации. Здесь мы будем использовать самые общие понятия, ссылаясь на другие
для общей согласованности.
Эмуляция оборудования
Возможно самая сложная виртуализация обеспечивается эмуляцией аппаратных средств.
В этом методе VM аппаратных средств создается на хост-системе, чтобы эмулировать
интересующее оборудование, как показано на Рисунке 1.
Рисунок 1. Эмуляция оборудования использует VM, чтобы моделировать
необходимые аппаратные средства
Эмуляция и разработка
Одно из наиболее интересных использований эмуляции оборудования заключается в
совместном развитии встроенного программного обеспечения и аппаратных средств.
Вместо того, чтобы дожидаться, когда реальные аппаратные средства будут в наличии,
разработчики встроенного программного обеспечения могут использовать целевое
виртуальное оборудование VM, чтобы прояснить многие аспекты фактического кода
путем моделирования.
Как вы могли предполагать, главная проблема при эмуляции аппаратных средств состоит в
том, что процесс может стать мучительно медленным. Поскольку каждая команда должна
моделироваться на основных аппаратных средствах, замедление в 100 раз является
обычным. Для высокоточных эмуляций, которые включают точность цикла, моделируемые
каналы центрального процессора и политику кэширования, фактическая скорость может
быть в 1000 раз меньше.
Виртуальный Linux
Страница 3 из 13
developerWorks®
ibm.com/developerWorks/ru/
Эмуляция аппаратных средств действительно имеет свои преимущества. Например,
используя эмуляцию аппаратных средств, вы можете управлять неизмененной
операционной системой, предназначенной для PowerPC® на системе с ARM процессором.
Вы можете даже управлять многочисленными виртуальными машинами, каждая из которых
будет моделировать другой процессор.
Полная виртуализация
Полная виртуализация, по-другому известная как родная виртуализация, является другим
интересным способом виртуализации. Эта модель использует виртуальную машину, которая
осуществляет связь между гостевой операционной системой и родными аппаратными
средствами (см. Рисунок 2). "Посредничать" здесь является ключевым словом, поскольку
VMM осуществляет посредничество между гостевой операционной системой и собственно
оборудованием. Внутри гипервизора должна быть установлена и настроена определенная
защита, потому что основные аппаратные средства не принадлежат операционной системе,
а разделяются гипервизором.
Рисунок 2. Полная виртуализация использует гипервизор, чтобы
разделять основные аппаратные средства
Гипервизоры на старом оборудовании
Некоторое старое оборудование, такое как x86, создает проблемы для метода полной
виртуализации. Например, некоторые продвинутые команды, которые должны
быть обработаны VMM, не улавливаются. Поэтому гипервизор должен непрерывно
динамически сканировать и перехватывать привилегированный код, чтобы разрешить
эту проблему.
Полная виртуализация работает быстрее, чем эмуляция оборудования, но
производительность меньше, чем у просто оборудования из-за посредничества
гипервизора. Наибольшее преимущество полной виртуализации состоит в том, что в
операционную систему не вносится изменений. Единственное ограничение состоит в
том, что операционная система должна поддерживать основные аппаратные средства
(например, PowerPC).
Паравиртуализация
Паравиртуализация -- это другой популярный способ, который имеет некоторые сходства
с полной виртуализацией. Этот метод использует гипервизор для разделения доступа
к основным аппаратным средствам, но объединяет код, касающийся виртуализации,
в непосредственно операционную систему (см. Рисунок 3). Этот подход устраняет
потребность в любой перекомпиляции или перехватывании, потому что сами операционные
системы кооперируются в процессе виртуализации.
Виртуальный Linux
Страница 4 из 13
ibm.com/developerWorks/ru/
developerWorks®
Рисунок 3. Паравиртуализация разделяет процесс с гостевой
операционной системой
Как уже замечалось, паравиртуализация требует, чтобы гостевая операционная
система была изменена для гипервизора, и это является недостатком метода. Но
зато паравиртуализация предлагает производительность почти как у реальной не
виртуализированной системы. Как и при полной виртуализации, одновременно могут
поддерживаться многочисленные различные операционные системы.
Виртуализация уровня операционной системы
Последний метод, который мы рассмотрим, виртуализация на уровне операционной
системы, использует технику, отличную от предыдущих. Эта техника виртуализирует
серверы непосредственно над операционной системой. Этот метод поддерживает
единственную операционную систему и просто изолирует независимые серверы друг от
друга (см. Рисунок 4).
Рисунок 4. Виртуализация уровня операционной системы изолирует
серверы
Виртуализация уровня операционной системы требует внесения изменений в ядро
операционной системы, но при этом преимуществом является родная производительность.
Почему важна виртуализация?
Прежде чем взглянуть на некоторые варианты виртуализации, доступные сегодня в Linux,
давайте рассмотрим преимущества виртуализации.
Существует множество причин использования виртуализации для бизнес-решений.
Большинство из них сводится к тому, что называется серверная консолидация. Проще
говоря, если вы можете виртуализировать множество недостаточно использованных систем
на отдельном сервере, то вам удастся сэкономить на мощности, месте, охлаждении и
администрировании из-за наличия меньшего количества серверов. Поскольку бывает трудно
Виртуальный Linux
Страница 5 из 13
developerWorks®
ibm.com/developerWorks/ru/
определить нагрузку на сервер, процедура виртуализации поддерживает так называемую
живую миграцию (live migration). Живая миграция позволяет операционной системе, которая
перемещается на новый сервер, и ее приложениям сбалансировать нагрузку на доступном
оборудовании.
Виртуализация также важна для разработчиков. Ядро Linux занимает единственное
адресное пространство, что означает, что отказ ядра или любого драйвера приводит к
аварии всей операционной системы. Виртуализация означает, что вы можете управлять
несколькими операционными системами, и если одна из них терпит крах из-за ошибки,
то гипервизор и другие операционные системы продолжают работать. Это может сделать
отладку ядра подобной отладке пользовательских приложений.
Проекты виртуализации для Linux
В таблице 1 приведены некоторые возможности виртуализации для Linux, и внимание,
прежде всего, уделяется решениям с открытым исходным кодом.
Таблица 1. Проекты виртуализации для Linux
Проект
Тип
Лицензия
Bochs
Эмуляция
LGPL
QEMU
Эмуляция
LGPL/GPL
VMware
Полная виртуализация
Проприетарное
z/VM
Полная виртуализация
Проприетарное
Xen
Паравиртуализация
GPL
UML
Паравиртуализация
GPL
Linux-VServer
Виртуализация уровня операционной
системы
GPL
OpenVZ
Виртуализация уровня операционной
системы
GPL
См. раздел Ресурсы для более подробной информации о других решениях.
Bochs (эмуляция)
Виртуализация на уровне библиотек
До сих пор не обсуждаемый здесь другой метод виртуализации, в котором имитируются
части операционной системы через библиотеки -- виртуализация на уровне библиотек.
Примером такой виртуализации может служить Wine (частичный программный
интерфейс приложений Win32 для Linux) и LxRun (частичный программный интерфейс
приложений Linux для Solaris).
Bochs -- это x86-компьютерный имитатор, который является переносимым и работает на
разнообразных платформах, включая x86, PowerPC, Alpha, SPARC и MIPS. Bochs интересен,
потому что моделируется не только процессор, а весь компьютер, включая периферийные
устройства типа клавиатуры, мыши, графическое и видео оборудование, карточки сетевого
интерфейса (NIC) и так далее.
Виртуальный Linux
Страница 6 из 13
ibm.com/developerWorks/ru/
developerWorks®
Bochs может быть сконфигурирован как старинный Intel® 386 или его преемники, такие
как 486, Pentium, Pentium Pro или 64-битовый. Bochs даже эмулирует дополнительные
графические функции, такие как MMX или 3DNow.
Используя эмулятор Bochs, вы можете управлять любым дистрибутивом Linux на Linux,
Microsoft® Windows® 95/98/nt/2000 (и многообразием приложений) на Linux и даже
операционной системой Berkeley Software Distribution (BSD), FreeBSD, OpenBSD и так далее
на Linux.
QEMU (эмуляция)
QEMU -- другой эмулятор, он похож на Bochs, но имеются и некоторые отличия, которые
стоит отметить. QEMU поддерживает два режима работы. Первый -- режим Полной
Эмуляции Системы. Этот режим похож на работу Bochs, где эмулируется персональный
компьютер (PC) целиком, вместе с процессором и периферией. Этим способом имитируется
множество различных архитектур процессоров, таких как x86, x86_64, ARM, SPARC,
PowerPC и MIPS с разумной скоростью, используя динамический перевод. Этим способом
вы можете эмулировать операционные системы Windows (включая XP) и Linux на Linux,
Solaris и FreeBSD. Поддерживается также и множество других комбинаций операционных
систем (см. раздел Ресурсы для более подробной информации).
QEMU также поддерживает другой режим, именуемый "режим пользовательской эмуляции".
При таком способе, который осуществим только на Linux, можно запускать бинарники для
разных архитектур. Это позволяет, например, выполнить бинарник для архитектуры MIPS
на Linux, запущенном на x86. Другие архитектуры, поддерживаемые при таком режиме,
включают ARM, SPARC и PowerPC, хотя большинство еще только разрабатывается.
VMware (полная виртуализация)
VMware -- коммерческое решение для полной виртуализации. Гипервизор находится
между гостевой операционной системой и непосредственно оборудованием как слой
абстрагирования. Этот слой абстрагирования позволяет любой операционной системе
работать на аппаратных средствах, не имея информации о какой-либо другой гостевой
операционной системе.
VMware также виртуализирует в гипервизоре доступные устройства ввода/вывода и
соответствующие драйверы для высокоэффективных устройств.
Вся виртуализированная среда сохраняется как файл, и это означает, что полная система
(включая гостевую операционную систему, VM и виртуальное оборудование) может быть
легко и быстро перенесена на другой сервер для распределения загрузки.
z/VM (полная виртуализация)
Несмотря на то, что IBM System z™ -- это новый брэнд, фактически он имеет длинную
историю, начиная с 1960-ых. System/360 поддерживала виртуализацию с использованием
виртуальных машин еще в 1965. Интересно, что System z сохраняет обратную
совместимость со старой линейкой System/360.
Виртуальный Linux
Страница 7 из 13
developerWorks®
ibm.com/developerWorks/ru/
z/VM® -- гипервизор операционный системы для System z. В нем -- Программа Контроля
(Control Program -- CP), которая обеспечивает виртуализацию физических ресурсов для
гостевой операционной системы, включая Linux (см. Рисунок 5). Это позволяет множеству
процессоров и другим ресурсам виртуализироваться для множества гостевых операционных
систем.
Рисунок 5. Виртуализация на уровне операционной системы с
использованием z/VM
Z/VM может также эмулировать гостевую локальную сеть (LAN) виртуально для гостевых
операционных систем, которые хотят общаться друг с другом. Это полностью эмулировано в
гипервизоре, поэтому абсолютно безопасно.
Xen (паравиртуализация)
Xen -- свободное решение с открытым исходным кодом для паравиртуализации на уровне
операционной системы от XenSource. Вспомните, что при паравиртуализации гипервизор и
операционная система объединяются при виртуализации, изменяя операционную систему,
но зато приводя почти к родной производительности оборудования.
Поскольку Xen требует объединения (изменения гостевой операционной системы),
только те операционные системы, которые должным образом исправлены, могут быть
виртуализированы с помощью Xen. Так как Linux является сам по себе решением с
открытым исходным кодом, то в данном случае это -- разумный компромисс, потому что
в результате вы имеете лучшую производительность, чем при полной виртуализации. Но
для перспективы широкой поддержки (например, других операционных систем с закрытым
исходным кодом) это обстоятельство является явным неудобством.
Windows можно запускать как гостевую систему на Xen, но только если он запущен на Intel
Vanderpool или AMD Pacifica. Кроме того, Xen поддерживает другие операционные системы,
включая Minix, Plan 9, NetBSD, FreeBSD и OpenSolaris.
User-mode Linux (паравиртуализация)
User-mode Linux (UML) позволяет операционной системе Linux запускать другой Linux в
пространстве пользователя. Каждый гостевой Linux существует как процесс в ОС Linux
хоста (см. Рисунок 6). Это позволяет многочисленным ядрам Linux (с их собственными
пространствами пользователя) работать в контексте одного ядра Linux.
Виртуальный Linux
Страница 8 из 13
ibm.com/developerWorks/ru/
developerWorks®
Рисунок 6. Хостинг Linux в User-mode Linux
В ядре Linux 2.6 UML находится в основном дереве ядра, но должен быть доступен и
перекомпилирован для использования. Эти изменения обеспечивают, кроме всего прочего,
устройство виртуализации. Это позволяет гостевым операционным системам разделять
доступные физические устройства, такие как блочные устройства (гибкий диск, CD-ROM и
файловую систему), консоли, устройства NIC, звуковые аппаратные средства и другие.
Заметим, что, так как гостевые ядра запускаются в пространстве приложений, они должны
быть специально скомпилированы для такого использования (тем не менее, это могут быть
разные версии ядра). Это приводит к так называемому ядру хоста (которое располагается на
аппаратных средствах) и гостевому ядру (которое живет в пространстве пользователя ядра
хоста). Эти ядра даже могут быть вложенными, позволяя гостевому ядру работать на другом
гостевом ядре, которое, в свою очередь, работает на ядре хоста.
Linux-VServer (виртуализация уровня операционной системы)
Linux-VServer -- решение для виртуализации уровня операционной системы. LinuxVServer виртуализирует ядро Linux так, чтобы многочисленные окружения пространства
пользователя, иначе известные как Virtual Private Servers (VPS), работали независимо друг
от друга. Linux-VServer достигает изоляции пользовательских пространств посредством ряда
модификаций ядра Linux.
Чтобы изолировать индивидуальные пространства пользователя друг от друга, начните
с понятия контекста. Контекст -- контейнер для процессов данного VPS, такой, что
инструменты типа ps знают только о процессах VPS. При начальной загрузке ядро
определяет контекст по умолчанию. Также существует контекст для администрирования
(чтобы видеть все исполняемые процессы). Как можно догадаться, чтобы осуществить этот
способ виртуализации, изменены ядро и внутренние структуры данных.
Linux-VServer также использует chroot, чтобы изолировать корневой каталог для каждого
VPS. Вспомните, что chroot позволяет определить новую корневую директорию, но
требуются дополнительные функциональные возможности (названные Chroot-Barrier),
чтобы VPS не мог выходить из изолированного корневого каталога в родительский каталог.
Имея изолированный корневой каталог, каждый VPS имеет свой собственный список
пользователей и пароль root’а.
Linux-VServer поддерживается как 2.4, так и 2.6 ядрами Linux, а также работает на ряде
платформ, включая x86, x86-64, SPARC, MIPS, ARM и PowerPC.
Виртуальный Linux
Страница 9 из 13
developerWorks®
ibm.com/developerWorks/ru/
OpenVZ (виртуализация уровня операционной системы)
OpenVZ -- другой метод виртуализации уровня операционной системы, похожей на LinuxVServer, но имеющий некоторые интересные отличия. 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) и так далее.
Уникальная особенность OpenVZ -- способность к введению контрольных точек (Checkpoint)
и перемещению VPS с одного физического сервера на другой. Checkpointing означает,
что состояние действующего VPS заморожено и сохранено в файле. Этот файл можно
перенести на новый сервер и восстановить, чтобы вернуть VPS в рабочее состояние.
OpenVZ поддерживает множество архитектур, включая x86, x86-64 и PowerPC.
Поддержка оборудования для полной виртуализации и
паравиртуализации
Напомним, что архитектура IA-32 (x86) создает некоторые проблемы при виртуализации.
Некоторые привилегированные команды не перехватываются и могут возвратить разные
результаты в зависимости от способа. Например, команда x86 STR следит за безопасным
состоянием, но возвращаемое значение основано на специфическом запрашиваемом
уровне привилегии. Виртуализация различных операционных систем на различных уровнях
становится проблематичной. Например, x86 поддерживает четыре уровня защиты, где
уровень 0 (самая высокая привилегия) обычно управляет операционной системой, уровни
1 и 2 -- поддержкой служб операционной системы и уровень 3 (самый низкий уровень)
Виртуальный Linux
Страница 10 из 13
ibm.com/developerWorks/ru/
developerWorks®
поддерживает приложения. Вендоры признали этот недостаток (а также и другие) и
произвели новые продукты, которые поддерживают и ускоряют виртуализацию.
Интел создает новую технологию виртуализации, которая поддержит гипервизоры и для
архитектуры x86 (VT-x), и для архитектуры Itanium® (VT-i). VT-x поддерживает два новых
типа операций, один для VMM (root) и другой для гостевой операционной системы (неroot). Операциям root’а дают полные привилегии, в то время как операции не-root’овые
привилегий лишаются (даже для уровня 0). Архитектура также поддерживает гибкость в
определении команд, которые заставляют VM (гостевую операционную систему) выходить
к VMM и сохранению состояния процессора. Были добавлены и другие возможности; см.
Ресурсы.
AMD также создает основанную на оборудовании технологию виртуализации под названием
Pacifica. Между прочим, Pacifica поддерживает блок контроля для гостевой операционной
системы, который сохраняется при выполнении специальных команд. Команда VMRUN
позволяет виртуальной машине (и связанной с ней гостевой операционной системе)
работать, пока VMM не восстановит контроль (который является также конфигурируемым).
Конфигурируемость позволяет VMM настраивать привилегии для каждой из гостевых
ОС. Pacifica также исправляет адресную трансляцию между хостом и гостевым memory
management unit (MMU).
Эти новые технологии могут использоваться множеством методов виртуализации, уже
обсуждаемых здесь, включая Xen, VMware, User-mode Linux и других.
Linux KVM (Kernel Virtual Machine)
Одной из последних новостей в мире Linux стало включение KVM в ядро Linux (2.6.20).
KVM -- решение для полной виртуализации, которое является уникальным в том, что
превращает ядро Linux в гипервизор, используя модуль ядра. Этот модуль позволяет другой
гостевой операционной системе работать в пространстве пользователя ОС Linux хоста (см.
Рисунок 7). Модуль KVM в ядре показывает виртуализированные аппаратные средства
как символьное устройство /dev/kvm. Гостевая операционная система взаимодействует с
модулем KVM, используя модифицированный QEMU-процесс для эмуляции оборудования
персонального компьютера.
Рисунок 7. Виртуализация с использованием Kernel Virtual Machine (KVM)
Модуль KVM вводит в ядро новый способ исполнения. В то время как обычное ядро
поддерживают режим ядра и режим пользователя, KVM представляет новый гостевой
Виртуальный Linux
Страница 11 из 13
developerWorks®
ibm.com/developerWorks/ru/
режим. Гостевой режим используется, чтобы выполнить все команды, не связанные с
операциями ввода/вывода (I/O), в то время как нормальный пользовательский режим
осуществляет ввод/вывод для гостевой ОС.
Введение KVM является интересным развитием Linux, поскольку представляет первую
технологию виртуализации, включенной в основную ветку ядра Linux. Впервые это было
осуществлено в версии 2.6.20, но как модуль может использоваться и в версии 2.6.19. Если
его использовать на оборудовании, поддерживающем виртуализацию, то можно запускать
гостевые операционные системы Linux (32-х и 64-х бит) и Windows (32-бит). Для получения
дополнительной информации по KVM см. раздел Ресурсы.
Резюме
Виртуализация -- это новая великая вещь, если можно сказать "новая" о том, чему уже
более четырех десятилетий. Исторически виртуализация использовалась во множестве
различных ситуаций, но в настоящее время в основным применяется для виртуализации
серверов и операционных систем. Также как Linux, виртуализация обеспечивает множество
путей для повышения производительности, портируемости и гибкости. Это означает, что вы
можете выбрать решение, которое будет лучше соответствовать вашим возможностям и
вашим задачам.
Виртуальный Linux
Страница 12 из 13
ibm.com/developerWorks/ru/
developerWorks®
Об авторе
М. Тим Джонс
M. Тим Джонс (M. Tim Jones) является архитектором встраиваимого
программного обеспечения и автором работ: Программирование Приложений
под GNU/Linux, Программирование AI-приложений и Использование BSDсокетов в различных языках программирования. Он имеет опыт разработки
процессоров для геостационарных космических летательных аппаратов, а также
разработки архитектуры встраиваемых систем и сетевых протоколов. Сейчас
Тим работает инженером-консультантом в корпорации Эмулекс (Emulex Corp.) в
г.Лонгмонт, Колорадо.
© Copyright IBM Corporation 2007
(www.ibm.com/legal/copytrade.shtml)
Торговые марки
(www.ibm.com/developerworks/ru/ibm/trademarks/)
Виртуальный Linux
Страница 13 из 13
Скачать