Виртуализация KVM. Полное руководство.
{Прим. пер.: рекомендуем сразу обращаться к нашему переводу полностью переработанного Ведрэном Дэйкинчем 2 издания, вышедшего в октябре 2020 Полного руководства Виртуализации KVM}
Copyright © 2016 Packt Publishing
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: август 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
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.
- Предисловие
- Глава 1. Понимание виртуализации Linux
- Что такое виртуализация?
- Почему я должен использовать виртуализацию Linux?
- Типы виртуализации
- Виртуализация/ разбиение на разделы операционной системы
- Виртуализация с аппаратной поддержкой
- Представление VMM/ гипервизора
- Проекты виртуализации с открытым исходным кодом
- Что предлагает вам в облаке виртуализация Linux
- Выводы
- Глава 2. KVM изнутри
- Глава 3. Наладка обособленной виртуальной KVM
- Глава 4. Начало работы при помощи libvirt и создание вашей первой виртуальной машины
- Глава 5. Сетевая среда и система хранения
- Настройка виртуальной сети
- Настройка виртуальной сети при помощи libvirt
- MacVTap
- Проброс PCI
- Это всё о хранилище!
- Работа с неуправляемым хранилищем
- Создание образа диска и подключение его к гостю
- Получение информации образа
- Подключение диска при помощи virt-manager
- Подключение диска при помощи virsh
- Работа с управляемым хранилищем
- Консоль управления хранилищем
- Создание пулов хранения
- Создание библиотеки образов ISO
- Удаление пула хранения
- Создание томов хранения
- Создание томов при помощи команды virsh
- Удаление тома при помощи команды virsh
- Выводы
- Глава 6. Управление жизненным циклом виртуальной машины
- Глава 7. Шаблоны и снимки
- Введение в шаблоны виртуальных машин
- Работа с шаблонами
- Развёртывание виртуальной машины из шаблона
- Развёртывание ВМ при помощи метода выделения клонов
- Развёртывание ВМ при помощи метода динамичного выделения
- Моментальные снимки
- Выводы
- Глава 8. Kimchi - Инструмент управления на основе HTML5 для KVM/libvirt
- Глава 9. Определяемые программным обеспечением сетевые среды для виртуализации KVM
- Введение в SDN
- Введение в Open vSwitch
- Сопоставление моста Linux и Open vSwitch
- Установка и наладка Open vSwitch
- Сопоставление моста Linux и Open vSwitch
- Запуск openvswitch.service
- Модуль ядра Open vSwitch
- Начало работы с интерфейсом командной строки Open vSwitch
- Настройка моста Open vSwitch вручную при помощи команды ovs-vsctl
- Настройка моста Open vSwitch при помощи сетевых сценариев
- Интеграция ВМ KVN и OVS
- VLAN через Open vSwitch
- Применение ограничений скорости обмена
- Перекрывающиеся сети
- Настройка туннелей Open vSwitch при помощи VxLan
- Зеркалирование сетевых портов
- Управление Open vSwitch при помощи контроллера OpenDaylight SDN
- Основы поиска неисправностей Open vSwitch
- Выводы
- Глава 10. Установка и настройка виртуального центра обработки данных с применением oVirt
- Глава 11. Запуск вашей первой виртуальной машины в oVirt
- Глава 12. Развёртывание частного облака OpenStack поддерживаемого виртуализацией KVM
- Глава 13. Тонкая настройка производительности и устоявшаяся практика KVM
- VIRTIO
- Тонкая настройка ЦПУ
- Работа с памятью
- Приступаем к ведению учётных записей при помощи слияния Kernel Same Page
- Тонкая настройка ЦПУ и памяти при помощи NUMA
- Тонкая настройка дискового и блочного ввода/ вывода
- Тонкая настройка сетевой среды в KVM
- Установившаяся практика табельного учёта гостевых KVM
- Выводы
- Глава 14. Инструменты миграции V2V и P2V
- Введение в утилиту virt-v2v
- Как работает virt-v2v?
- Преобразование гостевых VMWare
- Преобразование приглашённого Xen
- Преобразование отдельно работающих гостевых KVM в виртуализацию oVirt
- platform и облако OpenStack
- Относящиеся к поиску неисправностей virt-v2v проблемы
- Преобразование физической системы в виртуальную
- Можем ли мы преобразовывать любые физические компьютеры в виртуальные при помощи virt-v2v?
- Преобразование виртуальных машин из неподдерживаемых платформ виртуализации
- Выводы
- Приложение А. Преобразование виртуальной машины в гипервизор
- Указатель
"Виртуализация 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 и мы предпримем все меры в отношении ваших проблем.