, Виртуализация KVM. Полное руководство.

Виртуализация KVM. Полное руководство.

{Прим. пер.: рекомендуем сразу обращаться к нашему переводу полностью переработанного Ведрэном Дэйкинчем 2 издания, вышедшего в октябре 2020 Полного руководства Виртуализации KVM}

Хумбле Девасси Чираммал

Прасад Мукхедкар

Анил Веттатсу

 

Первая публикация на английском языке: август 2016

Ссылка на продукт: 2180816

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

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

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

Опубликовано Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-78439-905-4

www.packtpub.com

2016-09-10

 Состав исполнителей

Второго издания на английском языке
Автор
Хумбле Девасси Чираммал
Прасад Мукхедкар
Анил Веттатсу
Рецензенты
Эрик Педерсон
Рантжит Раджарам
Амит Шах
Редактор выпуска
Кунал Парикх
Редактор
Шаон Басу
Редактор разработки содержания
Швета Пан
Технический редактор
Саурабх Малхотра
Литературный редактор
Снеха Сингх
Стефан Коупстейк
Координатор проекта
Кинджал Бари
Корректоры
Safis editing
Составитель указателя
Хемангили Бари
Графика
Диша Харья
Кирк ДеПенья
Координатор производства
Шантану Н. Загаде
Изготовитель переплёта
Шантану Н. Загаде

 Об авторе

Хумбле Девасси Чираммал работает главным инженером программного обеспечения Red Hat в команде инжиниринга систем хранения. Он имеет более чем 10 летний опыт в ИТ и его область специализации состоит в освоении всего стека экосистем и архитектурных решений, основанных на запросах. В настоящее время он в первую очередь сосредоточен на GlusterFS и вновь появляющихся технологиях, таких как IaaS, решения PaaS в облаке и контейнеры. Он работает над системами обнаружения вторжений, кластерами и виртуализацией. Он является приверженцем открытого кода. Он активно организует встречи по виртуализции, CentOS, Openshift и GlusterFS. Его дескриптор в Twitter @hchiramm, а его веб- сайт http://www.humblec.com/.

Прасад Мукхедкар является главным инженером технической поддержки в Red Hat. Его область специализации состоит в проектировании, построении и поддержке инфраструктур ИТ для рабочих нагрузок, в особенности больших окружений виртуализации и облачных IaaS с использованием технологий с открытым исходным кодом. Он обладает опытом виртуализации KVM с практикой непрерывного режима работы начиная с их самых ранних этапов, овладением практических и технических знаний по корпоративной виртуализации Red Hat. В настоящее время он в первую очередь сосредоточен на платформах OpenStack и Cloudforms. Другая область его интересов включает в себя тонкую настройку производительности Linux, разработку сильно масштабируемых решений управления идентификацией с открытым исходным кодом, а также ИТ безопасностью корпоративного уровня. Он гигантский фанат утилиты Linux "GNU Screen".

Анил Веттатсу стартовал свою связь с Linux в колледже и вскоре начал свою карьеру в качестве системного администратора Linux. Он поднаторел в практике проектирования и реализации виртуальных сред большого масштаба с использованием технологий с открытым исходным кодом и получил значительные знания в области libvrt и KVM. В настоящее время он в основном работает над виртуализацией корпоративного уровня Red Hat, контейнерами и тонкой настройкой производительности реального времени. Сейчас он действует в роли техническим менеджером по работе с клиентами для Red Hat. Его веб- сайт http://anilv.in.

 Рецензенты

Эрик Педерсон Является автором cPanel User Guide and Tutorial и Web Host Manager Administration Guide, причём обе были написаны для Packt Publishing. В качестве рецензента он также выступал в CUPS Administrative Guide, Linux E-mail и Linux Shell Scripting Cookbook, также опубликованных в Packt Publishing.

Он имеет опыт системного администратора на протяжении более 11 лет. В настоящее время он работает для http://www.hostdime.com/, поставщика услуг веб- хостинга и глобального центра обработки данных мирового уровня, создатель Fantastico, наиболее популярного в мире установщика веб- сценариев для серверов cPanel.

