У меня есть запланированное задание по резервному копированию больших файлов в Windows Server, и оно занимает почти 2 часа.
На данный момент я использую только команду копирования в .bat и копирую большие файлы в другую папку.
Мне интересно, есть ли более эффективный способ, чем команда копирования, для резервного копирования больших файлов (примерно 90 ГБ). Например, напишите программу на C ++ для копирования файлов, а не команду копирования.
Большое спасибо.
Команда копирования, которую вы используете, вероятно, уже написана на C ++ или C или даже с подпрограммами более низкого уровня, поэтому вы не увидите никакого увеличения скорости, просто используя существующие функции или методы копирования на этих языках.
Вы будете привязаны к диску. Скорее всего, язык / механизм в итоге останется прежним (системные вызовы). Самый быстрый способ - обновить диски до более высоких оборотов в минуту и / или использовать конфигурацию RAID с чередованием.
Но убедитесь, что вы копируете между двумя отдельными физическими дисками. (т.е. чтение с одного и запись в другое).
Если возможно, просто сохраняйте изменения (дельты), а не весь файл, возможно, каждую неделю делая полную резервную копию. Также, если файлы хорошо подходят для сжатия (например, обычный текст), сжатие перед записью на диск будет намного быстрее.
Если проблема это двухчасовое окно простоя при резервном копировании файлов, ты можешь:
1. Переместите файлы в другое место на том же диске / массиве.
Если вы не переходите на другой диск, перемещение должно быть почти мгновенным. Требуется дисковое пространство. После перемещения вы сможете перезапустить процесс записи в эти файлы с задержкой всего в несколько минут. Вы делаете резервную копию перемещенных файлов.
2. Переименуйте файлы.
Файлы остаются на том же месте, но имеют другое имя.
Вы можете переименовать файлы. Требуется дисковое пространство. После перемещения вы сможете перезапустить процесс записи в эти файлы с задержкой всего в несколько минут. Вы делаете резервную копию переименованных файлов.
3. Заархивируйте файлы перед их резервным копированием.
Если эти большие файлы можно сжать, вы можете сэкономить как время на их резервное копирование, так и использовать меньше ленты для двойной экономии. Обязательно выберите хорошую программу для архивирования.
Если вам нужно сохранить списки ACL файлов, рассмотрите возможность xcopy или robocopy. Я использовал его для зеркалирования почти 600 ГБ данных с 2 разных дисков (400 ГБ + 200 ГБ) на резервный диск. Ежедневные изменения составляют почти 2 ГБ (в основном небольшие файлы) и копируются за 45 минут. Первоначальное зеркальное отображение займет некоторое время, пропорциональное вашим данным.
Если не нужно сохранять ACL, Terracopy будет быстрее