У меня есть диск емкостью 1 ТБ на одном сервере, к которому 4 других сервера часто обращаются через NFS для распространения файлов по HTTP. Я вижу высокую нагрузку на центральный сервер и хочу кэшировать эти файлы на локальных серверах, поскольку они редко меняются. Подходит ли кеширование NFS или мне стоит поискать что-нибудь еще?
Спасибо
Способ NFS:
FS-Cache, вероятно, поможет, если у вас есть минимальное пространство на клиентских серверах, которое не позволяет вам хранить полные копии всех ваших больших файлов (например, вы хотите или должны кэшировать только наиболее часто используемые файлы).
Есть некоторые предостережения (как указано в Документация Red Hat):
Кроме того, вам необходимо запускать определенные типы файловых систем на клиенте NFS, чтобы обеспечить необходимую поддержку FS для атрибутов файловой системы, которые FS-Cache использует для отслеживания вещей (ext3 с user_xattr, ext4, btrfs, xfs) .
Способ rsync:
Другой альтернативой является использование rsync и сохранение полной копии файлов в каждой системе. Если эти вещи меняются только периодически (например, ежедневно или еженедельно), это может быть более выгодным для вас с точки зрения меньшей сложности в управлении и отладке проблем.
Обратной стороной этого является то, что вы теперь храните N + 1 копий, где N - количество систем, на которых вам нужно запустить это, и вам придется придумать механизм для периодической обработки rsync (например, скрипты + cron , и т.д).
Я вижу, вы отметили свой вопрос squid
, значит, вы об этом четко знаете. Как ты им пользуешься? Думаю, вашу проблему можно решить, используя squid в режим обратного прокси (httpd-accelerator). Если у вас все настроено правильно, вам не стоит беспокоиться о стороне NFS.