Продукты для виртуализации. Возможности свободного программного обеспечения::Журнал СА 11.2009
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6856
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4139
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6283
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3434
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13969
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9100
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7053
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5362
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4594
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3402
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3129
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3379
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3000
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Продукты для виртуализации. Возможности свободного программного обеспечения

Архив номеров / 2009 / Выпуск №11 (84) / Продукты для виртуализации. Возможности свободного программного обеспечения

Рубрика: Администрирование /  Виртуализация

ИГОРЬ ШТОМПЕЛЬ, инженер, системный администратор. Сфера профессиональных интересов – GNU/Linux, функциональное программирование

Продукты для виртуализации
Возможности свободного программного обеспечения

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

Ключевые термины и типы виртуализации

Итак, виртуализация – это абстракция каких-либо ресурсов в вычислительных целях (например, запуск одной операционной системы из-под другой). С данным определением тесно связаны такие понятия, как хост, гостевая операционная система, гипервизор.

Хост – операционная система, в которой осуществляется виртуализация, а гостевая операционная система – это та, которая виртуализируется. Например, на компьютере установлены операционная система gNewSense GNU/Linux и программное обеспечение Virtualbox OSE (об этой версии подробнее далее), в котором запущен Trisquel GNU/Linux. Так вот, gNewSense в данном случае – хост, Trisquel – гостевая операционная система.

Гипервизор – это программное обеспечение, которое позволяет гостевой операционной системе взаимодействовать с физическими (не эмулируемыми, которые использует хост) аппаратными средствами.

