Самый быстрый способ зеркально отразить каталог по сети

Я надеюсь ускорять свой процесс развертывания, в настоящее время у меня есть единственный сервер подготовки и веб-ферма в производстве.

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

Моя команда копии смотрит следующим образом

ROBOCOPY %codeSourceDir% %targetSite% /MIR /XF *.config

Который должен зеркально отразить папки, исключая любого *.config файлы.

Это ведет себя правильно, но скопировать 200 МБ файлов к 8 серверам, требуется примерно 4 минуты на сервер (общее количество ~30 минут). Если я делаю простое удаляет папку и копию с помощью удаленного рабочего стола, это заканчивается приблизительно через 5 секунд! Причина, почему я думаю различие, является настолько большой, существует много файлов (~10 тысяч), и большую часть времени потраченный robocopy сравнение файлов.

Существует ли способ ускорить robocopy, путем игнорирования файла - сравнивают функцию?

То, что я надеюсь делать, должно зеркально отразить каталоги (в основном, удалить дополнительные файлы), я не забочусь, перезаписываю ли я файлы, которые являются тем же. robocopy может сделать это или является там лучшим инструментом для задания?

1
задан 12 August 2014 в 18:54
3 ответа

Флаг /is перезаписывает файлы. Это "включать те же файлы", и он должен выполнить вашу задачу. Я бы также использовал /W:1 для установки времени ожидания повторной попытки на 1 секунду, а не на 30 по умолчанию. Ваша задержка может быть от блокировки на целевой стороне; вы это проверили?

Я не знаю, как скопировать без проверки, но это должно привести вас туда, где вы должны быть.

Конечно, вы также можете использовать другую строку робокопии, чтобы просто удалить все файлы из целевой директории ПЕРЕД запуском зеркала. Это, конечно, тоже сработает.

2
ответ дан 3 December 2019 в 21:14

Не думаю, что понимаю, что вы имеете в виду под "простым удалением папки и копированием с помощью удаленного рабочего стола, оно заканчивается примерно за 5 секунд". Вы имеете в виду, что на самом деле удаляете одну папку с сервера инсценировки, затем копируете всю иерархию на веб-сервер по RDP, и все это занимает 5 секунд? Вы говорите ему пропустить все файлы, которые он уже нашёл на удалённом сервере? Это не обновит содержимое этих файлов, если они изменились.

Вернувшись в Robocopy, вы можете ограничить набор файлов с помощью "/xo". (исключая старые файлы). Также рассмотрим использование многопоточности с "/mt:X", где "X" - это количество потоков для параллельной работы.

Здесь можно посмотреть все опции Robocopy .

.
0
ответ дан 3 December 2019 в 21:14

Вы должны взглянуть на DFS - Распределенная файловая система (Microsoft), которая делает практически все, что вы хотите, прозрачно.

И она делает еще больше

0
ответ дан 3 December 2019 в 21:14

Теги

Похожие вопросы