14.8. Управление конфигурацией виртуальной машины
14.8.1. Изменение объёма оперативной памяти
За объём оперативной памяти, доступной виртуальной машине, отвечают два основных параметра в её конфигурационном файле:
maxMemory
— задаёт максимальный объём оперативной памяти, доступный к использованию виртуальной машиной. Изменить это значение можно только для выключенной виртуальной машины.memory
— задаёт фактический объём оперативной памяти, выделяемый виртуальной машине. Это значение может быть меньше значенияmaxMemory
, но не должно превышать его. Допускается изменение «на лету» для работающей виртуальной машины.
Соответственно, для изменения объёма выделяемой виртуальной машине оперативной памяти необходимо модифицировать эти значения. Далее рассмотрим несколько способов решения этой задачи.
14.8.1.1. Изменение объёма оперативной памяти с помощью командной строки
Посмотреть текущую конфигурацию виртуальной машины можно с помощью команды
virsh dominfo
. Ниже приведён пример подключения к системной сессии (см. «14.3.3. Системный режим») гипервизора
и получение информации о виртуальной машине с именем msvsphere-9-arm
:
$ virsh --connect qemu:///system dominfo msvsphere-9-arm
Id: 8
Name: msvsphere-9-arm
UUID: edb3edb0-a096-4f06-b153-8f77c6bdd38f
OS Type: hvm
State: running
CPU(s): 2
CPU time: 149.1s
Max memory: 2097152 KiB
Used memory: 2097152 KiB
Persistent: yes
Autostart: enable
Managed save: no
Security model: selinux
Security DOI: 0
Security label: system_u:system_r:svirt_t:s0:c36,c784 (enforcing)
В данном случае нас интересуют только значения Max memory
и Used memory
. В
текущей конфигурации фактический объём выделенной памяти уже равен максимальному
объёму (2 гибибайта или 1024³ байт), соответственно, увеличение «на лету» уже невозможно.
Выключим виртуальную машину:
$ virsh --connect qemu:///system shutdown msvsphere-9-arm
Domain 'msvsphere-9-arm' is being shutdown
Для увеличения максимального объёма оперативной памяти служит команда
virsh setmaxmem
— увеличим его до 8 гибибайт:
$ virsh --connect qemu:///system setmaxmem msvsphere-9-arm 8G --config
Аргумент --config
указывает на то, что необходимо внести изменения в
конфигурационный файл, они будут применены во время следующего запуска
виртуальной машины.
Удостоверимся что конфигурация была успешно изменена:
$ virsh --connect qemu:///system dominfo msvsphere-9-arm | grep memory
Max memory: 8388608 KiB
Used memory: 2097152 KiB
Теперь мы можем увеличить объём фактически выделяемой оперативной памяти как
«на лету» для запущенной виртуальной машины, так и для выключенной. За изменение
этого параметра отвечает команда virsh setmem
, увеличим его до 3 гибибайт и
запустим виртуальную машину:
$ virsh --connect qemu:///system setmem msvsphere-9-arm 3G --config
$ virsh --connect qemu:///system dominfo msvsphere-9-arm | grep memory
Max memory: 8388608 KiB
Used memory: 3145728 KiB
$ virsh --connect qemu:///system start msvsphere-9-arm
Domain 'msvsphere-9-arm' started
Как и ранее для команды virsh setmaxmem
, опция --config
указывает на то, что
необходимо внести изменения в конфигурацию виртуальной машины.
Для изменения фактического объёма оперативной памяти на лету нужно использовать
команду virsh setmem
с аргументом --live
:
$ virsh --connect qemu:///system setmem msvsphere-9-arm 4G --live
$ virsh --connect qemu:///system dominfo msvsphere-9-arm | grep memory
Max memory: 8388608 KiB
Used memory: 4194304 KiB
Однако такое изменение будет действовать только до выключения виртуальной машины:
$ virsh --connect qemu:///system shutdown msvsphere-9-arm
Domain 'msvsphere-9-arm' is being shutdown
$ virsh --connect qemu:///system dominfo msvsphere-9-arm | grep memory
Max memory: 8388608 KiB
Used memory: 3145728 KiB
Чтобы внести изменения и в конфигурационный файл, и в параметры работающей
виртуальной машины используйте комбинацию аргументов --live --config
:
$ virsh --connect qemu:///system setmem msvsphere-9-arm 4G --live --config
Сделанное таким образом изменение конфигурации сохранится и после выключения виртуальной машины.
14.8.1.2. Изменение количества виртуальных процессоров
Количество виртуальных процессоров, выделенных для виртуальной машины, можно
посмотреть с помощью команды virsh vcpucount
:
$ virsh --connect qemu:///system vcpucount msvsphere-9-arm
maximum config 2
maximum live 2
current config 2
current live 2
Как и в случае с оперативной памятью, используются два параметра — максимальное количество процессоров и фактическое, при этом фактическое не может превышать максимальное.
Для увеличения максимального количества процессоров используется следующая команда:
$ virsh --connect qemu:///system setvcpus msvsphere-9-arm 4 --maximum --config
Где аргумент --maximum
указывает на то, что необходимо изменить именно
максимальное количество процессоров, а --config
— на то, что необходимо внести
изменения в конфигурацию виртуальной машины. Изменение максимального количества
процессоров «на лету» без остановки не поддерживается.
После выполнения предыдущей команды конфигурация виртуальной машины изменится следующим образом:
$ virsh --connect qemu:///system vcpucount msvsphere-9-arm
maximum config 4
maximum live 2
current config 2
current live 2
Остановим и снова запустим виртуальную машину:
$ virsh --connect qemu:///system shutdown msvsphere-9-arm
Domain 'msvsphere-9-arm' is being shutdown
$ virsh --connect qemu:///system start msvsphere-9-arm
Domain 'msvsphere-9-arm' started
И посмотрим как изменился вывод virsh vcpucount
:
$ virsh --connect qemu:///system vcpucount msvsphere-9-arm
maximum config 4
maximum live 4
current config 2
current live 2
Значения опций maximum config
и maximum live
совпадают — теперь можно
увеличивать фактическое количество выделяемых виртуальных процессоров.
Для изменения конфигурации «на лету» до следующего перезапуска виртуальной
машины используется команда virsh setvcpus
с аргументом --live
:
$ virsh --connect qemu:///system setvcpus msvsphere-9-arm 3 --live
$ virsh --connect qemu:///system vcpucount msvsphere-9-arm
maximum config 4
maximum live 4
current config 2
current live 3
Для изменения постоянной конфигурации виртуальной машины выполните команду
virsh setvcpus
с аргументом --config
:
$ virsh --connect qemu:///system setvcpus msvsphere-9-arm 3 --config
$ virsh --connect qemu:///system vcpucount msvsphere-9-arm
maximum config 4
maximum live 4
current config 3
current live 3
Допускается одновременное использование аргументов --live
и --config
,
чтобы изменить настройки уже запущенной виртуальной машины и её постоянную
конфигурацию:
$ virsh --connect qemu:///system setvcpus msvsphere-9-arm 2 --config --live
$ virsh --connect qemu:///system vcpucount msvsphere-9-arm
maximum config 4
maximum live 4
current config 2
current live 2