Форум программистов, компьютерный форум, киберфорум
Ubuntu, Mint Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684

virsh blockcommit VM, как сделать слияние snapshot с бэкапом виртуалки?

09.11.2022, 16:22. Показов 764. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые!

пытаюсь научиться выполнять бэкап виртуальной машины без остановки в гипервизоре KVM, делаю все по примеру отсюда,

все вроде понятно но не понимаю отдного момента, после того как я сделал dumpxml и snapshot а так же скопировал виртуальную машину(работающую) в папку для бэкапа, как объединить snapshot с этой(скопированной) виртуалкой,

делается это командой:
PowerShell
1
virsh blockcommit VM vda --active --verbose --pivot
,

но что есть VM!?

vda - это диск на котором находится работающая виртуалка(файл),

а что есть VM это должен быть файл моего бэкапа или? немгу понять, помогите пожалуйста разобраться в этом нюансе кто делал такое?


Спасибо за помощь!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2022, 16:22
Ответы с готовыми решениями:

Можно ли из одной виртуалки получить доступ к Асtivе Direсtоrу другой виртуалки?
Всем привет! Ситуация такая: На 2х виртуалках стоит Sеrvеr2003 и развернут Асtivе Direсtоrу. Можно ли из одной виртуалки получить доступ к...

Как сделать слияние двух списков с последующей сортировкой?
Даны два списка. Необходимо слить два списка в один, отсортировать по убыванию и вывести. Вводится целое число N и N чисел со...

Как сделать слияние номеров принадлежащих именам? TExelApplication
Делаю в Delphi оболочку и столкнулся с такой проблемой- Как сделать слияние номеров принадлежащих именам? Работаю с компонентом...

6
1140 / 394 / 88
Регистрация: 30.08.2017
Сообщений: 2,438
09.11.2022, 16:31
VM - это виртуальная машина.
вообще, пользуйтесь справкой, удобная вещь!

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
virsh # help blockcommit 
  NAME
    blockcommit - Start a block commit operation.
 
  SYNOPSIS
    blockcommit <domain> <path> [--bandwidth <number>] [--base <string>] [--shallow] [--top <string>] [--active] [--delete] [--wait] [--verbose] [--timeout <number>] [--pivot] [--keep-overlay] [--async] [--keep-relative] [--bytes]
 
  DESCRIPTION
    Commit changes from a snapshot down to its backing image.
 
  OPTIONS
    [--domain] <string>  domain name, id or uuid
    [--path] <string>  fully-qualified path of disk
    --bandwidth <number>  bandwidth limit in MiB/s
    --base <string>  path of base file to commit into (default bottom of chain)
    --shallow        use backing file of top as base
    --top <string>   path of top file to commit from (default top of chain)
    --active         trigger two-stage active commit of top file
    --delete         delete files that were successfully committed
    --wait           wait for job to complete (with --active, wait for job to sync)
    --verbose        with --wait, display the progress
    --timeout <number>  implies --wait, abort if copy exceeds timeout (in seconds)
    --pivot          implies --active --wait, pivot when commit is synced
    --keep-overlay   implies --active --wait, quit when commit is synced
    --async          with --wait, don't wait for cancel to finish
    --keep-relative  keep the backing chain relatively referenced
    --bytes          the bandwidth limit is in bytes/s rather than MiB/s
 
virsh #
Ну и документацию никто тоже не отменял
о! Полез и действительно, именно Ваш случай:
https://libvirt.org/kbase/live... ackup.html

Кхм. Извините, в Вашей статье тоже:


Конфигурационный файл виртуальной машины, можно скопировать следующей командой:
# virsh dumpxml VM > /backup/VM.xml
Где VM – это имя вашей виртуальной машины.
...
Для создания снапшота ВМ используется следующая команда:
# virsh snapshot-create-as --domain VM snapshot --disk-only --atomic --quiesce –no-metadata
Где VM — это имя виртуальной машины. Далее нужно создать бэкап файла диска:
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
10.11.2022, 17:02  [ТС]
Цитата Сообщение от _sg2 Посмотреть сообщение
Кхм. Извините, в Вашей статье тоже:
да-да, сам удивляюсь),

что не делаю(ну напр):
PowerShell
1
virsh blockcommit /home/user/vm1_backup/dock_ubuntu vda --verbose --pivot --active
один ответ:

PowerShell
1
error: failed to get domain '/home/user/vm1_backup/dock_ubuntu'
0
1140 / 394 / 88
Регистрация: 30.08.2017
Сообщений: 2,438
10.11.2022, 19:01
эээ....
а чего такое странное имя виртуальной машины-то?
поймите, надо указать ИМЯ. Не путь, а ИМЯ.
[--domain] <string> domain name, id or uuid