Рантжит Раджарам работает в качестве главного инженера основ технической поддержки в ведущей компании корпоративного Linux с открытым исходным кодом. Он начал свою карьеру с предоставления поддержки компаниям веб- хостинга и удалённого управления серверами. Он также предоставлял техническую поддержку своим конечным пользователям. В начале своей карьеры он работал с платформами Linux, Unix и FreeBSD.

На протяжении последних 12 лет он непрерывно изучал что- то новое. Именно это ему нравится и восхищает его в технической поддержке. В качестве знака уважения ко всем его товарищам по инженерии технической поддержки, он включил "разработка софта гуманна, но его поддержка божественна" в свою подпись в электронной почте.

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

Это его вторая книга в качестве рецензента. Его предыдущей книгой была Learning RHEL Networking в Packt Publishing.

Амит Шах работал в FOSS начиная с 2001, а в виртуализации QEMU/KVM, начиная с 2007. В настоящее время он работает главным инженером программного обеспечения в Red Hat. Он выполнил рецензирование Главы 2, KVM изнутри и Главы 13, Тонкая настройка производительности и устоявшаяся практика KVM.

 www.PacktPub.com

 Содержание

Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Загрузка кодов примеров
Опечатки
Незаконное тиражирование
Вопросы
Глава 1. Понимание виртуализации Linux
Что такое виртуализация?
Почему я должен использовать виртуализацию Linux?
Типы виртуализации
Преимущества виртуализация
Виртуализация/ разбиение на разделы операционной системы
Полная виртуализация
Паравиртуализация
Виртуализация с аппаратной поддержкой
Представление VMM/ гипервизора
Гипервизоры тип 1 и тип 2
Проекты виртуализации с открытым исходным кодом
Xen
Введение в KVM
Обзор KVM на верхнем уровне
Что предлагает вам в облаке виртуализация Linux
Выводы
Глава 2. KVM изнутри
Приступаем к знакомству с libvirt и его реализацией
Внутренняя работа libvirt
Время дополнительных раздумий об QEMM
KVM в действии
Qemu - KVM изнутри
Структуры данных
Модели потоков в QEMU
Анонимные inode и файловая структура
API KVM
Поток исполнения vCPU
Структуры данных
Выводы
Глава 3. Наладка обособленной виртуальной KVM
Приступаем к знакомству с libvirt
Требования системы хоста
Определение правильных требований к системе для вашего окружения
Физический ЦПУ
Ядра ЦПУ
Физическая память
Система хранения
Сетевая среда
Наладка вашей среды
Установка пакетов виртуализации
Запуск службы libvirt
Подтверждение и понимание возможностей virt вашей системы
Примеры конфигураций оборудования
Выводы
Глава 4. Начало работы при помощи libvirt и создание вашей первой виртуальной машины
Введение в virt-manager
Закладка Virtual Networks
Виртуальная сеть с NAT
Виртуальная сеть с маршрутизатором
Изолированная виртуальная сеть
Виртуальная сеть по умолчанию
Закладка Storage
Создание виртуальной машины при помощи менеджера виртуальных машин
Создание нового мастера виртуальных машин
Метод сетевой установки (HTTP, FTP или NFS)
Загрузка по сети (PXE)
Импорт существующего дискового образа
Введение в virt-install
Установка гостевой Windows 7 при помощи команды virt-install
Автоматическое развёртывание виртуальной машины
Введение в virt-builder
Введение в oz
Файл настройки oz
Создание виртуальной машины при помощи oz
Выводы
Глава 5. Сетевая среда и система хранения
Настройка виртуальной сети
Настройка виртуальной сети при помощи libvirt
Изолированная виртуальная сеть
Виртуальная сеть с маршрутизатором
Изменение виртуальной сети
Виртуальная сеть с NAT
Виртуальная сеть с мостом
MacVTap
Проброс PCI
Это всё о хранилище!
Работа с неуправляемым хранилищем
Создание образа диска и подключение его к гостю
Получение информации образа
Подключение диска при помощи virt-manager
Подключение диска при помощи virsh
Работа с управляемым хранилищем
Консоль управления хранилищем
Создание пулов хранения
Каталог файловой системы, поддерживаемый пулом хранения
Группа томов LVM, поддерживаемый пулом хранения
iSCSI, поддерживаемый пулом хранения
Создание библиотеки образов ISO
Удаление пула хранения
Удаление пула хранения с использованием virt-manager
Удаление пула хранения с использованием virsh
Создание томов хранения
Создание томов при помощи команды virsh
Удаление тома при помощи команды virsh
Выводы
Глава 6. Управление жизненным циклом виртуальной машины
Гостевой агент QEMU
Виртуальные видеокарты и графика
Виртуальные видеокарты
Графика
Графический сервер VNC
Графический сервер SPICE
Добавление графического сервера SPICE
Методы доступа к консоли виртуальной машины
Миграция ВМ
Миграция в выключенном состоянии
Миграция вживую или в реальном времени
Преимущества миграции
Наладка вашего окружения
Совместно используемое хранилище
Миграция в выключенном состоянии
Что будет, если я случайно запущу ВМ на обоих своих гипервизорах?
Включение lockd
Миграция вживую или в реальном времени
Будущее миграции
Выводы
Глава 7. Шаблоны и снимки
Введение в шаблоны виртуальных машин
Работа с шаблонами
Создание шаблонов
Пример 1 - подготовка шаблона CentOS 7 с полным стеком LAMP
Пример 2 - подготовка шаблона Windows 7 с базой данных MySQL
Развёртывание виртуальной машины из шаблона
Развёртывание ВМ при помощи метода выделения клонов
Развёртывание ВМ при помощи метода динамичного выделения
Моментальные снимки
Форматы образов диска ВМ
Преобразование формата диска ВМ
Работа с внутренними моментальными снимками
Создание вашего первого внутреннего снимка
Создание внутреннего снимка с индивидуальными именем и описанием
Создание множества снимков
Возврат к внутренним снимкам
Удаление внутреннего снимка
Управление моментальными снимками при помощи virt-manager
Работа с моментальными снимками на внешних дисках
Создание снимка на внешнем диске
Что такое заморозка?
Возврат к внешнему снимку
Удаление снимка на внешнем диске
Установившаяся практика работы со снимками
Выводы
Глава 8. Kimchi - Инструмент управления на основе HTML5 для KVM/libvirt
Libvirt Web API
Введение в проект Kimchi
Архитектура Kimchi
Наладка сервера Kimchi
Запуск службы Kimchi
Управление виртуальной инфраструктурой KVM при помощи Kimchi WebUI
Создание виртуальных машин при помощи Kimchi WebUI
Изменение выделяемых виртуальной машине ресурсов
Доступ к графической консоли виртуальной машины
Полномочия и управление доступом пользователей
Мониторинг и управление системой хоста при помощи Kimchi WebUI
Управление системой хоста при помощи встраиваемого модуля Kimchi-Ginger
Управление виртуальными машинами при помощи телефонов Android
Выводы
Глава 9. Определяемые программным обеспечением сетевые среды для виртуализации KVM
Введение в SDN
Ограничения мостов Linux
Введение в Open vSwitch
Сопоставление моста Linux и Open vSwitch
Архитектура Open vSwitch
Установка и наладка Open vSwitch
Сопоставление моста Linux и Open vSwitch
Запуск openvswitch.service
Модуль ядра Open vSwitch
Начало работы с интерфейсом командной строки Open vSwitch
Настройка моста Open vSwitch вручную при помощи команды ovs-vsctl
Настройка моста Open vSwitch при помощи сетевых сценариев
Интеграция ВМ KVN и OVS
VLAN через Open vSwitch
Настройка VLAN для виртуальных машин KVM
Применение интеграции libvirt
Open vSwitch QoS - управление обменом ВМ KVM
Применение ограничений скорости обмена
Управление исходящим обменом
Применение профилирования обмена
Перекрывающиеся сети
Настройка туннелей Open vSwitch при помощи VxLan
Настройка KvmHOST1 стороны хоста
Настройка KvmHOST2 хоста
Зеркалирование сетевых портов
Настройка зеркальных портов
Управление Open vSwitch при помощи контроллера OpenDaylight SDN
Установка контроллера OpenDaylight (ODL-sys)
Требования к оборудованию
Установка и настройка ODL
Добавление экземпляра Open vSwitch (vswitch001) в контроллер системы OpenDaylight (ODL-sys)
Установка потоков в мосте OVS при помощи инструментальной панели OpenDaylight
Основы поиска неисправностей Open vSwitch
Выводы
Глава 10. Установка и настройка виртуального центра обработки данных с применением oVirt
Введение в oVirt
Архитектура oVirt
Механизм oVirt
Узел oVirt
Система хранения
Сетевая среда
Установка механизма oVirt
Подготовка системы к установке oVirt
Установка узла oVirt
Выводы
Глава 11. Запуск вашей первой виртуальной машины в oVirt
Приступаем к центру обработки данных и кластеру oVirt
Инициация центра обработки данных oVirt
Создание доменов хранения
Создание логических сетевых сред
Создание и запуск виртуальных машин
Что дальше?
Выводы
Глава 12. Развёртывание частного облака OpenStack поддерживаемого виртуализацией KVM
Архитектура OpenStack
Компоненты ядра OpenStack
Развёртывание OpenStack
RDO OpenStack
Методы развёртывания RDO OpenStack
Установка Packstack
Запуск первого экземпляра
Поиск неисправностей уровня виртуализации OpenStack
Доступ к базе данных настроек экземпляра
Протокол монитора QEMU
Выводы
Глава 13. Тонкая настройка производительности и устоявшаяся практика KVM
VIRTIO
Тонкая настройка ЦПУ
Общее число vCPU
Настройка ЦПУ
Топология ЦПУ
Захват ЦПУ
Команда numactl
Работа с памятью
Выделение памяти
Тонкая настройка памяти
Обеспечение памяти
locked
nosharepages
hugepages
Приступаем к ведению учётных записей при помощи слияния Kernel Same Page
Пакеты и файлы KSM
Тонкая настройка ЦПУ и памяти при помощи NUMA
Что такое NUMA?
Политики выделения памяти NUMA
numatune
emulatorpin
KSM и NUMA
Автоматическая балансировка NUMA
Понимание numad и numastat
Тонкая настройка дискового и блочного ввода/ вывода
Режим кеширования
Режим ввода/ вывода
Тонкая настройка ввода/ вывода
Тонкая настройка сетевой среды в KVM
Как её выполнять?
Установившаяся практика табельного учёта гостевых KVM
kvm-clock
Выводы
Глава 14. Инструменты миграции V2V и P2V
Введение в утилиту virt-v2v
Как работает virt-v2v?
Получение утилиты virt-v2v
Подготовка к преобразованию v2v
Процесс преобразования
Преобразование гостевых VMWare
Преобразование приглашённой VMware vSphere в отдельно работающий хост KVM
Преобразование приглашённой VMware vSphere в oVirt
Преобразование приглашённой VMware vSphere в репозиторий OpenStack-Glance
Преобразование приглашённого Xen
Преобразование отдельно работающих гостевых KVM в виртуализацию oVirt
platform и облако OpenStack
Относящиеся к поиску неисправностей virt-v2v проблемы
Преобразование физической системы в виртуальную
Создание загружаемого образа virt-p2v
Можем ли мы преобразовывать любые физические компьютеры в виртуальные при помощи virt-v2v?
Загрузка физической системы с использованием загрузочного диска virt-p2v для преобразования
Преобразование виртуальных машин из неподдерживаемых платформ виртуализации
Список входящих и исходящих методов, поддерживаемых virt-p2v
Выводы
Приложение А. Преобразование виртуальной машины в гипервизор
Как переделать виртуальную машину в гипервизор?
Введение во вложенную KVM
Как включить вложенную KVM?
Указатель

 Предисловие

