Я використовую rsync 3.1.1 для синхронізації двох дисків, один з яких знаходиться в мережі та встановлений як спільний доступ самби /mnt/ROUTER_WD_2TB/
. Це джерело зі швидкістю 30-40 МБ / с через обмеження в мережі. Інший, пункт призначення, встановлений локально (пік 110 МБ / с) і є /mnt/BACKUP_HITACHI_2TB/
.
Я використовую таку команду rsync:
rsync -haAXi --quiet --append-verify --delete /mnt/ROUTER_WD_2TB/* /mnt/BACKUP_HITACHI_2TB/.
Диски містять багато файлів, більшість з яких невеликі.
Проблема полягає в тому, що rsync займає досить тривалий час (10-20 м), перш ніж починати переміщувати будь-які файли, я думаю, тому що він повинен обчислити списки файлів для дуже великої кількості невеликих файлів. У цей період використання ньютворку сягає низьких 200-500 КБ / с, тоді як при передачі файлів швидкість становить близько 40 МБ / с.
Зазвичай трапляється, що rsync займає близько 15 м, щоб нарешті знайти щось, що потрібно скопіювати, потім потрібно 5 секунд, щоб скопіювати його, а потім продовжувати перевірку на копіювання інших файлів ще протягом 5 хвилин. Загалом, копія файлу на 5 секунд закінчується тривалістю 20 хвилин!
Чи можу я вжити заходів, щоб уникнути цього тривалого періоду до копіювання файлів, окрім виключення папок? Який-небудь "кеш-пам'ять" я можу реалізувати, щоб rsync не потребував перебудувати весь список файлів з нуля?