virt-команди в Debian - Компютърни мрежи за малки и средни предприятия

Общ индекс на поредицата: Компютърни мрежи за МСП: Въведение

Заглавието на тази публикация се отнася до поредица от конзолни команди, започващи с «virt- « и това може да бъде полезно при определени обстоятелства. Ще дадем само кратко описание на всеки един и някои примери за употреба. Повтаряме това: Не можем да заменим ръководствата, придружаващи всяка команда. Настоятелно ви препоръчваме проверете тези страници, като стартирате човек вир-comando.

  • Основната цел на тази статия е да продължи да показва широката вселена, която в момента е виртуализация в Linux чрез Qemu-KVM Hypervisor. Въпреки че в заглавието пишем името разпределението «Debian«, Общите принципи са приложими за всяко друго разпространение чрез специфичните команди на всеки един от тях. Особено тези, свързани с търсенето, описанието и инсталирането на пакети, наред с други.

Преди да продължите с четенето, препоръчваме посещение предишната статия: Qemu-KVM + Virt-Manager на Debian - Компютърни мрежи за МСП.

Кога да се използват командите?

В много случаи ние управляваме отдалечено сървър за поддръжка на виртуализация с Qemu-KVM и по някаква причина нямаме графичен интерфейс на Virtual Machine Manager - Вирт-мениджър:

  • Типичен случай, когато осъществяваме достъп до отдалечения сървър от Windows станция чрез маджунили някой друг от многото алтернативи които съществуват за свързване чрез SSH със сървър на Debian GNU / Linux и последният няма инсталирана поддръжка за «X«, Или графична поддръжка.
  • Ние просто искаме да управляваме виртуалните машини на локалния или отдалечения сървър с помощта на конзолни команди.

Инсталиран с libvirt-клиенти

В предишна статия ние инсталираме пакета libvirt-бин, и като част от процеса беше инсталиран libvirt-клиенти. Ако работим в конзола:

buzz @ sysadmin: ~ $ sudo dpkg -L libvirt-client | grep / bin
/ ЮЕсАр / хамбар
/ usr / bin / virsh
/ usr / bin / virt-host-validate
/ usr / bin / virt-login-shell
/ usr / bin / virt-xml-validate
/ usr / bin / virt-pki-validate
  • вирш: Програмата virsh е основният потребителски интерфейс за цялостно управление на домейни за гости - Гости. Използва се за изброяване, създаване, поставяне на пауза и изключване на домейни. Тази команда трябва да бъде извикана с разрешения на корен. Той има два начина за стартиране: в команден режим и в интерактивен режим. Ще посветим следваща статия на virsh.
  • virt-host-validate: инструмент, който позволява да се провери конфигурацията на хоста - Домакин, за да може да поддържа всички драйвери на Hypervisor - Hypervisor. За да получите правилни резултати, командата трябва да се изпълни с разрешения на корен.
  • virt-login-shell: команда за изпълнение на a черупка персонализирани за a нормален потребител в контейнер LXC, чието име е същото като потребителя, който го извиква. Ако контейнерът не работи, командата virt-login-shell ще се опита да го стартира. Тази команда не може да бъде извикана с потребителски разрешения корен. Изрично конфигурационният файл за тази програма е /etc/libvirt/virt-login-shell.conf.
  • virt-xml-валидиране: валидиране на XML файлове от libvirt сравнявайки ги със схематично - схема валиден. Получаваме списък с валидни имена на схеми, ако изпълним man virt-xml-validate.
  • virt-pki-валидате: използва се за проверка дали PKI файловете на libvirt Те са правилно конфигурирани както от страна на защитения сървър, така и от клиента, който ще използва протокола за TLS криптиране за отдалечен достъп до сървъра. Изпълнението му ще е необходимо, ако сме активирали дистанционно администриране през TLS и SSL. Глава 22.2 от документа Ръководство за внедряване и администриране на виртуализация, е посветена на това решение. Ние предлагаме че нашите бизнес мрежи използват отдалечено администриране чрез SSH, най-простият и безопасен метод за бизнес LAN, на който ще посветим по-късна статия.

Инсталиран с virtisnt

В предишната статия също инсталирахме пакета вир-мениджър. Като част от този процес пакетът беше инсталиран девствен. Ако искаме да знаем кои команди съдържа последната, изпълняваме:

byzz @ sysadmin: ~ $ sudo dpkg -L virtinst | grep / bin
/ ЮЕсАр / хамбар
/ usr / bin / virt-convert
/ usr / bin / virt-image
/ usr / bin / virt-xml
/ usr / bin / virt-install
/ usr / bin / virt-clone
  • virt-конвертиране- команда, която преобразува дефинициите на виртуална машина във формати VMX y Ovf към родния формат libvirt XML. Форматът VMX обикновено се използва от VMware, докато OVF «Отворете формата за виртуализация»Може да се използва от всеки Hypervisor подкрепете го.
  • virt-изображение- Създава виртуална машина от файл с дескриптор на изображение в XML формат. Този конкретен инструмент ще бъде премахнат от бъдещите версии на девствен, така че Ние не предлагаме неговото използване.
  • virt-xml: Позволява редактиране на собствени XML файлове, използвани от libvirt, използвайки опциите на командния ред.
  • virt-инсталиране: инструмент за команден ред, който позволява да се създават нови виртуални машини в хипервизори като KVM, Xen или Linux контейнери, които използват библиотеката за управление на хипервизор "Libvirt". Този инструмент поддържа графична инсталация, ако използваме например VNC Virtual Network Computingили на SPICE. Той също така напълно поддържа конзолен или текстов режим. Чрез неговото използване можем да създадем виртуална машина с един или повече твърди дискове, една или повече мрежови карти, звукови устройства, физически USB или PCI устройства и т.н. Инсталационният носител може да бъде локален, отдалечен, публикуван с помощта на собствения протокол UNIX NFS Network File System, HTTP, FTP. и т.н.
  • virt-клонинг- инструмент за команден ред за клониране на съществуващи виртуални машини с помощта на библиотеката за управление на хипервизор "Libvirt". По същество копирайте изображението на виртуална машина и създайте нов гост - гост с идентична хардуерна конфигурация. Хардуерните елементи, които трябва да бъдат уникални, например хардуерният адрес на мрежова карта, ще бъдат актуализирани, за да се избегнат сблъсъци или шум между старата и новата гост.

virt-viewer

Този инструмент също се инсталира, когато правите вир-мениджър. virt-viewer това е отделен пакет.

  • virt-viewer: позволява ни да покажем графична конзола чрез VNC или SPICE на конкретна виртуална машина, независимо дали се намира локално или отдалечено. Можем да се позовем на гост които искаме да покажем чрез неговото име, ID или UUID. Ако виртуалната машина не работи, virt-viewer ще изчака да стартира.

Други "virt-" команди, които могат да бъдат инсталирани от отделни пакети

  • виртуозни екстри- Колекция от инструменти, свързани с виртуализацията. Включва приставка за «Munin«, И скрипт за конвертиране на виртуални машини, създадени с VMware Workstation или VMware Server, във формата, използван в Qemu-KVM.
  • virt-top: Показва статистиката на виртуализирани домейни. Един вид връх o htop за виртуални машини

Инсталиран с qemu-utils

Въпреки че името на тези инструменти не започва с виртуалноСъс сигурност ще трябва да използваме някои от тях в определен момент, особено този, свързан с изображенията на дисковете на виртуалните машини.

Можем да ги извикаме след инсталирането на Платформа за виртуализация Qemu-Kvm, както е посочено в предишната статия. Ако искаме да знаем кои команди е оставил пакетът на наше разположение qemu-utils, просто трябва да стартираме:

buzz @ sysadmin: ~ $ sudo dpkg -L qemu-utils | grep / bin
/ ЮЕсАр / хамбар
/ usr / bin / qemu-img
/ usr / bin / qemu-nbd / usr / bin / qemu-io

Ако вместо да дискриминира от / бин щяхме да го направим за / sbin, бихме получили друг резултат, който оставяме на вашето внимание.

  • qemu-img: позволява ни да създаваме и конвертираме и / или модифицираме изображения на дискове, които не работят или които са Извън линия.
    Ние предлагаме изпълнете командата мъж qemu-img. Ще подчертаем само, че НИКОГА не бива да използваме тази команда за модифицирайте всяко изображение, което се използва от която и да е виртуална машина или друг процес, защото може да унищожи изображението. Нито трябва да проверяваме данните на изображение, което е в процес на модификация, тъй като можем да открием несъответствия в неговото състояние.

Примери за използване на някои от командите

virt-host-validate

buzz @ sysadmin: ~ $ virt-host-validate 
  QEMU: Проверка за хардуерна виртуализация: PASS QEMU: Проверка за устройство / dev / kvm: PASS QEMU: Проверка за устройство / dev / vhost-net: ПРЕДУПРЕЖДЕНИЕ (Заредете модула „vhost_net“, за да подобрите производителността на virtio мрежи) QEMU: Проверка за device / dev / net / tun: PASS LXC: Проверка за Linux> = 2.6.26: PASS

buzz @ sysadmin: ~ $ sudo virt-host-validate 
[sudo] парола за вест: QEMU: Проверка за хардуерна виртуализация: PASS QEMU: Проверка за устройство / dev / kvm: PASS QEMU: Проверка за устройство / dev / vhost-net: PASS QEMU: Проверка за устройство / dev / net / tun : PASS LXC: Проверка за Linux> = 2.6.26: PASS

virt-xml-валидиране

buzz @ sysadmin: ~ $ sudo virt-xml-validate /etc/libvirt/qemu/dns.xml 
/etc/libvirt/qemu/dns.xml проверява

buzz @ sysadmin: ~ $ sudo virt-xml-validate /etc/libvirt/qemu/networks/default.xml
/etc/libvirt/qemu/networks/default.xml проверява

qemu-img

buzz @ sysadmin: ~ $ qemu-img check /tera/vmware/omicron/omicron.vmdk
На изображението не са открити грешки.

buzz @ sysadmin: ~ $ qemu-img info /tera/vmware/omicron/omicron.vmdk
изображение: /tera/vmware/omicron/omicron.vmdk
файлов формат: vmdk виртуален размер: 20G (21474836480 байта) размер на диска: 3.6G cluster_size: 65536 Формат конкретна информация: cid: 1473577509 родителски cid: 4294967295 тип създаване: monolithicSparse extents: [0]: виртуален размер: 21474836480 име на файла: / tera / vmware / omicron / omicron.vmdk размер на клъстера: 65536 формат:

buzz @ sysadmin: ~ $ qemu-img info /tera/vms/omicron.raw 
изображение: /tera/vms/omicron.raw
файлов формат: суров виртуален размер: 20G (21474836480 байта) размер на диска: 3.4G

buzz @ sysadmin: ~ $ qemu-img info /tera/vms/miweb.qcow2
изображение: /tera/vms/miweb.qcow2
файлов формат: qcow2 виртуален размер: 10G (10737418240 байта) размер на диска: 4.5G cluster_size: 65536 Форматиране на конкретна информация: compat: 1.1 мързелив refcounts: false

buzz @ sysadmin: ~ $ sudo qemu-img convert -p /tera/vms/omicron.raw -O qcow2 /tera/vms/omicron.qcow2
    (27.56 / 100%)

buzz @ sysadmin: ~ $ qemu-img info /tera/vms/omicron.qcow2 
изображение: /tera/vms/omicron.qcow2
файлов формат: qcow2 виртуален размер: 20G (21474836480 байта) размер на диска: 3.5G cluster_size: 65536 Форматиране на конкретна информация: compat: 1.1 мързелив refcounts: false
buzz @ sysadmin: ~ $ sudo qemu-img create -f qcow2 /tera/vms/hyp2.qcow2 20G
Форматиране '/tera/vms/hyp2.qcow2', fmt = qcow2 size = 21474836480 криптиране = изключено cluster_size = 65536 lazy_refcounts = изключено 

buzz @ sysadmin: ~ $ sudo qemu-img info /tera/vms/hyp2.qcow2
изображение: /tera/vms/hyp2.qcow2
файлов формат: qcow2 виртуален размер: 20G (21474836480 байта) размер на диска: 196K cluster_size: 65536 Форматиране на конкретна информация: compat: 1.1 мързелив refcounts: false

virt-xml

Първо създаваме нов албум:

buzz @ sysadmin: ~ $ sudo qemu-img create -f qcow2 /tera/vms/dns2.qcow2 10G

След това го присъединяваме към съществуващия "dns" домейн:

buzz @ sysadmin: ~ $ virt-xml --connect qemu: /// system dns --add-device --disk /tera/vms/dns2.qcow2 --confirm
--- Оригинален XML +++ Променен XML @@ -128,5 +128,10 @@  + + + + +

Дефинирайте 'dns' с променения XML? (y / n): y
Домейнът 'dns' е дефиниран успешно.

В края на статията даваме пълната структура на ново модифицирания /etc/libvirt/qemu/dns.xml файл.

virt-конвертиране

Нека преобразуваме виртуална машина, създадена с помощта на VMware Workstation към формата libvirt, не без първо да посочите, че форматът на преобразувания твърд диск е qcow2, както и че новото изображение на виртуална машина се създава в основното хранилище / tera / vms. Също така искаме изходът на командата да бъде възможно най-ясен, затова използваме опцията -d.

buzz @ sysadmin: ~ $ sudo virt-convert -d / tera / vmware / miweb / --disk-format qcow2 --destination / tera / vms

След това virt-viewer автоматично се свързва с новоконвертирания Guest и ние можем да видим целия му процес на зареждане. вир

myweb02

virt-клонинг

Нека клонираме виртуалната машина «DNS":

buzz @ sysadmin: ~ $ virt-clone --connect qemu: /// system -o dns --auto-clone
Присвояване на 'dns-clone.qcow2' | 10 GB 00:20 Присвояване на 'dns2-clone.qcow2' | 10 GB 00:01     

Клонът "dns-clone" е създаден успешно.

Проверяваме с помощта на командата вирш, което е визуализация на следващата статия:

buzz @ sysadmin: ~ $ sudo virsh list
 Имена на държава-членка ----------------------------------------------- -----

buzz @ sysadmin: ~ $ sudo virsh list --all
 Име Име Състояние ------------------------------------------------ ----- - dns изключен - dns-clone изключен - miweb изключен

buzz @ sysadmin: ~ $ sudo virsh start dns-clone
Dns-clone на домейн стартира
buzz @ sysadmin: ~ $ virt-viewer --connect qemu: /// system dns-clone

dns-клон

virt-инсталиране

Искаме да създадем виртуална машина на име «WordPress»Да бъде домакин на сайта на Бизнес интранет. Той няма да бъде публикуван в Интернет. Че има около 1024 мегабайта RAM, твърд диск от 80 гигабайта динамичен растеж, който е базиран на Debian Jessie и е свързан към мрежата «подразбиране".

За да улесним живота си, първо създаваме образа на диска с помощта на qemu-img:

buzz @ sysadmin: ~ $ sudo qemu-img create -f qcow2 /tera/vms/wordpress.qcow2 80G
Форматиране '/tera/vms/wordpress.qcow2', fmt = qcow2 size = 85899345920 криптиране = изключено cluster_size = 65536 lazy_refcounts = изключено

След това създаваме машината и започваме процеса на инсталиране:

buzz @ sysadmin: ~ $ sudo virt-install --connect qemu: /// system --virt-type = kvm \
--name wordpress --ram 1024 --vcpus = 1 \
--disk /tera/vms/wordpress.qcow2 \
--cdrom /home/buzz/isos/Linux/debian-8/debian-8.0.0-amd64-CD-1.iso \
--os-type linux --network network = по подразбиране \
--описание wordpress.desdelinux.фен

WordPress

virt-top

buzz @ sysadmin: ~ $ virt-top --connect qemu: /// система
virt-top 15:39:21 - x86_64 2 / 2CPU 1600MHz 3863MB 2 домейни, 2 активни, 2 работещи, 0 спящи, 0 поставени на пауза, 0 неактивни D: 0 O: 0 X: 0 CPU: 0.7% Mem: 768 MB ( 768 MB от гости) ID S RDRQ WRRQ RXBY TXBY% CPU% MEM ВРЕМЕ ИМЕ 22 R 0 0 104 0 0.3 6.0 0: 11.49 dns 21 R 0 0 104 0 0.3 13.0 0: 13.42 miweb

