Назад | Перейти на главную страницу

Отказоустойчивый сетевой протокол обмена файлами

У меня есть сервер A, на котором хранятся файлы, и сервер B с подключением NFS-v3 к серверу A. Когда сервер A не отвечает по какой-либо причине, любой запрос чтения, сделанный на B, будет зависать в течение длительного времени (несколько минут).

Мне нужно, чтобы эти запросы завершались очень быстро (1-2 секунды).

Я попытался настроить такие параметры, как timeo, retrans, retry, soft / hard, sync / async и т. Д., Но ничего не работает, и, похоже, это известная нерешенная проблема. У меня всегда очень долгий тайм-аут.

  1. Есть ли какое-нибудь исправление для клиента NFS или любого альтернативного клиента пользовательского пространства?

  2. Есть ли какой-либо сетевой протокол для обмена файлами (кроме NFS), который правильно обрабатывает разорванные соединения и недоступные серверы?

Вы пробовали afs или gluster?

(@vmfarms sshfs, это хорошее решение, если вы не возражаете против проблем с производительностью. Это добавляет слишком много накладных расходов вашей сети)

NFS - довольно надежный протокол, особенно при работе с небольшими установками (20 серверов или меньше). Я бы использовал мягкие крепления, чтобы избежать проблем при выходе из строя сервера A. Если вы хотите быстро отключить монтирование, быстрая игра с iptables должна довольно быстро привести к тайм-ауту соединения и позволить вам размонтировать (при условии, что 10.10.0.1 - это IP-адрес вашего NFS-сервера A):

iptables -A OUTPUT -d 10.10.0.1 -j REJECT

Существует несколько других протоколов обмена файлами, но ни один из них не настолько распространен, как NFS, IHMO.