Рубрика «qemu» - 5

Приветствую вас, читатели!

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

Однако, буду рад вниманию знающих и опытных админов, которые, возможно, дадут дельные советы и помогут поправить ошибки, если таковые имеются.

Disclaimer

Поправьте, если не так, но в поиске я не нашел реализации данной задачи именно на CentOS с подробным описанием всех шагов для новичков.
Хорошая серия статей написана librarian, но они для Debian.
Естественно, для бывалых админов, в этом никакой проблемы нет, но повторюсь, моя задача — описать подробную инструкцию для новичков.

Вопрос: в Интернете есть множество руководств для установки Qemu KVM под CentOS, возразите вы, и чем же данная статья будет интересна?
Ответ: здесь описывается полный цикл установки и настройки необходимых для виртуализации компонентов, установка гостевых виртуальных машин (ВМ), настройка белой и серой сети для ВМ, а также некоторые аспекты, которые помогут упростить управление ВМ, используя проброс графики с удаленного сервера на свой ПК и запуском virt-manager.

Помните 7 шагов?
Читать полностью »

Вышла в свет новая версия эмулятора QEMU, которая ознаменовывает окончание слияния двух веток веток разработки KVM и QEMU. Это означает что теперь можно использовать "Ванильное" QEMU для запуска ваших виртуальных машин KVM. Больше не потребуется специальная версия QEMU оптимизированная для KVM. Многие другие  отличительные особенности и и улучшения стали доступны с этим релизом, среди них значительное улучшение в USB3, живое зеркалирование дисков, поддержка томов glusterfs и улучшенная поддержка старого VGA режима.

Больше информации в официальном списке изменений.

Новая версия доступна к загрузке на Читать полностью »

Задача: Запустить, настроить n (в примере будем запускать 3) qemu машин с ОС ubuntu-12.04.1-server-amd64-1шт. и FreeBSD-9.0-RELEASE-amd64. Версия amd64 является рекомендованной разработчиками ubuntu.

