Created attachment 3302 [details] новая опция rsync-exclude Бывает так, что сама виртуальная машина крохотная, а какой-нибудь не сильно нужный для резервного копирования каталог с данными внутри неё просто огромный. И vzdump такой машины может занять несколько часов (не говоря уж о расходуемом месте на диске). Опция --exclude-path не помогает, так как она применяется только на этапе создания tar-архива, уже после копирования VE rsync'ом во временную директорию. Предлагаю маленький патчик для новой опции --rsync-exclude, которая передаётся непосредственно rsync'у как его --exclude.
А как насчёт, мнэ, повесить такое в апстрим?
(В ответ на комментарий №1) > А как насчёт, мнэ, повесить такое в апстрим? Апстрим теперь тут http://www.proxmox.com/cms_proxmox/en/virtualization/openvz/vzdump/ и в принципе у меня готова сборка версии 1.1, но я никак не могу проверить как он с LVM снапшотами работает. Может на неделе или позже немного. (В ответ на комментарий №0) > Created an attachment (id=3302) [details] > новая опция rsync-exclude > > Бывает так, что сама виртуальная машина крохотная, а какой-нибудь не сильно > нужный для резервного копирования каталог с данными внутри неё просто огромный. > И vzdump такой машины может занять несколько часов (не говоря уж о расходуемом > месте на диске). Опция --exclude-path не помогает, так как она применяется > только на этапе создания tar-архива, уже после копирования VE rsync'ом во > временную директорию. > > Предлагаю маленький патчик для новой опции --rsync-exclude, которая передаётся > непосредственно rsync'у как его --exclude. Я попробую этот патч на 1.1. Если там такого еще нет и если ничего не сломается.
Чего то уже closed
(В ответ на комментарий №2) > Я попробую этот патч на 1.1. Если там такого еще нет и если ничего не > сломается. Там такого нет, только вряд ли этот патч возьмёт и приложится на 1.1; наверное, переделывать придётся.
(В ответ на комментарий №4) > (В ответ на комментарий №2) > > > Я попробую этот патч на 1.1. Если там такого еще нет и если ничего не > > сломается. > > Там такого нет, только вряд ли этот патч возьмёт и приложится на 1.1; наверное, переделывать придётся. Почему нет? Вроде есть. $ sudo vzdump usage: /usr/sbin/vzdump OPTIONS [--all | VPSID] --exclude VPSID exclude VPSID (assumes --all) --exclude-path REGEX exclude certain files/directories --stdexcludes exclude temorary files and logs
(В ответ на комментарий №5) > (В ответ на комментарий №4) > > Там такого нет, только вряд ли этот патч возьмёт и приложится на 1.1; наверное, переделывать придётся. > > Почему нет? Вроде есть. > > $ sudo vzdump > usage: /usr/sbin/vzdump OPTIONS [--all | VPSID] > > --exclude VPSID exclude VPSID (assumes --all) > --exclude-path REGEX exclude certain files/directories > --stdexcludes exclude temorary files and logs --exclude тут вообще не причём, а --exclude-path и --stdexcludes действуют как исключения для find, который find'ит в уже скопированном rsync'ом дереве файлов. В том-то весь и фокус - исключить ненужное на этапе первоначального rsync'а, а не последующего find'а.
Для версии 1.1: http://git.altlinux.org/people/prividen/packages/vzdump.git на 1.2 даже взглянуть убоялся. Там же две полезных для резервного копирования баз данных опции --cmd-presuspend и --cmd-postsuspend.
(В ответ на комментарий №7) > Для версии 1.1: > http://git.altlinux.org/people/prividen/packages/vzdump.git > на 1.2 даже взглянуть убоялся. Я смотрел. Устал патчить и плюнул. > Там же две полезных для резервного копирования баз данных опции > --cmd-presuspend и --cmd-postsuspend. С lvm работает?
(В ответ на комментарий №8) > > Там же две полезных для резервного копирования баз данных опции > > --cmd-presuspend и --cmd-postsuspend. > С lvm работает? Пока нет. В принципе, добавить эти опции для ЛВМ там парой строчек можно, но мне тестировать не на чем. сделать?
(В ответ на комментарий №9) > С lvm работает? В общем, закоммитил эту функциональность, прошу посмотреть патч и проверить в работе.
Я вот посмотрел и собрал 1.2. вот занимаюсь тестированием. Команды cmd-* там есть, но немного в другом виде. Через script специальный. Может вы посмотрите как там сделали exclude? Может там сделали как вы хотели? Если нет, то может тогда сразу внести эти правки в 1.2?
(В ответ на комментарий №11) > Я вот посмотрел и собрал 1.2. > вот занимаюсь тестированием. > Команды cmd-* там есть, но немного в другом виде. Через script специальный. Со скриптом этим пока печально. Вызывается для всех фаз один мегаскриптик - его еще творить надо. Фаза pre-stop подойдёт для перевода VM в режим бакапа (например, заморозка MySQL), а вот обратной ей фазы нет: pre-restart выполняется, пока VM еще заморожена (и, в случае со snapshot, ДО создания снапшота), backup-end ждать тоскливо - пока-то там всё затарится и загзипуется. Надо будет сотворить еще одну фазу post-restart. > Может вы посмотрите как там сделали exclude? Может там сделали как вы хотели? Нет, всё точно так же остаётся. > Если нет, то может тогда сразу внести эти правки в 1.2? Постараюсь на днях. А у вас vzdump не ругается насчёт отсутствия --rsyncable у gzip?
ping P.S.: gzip не ругается
см. тж #18048
между тем, в апстриме уже Version: 1.2.6 И работает со всем, чем надо, и полезных ключей понадобавлено...
http://www.proxmox.com/cms_proxmox/en/virtualization/openvz/vzdump/ что-то не открывается больше... На сколько я понял, vzdump живёт сейчас внутри http://git.proxmox.com/?p=pve-manager.git;a=summary А на чём, в итоге, остановились ?
Точнее, вот так: http://git.proxmox.com/?p=pve-manager.git
(In reply to comment #16) > http://www.proxmox.com/cms_proxmox/en/virtualization/openvz/vzdump/ что-то не > открывается больше... На сколько я понял, vzdump живёт сейчас внутри > http://git.proxmox.com/?p=pve-manager.git;a=summary > > А на чём, в итоге, остановились ? Та версия что в proxmox привязана к пакету proxmox, что мне не нравится. Поэтому не обновляю. Старая вполне работает.
А 1.2.6 ? Тоже, в общем-то, старая, но в Debian-е, вроде как, есть, и без proxmox.
А vzdump с OpenVZ 7 ещё актуален? Его ploop-у обучили?
(Ответ для Sergey Y. Afonin на комментарий #20) > А vzdump с OpenVZ 7 ещё актуален? Его ploop-у обучили? Так в PVE OpenVZ не поддерживают больше, тем более OVZ7. Есть только KVM и LXC.
(In reply to Andrew Vasilyev from comment #21) > Так в PVE OpenVZ не поддерживают больше, Здесь же в отрыве от PVE обсуждение.
(Ответ для Sergey Y. Afonin на комментарий #22) > (In reply to Andrew Vasilyev from comment #21) > > > Так в PVE OpenVZ не поддерживают больше, > > Здесь же в отрыве от PVE обсуждение. Если речь про пакет vzdump в репозитории ALT, то в режиме stop/start он, наверное, работать будет, а вот в suspend, скорее всего, нет.
> Если речь про пакет vzdump в репозитории ALT, то в режиме stop/start он, > наверное, работать будет, а вот в suspend, скорее всего, нет. Проверил. Работает :-) XXX# vzdump --suspend 10004 INFO: starting backup for VPS 10004 (/var/lib/vz/private/10004) INFO: starting first sync /var/lib/vz/private/10004 to /var/lib/vz/dump/tmp12928 INFO: suspend vps freeze INFO: final sync /var/lib/vz/private/10004 to /var/lib/vz/dump/tmp12928 INFO: resume vps unfreeze INFO: vps is online again after 0 seconds INFO: Creating archive '/var/lib/vz/dump/vzdump-10004.tar' (/var/lib/vz/dump/tmp12928/10004) Total bytes written: 1543546880 (1.5GiB, 195MiB/s) INFO: backup for VPS 10004 finished successful (0.40 minutes) XXX# uname -r 3.10.0-ovz-el7-alt4.1127.10.1.vz7.162.9
(In reply to Andrew Vasilyev from comment #24) > INFO: final sync /var/lib/vz/private/10004 to /var/lib/vz/dump/tmp12928 > INFO: resume vps > unfreeze > INFO: vps is online again after 0 seconds Так это же он не ploop копировал. Хотя... Может и нормально. Потом просто распаковать в пустой ploop. Но вот что делать, если в контейнере несколько ploop... /dev/ploop10541p1 9.9G 1.7G 7.8G 18% / /dev/ploop17884p1 15G 394M 14G 3% /var/log
(Ответ для Sergey Y. Afonin на комментарий #25) > (In reply to Andrew Vasilyev from comment #24) > Так это же он не ploop копировал. Хотя... Может и нормально. Потом просто > распаковать в пустой ploop. Но вот что делать, если в контейнере несколько > ploop... Скрипт копирует tar-ом замороженный контейнер, включая root.hdd. Если будет несколько девайсов, возможно, он их тоже скопирует. В случае одного root.hdd контейнер восстановился через vzdump --restore (в другой VEID) и запустился (со сменой IP в конфиге, разумеется). ploop device руками не создавался, всё автоматом.