Как я могу кэшировать общие ресурсы NFS на локальном диске?

37

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

Хорхе Кастро
источник

Ответы:

43

Стефан повел меня по правильному пути. Это будет работать на любой системе 12.04 и новее.

Ваша файловая система также нуждается в расширенной поддержке атрибутов. Если вы используете EXT4, то все в порядке, если вы используете EXT3, вам нужно убедиться, что ваша файловая система смонтирована с user_xattrатрибутом.

Вот как я настроил это на клиентском компьютере, вам не нужно ничего делать на стороне сервера.

  1. Сначала установите демон пространства пользователя: sudo apt-get install cachefilesd

  2. Затем включите его, отредактировав /etc/default/cachefilesdи изменив строку запуска наRUN=yes

  3. Убедитесь, что у вашего NFS-подключения /etc/fstabесть fscопция. Не забудьте перемонтировать его после внесения изменений. Вот мой отрывок (изменить в соответствии с вашими потребностями):

    192.168.1.115:/home/jorge /home/jorge/Backup nfs fsc

  4. Запустите сервис: sudo /etc/init.d/cachefilesd start

Конфигурирование кеша выполнено /etc/cachefilesd.conf, см. Ссылки на параметры настройки.

Ссылки:

Хорхе Кастро
источник
Случилось ли знать, как наносить то же самое на /etc/auto.master?
Сорин
Имейте в виду, что существует ошибка, которая может привести к тому, что cachefilesdдемон работает на 100% ЦП: redhat.com/archives/linux-cachefs/2014-Feb February/msg00001.html bugzilla.redhat.com/show_bug.cgi?id=485314
акайхола
2
По крайней мере, в Ubuntu 14.04 rw, hard по умолчанию, а intr устарела. Таким образом, единственный вариант, который вы используете, который действует в наши дни - это FSC
Эндрю Вагнер,
@AndrewWagner Пожалуйста, отправьте изменения в статью!
Хорхе Кастро
10

Я не уверен, есть ли способ сделать это в настоящее время с Ubuntu 10.04 LTS.

Тем не менее, более новые версии ядра Linux включают функцию под названием FS-Cache & CacheFS , которая звучит точно так же, как вы (и я) хотите.

Также см. Локальное кеширование для сетевых файловых систем .

Стефан Ласевский
источник
Спасибо, это отличная функция. К сожалению, ему не хватает поддержки записи :(.
Хавьер Ривера