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

Как можно перенести папку с образами виртуальных машин на другой физический диск, учитывая ограничения по месту на диске и невозможность создания новых виртуальных машин из-за нехватки места? После монтирования диска в /mnt, каким образом можно переместить папку images со всеми файлами формата qcow2 на новый диск?
  • 18 февраля 2024 г. 6:58
Ответы на вопрос 2
Для изменения местоположения хранения виртуальных машин в программе QEMU-KVM, можно воспользоваться опцией -drive в командной строке при запуске виртуальной машины. Например:

```
qemu-kvm -drive file=/path/to/new/location/image.qcow2,format=qcow2
```

Для перемещения папки с образами виртуальных машин на другой физический диск, следует выполнить следующие шаги:

1. Создайте новую папку на другом физическом диске, например /mnt/new_location.

2. Смонтируйте новый диск в папку /mnt.

3. Скопируйте содержимое папки images (с образами виртуальных машин) на новый диск с помощью команды cp:

```
cp -r /path/to/old_location/images /mnt/new_location
```

4. После копирования убедитесь, что все файлы формата qcow2 были успешно скопированы.

5. Далее, можно удалить старую папку images или оставить ее как резервную копию.

6. Для того чтобы QEMU-KVM начал использовать новый путь к образам виртуальных машин, обновите пути к образам в файле конфигурации виртуальных машин.

После выполнения данных шагов, виртуальные машины должны корректно работать с образами, находящимися на новом физическом диске.
Алгоритм движух такой будет: <br/> <pre><code class="bash"># Удаляешь pool default
sudo virsh pool-undefine default</code></pre> <br/> <br/> <pre><code class="bash">## Чтобы в дальнейшем при создании/старте ВМ не было ошибки Permission denied (отказано в доступе) к созданному ниже каталогу и подпапки в нём libvirt/images, устанавливаем правильные ACL-права доступа для пользователя libvirt-qemu, например, в Домашнем каталоге (или в другом...):
sudo setfacl -m u:libvirt-qemu:rx /home/user/</code></pre> <br/> вместо <b>user</b> ваше имя Пользователя <br/> <br/> <pre><code class="bash">## Создание где-либо папки (каталога) libvirt и подпапки images (название любое):
mkdir -p /home/user/libvirt/images</code></pre> <br/> <br/> <pre><code class="bash">## Создание pool-а с именем default в созданном выше где-либо папки (каталога) libvirt и подпапки images:
virsh pool-define-as --name default --type dir --target /home/user/libvirt/images</code></pre> <br/> <br/> <pre><code class="bash">## Запуск созданного pool-а default:
virsh pool-start default</code></pre> <br/> <br/> <pre><code class="bash">## Помещение созданного pool-а default в автозагрузку, чтобы после перезагрузки системы от стартовал вместе с ней:
virsh pool-autostart default</code></pre> <br/> <br/> И усё... <br/> <br/> Я обычно создаю ВМ тоже через консоль, например так: <br/> <pre><code class="bash">virt-install --virt-type=kvm --name ubuntu --ram=2048 --vcpus=2 --cpu host --hvm --disk path=/home/user/libvirt/images/ubuntu,size=5,format=raw --cdrom /home/user/Загрузки/mini.iso --osinfo detect=on,require=off --graphics spice --boot uefi --destroy-on-exit &amp;</code></pre>
Похожие вопросы