"Виртуализация RVM, полное руководство" является кульминацией всех полученных нами знаний при поиске неисправностей, настройке и исправлении ошибок в виртуализации KVM. Мы написали эту книгу для системных администраторов, практиков DevOps и разработчиков, которые имеют хорошие практические знания Linux и хотели бы заточить свои навыки виртуализации пр и помощи открытого исходного кода. Главы данной книги написаны с нацеливанием на практические примеры, которые должны помочь вам в развёртывании надёжных виртуальных сред, отвечающих потребностям вашей организации. Мы ожидаем, что когда вы завершите ознакомление с данной книгой, вы должны получить хорошее понимание виртуализации KVM изнутри, окружающим их технологиям, а также инструментами для построения и и управления разнообразными виртуальными средами. Вы также должны стать способными вносить свой вклад во внушающее трепет сообщество KVM.

 Что охватывает эта книга

Глава 1. Понимание виртуализации Linux обсуждает господствующие технологии, используемые в виртуализации Linux и их преимущества над прочими. Она начинается с основ концепций виртуализации Linux и преимуществ платформ виртуализаии на основе Linux, а затем переходит к гипервизору/ VMM. Эта глава завершается тем, как Linux используется в частных и общедоступных облачных инфраструктурах.

Глава 2. KVM изнутри охватывает важные структуры данных и функции, которые определяют внутреннюю реализацию libvirt, qemu и KVM. Вы также пройдёте сквозь жизненный цикл исполнения vCPU и того, как qemu и KVM совместно выполняют в процедуру гостевых операционной системы в ЦПУ хоста.

