LINUX.ORG.RU
решено ФорумAdmin

Проблема с SDK oVirt при работе с Export domain

 , ,


0

1

Доброго все времени суток,

Пишу скрипт для backup виртуалок на oVirt. Наступил на серьезные грабли, смахивающие на баг... а именно если экспортировать реально одну и туже виртуалку она нормально перезапсывается на export domain. Если это другая виртуалка с таким-же именем, например клон со снапшота одной и той-же виртуалки перезапись этого файла становится невозможна ни с какими override.

Думаю это вещь не разрешимая, поэтому вопрос другой, как средствами sdk python найти и удалить определенную виртуалку или файл с export domain?

Никаких примеров к сожалению найти не удалось по данному вопросу... в документации тоже ничего.

Вобщем как удалить разобрался, если это можно так назвать. Debug через ipython и компиляция двух примеров + интуиция привела к решению.

Вот здесь примеры... Для решения задачки я использовал пример с import_vm.py and remove_vm.py

Если будет время положу сюда кусок кода когда опишу его по человечески.

merlin-shadow ()
Последнее исправление: merlin-shadow (всего исправлений: 1)

Вобщем все оказалось просто и сложно одновременно, т.ч. может кому по помогут эти несколько строк. Разобравшись в SDK API 4, я решил не обойтись без комбинации различных версий API и сделал тоже самое в 3-й версии.

export_sd = api.storagedomains.get(name=«ExportDomain»)
vm = export_sd.vms.get(name=«VM_NAME»)
vm.delete()

Элементарно, но когда нет никакого нормального описания, добыть эти строчки было не просто. )

merlin-shadow ()

сам столкнулся с проблемой, сам её зарепортил, сам решил...

Вот это я понимаю — дельный подход! Всем бы так!..

Sahas ★★★★★ ()
Ответ на: комментарий от anonymous

К сожалению, то что тут написано, мне и много кому не подойдет. 1) Громоздко 2) Если нет сетевого хранилища для виртуалок и практически все серверы используют локальные диски, Export domain приходится отмонтировать и примонтировать к каждому хосту отдельно. Насколько я понял из кода этот скрипт этого не умеет.

Я впринципе уже написал свой, гораздо компактней, делает все что нужно. Ключевые моменты это находит к какому хосту примонтирован Export domain отмонтирует его и монтирует к тому с которого будет делаться бэкап. В конце отмонтируется. Ну и с ротацией бэкапов повозиться пришлось. Ну и другие ньюансы.

merlin-shadow ()
Ответ на: комментарий от merlin-shadow

Может вы чего-то не понимаете. Экспорт сторедж подключается к датацентру. Обычно это nfs export. В 4.2 может быть еще гластером. Он всегда подмонтирован ко всем хостам кластеров в этом датацентре, упрвляется spm, как и другие стеджи домена. Ничего монтировать не надо. Все прозрачно.

Что для вас сетевое хранилище? Даже если у вас все хосты с локальным хранилищем, что ужас, гластер или нфс всегда можно сделать, то экспорт сторедж домен это подразумевается нфс експорт по сети.

anonymous ()
Ответ на: комментарий от anonymous

Скажем так, он всегда должен быть активным. Те онлайн. Все вдсм на активных хостах его держат монтированным. Иначе надо добавить хук для его активирования перед переписыванием на него, но это бред.

anonymous ()
Ответ на: комментарий от anonymous

Может вы чего-то не понимаете. Экспорт сторедж подключается к датацентру.

К сожалению это Вы не понимаете о чем пишите, но я попытаюсь объяснить. Возможно это еще кому-нибудь пригодится. В oVirt при подключении Local Data Domain аля локальный диск, этот сервер удаляется отовсюду включая главный Data Center и создается полностью отдельный датацентр и отдельный кластер и т.п. Единственный домен который поддерживает крос-ДЦ это ISO Domain. Data и к сожалению Export domain к ним не относятся. Поэтому единственный вариант это отмонтировать Export domain от хоста из одного ДЦ и примонтировать к хосту в другом ДЦ. Я общался в августе с одним из ведущих разработчиков из Red Hat и он меня заверил что эта проблема должна быть решена в 4.2. Но пока по анонсам я этого не наблюдаю. Да и тот самый навороченный скрипт вполне может перестать работать или начать глючить в любой момент, т.к. использует sdk v3. Т.ч. вот такая ситуация на самом деле.

merlin-shadow ()
Последнее исправление: merlin-shadow (всего исправлений: 1)
Ответ на: комментарий от merlin-shadow

там в одной функции надо поменять входные параметры, и он работает в 4.1. 4.1 не будет меняться. Ставить овирт для локал сторедж это уровень, да...

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.