Назад | Перейти на главную страницу

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

Вот мой сценарий:

Нам необходимо передать набор файлов («рабочую область») с исходного сервера на несколько целевых серверов. Файлы хранятся под контролем версий (SVN), поэтому первым делом нужно экспортировать последнюю версию репозитория на исходный сервер. Затем мне нужно убедиться, что на нескольких региональных серверах, каждый на другом континенте, установлена ​​последняя версия этого рабочего пространства.

У меня есть сценарий, который работает с ROBOCOPY, но он отправляет весь рабочее пространство для каждого целевого сервера. Время копирования очень велико, и передача может засорить сеть на некоторые из сайтов, которые не так хорошо подключены ... У меня уже были жалобы!

В большинстве случаев изменения будут применяться только к небольшому проценту всех файлов, поэтому дифференциальная копия было бы идеально. Я не хочу идти по пути синхронизации / зеркалирования, потому что файлы на удаленных серверах будут использоваться и изменяться довольно часто, и вероятно, что файлы на региональных серверах будут сочтены более новыми для инструмента синхронизации.

Есть ли какие-нибудь скрипты / инструменты, которые вы можете порекомендовать, чтобы сделать публикацию этого рабочего пространства более эффективной? Я не возражаю, если есть также недорогие, которые могут помочь в работе.

ОС: Windows Server 2003 Сетевая пропускная способность: это сеть частной компании, и скорость подключения может сильно различаться

Учитывая, что файлы находятся под контролем версий, как насчет создания ветки в svn для «готовой к производству» версии ваших файлов. Затем вместо того, чтобы выполнять экспорт svn на главном сервере, выполните проверку на ВСЕ серверов и используйте «svn update», чтобы обновить их все из ветки «Готово к производству».

Идея наличия ветки, готовой к производству, заключается в том, что вы можете продолжить работу с файлами, и когда вы будете готовы «опубликовать» их на всех серверах, скопируйте файлы в ветку. Таким образом, на ваших производственных серверах не будет "незавершенного" материала.

Джим.

PS: По сути, это то же самое, что и ответ Дэйва Чейни, только более подробно.

Вы упомянули, что источник находится в SVN. Можешь просто сделать svn up?

В большинстве случаев изменения будут применяться только к небольшому проценту всех файлов, поэтому идеальным вариантом будет какая-то дифференциальная копия.

Rsync. Да, для Windows тоже.

Как уже упоминалось, svn up тоже будет работать, но поскольку

файлы на удаленных серверах будут использоваться и изменяться довольно часто

тебе нужно svn revert первый.

Этот точный сценарий рассматривается в Microsoft Распределенная файловая система (DFS). В Windows Server 2003 R2 добавлена ​​поддержка удаленного разностного сжатия, которое только синхронизирует различия. Именно то, что вам нужно.

http://technet.microsoft.com/en-us/library/cc787066.aspx

кукольный инструмент управления конфигурацией может вас заинтересовать.

С точки зрения функциональности это может быть немного излишним, но оно сравнительно легкое по сравнению с решениями, которые вы рассматриваете.