Глава 3. Наладка отдельной виртуализации KVM расскажет вам как наладить ваш сервер Linux для использования KVM (Kernel-based Virtual Machine, виртуальных машин на основе ядра) и libvirt. KVM применяется для виртуализации, в то время как libvirt используется для управления всей средой виртуализации. Вы также ознакомитесь с тем, как определять правильные требования системы (ЦПУ, память, систему хранения и сетевую среду) для создания вашего собственного виртуального окружения.

Глава 4. Наладка отдельной виртуализации KVM ознакомит вас с дополнительной информацией о настройках по умолчанию в libvirt. Вы установите новую виртуальную машину с применением virt-manager, помимо virt-install, а также изучите дополнительные средства развёртывания виртуальных машин, такие как virt-builder и oz.

Глава 5. Сетевая среда и система хранения является одной из наиболее важных глав, которая обучит вас виртуальным сетевым средам и системам хранения. Касательно построения виртуальных сетей вы изучите подробности реализации мостов, различные концепции построения мостов, а также методы, которые вы можете адаптировать к устойчивому к отказам сетевому уровню для виртуальных машин. Вы научитесь как разделять ваши сетевые среды при помощи мостов VLAN с теговой организацией. Относительно систем хранения, вы изучите как создавать пулы хранениядля ваших виртуальных машин из лежащих в основе систем хранения, таких как fiber channel (FC), ISCSI, NFS, локальных хранилищ и тому подобных. Также вы научитесь как определять правильное базовое хранилище для ваших виртуальных машин.

Глава 6. Управление жизненным циклом виртуальной машины обсуждает задачи управления виртуальными машинами. Вы ознакомитесь с различными состояниями виртуальных машин и методами доступа к виртуальным машинам, которые включают spice и VNC. Вы ознакомитесь с применением гостевх агентов. Также вы изучите как осуществлять миграцию виртуальных машин в выключенном состоянии и в реальном времени.

Глава 7. Шаблоны и снимки расскажет как создавать шаблоны Windows и Linux для быстрого предоставления ВМ. Эта глава также обучит нас тому как создавать внешние и внутренние моментальные снимки и то, когда какие снимки применять. Управление снимками, включая слияние и удаление, также охватываются описанием устояшейся практики работы со снимками.

Глава 8. Kimchi - Инструмент управления на основе HTML5 для KVM/libvirt объясняет как удалённо управлять инфраструктурой виртуализации KVM, используя инструменты веб- управления на основе libvirt. Вы изучите как создавать новые виртуальные машины, удалённо регулировать выделения ресурсов существующим ВМ, реализовывать управление доступом пользователя, причём всё это через интернет с применением Kimchi WebUI. Она также представляет VM-King, приложение Android, которое позволяет вам удалённо управлять виртуальными машинами KVM с вашего мобильного телефона или планшета с Android.

Глава 9. Определяемые программным обеспечением сетевые среды для виртуализации KVM охватывает применение подхода SDN к виртуализации KVM с использованием Open vSwitch и инструментами поддержки, которые включают в себя SDN контроллер OpenDayLight. Вы изучите установку и наладку Open vSwitch, создание VLAN для виртуальных машин KVM, применение гранулированного обмена и контроля политик к ВМ KVM, создание перекрывающихся сетевых сред и зеркалирования портов, а также SPAN. Вы изучите как управлять Open vSwitch с применением SDN контроллера OpenDayLight.

