Есть ли способ в Linux или любых других платформах * NIX иметь удаленную файловую систему, смонтированную локально, с кэшированием, поддерживаемым локальной файловой системой.
У меня есть архивные данные на S3, к которым мне нужно получить доступ. Доступ к ним осуществляется следующим образом; После прикосновения к приложению (-ям) необходимо прочитать его с S3 несколько раз.
Я знаю, что могу попросить файловую систему выполнить работу приложения по кэшированию данных; но проблема в том, что у меня нет возможности изменять приложение.
s3fs есть опция кеширования.
Если включено с помощью опции «use_cache», s3fs автоматически поддерживает локальный кеш файлов в папке, указанной в use_cache. Когда s3fs требуется прочитать или записать файл на s3, он сначала загружает весь файл локально в папку, указанную в use_cache, и обрабатывает ее. Когда вызывается fuse release (), s3fs повторно загружает файл в s3, если он был изменен. s3fs использует контрольные суммы md5 для минимизации загрузок из s3. Примечание: это отличается от кеша статистики (см. Ниже).
Кэширование локальных файлов работает путем вычисления и сравнения контрольных сумм md5 (HTTP-заголовок ETag).
Папка, указанная в use_cache, является просто локальным кешем. Его можно удалить в любой момент. s3fs перестраивает его по запросу. Примечание: этот каталог неограниченно растет и может заполнять файловую систему, зависящую от корзины, и читает в эту корзину.
Раньше это хорошо работало под Solaris с использованием CacheFS; пространство локального жесткого диска было выделено в качестве буфера, в котором кэшировалось содержимое часто используемых файлов, подключенных к NFS, и из которого они обслуживались, если служба CacheFS определила, что содержимое на сервере NFS не изменилось с момента кэширования. Когда я использовал его под Solaris, он работал хорошо.
В соответствии с страница Википедии о CacheFS, он был перенесен (переписан для?) Linux, причем последний выпуск был выпущен в прошлом году.
Я не могу комментировать реализацию Linux, но если предположить, что она делает то же, что и Solaris, я думаю, что это может быть то, что вы ищете.
Рассматривали ли вы что-то вроде зеркалирования файловой системы с использованием файловой системы, например DRBD? Если не DRBD, то есть другие, которые можно использовать, это может дать вам отправную точку для перехода в Google.
Это не кеширование в реальном смысле, но оно будет дублировать данные локально и передавать изменения в удаленную систему. Практичность это или нет, зависит от того, сколько изменений вы вносите в файлы и почему вы вообще используете S3.
Там есть sshfs
который может быть тем, что вы ищете. Мое поверхностное понимание sshfs состоит в том, что это немного похоже на использование зашифрованных монтирований NFS.