Если уж не помните, то
virsh list --all
Там будет имя ВМ. Его и надо передать.
Code
1
2
3
4
5
6
7
8
9
10
11
12
[sg@fedora ~]$ sudo virsh list --all
[sudo] password for sg: 
 Id   Name         State
-----------------------------
 1    gitlab       running
 -    almalinux8   shut off
 -    centos7.0    shut off
 -    rocky9       shut off
 -    srv1-rh      shut off
 -    srv2-rh      shut off
 -    srv3-rh      shut off
 -    srv4-deb     shut off
Вот второй столбец - это и есть имя ВМ (или домена, в термИнах libvrt'а ).

Вообще мне кажется проще начать с virt-manager, а потом уже под капот лезть, так сказать.
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
14.11.2022, 16:15  [ТС]
_sg2, спасибо огромное за развернутые ответы,

Цитата Сообщение от _sg2 Посмотреть сообщение
Вообще мне кажется проще начать с virt-manager, а потом уже под капот лезть, так сказать.
мы ж легких путей не ищем

но я правильно понимаю что если я указываю имя(а не путь как вы правильно заметили) для слияния со снапшотом, то как virsh поймет что эта виртуалка из бэкапа(из папки в которой лежит бэкап), а не работающая на этом же хосте виртуалка(оригинал) у которой идентичное имя,

т.е. в момент попытки слияния работающая называется dock_ubuntu и остановленная бэкап копия(в папке для бэкапов) имеет точно такое же имя и слить со снапшотом нужно именно бэкапную версию а не работающую сейчас?

это не могу понять...
0
1140 / 394 / 88
Регистрация: 30.08.2017
Сообщений: 2,438
14.11.2022, 20:06
Извините, попробую завтра внимательно посмотреть статью, т.к. я попал в классическую ошибку - я знаю, значит все знают
При Вашем методе бэкапа, после xmldump должно вноситься изменение - меняться имя ВМ, после чего на основе изменённого xml следует определить новую ВМ: virsh --define. Ну или перед восстановлением надо это делать, при этом ещё и меняя в xml место хранения образов диска.

virsh edit almalinux8
...
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/srv/kvm/cirros-0.3.5-i386-disk.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
...
Можно делать и без virsh, но тогда xml нужно будет класть в правильные места и делать перезапуск libvirtd.

Ну это в чистом виде "умничание", но чего-то вечером силов нет. Если не поможет, пишите, будем побеждать дальше
1
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 684
15.11.2022, 14:49  [ТС]
_sg2, ООооо..., закинули новую абстракцию в мою головушку теперь действительно что-то стало понятно...),
дай бог здоровья теперь это все автоматизировать...

т.е. получается что то, что написано в статье, подходит в случае если делать бэкап виртуалки автоматически(скриптом), то сливать со снапшотом нужно бэкапную версию только тогда, когда оригинал VM погиб или повредился,

а именно:

1. скопировать бэкап в папку где крутился оригинал
2. применить xml конфиг
3. virsh start VM + blockcommit бла-бла...


моя изначальная логика работала так:

делаем бэкап конфига и VM,
делаем слияние VM со снапшотом
и спокойно спим пока работает оригинал зная что готовый бэкап виртуалки которую можно потом просто скопировать запустить (с конфигом и состоянием на определенную дату) лежит себе в папочке на другом диске(или хосте).

лана, будем теперь что-то с этим всем теперь делать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.11.2022, 14:49
Помогаю со студенческими работами здесь

Как сделать слияние двух импортов в mysql без повторов?
Есть такая задача. Делаю импорт в mysl из файлов *.csv. Один раз, второй раз. Как сделать, чтобы строки, которые уже прописались при первом...

Пытаюсь сделать клиент-серверное приложение с одной виртуалки, а данные не передаются
Хост-машина - это сервер на Windows 10, адаптер VBox 192.168.1.1 Клиент - это вирт машина на Windows 7, ip у неё 192.168.1.2 тип...

есть файл с бэкапом бызы .bcp Как поднять из него базу?
есть файл с бэкапом бызы .bcp Как поднять из него базу?

Как сделать слияние объектов в один и вынести его на уровень выше из функции
Всем привет, помогите плз, я новичок и туплю, мне нужно сделать слияние данных в один объект, в одном get запросе на странице выводится...

Как рассчитывает размер snapshot?
Здравствуйте. Использую FreeNAS но думаю вопрос касается snapshotов в целом. Был Dataset с объёмом данных 6.8 ГБ. Сделано пару...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru