Искажение данных после использования «scp» для передачи - PullRequest
1 голос
/ 09 декабря 2011

Недавно я перенес набор данных с одного сервера на hpcc (высокопроизводительные вычисления). Команда выглядит так:

scp /folder1/*.fastq.gz xxx@hpcc:/home/
scp /folder2/*.fastq.gz xxx@hpcc:/home/
scp /folder3/*.fastq.gz xxx@hpcc:/home/

Я открываю несколько терминалов для одновременной передачи данных.В общей сложности у меня есть ~ 50 таких файлов fastq.gz, каждый около 10 ГБ.Мне просто интересно, есть ли вероятность того, что данные (особенно такие большие данные) будут искажены при передаче указанным выше способом?

Поскольку данные на сервере находятся в хорошем состоянии;в то время как некоторые данные после копирования в hpcc искажены.

thx thx

Ответы [ 2 ]

3 голосов
/ 09 декабря 2011

Я сильно сомневаюсь, что ваши данные были повреждены при передаче scp(1).

TCP предоставляет (слабую) 16-битную контрольную сумму CRC потоков трафика . Поскольку длина его составляет всего шестнадцать битов, использование целостности данных на основе TCP означает, что поврежденные пакеты все равно будут проверять примерно один каждые (2 ^ 16) поврежденных пакетов. Я давно потерял связь (и математику), но смутно напоминаю, что поврежденные данные будут проверяться как правильные один раз каждые два-четыре гигабайта в общедоступном Интернете - хотя эти числа основывались на специфических частота появления ошибок в то время, когда я читаю эту статистику.

SSH версии 2 ввел в протокол проверки подлинности сообщений . Они согласовываются между узлами, но я ожидаю, что самое слабое допустимое значение будет MD5 , что обеспечивает 128-битный криптографический хэш данных. Криптографические хэши намного более продвинуты, чем циклические проверки избыточности, которые были более распространены для обнаружения ошибок передачи данных два десятилетия назад, и 128 бит - это значительное увеличение размера контрольной суммы. Мы можем не доверять MD5 настолько, чтобы полагаться на него исключительно в наши дни, чтобы противостоять преданным злоумышленникам, но этого должно быть достаточно для обнаружения ошибок, которые происходят по ошибке во всех случаях, кроме самых невероятных.

Я бы посмотрел в другом месте на предмет вашей коррупции - прежде всего, на целевые диски, на которых вы хранили свои данные.

1 голос
/ 05 марта 2013

Я знаю, что это древний вопрос, но я не думаю, что scp может быть ответственным;я предполагаю, что столкновение имени файла.

Вы заявили, что у вас одновременно запущено несколько копий scp.Команды, вставленные выше, скопируют содержимое /folder1, /folder2 и /folder3 в /home.Если у вас было два файла с одним и тем же именем, например,

/folder1/argle.fastq.gz
/folder1/bargle.fastq.gz    
/folder2/argle.fastq.gz

, то вы столкнетесь с именем файла на /home.Поскольку scp удачно перезапишет файлы на dest, и я не думаю, что он блокирует файлы во время работы, копирование двух разных файлов с одинаковыми именами в одно и то же место может легко привести к повреждению файла.

...