У цій статті є rsync
принаймні кілька корисних пропозицій :
Проблеми
Використання rsync --sparse works
, але викликає величезну кількість непотрібних записів на диск. Якщо змінити 10 байт на 50 ГБ завдовжки (1 ГБ), це призведе до запису лише одного або двох блоків, це спричиняє запис 1 ГБ. Це повільно, і можливо, не добре для довголіття дисків.
Використовує rsync --inplace
роботи, але створює непрості файли.
Не можна одночасно використовувати --sparse та --inplace :-( це заборонено rsync. Rsync: --sparse не можна використовувати з --inplace
Рішення
Якщо ви використовуєте --inplace для оновлення вже існуючого розрідженого файлу, файл залишатиметься розрідженим та матиме лише невелику кількість блоків. Лише коли rsync --inplace створює файл, він робить його нерідким.
Таким чином, рішення полягає у створенні відповідного, правильно витягнутого, порожнього, розрідженого файлу на цільовій машині для кожного файлу на вихідній машині - якщо файл ще не присутній на цільовій машині.
Тоді rsync --inplace буде працювати за призначенням, залишаючи розріджені файли розрідженими і записуючи лише змінені блоки на диск.
Отже, якщо я прочитав це правильно, спершу потрібно створити порожній розріджений файл на цілі. Ви можете це зробити за допомогою
truncate -s 3G filename
Потім ви можете rsync --inplace
скопіювати файли. Це повинно бути необхідно лише один раз.
Ця ж стаття пропонує використовувати Virtsync, який є
комерційний інструмент командного рядка $ 49 для синхронізації вмісту величезних файлів (таких, як образи та бази даних віртуальної машини).
Це може бути найкращим рішенням, якщо ви готові заплатити за нього, оскільки, здається, написано спеціально для такого типу ситуації.