Как эффективно передавать большие файлы между двумя удаленными местоположениями на одном сервере?

377
Duodenalsalmons

На сервере имеется несколько больших (> 10 ГБ) файлов, которые после просмотра необходимо переместить в другое место на том же сервере.

Пользователи, выполняющие проверку и перемещение файлов, не имеют доступа RDP к серверу, но могут получить доступ к файлам через пути UNC:

\\server\FilesToReview \\server\MoveToHere 

В настоящее время они используют Windows Explorer для копирования / вставки файлов. Это довольно медленно, так как я думаю, что файл копируется / кэшируется локально, а затем снова загружается в новое место на сервере.

Есть ли способ переместить файлы на сервер, не пропуская их дважды по сети? Повлияет ли изменение конфигурации общих ресурсов UNC, как это?

\\server\FilesToReview \\server\FilesToReview\MoveToHere 

Любые идеи с благодарностью получили ...

Сервер редактирования - Windows Server 2012, клиент - Windows 10, Windows 7 (спасибо @Daniel B); Файлы должны быть скопированы, а не перемещены; Файлы находятся на одном диске (спасибо @Attie)

1
Только последние версии SMB предлагают разгрузку копии на стороне сервера. Вы не упомянули ни одной версии Windows в своем вопросе. Daniel B 5 лет назад 4
Можно было бы предложить им задачу на портале самообслуживания, чтобы выполнить это от их имени. Другой вариант заключается в том, чтобы на сервере была задание, которое отслеживает всякий раз, когда проверка каким-либо образом заканчивается, и действует на нее. Seth 5 лет назад 0
Нужно ли им "_copy_" или "_move_" файл (ы)? Если последнее, то не копировать / вставлять ...? Attie 5 лет назад 0
Находятся ли эти две папки на одном диске / файловой системе? Attie 5 лет назад 1
@DanielB, спасибо - Windows Server 2012, клиент - Windows 10 Duodenalsalmons 5 лет назад 0
@ Atttie - спасибо, добавили более подробную информацию в качестве редактирования вопроса Duodenalsalmons 5 лет назад 0
Стоит отметить, что тот факт, что вы * копируете * данные, означает, что должны быть записаны новые биты. Независимо от того, как вы нарежете это, это займет время. Twisty Impersonator 5 лет назад 1

1 ответ на вопрос

2
Daniel B

Согласно предоставленной вами информации, вы уже используете разгрузку копий на стороне сервера . Согласно вики Samba, она доступна в следующих операционных системах:

  • Windows Server 2012 и более поздние версии: через Windows Explorer или Robocopy
  • Windows 8 и более поздние версии: через Windows Explorer или Robocopy
  • Windows Server 2008: только через Robocopy
  • Windows 7: только через Robocopy

Вы можете легко проверить это, просмотрев вкладку «Производительность» в диспетчере задач. Это будет выглядеть примерно так:

server-side copy

Как видите, он практически не использует пропускную способность, но все равно копирует со скоростью 27,7 МБ / с.

Также обратите внимание, как я создаю копию файла в той же папке, и это очень медленно. Вот только насколько медленные жесткие диски.

Благодарю. Эта ссылка указывает на то, что одним из ограничений является то, что «и исходный, и целевой файлы должны находиться в одном и том же ресурсе Samba!». Я предполагаю, что копирование с \\ server \ share1 на \\ server \ share2 будет нарушать это (т. Е. Без копирования на стороне сервера), тогда как \\ server \ share1 to \\ server \ share1 \ share2 не будет? Duodenalsalmons 5 лет назад 0
Ах да, пропустил это. Да, это, вероятно, должно быть на той же самой акции. Но это также может быть ограничением, характерным для самбы. Просто проверьте с помощью диспетчера задач! Daniel B 5 лет назад 0
Загадка разгадана - пользователи фактически использовали Windows 7, но по ошибке сообщили, что это Windows 10. Поэтому использование Robocopy с \\ server \ share1 на \\ server \ share2 значительно ускоряет работу через ODX. Спасибо за помощь! Duodenalsalmons 5 лет назад 0