8

Я планирую построить сервер сетевого хранилища (NAS).

Есть ли способ автоматически кэшировать часто используемые файлы из удаленного хранилища на локальном ПК?

(Я не ищу способ синхронизации целых папок, таких как rsync, а скорее способ, который автоматически и прозрачно кэширует последние 50 ГБ файлов, к которым был получен доступ.)

В идеале я ищу что-то, что кэширует как записи, так и чтения, поскольку только один компьютер будет обращаться к серверу (и один день потерянных изменений, если локальный кэш поврежден, будет приемлемым)

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

Сервер, вероятно, будет работать под управлением Linux или freeNAS, компьютер работает под управлением Windows XP, но при необходимости может быть обновлен до 7.

3 ответа3

2

Вы и Златев на правильном пути с автономными файлами. Ваш NAS должен работать под Windows. Под Групповой политикой вы хотите настроить «Режим медленной связи». Просто поднимите настройку до 999999 Кбит / с. Это по существу заставляет все чтения и записи в локальный кэш. В режиме медленной связи окна будут синхронизироваться только раз в две минуты. Также вам, вероятно, следует отключить напоминания о шаре. Сначала они выскакивают, чтобы сказать вам: «Эй, ты не в сети! Мы сейчас читаем и пишем вещи из локального кэша !!!"Дурррррр.

На стороне клиента вы хотите включить «автоматически кэшировать файлы». Он автоматически кэширует каждый сетевой файл, к которому вы обращаетесь по этому UNC-пути, до 25% вашего дискового пространства. Это тоже можно отрегулировать.

Если у вас есть несколько общих папок и ваш сервер использует либо Linux, либо Vista/7, просто создайте фиктивную общую папку и жестко свяжите все папки, к которым вы хотите предоставить общий доступ.

Наконец, я настоятельно рекомендую вам обновить клиент до Vista. Одним из улучшений Vista была запись дифференциальных блоков. Только измененные части файла отправляются обратно на сервер. Кроме того, автономные файлы Vista/7 (технически называемые кэшированием на стороне клиента) значительно более надежны. На стороне сервера все, что нужно сделать, это обновить последние изменения в протоколе SMB. На самом деле все, что нужно сделать, это использовать SMB. Так что все это возможно, используя любой сетевой ресурс, если серверная часть поддерживает SMB.

Вот некоторые технические статьи.

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

http://technet.microsoft.com/en-us/magazine/2007.11.offline.aspx

1

Я не уверен, но, возможно, автономная доступность общих папок Windows /BranchCache может позволить вам сделать нечто подобное. Некоторая информация здесь - http://technet.microsoft.com/en-us/library/cc755136.aspx

0

Я смотрю на ту же проблему. На Mac моей идеей было использовать rsync в сочетании со скриптом. Задача скрипта - решить, какие файлы синхронизировать / кэшировать. Затем Rsync просто эффективно выполняет эту операцию в отношении общего сетевого ресурса. Поэтому, если мы хотим, например, кэш-память объемом 5 ГБ, удаляя наименее использованные в последнее время, нам нужно запрограммировать скрипт, который выводит список файлов, соответствующий "самым последним используемым файлам 5 ГБ", и rsync синхронизирует его локально и удаляет все файлы в кеш, которого больше нет в этом списке.

Это должно быть настроено очень тщательно, хотя, так как риск путаницы велик!

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