hyve, jails, QEMU, ESXi и другие решения виртуализации и изоляции, включая гибридные окружения.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
beren
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2019-04-29 16:42:58
Непрочитанное сообщение
beren » 2019-05-06 10:10:32
Добрый день.
Пишу скрипт для массовой миграции из ESXi в Proxmox.
Идея такая скопировать по scp на Proxmox файлы flat.vmdk из ESXi, сконвертировать их и записать с помощью dd на диски в Proxmox.
Код: Выделить всё
#!/bin/bash
while read VMDK;
do
scp root@10.50.10.154:$VMDK /dev/vg_ibm_01-1/TEST_VM_DISKS
done < DISKS
exit
find /dev/vg_ibm_01-1/TEST_VM_DISKS -iname *-flat.vmdk -exec qemu-img convert {} /dev/vg_ibm_01-1/TEST_VM_DISKS/Converted/{}.raw
\;
Но:
1) Возникает ошибка qemu-img: /dev/vg_ibm_01-1/TEST_VM_DISKS/Converted//dev/vg_ibm_01-1/TEST_VM_DISKS/TEST_CentOS-flat.vmdk.raw: error while converting raw: Could not create file: No such file or directory
2) И я не понимаю как сделать соответствие для dd чтобы нужный диск копировался в нужный. По идее нужно дальше dd if=Converted/2.raw of=/dev/vg_ibm_01-1/vm-202-disk-0 . То есть нужно чтобы raw записался в диск Proxmox.
beren
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
guest
- проходил мимо
Непрочитанное сообщение
guest » 2019-05-06 13:04:23
скрипт у Вас неверно работает, проверяйте его, ниже пример конвертации:
# qemu-img convert -f vmdk /path/vmname.vmdk -O qcow2 /path/vmname.qcow2
ну а в скрипте должны быть указаны full path name как к утилитами, так
и к файлам.
guest
-
beren
- проходил мимо
- Сообщения: 8
- Зарегистрирован: 2019-04-29 16:42:58
Непрочитанное сообщение
beren » 2019-05-06 13:10:25
Спасибо за ответ.
Ошибка ушла , но конвертируется только первый файл
Код: Выделить всё
#!/bin/bash
while read VMDK
do
scp root@10.50.10.154:$VMDK /dev/vg_ibm_01-1/TEST_VM_DISKS
done < ESXI
find /dev/vg_ibm_01-1/TEST_VM_DISKS -iname *-flat.vmdk -exec qemu-img convert {} {}.raw \;
while read RAW
do
dd if=`find /dev/vg_ibm_01-1/TEST_VM_DISKS -iname *.raw` of=$RAW
done < PROXMOX
exit
Плюс я тут добавил часть кода с dd. Но ошибка такая dd: unrecognized operand ‘/dev/vg_ibm_01-1/TEST_VM_DISKS/TEST_CentOS-flat.vmdk.raw’
Как бы так сделать, чтобы я брал конвертированные файлы raw и с помощью dd копировал их в диски из файла ?
beren
-
guest
- проходил мимо
Непрочитанное сообщение
guest » 2019-05-06 13:55:12
Вы меня не услышали или услышали частично.
1. Зачем Вам 'dd'?
2. Скрипт кривой, find вложен в dd, переменные не проверяете...
3. Я понимаю что Вы хотите быстро, но в результате, получается криво.
--
прим: vmdk возможны нескольких ревизий, если память не изменяет, с
какими-то qemu-img работает сразу из vmdk в qcow2, а с какими-то
через конвертацию vmdk в raw, а затем из raw в qcow2.
Кроме того, в VMWare есть утилита которая "поджимает" vmdk, что
правильно сделать перед конвертацией.
Теперь скрипт, Вы по scp скачиваете в Proxmox и затем конвертируете,
код возврата от scp не проверяете, chksums не проверяете,
списки не составляете, используете find как аргумент в dd...
Быстро не должно быть плохо и а бы как, sorry.
Если у Вас ESXi и Proxmox в одной локалке, почему бы не
отдать хранилище ESXi в Proxmox по NFS и скрипт будет удобней,
ну это уже техника.
guest