Здравствуйте.
Стоит следующая задача: нужно создавать образ Unix-систем (Solaris, CentOS...) "на лету", причём по возможности без сильного проседания производительности (во всяком случае, чтобы на такой системе ещё кто-то мог работать). Системы на физическом серваке и виртуалках, "под рукой" и удалённые.
В данный момент продумывал три варианта, но у всех есть своё "но":
1. При помощи dd. Минуса как минимум два - во время работы отъедает достаточно много ресурсов у диска, особенно если это не SSD, а также размер бэкапа равен размеру диска, т.е. в случае, если на условном диске /dev/sda1 20Гб данных, но сам диск на 120Гб, то размер бэкапа составит 120Гб (уточняю такие мелочи для тех, кто тоже в поиске ответов).
2. При помощи tar. Минус хотя бы один - несоответствие требованиям. Сделать бэкап системы "на лету" не удаётся, т.к. многие файлы из /dev и /proc не архивируются либо из-за того, что они изменяются во время бэкапирования, либо потому что это открытые сокеты, либо ещё по каким-то причинам. С LiveCD не всегда есть возможность загрузиться.
3. Backup/Restore LVM. Несколько заморочено, но бэкап сделать удалось (делаю снапшот -> делаю его бэкап), а развернуть - нет. Минусы - GRUB не поддерживает LVM, поэтому /boot в любом случае нужно бэкапить-ресторить отдельно, и, очевидно, если в системе нет LVM, то способ нерабочий.
Итого единственный рабочий метод, который мне известен, это dd, но объём файлов при этом колоссальный, особенно если диски больших объёмов и если речь идёт об удалённых машинах, то передать ~500Гб по сети из Владивостока в Москву - задача непростая. Поскольку я работаю с Unix-системами не очень много (думаю, это видно из моего поста), то прошу помощи в решении задачи. Также буду благодарен, если укажете на аналогичные утилиты для Windows-систем.
Тема очень актуальна и я надеюсь, что нам удастся найти на неё ответ.
Я тем временем не складываю ручки в ожидании готовых решений, а продолжаю поиски. Если найду что-то интересное - отпишусь.
UPDATE1:
Вот уж не знаю, то ли я отличаюсь особой криворукостью, то ли я отличаюсь особой криворукостью (всё-таки есть у меня некоторая уверенность в этом). Давайте по порядку:
1. Пробовал делать бэкап mondorescue. Прекрасно бэкапит, создаёт .iso образ с бэкапом, НО развернуть этот бэкап на диск меньшего размера, чем диск, с которого его снимали, невозможно: получаем kernel panic. Если разворачиваем на диск такого же размера, то просто не можем залогиниться под root-ом :)
2. Делал бэкапы tar-ом. С LVM сделать его не получается, система не загружается и восстановить его в течение нескольких часов не удалось. Без LVM делал всё точно по статье как с KVM, так и с VMware (
https://habrahabr.ru/post/251659/), но система не грузится вот ни в какую. Загрузился с LiveCD, сделал бэкап, на новой ВМ загрузился с этого LiveCD, смонтировал диск с бэкапом + новый диск, раскатал бэкап на новый диск, система не загружается.
3. При помощи встроенных в LVM backup/restore делаю бэкап, но раскатать его позже не удаётся.
4. Clonezilla не соответствует требованиям выше (поправьте, если ошибаюсь).
Буду пробовать Rsync.
Ещё добавлю вопрос: может, я слишком многого хочу? Я делаю бэкап системы целиком и полностью (исключая /proc, /dev, /sys, /tmp), а затем этот бэкап накатываю на новый диск. На новом диске ставлю GRUB, ставится без ошибок.
Может, в моём криворуком случае будет проще создать новую ВМ с установленной CentOS, на целевой машине сделать бэкап директорий
/boot /bin /etc /home /lib /lib64 /opt /root /usr /var
и вот только их кинуть на новую ВМ + обновить GRUB?