Управління віртуальними машинами KVM з консолі

У попередній статті ми розглянули установку гипервизора KVM і створення віртуальної машини. В рамках однієї статті, ми не змогли охопити всі нюанси управління віртуальними машинами, а торкнулися лише їх частину. Сьогодні, ми постараємося розповісти все про управління віртуальними машинами з консолі сервера: як змінити параметри ВМ, додати додаткові пристрої і розглянемо основні команди, які використовуються для адміністрування віртуальних машин KVM.

зміст:

  • Virsh: команди управління віртуальною машиною KVM
  • Додавання пам'яті і vCPU віртуальній машині KVM
  • KVM: додавання диска в віртуальну машину
  • KVM: додавання мережевої карти для віртуальної машини

Virsh: команди управління віртуальною машиною KVM

Перше питання, яке виникає у початківця адміністратора KVM: як побачити створені віртуальні машини, як зупинити, запустити і видалити їх. Для управління ВМ в KVM з консолі можна використовувати утиліту virsh (Використовує libvirt API). За допомогою утиліти virsh можна виконати практично всі операції з віртуальними машинами KVM.

# Virsh list - показати список запущених ВМ

# Virsh list --all - показати список всіх машин (в тому числі виключених)

Як видно з скріншоту, в першому випадку відключена ВМ була відображена.

# Virsh shutdown - вимкнути віртуальну машину

# Virsh start - запустити віртуальну машину

# Virsh suspend - призупинити віртуальну машину

# Virsh resume - запустити призупинену віртуальну машину

# Virsh reboot - перезапустити віртуальну машину

# Virsh destroy - знищити віртуальну машину

# Virsh undefine - видалити машину зі списку і видалити всі файли, що належать їй (зазвичай застосовується після виконання команди virsh destroy).

# Virsh vcpuinfo - інформація про процесор на віртуальній машині (інформацію про залозі фізичного Linux сервера можна отримати так)

Ще кілька команд по отриманню різної інформації про віртуальній машині:

# Virsh domid - отримати ідентифікатор віртуальної машини

# Virsh domuuid - отримати UUID віртуальної машини

# Virsh dominfo - отримати відомості про віртуальній машині

# Virsh domstate - перегляд стану віртуальної машини

# Virsh dumpxml - вивести файл конфігурації зазначеної віртуальної машини в XML форматі

Додавання пам'яті і vCPU віртуальній машині KVM

В консолі KVM ви можете додати або зменшити ресурси процесора і пам'яті, виділені для ВМ двома способами:

  • За допомогою virsh
  • через конфігураційний XML файл ВМ

Якщо віртуальна машина запущена, її потрібно зупинити:

# Virsh shutdown test-centos

Domain test-centos is being shutdown

Тепер за допомогою virsh змінимо кількість віртуальних процесорів до 6 (vCPU):

# Virsh setvcpus --config

де:

- ім'я машини

- кількість ядер процесора

наприклад:

# Virsh setvcpus test-centos 6 --config

Але при застосуванні цієї команди, у мене відразу ж з'явилася помилка:

"Error: invalid argument: requested vcpus is greater than max allowable vcpus for the persistent domain: 6> 4"

Ми не можемо встановити кількість ядер процесора, більше, ніж максимальна кількість. Щоб збільшити максимальну кількість ядер ВМ, виконайте команду:

# Virsh setvcpus test-centos 6 --config --maximum

Повторіть першу команду і запустіть віртуальну машину:

Перевіримо кількість процесорів в налаштуваннях ВМ: овлення кількість процесорів:

# Virsh dumpxml test-centos

 test-centos 5c7eabea-a180-4f74-af9f-c4c2d3b7f70f 2097152 2097152 6 

Аналогічним чином додамо пам'ять віртуальній машині:

# Virsh setmem --config

наприклад:

# Virsh setmem test-centos 4G --config

Все з тієї ж причини, відразу ж вийшла помилка:

"Error: invalid argument: can not set memory higher than max memory."

Збільшимо максимальне значення пам'яті ::

# Virsh setmaxmem test-centos 6G --config

Тепер можна збільшити пам'ять ВМ.

Перед усіма змінами не забувайте зупиняти ВМ, а після запускати її.

Також ви можете змінити ресурси ВМ KVM через її конфігураційний XML файл. Можна змінити файл в режимі онлайн або ж зробивши бекап XML файлу, змінити його і застосувати до віртуальної машини.

Відредагуємо XML файл ВМ в онлайн режимі:

# Virsh edit

У відкритому редакторі vi внесіть зміни, натиснувши кнопку "Insert".

Змініть блок:

 test-centos 5c7eabea-a180-4f74-af9f-c4c2d3b7f70f 6291456 4194304 6  

Наприклад, задамо для ВМ 2 ядра і 1Гб пам'яті:

Учітивайіе що пам'ять вказується в кілобайтах.

Збережіть зміни у файлі і запустіть ВМ:

# Virsh reboot

Перевірте налаштування ВМ:

Теж саме можна зробити, зробивши бекап XML файлу:

# Virsh dumpxml> /root/test.xml
# Vi /root/test.xml

Змініть потрібні вам параметри, збережіть файл і застосуєте до віртуальної машини:

# Virsh shutdown test-centos

Domain test-centos is being shutdown

# Virsh define /root/test.xml

Domain test-centos defined from /root/test.xml

# Virsh start test-centos

Domain test-centos started
Іноді при зміні конфігураційного файлу ВМ в онлайн режимі призначені ресурси скидаються після перезавантаження. В цьому випадку виконайте зупинку віртуальної машини і після цього просто запустіть її.

KVM: додавання диска в віртуальну машину

В одній з наших статей, ми описували процес розширення і зменшення дисків віртуальних машин в KVM. Але ми не описували варіант по додаванню додаткового диска.

Спочатку потрібно створити додатковий файл диска для віртуальної машини:

# Qemu-img create -f qcow2 -o size = 20G /vz/disk/test.img

Замість qcow2 ви можете вказати потрібний формат диска, так само потрібно вказати шлях до файлу. У мене сховище для дисків / vz / disk /.

Після цього, можна додати пристрій віртуального диска до самої ВМ:

# Virsh attach-disk /vz/disk/test.img vdb --type disk --persistent

Зупиніть та запустіть ВМ, перевірте що вийшло:

# Virsh shutdown test-centos

Domain test-centos is being shutdown

# Virsh start test-centos

Domain test-centos started

# Virsh dumpxml test-centos

 test-centos 5c7eabea-a180-4f74-af9f-c4c2d3b7f70f 2097152 2097152 6 / machine hvm ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~        

Як бачимо, диск доданий. Після даних маніпуляцій, на віртуальній машині потрібно розмітити цей диск під ваші потреби.

KVM: додавання мережевої карти для віртуальної машини

Попрьуем додати додатковий мережевий інтерфейс для ВМ. Спочатку перевіримо, які мережеві інтерфейси створені на хості:

# Brctl show

У мене на KVM сервері створена одна віртуальна машина, з одним мережевим інтерфейсом. До br0 нам потрібно прикріпити ще один віртуальний мережевий інтерфейс. Виконайте команди:

# Virsh shutdown test-centos
# Virsh attach-interface test-centos --type bridge --source br0 --persistent
# Virsh start test-centos

Перевірте, що у ВМ з'явився додатковий мережевий інтерфейс:

           

Також ви можете змінити мережеві настройки віртуальної машини безпосередньо через XML файл: # virsh edit test-centos

Після першого мережевого інтерфейсу додайте наступні рядки:

  

Збережіть файл і запустіть ВМ. Іншу конфігурацію, KVM додасть сам (mac address і тд).

У даній статті ми торкнулися основні моменти, які можуть вам знадобитися при управлінні віртуальними машинами KVM з консолі Linux сервера. У наступній статті ми розглянемо управління віртуальними машинами через графічний менеджер virt-manager.