В предыдущей статье мы рассмотрели установку гипервизора KVM и создание виртуальной машины. В рамках одной статьи, мы не смогли охватить все нюансы управления виртуальными машинами, а затронули лишь их часть. Сегодня, мы постараемся рассказать все об управлении виртуальными машинами из консоли сервера: как изменить параметры ВМ, добавить дополнительные устройства и рассмотрим основные команды, которые используются для администрирования виртуальных машин KVM.
Первый вопрос, который возникает у начинающего администратора KVM: как увидеть созданные виртуальные машины, как остановить, запустить и удалить их. Для управления ВМ в KVM из консоли можно использовать утилиту virsh (использует libvirt API). С помощью утилиты virsh можно выполнить практически все операции с виртуальными машинами KVM.
# virsh list
– показать список запущенных ВМ
# virsh list --all
– показать список всех машин (в том числе выключенных)
Как видно из скриншота, в первом случае отключенная ВМ не была отображена.
# virsh shutdown <vm name>
— выключить виртуальную машину
# virsh start <vm name>
— запустить виртуальную машину
# virsh suspend <vm name>
— приостановить виртуальную машину
# virsh resume <vm name>
— запустить приостановленную виртуальную машину
# virsh reboot <vm name>
— перезапустить виртуальную машину
# virsh destroy <vm name>
— уничтожить виртуальную машину
# virsh undefine <vm name>
— удалить машину из списка и удалить все файлы, принадлежащие ей (обычно применяется после выполнения команды virsh destroy).
# virsh vcpuinfo <vm name>
— информация о процессоре на виртуальной машине (информацию о железе физического Linux сервера можно получить так )
Еще несколько команд по получению различной информации о виртуальной машине:
# virsh domid <vm name>
— получить идентификатор виртуальной машины
# virsh domuuid <vm name>
— получить UUID виртуальной машины
# virsh dominfo <vm name>
— получить сведения о виртуальной машине
# virsh domstate <vm name>
— просмотр состояния виртуальной машины
# virsh dumpxml <vm name>
— вывести файл конфигурации указанной виртуальной машины в XML формате
В консоли KVM вы можете добавить или уменьшить ресурсы процессора и памяти, выделенные для ВМ двумя способами:
Если виртуальная машина запущена, ее нужно остановить:
# virsh shutdown test-centos
Domain test-centos is being shutdown
Теперь с помощью virsh изменим количество виртуальных процессоров до 6 ( vCPU ):
# virsh setvcpus <vm name> <vcpu_count> --config
Где:
<vm name>
— имя машины
<vcpu_count>
— количество ядер процессора
Например:
# 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
<domain type='kvm'>_x000D_<name>test-centos</name>_x000D_<uuid>5c7eabea-a180-4f74-af9f-c4c2d3b7f70f</uuid>_x000D_<memory unit='KiB'>2097152</memory>_x000D_<currentMemory unit='KiB'>2097152</currentMemory>_x000D_ <vcpu placement='static'>6</vcpu>_x000D_
Аналогичным образом добавим память виртуальной машине:
# virsh setmem <vm_name> <memsize> --config
Например:
# virsh setmem test-centos 4G --config
Все по той же причине, сразу же вышла ошибка:
“error: invalid argument: cannot set memory higher than max memory.”
Увеличим максимальное значение памяти::
# virsh setmaxmem test-centos 6G --config
Теперь можно увеличить память ВМ.
Перед всеми изменениями не забывайте останавливать ВМ, а после запускать ее.
Также вы можете изменить ресурсы ВМ KVM через ее конфигурационный XML файл. Можно изменить файл в режиме онлайн или же сделав бэкап XML файла ВМ , изменить его и применить к виртуальной машине.
Отредактируем XML файл ВМ в онлайн режиме:
# virsh edit <vm_name>
В открывшемся редакторе vi внесите изменения, нажав кнопку “Insert” .
Измените блок:
<domain type='kvm'>_x000D_<name>test-centos</name>_x000D_<uuid>5c7eabea-a180-4f74-af9f-c4c2d3b7f70f</uuid>_x000D_<memory unit='KiB'>6291456</memory>_x000D_<currentMemory unit='KiB'>4194304</currentMemory>_x000D_<vcpu placement='static'>6</vcpu>_x000D_<os>_x000D_
Например, зададим для ВМ 2 ядра и 1Гб памяти:
Сохраните изменения в файле и перезапустите ВМ:
# virsh reboot <vm_name>
Проверьте настройки ВМ:
Тоже самое можно сделать, сделав бэкап XML файла:
# virsh dumpxml <vm_name> > /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 . Но мы не описывали вариант по добавлению дополнительного диска.
Сначала нужно создать дополнительный файл диска для виртуальной машины:
# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img
Вместо qcow2 вы можете указать нужный формат диска, так же нужно указать путь до файла. У меня хранилище для дисков /vz/disk/.
После этого, можно добавить устройство виртуального диска к самой ВМ:
# virsh attach-disk <vm_name> /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
<domain type='kvm' id='14'>_x000D_<name>test-centos</name>_x000D_<uuid>5c7eabea-a180-4f74-af9f-c4c2d3b7f70f</uuid>_x000D_<memory unit='KiB'>2097152</memory>_x000D_<currentMemory unit='KiB'>2097152</currentMemory>_x000D_<vcpu placement='static'>6</vcpu>_x000D_<resource>_x000D_<partition>/machine</partition>_x000D_</resource>_x000D_<os>_x000D_<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>_x000D_<boot dev='cdrom'/>_x000D_<boot dev='hd'/>_x000D_<bootmenu enable='yes'/>_x000D_</os>_x000D_~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_x000D_<disk type='file' device='disk'>_x000D_<driver name='qemu' type='qcow2'/>_x000D_<source file='/vz/disk/test.img'/>_x000D_<backingStore/>_x000D_<target dev='vdb' bus='virtio'/>_x000D_<alias name='virtio-disk1'/>_x000D_<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>_x000D_</disk>
Как видим, диск добавлен. После данных манипуляций, на виртуальной машине нужно разметить этот диск под ваши нужды.
Попрьуем добавить дополнительный сетевой интерфейс для ВМ. Сначала проверим, какие сетевые интерфейсы созданы на хосте:
# brctl show
У меня на KVM сервере создана одна виртуальная машина, с одним сетевым интерфейсом. К br0 нам нужно прикрепить еще один виртуальный сетевой интерфейс. Выполните команды:
# virsh shutdown test-centos
# virsh attach-interface test-centos --type bridge --source br0 --persistent
# virsh start test-centos
Проверьте, что у ВМ появился дополнительный сетевой интерфейс:
<interface type='bridge'>_x000D_<mac address='52:54:00:7e:c1:9f'/>_x000D_<source bridge='br0'/>_x000D_<model type='virtio'/>_x000D_<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>_x000D_</interface>_x000D_<interface type='bridge'>_x000D_<mac address='52:54:00:2f:23:79'/>_x000D_<source bridge='br0'/>_x000D_<model type='rtl8139'/>_x000D_<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>_x000D_</interface>
Также вы можете изменить сетевые настройки виртуальной машины напрямую через XML файл: # virsh edit test-centos
После первого сетевого интерфейса добавьте следующие строки:
<interface type='bridge'>_x000D_<source bridge='br0'/>_x000D_</interface>
Сохраните файл и запустите ВМ. Остальную конфигурацию, KVM добавит сам (mac address и тд).
В данной статье мы затронули основные моменты, которые могут вам понадобиться при управлении виртуальными машинами KVM из консоли Linux сервера. В следующей статье мы рассмотрим управление виртуальными машинами через графический менеджер virt-manager .
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…