Глава 1. Введение
Содержание
Добро пожаловать в самую первую главу Foundations of Libvirt Development. В этой главе мы изучим что рассматривает данная книга и те соглашения, которые я использую на её протяжении.
Это книга про API libvirt и том как с ним работать с ними для управления виртуальными машинами под конкретной системой QEMU/ KVM. libvirt имеет API, который поддерживает множество языков программирования, однако эта работа сосредотачивается исключительно на языке программирования Python.
libvirt может применяться для поддержки целого ряда видов виртуальных машин, а его API являются общей точкой входа для любого типа виртуальных машин. Те виртуальные машины, которые поддерживаются (но не ограничены только ими) KVM, QEMU, Xen, Virtuozzo, VMware ESX, LXC, bhyve и многие иные. Все они могут управляться программируемым образом через API libvirt. Эти API дшимшке работают совершенно одинаково по всем поддерживаем платформам.
Данная книга не рассматривает как устанавливать QEMU/ KVM на какой бы то ни было платформе. Предполагается, что вы либо уже имеете такие навыки, либо уже работаете в некой системе, в которой они уже установлены. Ознакомьтесь с документацией для своей операционной системы относительно инструкций по установке поддержку виртуальной машины.
Имеющийся API Python libvirt является некой объектно- ориентированной системой. Он предоставляет классы для виртуальных подключений, взаимодействия виртуальных машин (доменов), поддержки виртуальной и раельной сетевой среды, поддержку хранилища и выборку информации из самой системы хоста хозяина. Всё взаимодействие с этой системой осуществляется через поддерживаемые классы, а следовательно вам требуется понимать координирует объекты под Python. Убедитесь что вы владеете такими знаниями прежде чем попытаетесь использовать обсуждаемый API libvirt Python.
Дополнительно к уже упомянутым темам API, данная книга рассматривает общее взаимодействие, такое как создание/ уничтожение таких логических сущностей как домены, сетевые среды, хранилища и тому подобное. Данная книга также обсуждает такие темы как получение информации относительно объектов, получения статистических данных относительно объектов, изменение настроек конфигурации некого объекта, запуск/ останов некого объекта и добавление, удаление оборудования из объектов.
API libvirt рассматривает целиком жизненный цикл виртуальных объектов, от создания до уничтожения. Он содержит всё что требуется для управления неким виртуальным объектом на протяжении такого жизненного цикла. Однако она не содержит API для управления таким объектом изнутри (то есть нет API который подключается к внутреннему API самого объекта). Таким образом, для доменов (виртуальных машин), не существует способа для способа предоставлять задания для самого домена или отслеживать нечто происходящее в самом домене. Такой вид администрирования оставляется на самого адиминистратора.
Данная книга применяет некоторые соглашения для обращения внимания на поределённые части информации. Применяемые соглашения зависят от самого типа отображаемой информации.
Компьютерный команды обычно представляются жирным текстом, так как это представлено в следующем примере:
-
Запустите команду оболочки Unix
ls
для представления некого списка файлов и каталогов.
Названия файлов обычно представляются текстом с однотипной шириной символов, как это отображено в следующем примере:
-
Для просмотра содержимого нашего файла
report.txt
воспользуйтесь командойcat report.txt
.
Элементы языка программирования содержат такие вещи как названия переменных, литералы, константы, символы, маркеры, функции, названия классов и прочие объекты.
Символьные данные обычно берутся напрямую с экрана компьютера или некого символьного значения языка программирования и предоставляются как текст с однотипной шириной символов, как это показано следующим примером:
-
Следующая строка является выводом исполнения
ls
:en-US Makefile publican.cfg
Вывод данных компьютера обычно получается непосредственно с экрана компьютера и представляет собой текст с одностипной шириной символов, как это показывает пример ниже:
books Desktop documentation drafts mss photos stuff svn
books_tests Desktop1 downloads images notes scripts svgs libvirt
Листинги исходного кода также выделяются из прочего текста таким образом:
from __future__ import print_function
import sys
import libvirt
conn = libvirt.open('qemu:///system')
if conn == None:
print('Failed to open connection to qemu:///system', \
file=sys.stderr)
exit(1)
conn.close()
exit(0)
Наконец, я применяю три стиля визуализации для обращения вашего внимания к информации, которую в противном случае можно не распознать.
Совет | |
---|---|
Обратите внимание на советы, ярлыки или альтернативные подходы к той задаче, которая пребывает в ваших руках. Игнорирование некого замечания не должно повлечь к отрицательным последствиям, но вы можете упустить некую уловку, которая могла бы сделать вашу жизнь более простой. |
Замечание | |
---|---|
Важные блоки подробностей которые запросто пропустить, например, изменения конфигурации, которые применяются только для данного сеанса, либо службы, которые следует перезапустить перед применением обновлений. Игнорирование блока с пометкой "Предостережение" не приведёт к утрате данных, но мжет приводить к раздражению и разочарованию.. |
Предостережение | |
---|---|
Предостережение не стоит игнорировать. Игнорирование предостережения скорее всего вызовет утрату данных. |