5

Мой вопрос вкратце: есть ли инструмент, который копирует файл из каталога A в B, одновременно генерируя контрольную сумму файла, который он скопировал / прочитал, без дополнительных операций чтения / передачи только для генерации указанной контрольной суммы?

Я буду копировать несколько ТБ файлов с одного жесткого диска на другой и вместо:

  1. Копировать файлы с HDD1 -> HDD2 (X часов)
  2. Генерация контрольных сумм файлов на HDD1 (Y часов)
  3. Проверьте контрольные суммы файлов на HDD2 (~ Y часов)

Я думал о более упорядоченном процессе:

i. Copy files from HDD1 -> HDD2 and generate checksums of the files copied as well (Z hours)

ii. Verify checksums of files on HDD2 (~Y hours)

Я предполагаю, что Z ~ = X, потому что программа, которая может это сделать, прочитает весь файл (поскольку он копирует его с одного жесткого диска на другой) и, следовательно, не нуждается в повторном чтении файла только для генерации его контрольной суммы.

Теперь я знаю, что моя идея может не сработать, если, например, ОС использует DMA для копирования файла, и я не уверен, какой метод Windows 7 использует для копирования файлов с одного жесткого диска на другой.

Будем благодарны за любые предложения на этот счет - особенно для ускорения процесса копирования и обеспечения передачи 1:1 без повреждения или отсутствия файлов.

1 ответ1

2

Ваше предположение не совсем верно, так как большие файлы определенно не хранятся в памяти, и для увеличения скорости копирования файлы копируются в виде фрагментов определенного размера (в Linux вы играете с размером этого фрагмента, чтобы увеличить скорость операции с файлами). И да, файлы кэшируются в памяти. Что касается DMA - весь смысл этой технологии заключается в том, что при копировании файлов и их немедленном помещении в процессор не используется процессор, поэтому он не переходит непосредственно с жесткого диска на жесткий диск. DMA означает прямой доступ к памяти.
Я бы предложил использовать конкретное решение Linux LiveCD (такое как rsync или очень простые сценарии), но я понимаю, что это, вероятно, будет стоить больше времени, чем экономить, поэтому лучше, если вы будете придерживаться Windows. Попробуйте это:
http://technet.microsoft.com/en-us/magazine/2006.11.utilityspotlight.aspx
http://www.karenware.com/powertools/ptreplicator.asp
http://sourceforge.net/projects/rsyncwin32/
http://codesector.com/teracopy

РЕДАКТИРОВАТЬ
Существует более новая и более мощная версия ROBOCOP от Microsoft: http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

РЕДАКТИРОВАТЬ 2
Если во время репликации вы обнаружите, что что-то повреждено, я сомневаюсь, что в долгосрочной перспективе безопасно использовать HDD2 для хранения данных (поскольку повреждено будет только больше секторов).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .