, Книга рецептов виртуализации KVM

Книга рецептов виртуализации KVM

Константин Иванов

 

Первая публикация на английском языке: Июнь 2017

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

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

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

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

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

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN-13 978-1-78829-467-6

www.packtpub.com

2017-06-24

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

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

 Об авторе

Константин Иванов является системным инженером Linux, разработчиком открытого кода, а также техническим блоггером, который разрабатывал, настраивал, развёртывал и администрировал крупномасштабные среды Linux с высокой доступностью на протяжении более чем 15 лет.

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

Константин получил две степени магистра в Вычислительной технике в университетах в Болгарии и США со специализацией в системной и сетевой безопасности и разработке программного обеспечения.

В свободное время ему нравится писать технические блоги и проводить время с двумя пацанами. Его можно найти в https://www.linkedin.com/in/konstantinivanov или в его блога по адресу http://www.linux-admins.net/.

 Рецензент

Джей Пейн был администратором баз данных в Rackspace на протяжении более 10 лет, работая над их проектированием, разработкой, реализацией, а также эксплуатируя системы хранения.

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

 www.PacktPub.com

 Содержание

Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Разделы
Соглашения
Обратная связь с читателями
Поддержка пользователей
Загрузка кодов примеров
Загрузка цветных изображений
Опечатки
Незаконное тиражирование
Вопросы
Глава 1. Начало работы с QEMU и KVM
Введение
Установка и настройка QEMU
Приготовление
Как это сделать
Как это работает
Управление образами дисков при помощи qemu-img
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Подготовка образов для установки ОС при помощи qemu-nbd
Приготовление
Как это сделать...
Как это работает...
Установка пользовательской ОС в образ при помощи debootstrap
Приготовление
Как это сделать...
Как это работает...
Изменение размера образа
Приготовление
Как это сделать...
Как это работает...
Применение предварительно подготовленных образов
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Дополнительно
Выполнение ВМ при помощи qemu-system-*
Приготовление
Как это сделать...
Как это работает...
Запуск QEMU при помощи KVM
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Подключение к исполняемому экземпляру при помощи VNC
Приготовление
Как это сделать...
Как это работает...
Глава 2. Применение libvirt для управления KVM
Введение
Установка и настройка libvirt
Приготовление
Как это сделать...
Как это работает...
Определение экземпляров KVM
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Запуск, останов и удаление экземпляров KVM
Приготовление
Как это сделать...
Как это работает...
Осмотр и изменение настроек KVM
Приготовление
Как это сделать...
Как это работает...
Построение новых экземпляров KVM при помощи virt-install и с применением консоли
Приготовление
Как это сделать...
Как это работает...
Управление ресурсами ЦПУ и памяти в KVM
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Подключение блочных устройств к виртуальным машинам
Приготовление
Как это сделать...
Как это работает...
Совместное применение каталогов исполняемыми ВМ и самой ОС хоста
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Автоматический запуск экземпляров KVM
Приготовление
Как это сделать...
Как это работает...
Работа с пулами хранения
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Управление томами
Приготовление
Как это сделать...
Как это работает...
Управление секретными ключами
Приготовление
Как это сделать...
Как это работает...
Глава 3. Построение сетей KVM при помощи libvirt
Введение
Мост Linux
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Open vSwitch
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Настройка переадресации NAT сетевой среды
Приготовление
Как это сделать...
Как это работает...
Настройка сетевой среды через мосты
Приготовление
Как это сделать...
Как это работает...
Настройка проброса PCI сетевой среды
Приготовление
Как это сделать...
Как это работает...
Манипулирование сетевыми интерфейсами
Приготовление
Как это сделать...
Как это работает...
Глава 4. Миграция экземпляров KVM
Введение
Миграция в отключённом состоянии вручную с применением пула хранения iSCSI
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Миграция в отключённом состоянии вручную с применением совместных томов GlusterFS
Приготовление
Как это сделать...
Как это работает...
Миграция в реальном времени с использованием команды virsh и применяя совместное хранилище
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Миграция в отключённом состоянии с использованием команды virsh и локального образа
Приготовление
Как это сделать...
Как это работает...
Миграция в реальном времени с использованием команды virsh и локального образа
Приготовление
Как это сделать...
Как это работает...
Глава 5. Мониторинг и резервное копирование ВМ KVM
Введение
Применение коллекций ресурсов при помощи libvirt
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Наблюдение за экземплярами KVM при помощи Sensu
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Простое резервное копирование KVM при помощи tar и rsync
Приготовление
Как это сделать...
Как это работает...
Создание моментальных снимков
Приготовление
Как это сделать...
Как это работает...
Просмотр списка моментальных снимков
Приготовление
Как это сделать...
Как это работает...
Обзор моментальных снимков
Приготовление
Как это сделать...
Как это работает...
Изменение моментальных снимков
Приготовление
Как это сделать...
Как это работает...
Обращение моментальных снимков
Приготовление
Как это сделать...
Как это работает...
Удаление моментальных снимков
Приготовление
Как это сделать...
Как это работает...
Глава 6. Развёртывание экземпляров KVM при помощи OpenStack
Введение
Подготовка хоста к развёртыванию OpenStack
Приготовление
Как это сделать...
Как это работает...
Установка и настройка службы подлинности OpenStack KeyStone
Приготовление
Как это сделать...
Как это работает...
Установка и настройка службы образов OpenStack Glance
Приготовление
Как это сделать...
Как это работает...
Установка и настройка службы вычислений OpenStack Nova
Приготовление
Как это сделать...
Как это работает...
Установка и настройка сетевой службы OpenStack Neutron
Приготовление
Как это сделать...
Как это работает...
Построение и обзор экземпляров KVM при помощи OpenStack
Приготовление
Как это сделать...
Как это работает...
Останов экземпляров KVM при помощи OpenStack
Приготовление
Как это сделать...
Как это работает...
Прекращение экземпляров KVM при помощи OpenStack
Приготовление
Как это сделать...
Как это работает...
Глава 7. Применение Python для построения экземпляров KVM и управления ими
Введение
Установка и применение библиотеки libvirt Python
Приготовление
Как это сделать...
Как это работает...
Определение экземпляров KVM с помощью Python
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Запуск, останов и удаление экземпляров KVM с помощью Python
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Обзор экземпляров KVM с помощью Python
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Построение примера сервера REST API при помощи libvirt и bottle
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Глава 8. Регулировка ядра KVM для повышения производительности
Введение
Регулировка ядра для снижения латентности ввода/ вывода
Приготовление
Как это сделать...
Как это работает...
Регулировки памяти для гостевых KVM
Приготовление
Как это сделать...
Как это работает...
Опции производительности ЦПУ
Приготовление
Как это сделать...
Как это работает...
Регулировки NUMA с применением libvirt
Приготовление
Как это сделать...
Как это работает...
Также ознакомьтесь...
Регулировки ядра для повышения производительности сети
Приготовление
Как это сделать...
Как это работает...

 Предисловие