1. Инсталляция (Не забываем обновить порты товарищи BSD'дельники)


main [16:54:emulators/qemu]# cd /usr/ports/emulators/qemu                                                 
main [16:55:emulators/qemu]# make install clean


                                                                  

Итак:


main [17:25:emulators/qemu-devel]# pkg_info | grep «qemu»                                                 
kqemu-kmod-devel-1.4.0.p1_5 Kernel Accelerator for QEMU CPU Emulator (development versi
qemu-0.11.1_11 QEMU CPU Emulator                                                                                
main [17:25:emulators/qemu-devel]# 


                                                                                   
Ускоритель и процессорный эмулятор установлены.

2. Создание рабочего пространства и настройка окружения

main [17:40:/usr/QEMU]#mkdir —p /usr/QEMU/UbuEx1


Скачаем образ загрузочного диска ubuntu-12.04.1-server-amd64.iso с официального сайта. Загружаем модули ядра и добавляем их в loader.conf (создаем при необходимости)


main [17:53:/usr/QEMU]# touch /boot/loader.conf
main [17:53:/usr/QEMU]# echo 'kqemu_load=&aquo;YES»' > > /boot/loader.conf
main [17:53:/usr/QEMU]# echo 'aio_load=&aquo;YES»' > > /boot/loader.conf


kqemu.ko — Модуль акселерации.
aio.ko — Модуль асинхронного ввода-вывода.

Или можно добавить модуль aio в ядро, так же для эмуляции работы в сети нам потребуется устройство tap, а следовательно в ядро необходимо подгрузить следующие модули:


options VFS_AIO
device tap
options IPFILTER
options IPFILTER_LOG

main [17:53:/usr/QEMU]# cd /usr/src
main [17:53:/usr/QEMU]# make buildkernel KERNCONF=< kernel_name >

main [17:53:/usr/QEMU]# make installkernel KERNCONF=< kernel_name >

main [17:53:/usr/QEMU]# shutdown —r now


Если не подгрузить модуль aio.ko то QEMU упадет с криком:


Bad system call: 12 (core dumped)


В том случае если вы планируете налаживание сетевого взаимодействия между хостовой FreeBSD и гостевыми системами необходимо так же загрузить седующие модули:


main [18:14:~]# kldload if_bridge
main [18:14:~]# kldload if_tap


После перезагрузки мы увидим, наши модули как погруженные в ядро:


main [18:22:~]# kldstat
Id Refs Address Size Name
1 28 0xffffffff80200000 1203808 kernel
2 1 0xffffffff81404000 2bdd0 kqemu.ko
3 1 0xffffffff81612000 42a7 linprocfs.ko
4 1 0xffffffff81617000 1e00b linux.ko
5 1 0xffffffff81636000 1582 fdescfs.ko
6 1 0xffffffff81638000 64b00 radeon.ko
7 1 0xffffffff8169d000 13a2b drm.ko
8 1 0xffffffff816b1000 2655 if_tap.ko
9 1 0xffffffff816b4000 55fe if_bridge.ko
10 1 0xffffffff816ba000 353d bridgestp.ko


bridgestp.ko — подгрузился автоматически.

Далее убедитесь что ваша основная шина IDE-master подерживает тенологию DMA (сейчас ее поддерживает большенство архитектур)

Так как неободимые модули ядра уже загружены — продолжим подготовку хостовой ОС к предстоящей настройке сети в гостевой ОС. После загрузки модуля if_tap.ko, среди сисемных переменных появятся те, которые регулируют работу интерфесов tap*. Нас интересует две —


main [19:26:~]# sysctl -a | grep «net.link.tap»
net.link.tap.debug: 0
net.link.tap.devfs_cloning: 1
net.link.tap.up_on_open: 0
net.link.tap.user_open: 0


net.link.tap.up_on_open — переводит интерфес в положение up, когда открыт /dev/ tap. net.link.tap.user_open — позволит пользователям открывать /dev/tap. Для ограничения использования устройств /dev/tap* изменим его владельца и права доступа к нему. Это можно сделать задав правила devfs в файле /etc/devfs.rules, по умолчанию в FreeBSD 9.0 его нет, поэтому создаем.


main [20:12:~]# touch /etc/devfs.rules
main [20:18:~]# echo "[sysqemu=11]" >> /etc/devfs.rules
main [20:17:~]# echo «add path 'tap*' mode 0660 group qemu» >> /etc/devfs.rules


Теперь изменим переменные:


main [20:20:~]# sysctl net.link.tap.user_open=1
net.link.tap.user_open: 0 -> 1
main [20:21:~]# echo net.link.tap.up_on_open=1
net.link.tap.up_on_open=1


Теперь подготовим сеть. Мне необходимо, чтобы ко всем машинам можно было подключиться снаружи по IP и они имели выход в локальную сеть виртуалных машин. Итак необходимо создать bridge интерфейс объеденив в него 3 tap интерфейса.
Читать полностью »

Новое ядро предлагает гибридную резервную функцию, может отрезать питания для «PCI» микросхем и включает в себя новую платформу для пользовательских драйверов. Другие новые функции включают в себя усовершенствования системы безопасности для временного каталога, а также квоты и резервное копирование для «Btrfs».

Линусу Торвальдсу и его товарищам разработчикам потребовалось десять недель, чтобы завершить теперь уже выпущенную версию «Linux 3.6». Новая версия, названная «Terrified Chipmunk», предлагает целый ряд новых возможностей, как для домашних пользователей, так и для профессиональных системных администраторов.

Управление энергопотреблением

Новая функция «Suspend to Both» снабжает «Linux 3,6» гибридным резервным потенциалом. «Mac OS X» и «Windows», предлагали такую функцию в течение некоторого времени. Данная функция позволяет компьютеру во время спящего режима хранить данные, как в оперативной памяти, так и на системном диске. Таким образом, система, которая находится в спящем режиме, как правило, просыпается в течение нескольких секунд, как будто пробуждается от «Suspend-To-RAM» (ACPI S3), однако, если во время спящего режима пропало питание (села батарея), то система восстановит данные оперативной памяти с жёсткого диска, как и после «Suspend-to-Disk» (Hibernate). В нашем коротком тесте с более старенькой системой и жёстким диском ёмкостью в 250 ГБ, «Suspend-to-Both» работал как и предполагалось. Он требовал около 16-ти секунд, чтобы уйти в спящий режим — в четыре раза дольше, чем с «Suspend-To-RAM» и также долго, как это требуется для «Suspend-To-Disk».

Ядро «Linux» версии 3.6 может отправлять Читать полностью »

Живая миграция виртуальных машин в ProxMox VE 2.x Недавно был поднят вопрос об использовании VmWare vMotion в небольшом кластере гипервизоров, однако цена данной возможности заставила немного пошевелиться в поисках альтернатив.

Так родился небольшой тестовый дайджест по настройке и эксплуатации возможности Live Migration виртуальных машин на основе QEMU в ProxMox VE 2.1 с использованием iSCSI NAS.

Нужно сказать что во второй версии ProxMox VE, девелоперы избавились от центральной ноды менеджмента кластера. Теперь ее роль может исполнять любая нода кластера, «был бы кворум» (с)

Читать полностью »

Управление облаком на open source софтеВ последнее время очень модными стали решения по построению облачных систем, облака строят все кому не лень. Для конечного пользователя все прозрачно: «Вот тебе точка входа, вот там твои ресурсы — используй!» И мало кто из них задумывается о том, как оно все устроено внутри. Да и не надо им знать, в сущности. Однако, людям, которые заняты как раз конфигурированием подобных систем, очень интересно, а как же это работает у других? И главное — на чем?
Читать полностью »

Запуск Windows 95/98/XP на ARM устройствах на базе Android

Не многие знают о том, что на сегоднящний день существует несколько способов запустить полноценную ОС Windows, на ARM планшете или смартфоне, работающем на платформе Android. Зачастую, такая возможность может понадобиться не только для того чтобы удивить друзей и знакомых, но и для решения вполне серьезных задач. К примеру вам срочно требуется воспользоваться програмой, которая работает только в Windows, в пути, например в тесном метро (не будете же вы там пользоваться 15” ноутбуком). Также способы описанные в статье позволяют стабильно играть в практически любые DOS игры и некоторые для Windows (Fallout к примеру).

Планшеты на базе Windows стоят недешево, а планшет на базе Android, позволяющий нормально работать с запущенной на нем Windows сегодня можно купить дешевле чем за 100$. В этой статье я хочу рассказать о нескольких способах получения работоспособной Windows на Android планшете, а в качестве подопытного мы будем использовать дешевый китайский планшет с 1Ггц процессором и 1Гб ОЗУ.
Читать полностью »

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

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

На примере 2-х с небольшим тысяч строк кода будет подробно рассказано об инициализации памяти, зонах памяти, slab-аллокаторе применяемых в Linux.

Читать полностью »

В нашей повседневной работе, как и всем, требуется много пользоваться отладчиком. В силу специфики работы: (разработка ОС, использование технологий виртуализации наподобие Intel-VT, ит.д.) нам часто требуется использовать отладчик для работы со специфическими случаями: отладка кода загрузчика ядра, отладка загрузчиков виртуальных машин, а так же в принципе обеспечение возможности отлаживать ОС собственной разработки. Именно эти особые случаи так пафосно названы в заголовке ”по максимуму”.

Для решения всех этих задач (и конечно, многих других) мы используем gdb. Возможно использование и таких оболочек как DDD, но лично я предпочитаю использовать cgdb как оптимальный выбор, особенно для случая работы с отладчиком по ssh.
В этой статье мы расскажем о том, как можно использовать gdb для отладки кода загрузочных секторов и загрузчиков.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js