В разных источниках выделяются разные типы виртуализации. Например, в Википедии: виртуализация серверов, аппаратная виртуализация, виртуализация уровня ОС и паравиртуализация, виртуализация ресурсов и виртуализация приложений. А Тим Джонс, инженер-консультант Emulex (http://www.emulex.com), в своей статье «Виртуальный Linux» выделил следующие типы – эмуляция оборудования, полная виртуализация, паравиртуализация и виртуализация уровня операционной системы [1].

Рассмотрим, что представляют собой выделенные типы. Итак, эмуляция оборудования – это процесс представления программой виртуализации того или иного программного обеспечения как аппаратного составляющего для гостевой операционной системы. Таким образом, с помощью программы виртуализации, предоставляется возможность работы с виртуальным (эмулирующим работу оригинального) оборудованием.

Например как частный случай выбор объема оперативной памяти на этапе создания гостевой системы. Среди свободных программ подобного типа можно выделить Bochs (http://bochs.sourceforge.net), QEMU (http://www.qemu.org) и FAUmachine (http://www3.informatik.uni-erlangen.de/Research/FAUmachine).

Полная виртуализация отличается от эмуляции оборудования тем, что между гостевой операционной системой и аппаратной частью появляется «посредник». Этот «посредник» – гипервизор, который обеспечивает взаимодействие последних. В мире свободных программ данной функциональностью обладает VirtualBox OSE (http://www.virtualbox.org/wiki/Editions).

Паравиртуализация имеет сходство с полной виртуализацией. При данном подходе гипервизор ответственен за разделение доступа к основным аппаратным средствам. Гостевой операционной системе через гипервизор доступен специализированный API. Последний позволяет «гостю» взаимодействовать с аппаратным обеспечением. Поскольку код, необходимый для осуществления виртуализации, добавлен в ядро Linux (библиотеки и приложения user-space не модифицируются), то отпадает необходимость в дополнительной перекомпиляции. Последнее может иметь место, например, при использовании метода полной виртуализации. Примером свободного программного обеспечения для реализации данного метода может служить Xen (http://www.cl.cam.ac.uk/research/srg/netos/xen).

Эмулятор Bochs

Основателем проекта, как и одним из разработчиков, до сих пор (помимо него изменения в проект вносили несколько сотен человек) является Кевин Лоутон (Kevin Lawton, http://www.linkedin.com/in/kevinlawton). Сегодня у проекта шесть мейнтейнеров.

В основе названия программы лежит игра слов – фонетически оно произноситься так же, как английское слово «box» (технические специалисты любят называть свои машины – «box» (например, «Linux box»), вот и получается, что Bochs эмулирует «box» внутри «box»). Кстати, это отражает и логотип проекта.

Программа (лицензия GNU LGPL) представляет собой эмулятор аппаратного обеспечения архитектуры IA-32 (x86), написанный на языке программирования C++. Bochs доступен для таких операционных систем, как GNU/Linux, BSD-системы, Windows 95/98/NT/2000/XP/Vista и DOS. Среди поддерживаемых платформ – x86 (эмуляция процессоров – 386, 486, Pentium/PentiumII/PentiumIII/Pentium4, x86-64 с поддержкой инструкций MMX, SSEx и 3DNow!), Alpha, Sun и MIPS. В программе возможна работа со следующими гостевыми системами: GNU/Linux, BSD-системы, Windows и DOS (см. рис. 1).

Рисунок 1. Настройка Bochs

Рисунок 1. Настройка Bochs

Bochs поддерживает эмуляцию CD-ROM для операционных систем Linux, Windows, BeOS и большинства BSD-систем. В программе доступна эмуляция Sound Blaster 16 (SB16) – MPU401 (MIDI-процессор) с поддержкой режимов UART (Universal Asynchronous Receiver/Transmitter, Универсальный асинхронный приемопередатчик – перевод данных в/из последовательной в/из параллельную форму). Эмулятор также обладает поддержкой сетевых карт NE2000.

QEMU

Рассмотрим еще один эмулятор аппаратного обеспечения. Проект QEMU был зарегистрирован на http://savannah.nongnu.org 9 апреля 2003 года. Официальный сайт, посвященный QEMU – http://www.qemu.org, был запущен в 2005 году. Сегодня активных участников проекта насчитается 11 человек, а права на торговую марку принадлежат активному разработчику с первых дней проекта Фабрису Беллару (Fabrice Bellard, http://bellard.org) – ведущему разработчику Ffmpeg (создал библиотеку libavcodec). Любопытно, что именно он является автором формулы Беллара, которая позволяет наиболее быстро вычислить единичный разряд числа Пи в двоичном представлении (http://bellard.org/pi).

QEMU в качестве хост-платформ поддерживает x86, x86_64 и PowerPC, а в тестовом режиме – Sparc32 и ARM [2]. Имеет два режима работы. Первый – это «пользовательская эмуляция» (User emulation), при которой возможен запуск бинарных файлов для различных платформ. Второй – это «полная эмуляция» (System emulation), при которой эмулируются платформа полностью (похоже на Bochs) и соответственно операционные системы. Например, на рис. 2 показан запуск gNewSense GNU/Linux 2.3 Deltah с использованием одной из графических оболочек (о них чуть позже), созданных для данного эмулятора, – QtEmu и QEMU.

Рисунок 2. Запуск gNewSense с использованием QEMU

Рисунок 2. Запуск gNewSense с использованием QEMU

В качестве гостевых платформ для «пользовательской эмуляции» доступны x86, ARM, SPARC, MIPS, m68k (Coldfire) и CRIS. Кроме того, x86_64, PowerPC, PowerPC64, SH-4 и MicroBlaze поддерживаются в тестовом режиме, а поддержка SPARC64 и Alpha находится в стадии разработки. Например, QEMU позволяет запустить на x86 бинарный файл для ARM в Linux (т.е. ПО, включая и операционные системы, разработанное для одной платформы в другой) путем реализованной в нем технологии динамического транслятора (подробнее можно прочитать в статье Беллара, описывающей его внутреннее устройство, – http://www.usenix.org/publications/library/proceedings/usenix05/tech/freenix/full_papers/bellard/bellard.pdf). Помимо динамического транслятора для усовершенствования эмуляции в QEMU был реализован специальный акселератор. Последний позволяет выполнить эмулируемый код на процессоре хоста, что значительно повышает эффективность и скорость эмуляции.

Что касается «полной эмуляции», то доступны x86, x86_64, ARM, SPARC, MIPS, MIPS64, m68k (Coldfire); PowerPC, CRIS и MicroBlaze в тестовом режиме; SPARC64, PowerPC64, SH-4 и Alpha – в стадии разработки. При работе с данным эмулятором гостевыми системами могут являться GNU/Linux, FreeBSD, Mac OS X, Windows, BeOS.

Тонкая конфигурация QEMU производится из консоли. Но в то же время для работы с эмулятором доступны различные графические интерфейсы: QtEmu, Qemulator, Qemu Launcher.

FAUmachine

С проектом QEMU связан проект FAUmachine, который создан в Университете Эрланген-Нюрнберг имени Фридриха-Александра на отделении компьютерных наук технического факультета. Официальная страница проекта доступна по адресу http://www3.informatik.uni-erlangen.de/Research/FAUmachine.

FAUmachine – это виртуальная машина, которая запускается как обыкновенный пользовательский процесс (в пространстве пользователя) и работает без привилегий суперпользователя. Процессор FAUmachine основан на эмуляторе QEMU, что, как было отмечено выше, и связывает эти два проекта. Начиная с релиза 20090922, добавлен дополнительный процессор, который использует KVM-модуль ядра Linux для выполнения кода гостевых систем на процессоре хоста вместо эмуляции.

FAUmachine поддерживает эмуляцию следующих аппаратных компонентов: процессоров x86 и x86_64; контроллеров IDE и SCSI; сетевых адаптеров NE2000 и Intel eepro100; звуковой карты SB16; общего VGA-адаптера и графического адаптера Cirrus GD5446; 24 и 48 контактных PCI-карт ввода-вывода. А из периферии – сетевых концентраторов и маршрутизаторов; модемов.

Кроме того, виртуальная машина, как показано на рис. 3, обладает возможностью делать скриншоты эмулируемых систем и снимать видео их работы. В рамках проекта разработан экспериментальный интерпретатор и компилятор языка VHDL – fauhdlc, доступный по адресу – http://www3.informatik.uni-erlangen.de/Research/fauhdlc. Например, с помощью этого языка, по словам разработчиков, можно создавать скрипты, автоматизирующие инсталляцию дистрибутивов Linux и других операционных систем с использованием дисковода компакт-дисков или файлов-образов.

Рисунок 3. Интерфейс FAUmachine наделен кнопками Screenshot и Record

Рисунок 3. Интерфейс FAUmachine наделен кнопками Screenshot и Record

VirtualBox OSE (Open Source Edition)

Об этом программном продукте в мартовском номере «СА» за 2007 год была размещена статья Валентина Синицына «VirtualBox – виртуализация под GPL». Сейчас отметим изменения, которые претерпел продукт за это время.

Список функций, доступных только в закрытой версии VirtualBox, сократился и включает в себя следующее: сервер удаленного доступа к гостевой машине (Remote Display Protocol Server), поддержка USB (в том числе возможность предоставить доступ удаленным машинам к локальным USB-устройствам – USB over RDP). Основная проблема в том, что эти функции востребованы как в корпоративной среде, так и домашними пользователями (последним, конечно же, интересна в первую очередь поддержка USB, которая значительно облегчает вывод данных из виртуальной машины).

Таким образом, в VirtualBox OSE появилась возможность работать с разделяемыми папками (Shared Folders – но при попытке установки для их использования «Дополнений гостевой ОС» программа предлагает произвести загрузку дополнительного файла в формате .iso, лицензионное соглашение для которого мне обнаружить не удалось как на сайте www.virtualbox.org, так в самом файле-образе) и инициатором iSCSI. Последний необходим, чтобы иметь возможность клиентского доступа к интерфейсу SCSI. Разработчики по-прежнему заверяют, что данный список функций будет меняться с течением времени и некоторые станут доступны в свободной версии программы [3].

Гипервизор Xen

Xen – это гипервизор для реализации паравиртуализации. Его разработка была начата исследовательской группой из компьютерной лаборатории (http://www.cl.cam.ac.uk) Кембриджского университета (http://www.cam.ac.uk) как часть проекта Xenoservers (http://www.cl.cam.ac.uk/research/srg/netos/xeno/index.html), финансируемого британским правительством в лице EPSRC (http://www.epsrc.ac.uk/default.htm). Релиз 1.0 был выпущен в октябре 2003 года. В настоящее время над проектом также работают в RedHat, IBM, HP, XenSource, Intel, AMD, Novell.

Основные сферы его применения следующие. Запуск нескольких изолированных (большой плюс в случае сбоя одного из них) друг от друга виртуальных серверов на одном физическом хосте; достижение аппаратной независимости (перенос операционных систем и приложений при переходе на новое оборудование); тестирование различных версий операционных систем, в том числе и параллельно; тестирование и отладка ядра операционной системы (не требуется отдельная машина); достижение большей гибкости кластерных вычислений (например, лучший контроль и изоляция за счет «живой миграции» машин для балансировки нагрузки кластера); необходимость в широкой аппаратной поддержке таких операционных систем, как GNU/Linux.

Что касается аппаратной поддержки, то Xen работает на архитектуре x86 (процессоры P6 и новее – Pentium Pro, Celeron, Pentium II, Pentium III, Pentium IV, Xeon, Athlon и Duron от AMD). Полный список поддерживаемых процессоров доступен по адресу http://wiki.xensource.com/xenwiki/HVM_Compatible_Processors. Имеется возможность работы с многопроцессорными машинами. Кроме того, есть поддержка Hyper-Threading (SMT) и портов на IA64 и PowerPC.

32-битный гипервизор Xen по умолчанию предоставляет возможность работы с Intel's Physical Addressing Extensions (PAE), который обеспечивает адресацию оперативной памяти до 64 Гб (архитектура x86). Без использования PAE адресация гораздо меньше – 4 Гб. Адресация оперативной памяти до 1 Тб доступна для платформ – Intel EM64T и AMD Opteron.

Xen поддерживает работу с таким операционными системами, как GNU/Linux, NetBSD, FreeBSD, Solaris. Если используется процессор без поддержки аппаратной виртуализации, то потребуется модификация ее ядра для использования Xen. При использовании процессоров с поддержкой технологий Intel VT (Intel(R) Virtualization Technology) или AMD SVM (Secure Virtual Machine) изменение ядра гостевой операционной системы не требуется.

KVM или Linux в роли гипервизора

Впервые KVM (Kernel-based Virtual Machine) была включена в ядро Linux версии 2.6.20. KVM – это технология, которая позволяет превратить ядро Linux в гипервизор путем инсталляции модуля ядра kvm.ko. Последний имеет специальные файлы поддержки процессора (kvm-intel.ko – для Intel и kvm-amd.ko – для AMD), другими он использует расширения HVM (Hardware Virtual Machine) процессоров (Intel VT и AMD SVM).

Основная особенность виртуальной машины ядра заключается в том, что она, превращая ядро в гипервизор, обеспечивая высокую скорость виртуализации, позволяет запускать другие операционные системы (например, другие ядра Linux), которые будут иметь изолированное аппаратное обеспечение (сетевую карту, графический адаптер и другое) [4]. Список поддерживаемых гостевых операционных систем обширен. Ознакомиться с ним можно по адресу: http://www.linux-kvm.org/page/Guest_Support_Status. Он включает дистрибутивы GNU/Linux, операционные системы семейства BSD, UNIX (Darwin, MINIX, GNU/Hurd), Solaris/OpenSolaris, Windows и ряд других.

KVM тесно связана с QEMU. QEMU осуществляет операции ввода-вывода с «гостем». Так, все запросы на ввод-вывод со стороны последнего перехватываются и направляются в пространство пользователя для эмулирования процессом QEMU (последний в свою очередь незначительно для этого модифицирован) [5].

***

В статье было рассмотрено свободное программное обеспечение, используемое для виртуализации. Из отмеченных типов последней, наиболее проблемной областью, применительно как к корпоративным требованиям, так и требованиям домашних пользователей, является полная виртуализация и VirtualBox OSE. Кроме того, QEMU способствовал развитию ряда из рассмотренных проектов, а технология KVM стоит особняком и предоставляет более гибкие возможности для осуществления виртуализации.

Стоит отметить, что данная статья не претендует на полноту охвата всех доступных сегодня продуктов для реализации виртуализации – внимание было сконцентрировано только на свободных решениях.

  1. http://www.ibm.com/developerworks/ru/library/l-linuxvirt/index.html.
  2. http://www.qemu.org/status.html.
  3. http://www.virtualbox.org/wiki/Editions.
  4. http://www.linux-kvm.org/page/Main_Page.
  5. http://www.ibm.com/developerworks/ru/library/l-linux-kvm.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru