У попередній статті ми розглянули установку гипервизора 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.