Структура на файла dns.xml

Отначало може да изглежда малко трудно да се разбере структурата на дефиниционния файл на виртуална машина или гост, както се разбира от хипервизора Qemu-KVM и свързаните с него библиотеки като libvirt. Файлът е в стандартен формат.XML. Тя е структурирана от дефиниционни блокове, съдържащи се в основния блок «домейн".

....

В този блок ще намерим дефиниции на цялата виртуална машина:

  • име на отбора
  • uuid на екипа
  • количество RAM
  • брой процесори
  • тип операционна система и нейната архитектура. устройство на зареждане.
  • Характеристики, които поддържа, като ACPI „Интерфейс за автоматично управление на захранването“, APM „Автоматично управление на захранването“ и PAE.
  • Модел (и) на процесора и техните характеристики
  • настройка на часовника: независимо дали е UTC "United Time Cordinate" или не.
  • отговор на събития като изключване, рестартиране или срив на системата
  • ако PM «Управление на захранването» е активирало събитията «прекъсване на писането в паметта» и «спиране на писането на твърдия диск»
  • тип емулатор на различни устройства или KVM устройства
  • за всички твърди дискове: драйвер, тип диск, път на файл с изображение, целево устройство, тип шина, слот «слот»PCI, към които е свързан и т.н., в зависимост от виртуалния диск: IDE, SATA, SCSI, USB или Virtio.
  • оптични устройства като CDR
  • брой и вид USB конектори
  • pci слот за IDE диск
  • сериен конектор за комуникации
  • паралелен конектор за принтери
  • мрежови карти с уникален MAC адрес, тип мрежова карта, към кой pci слот е свързана и към коя виртуална мрежа ще се свърже
  • pty серия конзоли
  • устройства за въвеждане като подложка «таблетка", Клавиатура на мишката"мишка"и т.н.
  • видеокарта и нейната RAM, тип, модел, слот, шина и др.
  • и още една дълга и т.н.

Накратко, La Mar Océana на дефиниции и устройства, които са необходими и се поддържат от хипервизора Qemu-KVM и свързаните с него библиотеки, за да има напълно функционална виртуална машина, сякаш е истинска машина.

buzz @ sysadmin: ~ $ sudo cat /etc/libvirt/qemu/dns.xml 
<!--
ПРЕДУПРЕЖДЕНИЕ: ТОВА Е АВТОМАТИЧНО ГЕНЕРИРАН ФАЙЛ.  ИЗМЕНЕНИЯТА ВЪВЕЖДНО ДА БЪДАТ ЗАПИСАНИ И ЗАГУБЕНИ.  Промените в тази xml конфигурация трябва да се правят с помощта на: virsh edit dns или друго приложение, използващо libvirt API.

Предстоящи доставки

  • Командата на Вирш
  • Дистанционно управление на хипервизори и техните виртуални машини с помощта на SSH

