@David138

Как поменять хранилище виртуальных машин в qemu-kvm?

привет. из-за нехватки места на диске и невозможности создавать новые виртуальные машины, появилась необходимость перенести хранилище виртуальных машин, то есть папку images с файлами расширения qcow2, на другой физический диск. диск я смонтировал в /mnt, ввел такие команды
$ sudo virsh pool-edit default
<pool type='dir'>
  <name>default</name>
  <uuid>9c95ee9d-2f8d-4478-aae8-868279907571</uuid>
  <capacity unit='bytes'>0</capacity>
  <allocation unit='bytes'>0</allocation>
  <available unit='bytes'>0</available>
  <source>
  </source>
  <target>
    <path>/mnt</path>
  </target>
</pool>
Pool default XML configuration not changed.
$ sudo systemctl restart libvirtd
$ systemctl status libvirtd
$ sudo cat /etc/libvirt/storage/default.xml 
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh pool-edit default
or other application using the libvirt API.
-->
<pool type='dir'>
  <name>default</name>
  <uuid>9c95ee9d-2f8d-4478-aae8-868279907571</uuid>
  <capacity unit='bytes'>0</capacity>
  <allocation unit='bytes'>0</allocation>
  <available unit='bytes'>0</available>
  <source>
  </source>
  <target>
    <path>/mnt</path>
  </target>
</pool>
$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-02-18 14:37:53 +08; 10min ago
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd.socket
             ● libvirtd-ro.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 20303 (libvirtd)
      Tasks: 21 (limit: 32768)
     Memory: 68.6M
        CPU: 3.019s
     CGroup: /system.slice/libvirtd.service
             ├─  985 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvir>
             ├─  986 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvir>
             └─20303 /usr/sbin/libvirtd
фев 18 14:37:53 Asus systemd[1]: Starting Virtualization daemon...
фев 18 14:37:53 Asus systemd[1]: Started Virtualization daemon.
фев 18 14:37:53 Asus dnsmasq[985]: read /etc/hosts - 7 addresses
фев 18 14:37:53 Asus dnsmasq[985]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
фев 18 14:37:53 Asus dnsmasq-dhcp[985]: read /var/lib/libvirt/dnsmasq/default.hostsfile

в файле default изменились настройки на mnt. но почему то все равно когда в графиеческом интерфейсе создаю новую виртуалку, почему то по умолчанию указывается путь /var/lib/libvrit/images. гд еще можно поправить так что бы по умолчанию всевиртуалки хранились в /mnt?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
smorman
@smorman
When In Rome do as The Romans do...
Алгоритм движух такой будет на примере Домашней папки (каталога):
# Удаляешь pool default
sudo virsh pool-undefine default


## Чтобы в дальнейшем при создании/старте ВМ не было ошибки Permission denied (отказано в доступе) к созданному ниже каталогу и подпапки в нём libvirt/images, устанавливаем правильные ACL-права доступа для пользователя libvirt-qemu, например, в Домашнем каталоге (или в другом...):
sudo setfacl -m u:libvirt-qemu:rx /home/user/

вместо user ваше имя Пользователя

## Создание в Домашней папке (каталоге) папки (каталога) libvirt и подпапки images (название любое):
mkdir -p /home/user/libvirt/images


## Создание pool-а с именем default в созданном выше в Домашней папке (каталоге) папки (каталога) libvirt и подпапки images:
virsh pool-define-as --name default --type dir --target /home/user/libvirt/images


## Запуск созданного pool-а default:
virsh pool-start default


## Помещение созданного pool-а default в автозагрузку, чтобы после перезагрузки системы от стартовал вместе с ней:
virsh pool-autostart default


И усё...

Я обычно создаю ВМ тоже через консоль, например так:
virt-install --virt-type=kvm --name ubuntu --ram=2048 --vcpus=2 --cpu host --hvm --disk path=/home/user/libvirt/images/ubuntu,size=35,format=raw --cdrom /home/user/Загрузки/mini.iso --osinfo detect=on,require=off --graphics spice --boot uefi --destroy-on-exit &

size=35 - здесь размер ВМ в Гб, вы можете установить сколько угодно...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы