Виртуализация KVM, Полное руководство, 2е изд
Copyright © 2020 Packt Publishing
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: Август 2016 (Июнь 2019)
Второе издание на английском языке: Октябрь 2020
Ссылка на продукт: 2250920
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN 978-1-83882-871-4
2020-11-07
- Авторы
- Ведрэн Дэйкинч
- Хумбле Девасси Чираммал
- Прасад Мукхедкар
- Эйнил Веттатху
- Редактор ввода в эксплуатацию
- Виджин Борича
- Редактор приобретения
- Шрилекха Айнэни
- Главный редактор
- Эрун Нэйдар
- Редактор разработки содержимого
- Найхар Кэйпэйдия
- Технический редактор
- Соухам Амбурле
- Литературный редактор
- Safis Editing
- Координатор проекта
- Ниил Димелло
- Корректор
- Safis Editing
- Составитель указателя
- Приянка Дхадке
- Технолог
- Эйпарна Бхагат
Ведрэн Дэйкинч обладает степенью магистра в области электротехники и вычислений и он выступает ИТ- тренером курсов, покрывающим администрацию систем, облачные вычисления, автоматизацию и оркестровку. Он является сертифицированным тренером Red Hat, VMware и Microsoft. В настоящее время он работает руководителем отдела операционных систем в Университетском колледже алгебры в Загребе. В рамках своей работы он читает лекции по 3-х и 5-ти летним учебным программам системной инженерии, программированию и мультимедийным трекам. Он также много консультирует и занимается системной интеграцией проектов своих клиентов- чем он увлечён последние 20 лет. Его подход прост - привносите практику реальной жизни во все курсы, в которых он участвует, ибо это обеспечит дополнительную стоимость его студентам и клиентам.
Хумбле Девасси Чираммал работает главным инженером программного обеспечения Red Hat
в команде инжиниринга систем хранения. Он имеет более чем 15 летний опыт в ИТ и его область специализации
состоит в освоении всего стека экосистем и архитектурных решений, со средоточением на основанных на запросах решениях.
В настоящее время он в первую очередь сосредоточен на Ceph и GlusterFS и их интеграцией с системами оркестровки, такими
как Kubernetes. Он обладает практическим опытом таких развивающихся технологий как решения IaaS и PaaS в Облаках и
контейнерах. В прошлом он работал над системами обнаружения вторжений, кластерными решениями и виртуализацией.
Он является приверженцем открытого кода и центральным автором во многих проектах с открытым исходным кодом, таких как
Kubernetes. Он активно организует встречи по Openshif/ Kubernetes, виртуализции, GlusterFS, CentOS. Его дескриптор в
Twitter @hchiramm
, а его веб- сайт http://www.humblec.com/.
Прасад Мукхедкар является специализированным инженером облачных решений в Red Hat India с более чем 10 летним опытом оказания помощи клиентам на их пути к виртуализации и внедрению облачных решений. Он сертифицированный архитектор Red Hat и обладает большим опытом проектирования и внедрения высокопроизводительной облачной инфраструктуры. Он специализируется на настройке производительности Red Hat Enterprise Linux 7/8, виртуализации KVM автоматизации Ansible и Red Hat OpenStack. Он гигантский фанат утилиты Linux "GNU Screen".
Эйнил Веттатху стартовал своё сотрудничество с Linux в колледже и вскоре начал свою карьеру в качестве системного администратора Linux. Он универсал, заинтересованный технологиями с открытым исходным кодом. Он обладает практическим опытом в разработке и внедрении крупномасштабных сред виртуализации с применением технологий с открытым исходным кодом и обладает обширными познаниями в области libvrt и KVM. В настоящее время он в основном работает техническим менеджером по работе с клиентами для Red Hat. Его веб- сайт http://anilv.in.
Ранджит Рэйджэйрам работает старшим главным инженером технической поддержки в ведущей компании Enterprise Linux открытого исходного кода. Он начал свою карьеру с оказания поддержки компаниям, которые предоставляют веб- хостинг и удалённое управление серверами. Ранджит также предоствляет техническое сопровождение конечным пользователям. На заре своей карьеры он работал наплатформах Linux, Unix и FreeBSD.
На протяжении последних 15 лет он всё время учился чему- то новому. Это именно то, что ему нравится и чем он восхищён в техническом сопровождении. В знак своего уважения ко всем своим коллегам - инженерам технической поддержки, он добавил в свою подпись электронной почты "разработка программного обеспечения гуманна, но его сопровождение - божественно".
В своей текущей организации он вовлечён в реализацию, установку и устранение неисправностей сетевых сред Linux. Помимо этого он также активный автор в пространстве контейнеров Linux (Docker, Podman)? Kubernetes и OpenShift.
Помимо этой книги он выступал техническим рецензентом самой первой редакции Виртуализация KVM. Полное руководство, причём обе доступны в Packt.
Mastering KVM Virtualization это книга, которая должна предоставить вам состояние "с нуля до героя" за тот промежуток времени, который потребуется вам на то, чтобы прочесть эту книгу. В ней собрано всё, что может предложить KVM как для DevOps, так и для обычных пользователей уровня системного администрирования, а также для разработчиков. Мы надеемся, что прочитав эту книгу, вы сможете осознать всё о внутреннем устройстве KVM, а также о более современных понятиях и обо всём, что творится между ними. Не важно, приступаете ли вы только к виртуализации KVM или уже следуете ей, вы должны обнаружить ценные сведения на страницах этой книги.
Эта книга предназначена как начинающим линуксоидам, так и профессионалам, поскольку она не требует существенных знаний в Linux заранее. Мы окажем вам содействие по мере прочтения этой книги, и это неотъемлемая часть нашего процесса обучения.Если вам интересны KVM, OpenStack, стек ELK, Eucalyptus или AWS – мы окажем вам содействие.
Глава 1. Основы виртуализации KVM, обсуждает различные типы виртуализации, виды гипервизоров и понятия виртуализации Linux (Xen и KVM). В этой главе мы попробуем пояснить некоторые основы виртуализации Linux и то, как они соответствуют средам облачных решений с точки зрения верхнего уровня.
Глава 2. KVM в качестве решения виртуализации, запускает обсуждение понятий виртуализации и основных потребностей виртуализации наших окружений, поясняет основы аппаратных и программных сторон виртуализации, а также различных подходов к виртуализации. В этой главе мы начинаем обсуждение KVM и libvirt, те понятия, которые мы будем применять на протяжении всей книги.
Глава 3. Установка гипервизора KVM, libvirt и oVirt, продолжает Главу 2, вводя некоторые новые понятия, включающие oVirt, какой-то GUI, который мы можем применять для управления свомии структурами виртуализации. Мы проведём вас через процесс проверки совместимости применяемого оборудования с KVM, ознакомим с некоторыми основными командами для развёртывания виртуальных машин, а затем перейдём к пояснению того как мы будем применять oVirt в том же самом сценарии.
Глава 4. Сетевая среда libvirt, поясняет как libvirt взаимодействует с различными сетевыми понятиями - виртуальными коммутаторами в разных режимах, как применять инструменты CLI для управления с сетевой средой libvirt, устройствами TAP и TUN, построением момтов Linux и Open vSwitch. После этого мы обсудим дополнительные экстремальные примеры примененич SR-IOV, понятие, которое должно обеспечить минимальную задержку и максимальную пропускную способность и применяется в тех ситуациях, когда на счету каждая миллисекунда.
Глава 5. Хранилище libvirt, является большой, поскольку понятия хранения чрезвычайно важны при создании сред виртуализации и облачых решений. Мы обсуждаем все типы хранилищ, поддерживающих KVM - локальные пулы хранения, NFS, iSCSI, SAN, Ceph, Gluster, множественность путей и избыточность, типы виртуальных дисков и тому подобное. Мы также предлагаем вам заглянуть в будущее хранилищ - с обсуждением некоторых технологий и среди них NVMe и NVMeoF.
Глава 6. Устройства и протоколы Виртуальных устройств отображения, рассказывает о различных видах отображения виртульных машин, протоколах удалённого доступа, включая VNC и SPICE, а также NoVNC, который гарантирует переносимость отображения, так как мы можем применять консоль виртуальной машины внутри веб браузера, приприменяии NoVNC.
Глава 7. Виртуальные машины: Установка, настройка и управление жизненным циклом, вводит дополнительные способы развёртывания и настройки виртуальных машин KVM, а также процессов миграции, которые очень важны для любого вида промышленной среды.
Глава 8. Создание и модификация дисков ВМ, шаблонов и моментальных снимков,
Обсуждает различные типы образов виртуальных машин, роцессы работы с шаблонами виртуальных машин, применение моментальных
снимков, а также некоторые варианты использования и практические советы использования моментальных снимков. Она также
служит введенеием в нашу следующую глву, в которой мы применяем шаблоны и диски виртуальных машин намного более сглаженным
образом для для персонадизации виртуальных машин по окончанию запуска с применением cloud-init
и cloudbase-init
.
Глава 9. Персонализация ВМ при помощи cloud-init,
Обсуждат одно из наиболее фундаментальных понятий в облачгных средах - как выполнять персонализацию неких образа/ шаблона
виртуальной машины после запуска. Почти во всех облачных средах для осуществления настроек виртуальной машины Linux
применяется cloud-init
и мы дадим пояснения как он работает и как заставить его
работать в вашей среде.
Глава 10. Автоматизированные развёртывания гостей Windows и их персонализация,
является продолжением Главы 9 с сосредоточением на работе с шаблонами
виртуальных машин Microsoft Windows и персонализацией после их запуска. Для этого мы применяем
cloudbase-init
, некое понятие, которое в своей основе то же самое что и
cloud-init
, но но подогнано лишь под операционные системы на основе Microsoft.
Глава 11. Ansible и составление сценариев для оркестровки и автоматизации, забирает нас в первую часть путешествия по Ansible - развёртыванию AWX и Ansible, а также поясняет как применять эти понятия в наших средах на основе KVM. Это всего лишь одна из моделей использования Ansible, котороая применяетс в ИТ наших дней, ибо вс\ история DevOps и инфраструктуры- как - кода (IaaS) выставляют намного больше в отрасли ИТ по всему миру.
Глава 12. Горизонтальное масштабирование KVM посредством OpenStack, обсуждает собственно процесс сборки облачной среды на основе KVM. OpenStack выступает стандартным подходом реализации при использовании KVM.В этой главе мы обсудим все блоки построения и службы OpenStack, то как развернуть их с нуля, а также опишем как применять это в промышленных средах.
Глава 13. Горизонтальное масштабирование KVM посредством AWS, осуществит наше путешествие по использованию общедоступных и гибридных понятий при помощи Amazon Web Services (AWS). Как и почти все прочие главы, эта глава чрезвычайно практична и позволяет вам получить представление об AWS как о понятии, которое будет иметь ключевое значение при развёртывании инфраструктуры гибридного облака с применением Eucalyptus в самом конце этой главы.
Глава 14. Платформа мониторинга виртуализации KVM, вводит очень популярное понятие мониторинга через стек Elasticsearch, Logstash, Kibana (ELK). Она также проведёт вас по всему процессу настройки и интеграции необходимого стека ELK с вашей инфраструктурой KVM, причём всеми способами к окончательному результату - применению инструментальной панели и UI для мониторинга вашей среды на основе KVM.
Глава 15. Регулирование и оптимизации ВМ KVM, обсуждает различные подходы регулировок и оптимизации в средах KVN через построное построение всех принципов построения вашей инфраструктуры и помещения её в (верное) использование. Здесь мы обсудим ряд современных тем - NUMA, KSM, производительность ЦПУ и памяти, прикрепление к ЦПУ, регулировка VirtIO, а ткже блочных и сетевых устройств.
Глава 16. Руководство по поиску и устранению неисправностей KVM, начинается с самых основ - устранения неисправностей и ведения журналов и поясняет различные методологии устранения неисправностей для KVM и oViirt, Ansible и OpenStack, Eucalyptus и AWS. Это именно те задачи реальной практики, с которыми мы также сталкивались в своих промышленных средах на протяжении написания данной книги, в том числе проблемы, относящиеся к моментальным снимкам и шаблонам.
В качестве предварительных условий для этой книги мы предполагаем, по крайней мере, базовые знания Linux и прежнего опыта установки виртуальных машин.
ПО/ аппаратные средства, рассматриваемые в этой книге | Требования к ОС |
---|---|
|
Windows, macOS X и Linux (любой) |
|
Windows, macOS X и Linux (любой) |
|
Windows, macOS X и Linux (любой) |
Видео Кода в действии для данной книги можно просмотреть по ссылке: https://bit.ly/32IHMdO.
Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Вы можете загрузить этот файл по адресу: http://www.packtpub.com/sites/default/files/downloads/9781838828714_ColorImages.pdf.
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
CodeInText
обозначает в тексте, имена таблиц базы данных, имена папок,
имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter.
Вот некие примеры:
"Всё что нам требуется, так это убрать комментарий с одного конвейера, который определён в файле конфигурации,
расположенного в папке /etc/logstash
.".
Блок кода записываются следующим образом:
<memoryBacking>
<locked/>
</memoryBacking>
Когда мы желаем привлечь ваше внимание к определённой части блока кода, соответствующие строки или элементы устанавливаются жирным текстом:
POWER TTWU_QUEUE NO_FORCE_SD_OVERLAP RT_RUNTIME_SHARE NO_LB_MIN NUMA
NUMA_FAVOUR_HIGHER NO_NUMA_RESIST_LOWER
Жирный шрифт указывает некий новый термин, важное слово или слова, которые вы наблюдаете на экране. Например, слова в меню или блоках диалога в тексте, подобном приводимому здесь. Например: "После того как вы нажмёте кнопку Refresh на данной странице должны появиться новые данные".
Замечание | |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
Совет | |
---|---|
Советы и ловкие приёмы возникают таким образом. |
В этой книге вы будете находить отдельные часто повторяющиеся заголовки (Приготовление, Как это сделать..., Как это работает..., Также ознакомьтесь... и Дополнительно). Чтобы получить чёткие инструкции как выполнить определённый рецепт, применяйте эти разделы следующим образом:
Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге - что вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать издания, от которых вы на самом деле получите максимальную пользу.
Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.
Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.
Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.
Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.
Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.
Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}
Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.
Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.
Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.
- Предисловие
- Часть 1. Основы виртуализации KVM
- Часть 2. libvirt и ovirt для управления виртуальными машинами
- Глава 3. Установка гипервизора KVM, libvirt и oVirt
- Глава 4. Сетевая среда libvirt
- Основы построения физической и виртуальной сетевой среды
- Построение виртуальной сетевой среды
- Применение сетевой среды пространства пользователя при помощи устройств TAP и TUN
- Реализация построения моста Linux
- Настройка Open vSwitch
- Основы SR-IOV и его использование
- Основы macvtap
- Выводы
- Вопросы
- Дальнейшее чтение
- Глава 5. Хранилище libvirt
- Введение в хранилище
- Пулы хранения
- Пул хранения NFS
- Хранилище iSCSI и SAN
- Избыточность хранилища и множество путей
- Gluster и Ceph в качестве основы хранения для KVM
- Виртуальные образы диска и форматы, а также базовые операции хранилища KVM
- Самые последние развёртывания в хранилище - NVMe и NVMeOF
- Выводы
- Вопросы
- Дополнительное чтение
- Глава 6. Устройства и протоколы Виртуальных устройств отображения
- Глава 7. Виртуальные машины: Установка, настройка и управление жизненным циклом
- Глава 8. Создание и модификация дисков ВМ, шаблонов и моментальных снимков
- Часть 3. Автоматизация, персонализация и оркестровка для ВМ KVM
- Глава 9. Персонализация ВМ при помощи cloud-init
- В чём состоит потребность в индивидуализации виртуальной машины?
- Основы cloud-init
- Основы архитектуры cloud-init
- Установка и настройка cloud-init во время запуска
- Передача метаданных и данных пользователя в cloud-init
- Примеры того как применять сценарий cloud-confg с cloud-init
- Выводы
- Вопросы
- Дальнейшее чтение
- Глава 10. Автоматизированные развёртывания гостей Windows и их персонализация
- Глава 11. Ansible и составление сценариев для оркестровки и автоматизации
- Часть 4. Масштабирование, мониторинг, регулировка производительности и устранение неисправностей
- Глава 12. Горизонтальное масштабирование KVM посредством OpenStack
- Глава 13. Горизонтальное масштабирование KVM посредством AWS
- Глава 14. Платформа мониторинга виртуализации KVM
- Глава 15. Регулирование и оптимизации ВМ KVM
- Глава 16. Руководство по поиску и устранению неисправностей KVM
- Дополнение A, Обзор веб интерфейса Cockpit CentOS 8 (Глава 7 Всего сущего CentOS 8)
- Обзор Cockpit
- Установка и включение Cockpit
- Доступ к Cockpit
- Система
- Журналы
- Хранилища
- Сетевая среда
- Виртуальные машины
- Учётные записи
- Службы
- Приложения
- Диагностические отчёты
- Дамп ядра
- SELinux
- Обновления программного обеспечения
- Терминал
- Подключение ко множеству серверов
- Включение сохраняемых замеров
- Выводы
- Дополнение B, Архитектура программного обеспечения Stratis
- Часть I. Предпосылки
- Часть II. Обзор решения
- Часть III. Реализация
- Компоненты программного обеспечения
- Практика пользователей
- Программный API D-Bus
- Внутреннее устройство
- Подробности реализации
- Инструментарий командной строки ’stratis’
- stratisd
- Имена device-mapper
- Минимальная версия Имён device-mapper
- Интеграция с ОС: Запуск и initrd
- Интеграция с ОС: udev
- Интеграция с ОС: записи /dev
- Частичная активация пула
- Моментальные снимки
- Внутреннее устройство лежащего в основе хранилища
- Рабочие состояния
- Лицензирование
- Часть IV. Дополнительные материалы
- Указатель