The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Lguest: Простая платформа виртуализации для Linux (virtual lguest linux limit )


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: virtual, lguest, linux, limit,  (найти похожие документы)
From: Андрей Синицын Date: Mon, 3 Aug 2010 17:02:14 +0000 (UTC) Subject: Lguest: Простая платформа виртуализации для Linux Оригинал: http://boombick.org/blog/posts/57 В основной ветке ядра Linux использовались три системы виртуализации (гипервизоры), начиная с KVM в версии 2.6.20, и продолжая Xen-ом и Lguest в версии 2.6.23. Гипервизоры позволяют пользователю запускать несколько различных ОС на хост-системе. Lguest - простейшая из трех, если рассматривать реализацию и удобство использования. И это делает ее хорошим кандидатом на роль вашего помощника в создании системы виртуализации. Lguest достаточно новая система, поэтому она лишена некоторых особенностей, присущих более "зрелым" системам вирутализации. Она состоит из двух частей: модуля для ядра и клиентской части. Вы можете виртуализировать лишь linux-систему на хосте и гостевая ОС должна иметь ту же версию ядра. Lguest не поддерживает вывод X-сервера для гостевой системы и миграцию объектов виртуальных машин. Соответственно, вы не сможете осуществлять перенос гостевой системы в другие копии гипервизора по сети. Но несмотря даже на такие существенные недостатки, у lguest есть и несомненные преимущества, такие как возможность проверки различных конфигураций ядра, фактически без перезагрузки системы. Несмотря на малый объем основного кода, около 6000 строк, этот гипервизор открывает широкие возможности для начинающих kernel-хакеров и разработчиков систем виртуализации для изучения принципов работы гипервизора. Кроме того, поскольку в lguest отсутствуют некоторые возможности, реализованные в других гипервизорах, он предоставляет разработчикам возможность создания на его основе собственных функций, которые войдут впоследствии в основную ветку ядра linux. Использование lguest Lguest - это паравиртуализационный гипервизор. Это значит, что ядро гостевой системы должно быть модифицировано для запуска в виртуальном окружении, с тем, чтобы оно не пыталось получить доступ к ресурсам системы несанкционированным способом. Для использования lguest вы должны убедиться, что следующий набор опций задействован в конфигурации как гостевого, так хост-ядра. Самый простой путь - это использовать одинаковое ядро. * CONFIG_HIGHMEM64G=n -- у lguest могут возникнуть проблемы с поддержкой больших объемов памяти, так что выключаем * CONFIG_TUN=y/m -- Поддержка универсального TUN/TAP устройства. "y" - встроено в ядро, "m" - собрано модулем * CONFIG_EXPERIMENTAL=y -- Указание на экспериментальный и/или незавершенный код. Ответ Y обеспечивает то, что будут заданы вопросы относительно нижеследующих опций. * CONFIG_PARAVIRT=y -- Код поддержки паравиртуализации в ядре имеет статус "Экспериментальный", но вам это необходимо для работы с lguest. * CONFIG_LGUEST=y/m -- встраивание поддержки lguest в ядро или сборка модуля lg, который и является ядром lguest. * CONFIG_LGUEST_GUEST=y -- Поддержка гостевых систем Пересоберите ядро, загрузитесь с ним и, если вы выбирали сборку модулем любой из необходимых опций, удостоверьтесь, что вы не забыли установить модули командой make modules_install Клиентская часть гипервизора называется launcher.c и расположена в дереве исходных текстов ядра по пути Documentation/lguest/lguest.c Она предназначена для для установки и конфигурации ядер гостевых систем. Используйте команду make в директории с файлом для ее сборки Lguest не может быть загружен с CD/DVD, но позволяет вам установить полноценную linux-систему с окружением X-сервера. Вы должны установить дистрибутив linux на другой раздел жесткого диска или использовать QEMU. После этого вы сможете запускать любое число копий второй системы в виртуализированном окружении. Для запуска гостевой системы перейдите в дерево исзодных текстов ядра, затем в директорию Documentation/lguest и наберите команду ./lguest 64m ../../vmlinux --block=rootfile root=/dev/lgba Параметры означают следующее: 62m - количество выделяемой памяти для виртуальной машины, ../../vmlinux - путь к файлу ядра, rootfile - это файл или блочное устройство, которое должно отображаться как /dev/lgba в гостевой системе. Это должен быть или образ QEMU, или первичный раздел с установленной копией linux. И наконец, /dev/lgba будет указан как корневой раздел для гостевой системы. Если все прошло удачно, то вы увидите приглашение к логину в гостевую систему. Документация Вся документация - это файл README в директории drivers/lguest/. В конце файла есть советы для kernel-хакеров, разрабатывающих расширения для lguest. Если вы обратите внимание на последние две строчки в этом файле, то вы увидите слова "Make preparation!", это значит, что есть цель preparation для make. Запустив команду make Preparation вы получите подробную документацию для lguest, начиная с самых первых шагов и заканчивая самыми тонкими нюансами в работе системы. Документация будет выведена на текущую консоль. Lguest не является подходящей платформой для серьезных корпоративных или научгых решений. Ей предстоит проделать еще долгий путь для полноценной поддержки технологий виртуализации и работы гостевых систем. Но она дает вам прекрасную возможность изучить принципы работы гипервизоров, нюансы их реализации. Вы можете даже форкнуть этот проект и реализовать свой, полнофункциональный гипервизор на базе lguest Паравиртуализация Паравиртуализация предлагает большее быстродействие по сравнению с полной виртуализацией. Гостевая ОС запускается в своем окружении и осуществляет системные вызовы к гипервизору и, таким образом, избавляет от некоторых проблем, связанных с системными вызовами. Гипервизоры, предоставляющие полную виртуализацию, должны следить за системными вызовами, такими как, например, операции ввода/вывода, и эмулировать их на гостевой системе Отличия Lguest от KVM и Xen Xen и KVM - это два других гипервизора, которые включены в ядро linux в последних релизах. KVM - это патч к ядру linux, который позволяет использовать аппаратных технологии виртуализации для ведущих процессоров: Intel (VT -- Virtualization Technology) и AMD (AMD-V -- AMD Virtualization) Он позволяет делать полную виртуализацию и вам не нужно модифицировать гостевую ОС для запуска под KVM. Также вы можете запускать любые гостевые ОС на linux хост-системе. Но, в отличие от lguest, вы должны иметь специальные VT- или AMD-V-совместимые процессоры Xen, как и lguest, позволяет использовать модель паравиртуализации, в которой необходимо модифицировать гостевую ОС для запуска на хост-системе. Xen располагается прямо "на железе" и запускает все копии ОС на компьютере, включая и хост-систему, и это может снизить производительность компьютера в целом. Последние релизы Xen могут запускать и немодифицированные гостевые системы, но только при наличии VT- или AMD-V-совместимых процессоров. Таким образом, Xen является двойным гипервизором, позволяющим использовать как полную виртуализацию, так и паравиртуализацию Оригинал: http://www.linux.com/feature/126293

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Ваш комментарий
Имя:         
E-Mail:      
Заголовок:
Текст:





  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor