X

News, tips, partners, and perspectives for the Oracle Solaris operating system

Почему SUNW.nfs требуется для настройки HA-NFS в ZFS в Solaris Cluster?

Guest Author

Типичным способом настройки высокодоступной файловой системы NFS в среде Solaris Cluster является использование агента HA-NFS (SUNW.nfs). Агент SUNW.nfs просто организует общий доступ к файловым системам, которые следует экспортировать.

При поддержке ZFS как файловой системы, выполняющей переключение при отказе SUNW.HAStoragePlus, существует 2 способа настройки высокодоступной файловой системы NFS с ZFS в качестве нижележащей файловой системы. Они приведены ниже.

  1. Включение свойства sharenfs системы ZFS (т.е. sharenfs=on) для файловых систем zpool без использования SUNW.nfs.
  2. Отключение свойства sharenfs системы ZFS (т.е. sharenfs=off) для файловых систем zpool, SUNW.nfs организует фактический общий доступ.

В обоих приведенных выше подходах HA-NFS работает корректным образом только при использовании агента SUNW.nfs (т.е. вариант 2), и в этом блоге объясняется причина необходимости в SUNW.nfs для настройки высокодоступной файловой системы NFS в среде кластера с ZFS.

Повторный запрос блокировки клиентами (NFSv[23])

statd(1M) отслеживает клиенты и процессы, устанавливающие блокировки на сервере. Сервер может использовать эту информацию для того, чтобы разрешить клиенту выполнить повторный запрос блокировки после перезагрузки/переключения при отказе.

При общем доступе к файловой системе с помощью включенного свойства ZFS без использования SUNW.nfs информация о блокировке хранится по адресу /var/statmon, который принадлежит локальной файловой системе и зависит от узла. Поэтому в случае переключения при отказе хранимая информация недоступна на том компьютере, на который произошло переключение при отказе сервера. По этой причине сервер не может отправлять запросы клиентам на повторную блокировку.

Эту проблему решает агент SUNW.nfs, который хранит сведения, необходимые для управления, в стабильном хранилище (оно находится на дисках с несколькими портами), которое доступно со всех узлов кластеров.

Информация о состоянии клиентов (NFSv4)

NFSv4 – это протокол с сохранением состояния, где nfsd(1M) отслеживает состояние клиента (наподобие открытых или закрытых файлов) в стабильном хранилище.

При общем доступе к файловой системе со включенным свойством sharenfs системы ZFS стабильное хранилище находится по адресу /var/nfs, который недоступен со всех узлов кластера. В этом случае при переключении сервера при отказе происходит сбой повторных запросов клиентов, что может привести к завершению работы клиентских приложений (в случае, если они не перехватывают сигнал SIGLOST).

Эта проблема решена с помощью агента SUNW.nfs, который хранит информацию о состоянии в стабильном хранилище, которое является общим для узлов кластеров и помогает серверу сделать так, чтобы клиенты выполнили повторные запросы своего состояния.


Это различие проиллюстрировано ниже. 

HA-NFS без SUNW.nfs
 HA-NFS без SUNW.nfs

HA-NFS с SUNW.nfs
 HA-NFS с SUNW.nfs

 
Говоря точнее, свойство sharenfs файловой системы zfs не предназначено для работы в среде Solaris Cluster, поэтому использование агента SUNW.nfs обязательно для HA-NFS в ZFS.

P.S:
Стабильное хранилище, где SUNW.nfs хранит информацию, находится в высокодоступной файловой системе ZFS (что является значением свойства расширения PathPrefix типа ресурса SUNW.nfs ).

Венкатешварлу Телла (Venku)
Solaris Cluster Engineering

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.