Не забравяйте, че това ще бъде поредица от статии на Компютърни мрежи за МСП. Ще ви чакаме!


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Диего каза той

    Поискахте от мен обратна връзка и ето ... 🙂

    Сериалът е много интересен, много завършен. Уча много от него, въпреки че все още не съм пробвал „в производство“.

    В момента завършвам проект, който ме натоварва много, но със сигурност ще използвам тази поредица като ориентир. Благодаря за огромните усилия.

    1.    Федерико каза той

      Благодаря на Диего за обратната връзка. Поне знам, че публикуваното от мен е полезно за вас. И сте прави за огромните усилия, които полагаме DesdeLinux да ви доставяме качествени статии на испански език. Знаем, че този тип публикации не са в изобилие и затова ги пишем.

  2.   Зодия Карбур каза той

    Изчерпателна и дидактична статия amigo Fico, която събира в публикация командите virt- *, използвани в KVM. Много е трудно да се намерят материали като този на испански език. Мисля, че командата virt-what липсваше. Иначе отлично

    1.    Фицо каза той

      Благодаря за коментара, приятелю Зодиак. Вярно е, че командата virt-what липсваше. Съзнателно го пропуснах, защото препоръката за използването му според неговото ръководство ми остави лош вкус. В крайна сметка разбрах, че те не препоръчват използването му

  3.   Федерико каза той

    Много верен приятел Зодиак. Както казва Диего в коментара си, това са големи усилия, които полагаме DesdeLinux да ви доставяме качествени статии на испански. Освен класическите публикации за копиране и поставяне на CD, които изобилстват в WWW Village. Това помага при обучението на системни администратори. Тези, които са следили тази поредица, ще разберат, че планираме да покрием изчерпателно и в логичен ред решението за мрежа от малък или среден бизнес. Благодаря отново на всички за вашите коментари.

  4.   креспо88 каза той

    Правих нещо със смартфони с Android и не бях имал възможност да прочета толкова добра статия, този път просто искам да кажа нещо. Отидете меко. Добро разбиране ...

  5.   Федерико каза той

    Crespo88, статията може да е малко дълга, но не съм приятел да нарязвам конкретна тема като тази на няколко публикации, ако имаш предвид това. Относителната сложност на съдържанието, не го поставям, това е въпросът за самата виртуализация. 😉

    1.    креспо88 каза той

      Не го имах предвид, отлична статия както винаги. Искам да кажа, че свирите много добри песни, тоест с много полезна програма. „Дайте го меко“ означава, че бягате. Хехехе, прегръдка брат.

      1.    Фицо каза той

        Благодаря братко за коментара

  6.   петерчеко каза той

    Много добър пост ... Дидактичен, пълен и просто перфектен.

    Сега за тези, които предпочитат да използват този тип виртуализация, е по-добре да използват oVirt (http://www.ovirt.org/), проект, върху който са изградени Red Hat Virtualization и Open Source. По този начин е възможно да се осъществи много лесен достъп до много разширени опции, които са доста сложни в конзолата :).

    http://www.ovirt.org/download/
    http://www.ovirt.org/documentation/introduction/about-ovirt/

    Наздраве :).

  7.   Федерико каза той

    Благодаря ви много, Petercheco за вашия коментар. В предишната статия „Виртуализация в Debian: Въведение“, в параграф, посветен на Open Virtualization Alliance, споменавам oVirt като един от софтуера, популяризиран от OVA. Мисля, че oVirt е за големи внедрявания. От друга страна, той иска работна станция, посветена на него с 4 концерта RAM като препоръчителното количество памет. Моят приятел и колега Едуардо Ноел "enoel.corebsd@gmail.com" е инсталирал няколко сървъра за виртуализация, базирани на CentOS 7, и ги управлява чудесно с oVirt.

  8.   Денис Кантило каза той

    отлична статия мой партньор, още един пример за качеството, което имате

  9.   Федерико каза той

    Благодаря ти, приятелю Денис, за твоя коментар и незаслужената похвала за мен. Правим каквото можем.

  10.   Исмаел Алварес Уонг каза той

    Въпреки че очаквам теста на virt-командите в домашната ми лаборатория, не мога да не призная, че статията е просто страхотна, много практична и изключително полезна, тъй като е фокусирана върху терминала, който наистина ми е любим за профила на sysadmin.
    Чудесно е всичко, свързано с локалното или отдалечено администриране на виртуални машини, без да се използва графичния интерфейс "Virt-Manager".
    За пореден път, приятелю Фико, вие се увеличавате, като безкористно споделяте знанията си за света на Linux.
    Ефузивните SLD на Wong и аз продължаваме да изучаваме по-усърдно серията Virt Qemu-KVM.

    1.    Федерико каза той

      Приятел Уонг: Коментари като вашия са тези, които ме принуждават да продължа да пиша за МСП мрежи. Мнозина може да се чудят защо акцентът ми е върху Qemu-KVM, а отговорът е в моята статия https://blog.desdelinux.net/virtualizacion-debian-introduccion-redes-computadoras-las-pymes/#Open_Virtualization_Alliance_OVA. По-малко за него oVirt, които считам за подходящи за сценарии, по-големи от мрежата на МСП, имах работа с другите програми, насърчавани от OVA. Толкова просто

      Защо да търся извън хранилищата на програмите на всяка дистрибуция, в която се качвам, ако има това, което трябва да виртуализирам на ниво предприятие?

      Искрено благодаря за вашите коментари, приятелю Вонг!