.

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

Глава 1. Начало работы с QEMU и KVM

Глава 2. Применение libvirt для управления KVM

Глава 3. Построение сетей KVM при помощи libvirt

Глава 4. Миграция экземпляров KVM

Глава 5. Мониторинг и резервное копирование ВМ KVM

Глава 6. Развёртывание экземпляров KVM при помощи OpenStack

Глава 7. Применение Python для построения экземляров KVM и управления ими

Глава 8. Регулировка ядра KVM для повышения производительности

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

.

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

.

 Разделы

.

 Соглашения

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

Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом: "Управление образами дисков с помощью qemu-img".

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


import libvirt
from bottle import run, request, get, post, HTTPResponse
def libvirtConnect():
try:
conn = libvirt.open('qemu:///system')
except libvirt.libvirtError:
conn = None
return conn
 	   

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


root@kvm:~# apt-get update
 	   

Новые термины и важные слова отображаются жирным шрифтом. Слова, которые вы видите на экране, например, в меню или блоках диалогов появляются в тексте следующим образом: "memory_check для KVM теперь отображается в инструментальной панели Uchiwa."

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

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

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

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

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

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

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

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

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

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

 Загрузка примеров кода

Вы можете загрузить файлы примеров кода по адресу из своей учётной записи: http://www.packtpub.com. Если вы приобрели книгу где- либо ещё, вы можете посетить http://www.packtpub.com/support и зарегистрироваться для получения этих файлов по электронной почте непосредственно на свой адрес.

Вы можете загрузить эти файлы с кодом выполнив следующие шаги:

  1. Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.

  2. Переместите указатель мыши на закладку SUPPORT в верхней части.

  3. Кликните по Code Downloads & Errata.

  4. Введите название книги в блок Search.

  5. Выберите книгу для которой вы ищете для загрузки файлы исходного кода.

  6. В ниспадающем меню выберите где вы приобрели эту книгу.

  7. Кликните по Code Download.

Вы также можете загрузить фалы кодов кликнув по кнопке Code Files вебстраницы на вебсайте Packt Publishing. Доступ к данной странице может быть получен путём ввода названия книги в блоке Search. Отметим, что вы должны быть зарегистрированы со своеЙ учётной записью Packt.

После загрузки убедитесь, пожалуйста, что вы раззиповали или раскрыли эту папку при помощи самой последней версии:

  1. WinRAR / 7-Zip для Windows

  2. Zipeg / iZip / UnRarX для Mac

  3. 7-Zip / PeaZip для Linux

Пакет с кодом для данной книги также размещён на GitHub по адресу https://github.com/PacktPublishing/KVM-Virtualization-Cookbook. У нас также имеются прочие наборы из нашего богатого каталога книг и видео доступные на https://github.com/PacktPublishing/. Следите за ними!

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

Также мы снабжаем вас неким PDF файлом, который имеет цветные изображения применяемых в данной книге снимков экрана/ схем. Эти цветные изображения помогут вам лучше понять все изменения в имеющемся выводе. Вы можете загрузить этот файл с https://www.packtpub.com/sites/default/files/downloads/KVMVirtualizationCookbook_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 и мы предпримем все меры в отношении ваших проблем.