Глава 10. Установка и настройка виртуального центра обработки данных с применением oVirt oVirt является менеджером виртуального центра обработки данных, который рассматривается как замена открытым исходным кодом vCenter VMware. Он управляет виртуальными машинами, хостами, системами хранения и виртуальными сетевыми средами. Он предоставляет мощный интерфейс, управляемый через веб. В этой главе мы рассмотрим архитектуру oVirt, установку механизма oVirt, а также установку узла oVirt.

Глава 11. Запуск вашей первой виртуальной машины в oVirt рассказывает нам как инициировать центр обработки данных oVirt чтобы запустить первую виртуальную машину. Данный процесс инициализации пройдёт через создание центра обработки данных, добавление хоста в этот центр, добавление доменов хранения и их серверов. Вы изучите настройку сетевой среды.

Глава 12. Развёртывание частного облака OpenStack поддерживаемого виртуализацией KVM рассмотрит наиболее популярную платформу программного обеспечения с открытым исходным кодом для создания и управления общедоступными и частными облаками IaaS. Мы разъясним различные компоненты OpenStack. Вы наладите среду OpenStack и запустите в ней первый экземпляр.

Глава 13. Тонкая настройка производительности и устоявшаяся практика KVM рассказывает нам как может быть выполнена тонкая настройка производительности в сборке KVM. Она также обсуждает устоявшуюся практику, которая может применяться при наладке KVM для улучшения их производительности.

Глава 14. Инструменты миграции V2V и P2V ознакомит вас с тем как выполнять миграцию ваших существующих виртуальных машин, которые работают поверх проприетарных гипервизоров на KVM с полностью открытым исходным кодом, применяя инструментарий virt-v2v. Вы также изучите как выполнять миграцию физических машин на виртуальные машины и выполнять их в вашем облаке.

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

 Что вам нужно для этой книги

Данная книга усиленно концентрируется на практических примерах; исходя из природы её содержания, мы рекомендуем чтобы у вас была в наличии тестовая машина с предустановленным Fedora 22 или более поздней версии для выполнения задач, представленных в этой книге.Такая тестовая машина должна иметь по крайней мере 6ГБ оперативной памяти с процессором Intel или AMD, который поддерживает виртуализацию. Вы должны иметь возможность выполнять большую часть примеров применяя вложенные виртуальные машины.

 Для кого эта книга

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

 Соглашения

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

Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом: "Такие ioctls() фундаментально отображают на системный уровень KVM, ВМ и vCPU".

Блок кода устанавливается следующим образом:


switch (run->exit_reason) {
        case KVM_EXIT_IO:
              DPRINTF("handle_io\n");
                /* Called outside BQL */
              kvm_handle_io(run->io.port, attrs,
                            (uint8_t *)run + run->io.data_offset,
                          run->io.direction,
                           run->io.size,
                           run->io.count);
              ret = 0;
            break;
 	   

Когда вы хотите обратить внимание на определённую часть в блоке кода, относящиеся к этому строки или элементы устанавливаются в жирный шрифт:


include/linux/kvm_host.h :

struct kvm {
      struct mm_struct *mm; /* userspace tied to this vm */
      struct kvm_vcpu *vcpus[KVM_MAX_VCPUS];
      struct kvm_io_bus *buses[KVM_NR_BUSES];
      struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
}
 	   

Любой ввод командной строки или её вывод записываются следующим образом:


#git clone git://git.qemu-project.org/qemu.git
 	   

Новые термины и важные слова отображаются жирным шрифтом. Слова, которые вы видите на экране, например, в меню или блоках диалогов появляются в тексте следующим образом: "Если вы хотите соединиться с удалённым гипервизором, пометьте Connect to remote host и заполните поля подробностей".

[Замечание]Замечание

Предостережения или важные замечания появляются в блоках подобных этому.

[Совет]Совет

Советы и ловкие приёмы возникают таким образом.

 Обратная связь с читателями

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

Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.

Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.

 Поддержка пользователей

Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.

 Загрузка цветных изображений этой книги

Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл по адресу: http://www.packtpub.com/sites/default/files/downloads/Mastering_KVM_Virtualization_ColorImages.pdf.

 Опечатки

Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.

Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.

 Незаконное тиражирование

Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}

Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.

Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.

 Вопросы

Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.