NFS Автоматическое аварийное переключение или балансировка нагрузки или кластеризация?

11

Я использую NFS (и это единственный, который я хорошо знаю в сетевых файлах) в течение нескольких лет. Но до сих пор не могу узнать ..

  • Как сделать NFSсерверы в кластерном дизайне (или с балансировкой нагрузки?)
  • Или, по крайней мере, его развертывание на сервере «БОЛЬШЕ-ТО ОДИН» и «Автоматическое восстановление после отказа».

Основная цель - не допустить, чтобы мой единственный работающий NFS-сервер работал в режиме единой точки отказа.


Так как я не знаю, как сделать это правильно, до сих пор я изобрел самостоятельно:

  1. NFS на 2 сервера.
  2. RSYNC с 1-го (предполагаемого главного) сервера на другой 2-й сервер.
  3. С серверов приложений (веб-сайтов и т. Д.) Shell ScriptУстановите флажок, чтобы проверить исправность точки монтирования NSF-Master Server. А затем, если нужно, автоматически отключить его (оставив), а затем выполнить автоматическое подключение со второго.
  4. Основная функция, которую я использовал в моем автоматическом сценарии оболочки, заключается nfsstat -mв проверке работоспособности точки монтирования.

(Я использую Redhat )

Но в любом случае, я все еще не думаю, что это безопасный и стандартный способ.

夏 期 劇場
источник

Ответы:

8

В этом учебном пособии под названием « Высокодоступный кластер NFS: настройка Corosync & Pacemaker» показано, как настроить активный / активный NFS с помощью NFS, Corosync и Pacemaker. В качестве альтернативы вы могли бы следовать этому руководству под названием: Высокодоступное хранилище NFS с DRBD и Pacemaker, которое показывает настройку активного / активного с использованием DRDB & Pacemaker.

Вы также, вероятно, захотите взглянуть на эти другие ссылки, чтобы ознакомиться с различными технологиями и терминологией.

Эти вопросы и ответы ServerFault также должны оказаться полезными для кластерной файловой системы Linux .

Дополнительные ссылки

SLM
источник
@AndrewSavinykh - эта ссылка показывает активный / пассивный, которым вы поделились, если это то, что вы ищете.
SLM
5

Это только один из многих способов, которыми NFS отстой.

Невозможно сделать это только с NFS до версии 3. Вам нужно будет добавить функциональность вручную.

Это, вероятно, означает:

  • репликация данных или некоторое общее хранилище
  • Захват IP
  • Своего рода мониторинг сердцебиения
  • Управление кластером

Существуют пакеты для всего этого, но вам придется интегрировать их для вашей организации.

Проект Linux HA был создан много лет назад для реализации некоторых из этих вещей. http://www.linux-ha.org/

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

Стоит отметить ... Единственной основной причиной сбоя системы (безусловно) является административная ошибка, и кластеры HA по определению являются сложной системой и более подвержены ошибкам администратора.

Нормально, за исключением NFS v4, NFS v4 начинает реализовывать некоторые из функций масштабируемости, безопасности и доступности, которыми AFS обладает уже 20 лет, он ни в коем случае не полностью или широко не реализован и даже не полностью совместим с различными клиентами и серверами, но Если вы используете NFS, начните с v4 и посмотрите, что уже реализовано на вашей платформе.

Colin
источник
AFS был восхитителен, и о нем почти забыли ... +1 за почетное упоминание
выпал
2

Насколько я знаю, у вас не может быть NFS в качестве активно-активного кластера. Теперь для Active-Passive есть определенные инструменты, которые помогут вам достичь этого. Я больше знаком с ОС Solaris и Solaris Cluster, которые предоставляют вам возможность создавать высокодоступные общие / общие ресурсы NFS в зависимости от вашей цели.

Одна вещь, которая вам понадобится, - это общее хранилище, которое можно перенести с сервера A на сервер B и наоборот в случае необходимости. В идеале iSCSI или SAN Storage. И IP, связанный с общим ресурсом NFS.

Кластер будет работать так. В случае сбоя сервера A сервер B включит IP-связь с сервером NFS и получит право владения общим диском, подключит его и запустит сервер NFS. То же самое происходит в случае сбоя сервера B и работы сервера A.

Если вы хотите сделать это вручную, то в качестве основных шагов вам понадобятся скрипты мониторинга и скрипты для автоматического включения и отключения сервисов.

Посмотрите здесь для Redhat

BitsOfNix
источник
Я настроил активный / активный кластер NFS, используя балансировщик нагрузки, CentOS, DRBD, GFS2 и Pacemaker. Смотрите мой ответ для получения дополнительной информации.
DoubleSharp
2

Я настроил избыточную пару файловых серверов NFS в «активной / активной» конфигурации с «двумя основными», используя балансировщик нагрузки, CentOS, NFS, DRBD (репликация), GFS2 (кластерная файловая система) и Pacemaker (управление кластером).

Вот руководство по этой реализации в RackSpace, но оно будет аналогичным в любой другой среде.

Как настроить Dual Primary DRBD на CentOS 6: GFS2 и кардиостимулятор .

doublesharp
источник
2

Продукт Red Hat RHSS / RHGS (Red Hat Storage / Gluster Server) прекрасно справляется с этим, используя клиент GlusterFS на основе FUSE для прокси-соединений NFS с работающим внутренним сервером, сохраняя при этом внутреннее зеркальное хранилище с несколькими узлами сервера, все прозрачно для клиентской стороны. Это очень удобное решение, которое подойдет вам. Вы можете установить решение EPEL / Extra RPM или купить его в Red Hat. На стороне клиента вы просто используете FUSE / glusterfs или NFS в качестве типа монтирования в fstab. Никаких проблем с квантом / фехтованием.

Джо
источник
Согласен, отлично работает и конфигурация проста
elbarna
1

Это очень хороший и простой практический пример, он работает и отлично работает.

https://www.howtoforge.com/high_availability_nfs_drbd_heartbeat

Лично я предпочитаю lvs, потому что объединяю ха с балансировкой нагрузки, но я пробовал с nfs + gfs2 + drbd и работает очень плохо. Может быть, мне нужно как-то, но я не могу найти ничего о lvs + nfs ha

elbarna
источник
Но как мне Virtual IPтам, как уже упоминалось, через серверы? (Я не знаю)
劇場 期 劇場
Я настроил сервер lvs, для создания virtualip вам нужны lvs, и если вы хотите, есть хороший веб-интерфейс pirahna gui для создания virtualip. Прочтите
elbarna
Сейчас я пытаюсь настроить lvs, virtualip ... почти невозможно, когда nfs монтируется с удаленного компьютера, а один сервер не работает, nfs блокируется даже на последнем сервере и на удаленном клиенте.
Эльбарна
Ни в коем случае нельзя, активный / активный кластер с nfs
elbarna
Но, к счастью, у нас может быть pnfs
elbarna