4

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

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

Я читал о Bcache, но не могу понять, если это то, что мне нужно.

У вас есть какие-нибудь предложения?

Спасибо, Вадим.

1 ответ1

8

Посмотри в cachefilesd. Работает практически автоматически. Все, что вам нужно сделать, это:

  1. Создайте файловую систему ext3 на клиенте для размещения кэша. Поместите его на любой локальный носитель, который вы хотите (выделенный раздел, LVM LV и т.д.), И сделайте так, чтобы размер кеша был таким, какой вы хотите.

  2. Смонтируйте эту файловую систему в /var/cache/fscache . Поместите его в /etc/fstab чтобы он всегда монтировался во время загрузки.

  3. Установите cahefilesd (пакет Debian cachefilesd)

  4. Я думаю, что это уже по умолчанию, но убедитесь, что dir установлен в /var/cache/fscache в /etc/cachefilesd.conf .

  5. Добавьте "fsc" в опции монтирования файловых систем, для которых вы хотите включить кеш. Например: «rw, hard, fsc». Размонтируйте и перемонтируйте эти файловые системы.

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