Linux - Диск / файловая система как LRU Cache (с прозрачным истечением срока действия)

У меня есть случай, когда я хочу использовать локальный диск в качестве кэша LRU для (горячих) файлов из отдельного Интернета сервис (что-то вроде S3). Если файл не существует на диске, файл читается через Интернет, записанные на локальный диск, а затем будущие запросы могут использовать локальный кеш вместо чтения его из исходного источника.

Поскольку объем данных, хранящихся в веб-службе, будет превышать локальное хранилище, я хочу автоматически и прозрачно удалять локальные файлы при записи нового файла, если хранилище уже заполнено. Если возможно, я бы хотел избежать ситуации, когда у меня есть задача cron, которая проверяет время и удаляет файлы через определенное время, поскольку нет особой причины истекать элементы кеша на основе времени, если файлы не записываются.

Я попытался найти что-то вроде tmpfs, которое позволяет мне реализовать что-то похожее на чисто дисковый кеш (на SSD) максимально прозрачно для приложения, которое использует кеш, но я ' Мне не удалось найти ничего, что реализует эту функцию (аналогично тому, что CacheFS делает для NFS, но в более общем виде). ​​

4
задан 18 January 2017 в 13:55
1 ответ

Вы можете попробовать кеширование файлов nginx для этого, если вас устраивает http-интерфейс. См. nginx content-caching .

0
ответ дан 3 December 2019 в 04:19

Теги

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