Nfsv4 обеспечивает унифицированный сетевой доступ

Шаг 4 — Настройка брандмауэра на хосте

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

В нашей системе разрешен только трафик SSH, и поэтому нам нужно добавить правило для трафика NFS.

Многие приложения можно активировать по имени через список , но не входит в их число. Однако поскольку также проверяет каталог для поиска порта и протокола службы, мы все равно можем добавлять NFS по имени. Согласно лучшим практикам, рекомендуется применять наиболее строгое правило, которое разрешит необходимый трафик. Поэтому мы не просто разрешим трафик отовсюду, а зададим более конкретные параметры.

Для проверки изменений введите:

На экране вы увидите, что трафик порта разрешен:

Это подтверждает, что UFW разрешает только трафик NFS на порту на нашей клиентской системе.

Настройка nfs в Ubuntu 16.04

Сетевая файловая система NFS или Network File System, это популярный протокол сетевой файловой системы, который позволяет пользователям подключать удаленные сетевые каталоги на своей машине и передавать файлы между серверами.

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

По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.

В этой статье будет рассмотрена установка nfs в Ubuntu 16.04. Мы разберем установку всех необходимых компонентов, настройку общей папки, а также подключение сетевых папок.

Немного теории

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

В отличие от других протоколов NFS предоставляет прозрачный доступ к удаленным файлам.

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

Установка компонентов NFS

Перед тем как мы сможем работать с NFS, нам придется установить несколько программ. На машину, которая будет сервером нужно установить пакет nfs-kernel-server, с помощью которого будет выполнено открытие шары nfs в ubuntu 16.04. Для этого выполните:

sudo apt install nfs-kernel-server

Теперь давайте проверим правильно ли установился сервер. Сервис NFS слушает соединения как для TCP, так и для UDP на порту 2049. Посмотреть действительно ли сейчас используются эти порты можно командой:

rpcinfo -p | grep nfs

Также важно проверить поддерживается ли NFS на уровне ядра:

cat /proc/filesystems | grep nfs

Видим, что работает, но если нет, нужно вручную загрузить модуль ядра nfs:

modprobe nfs

Давайте еще добавим nfs в автозагрузку:

sudo systemctl enable nfs

На клиентском компьютере вам нужно установить пакет nfs-common, чтобы иметь возможность работать с этой файловой системой. Вам необязательно устанавливать компоненты сервера, достаточно будет только этого пакета:

sudo apt install nfs-common

Вот и все, дальше настройка nfs ubuntu.

Настройка сервера NFS в Ubuntu

Мы можем открыть NFS доступ к любой папке, но давайте создадим для этих целей новую:

sudo mkdir /var/nfs

Дальше нас интересует настройка ubuntu nfs server. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Синтаксис записи папки такой:

адрес_папки клиент (опции)

Адрес папки – это та папка, которую нужно сделать доступной по сети. Клиент – ip адрес или адрес сети, из которой могут получить доступ к этой папке. А вот с опциями немного сложнее. Рассмотрим некоторые из них:

  • rw – разрешить чтение и запись в этой папке
  • ro – разрешить только чтение
  • sync – отвечать на следующие запросы только тогда, когда данные будут сохранены на диск (по умолчанию)
  • async – не блокировать подключения пока данные записываются на диск
  • secure – использовать для соединения только порты ниже 1024
  • insecure – использовать любые порты
  • nohide – не скрывать поддиректории при, открытии доступа к нескольким директориям
  • root_squash – подменять запросы от root на анонимные
  • all_squash – превращать все запросы в анонимные
  • anonuid и anongid – указывает uid и gid для анонимного пользователя.

Например, для нашей папки эта строка может выглядеть вот так:

/var/nfs 127.0.0.1(rw,sync,no_subtree_check)

Когда все было настроено, осталось обновить таблицу экспорта NFS:

sudo exportfs -a

Вот и все, открытие шары nfs в ubuntu 16.04 завершено. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.

Подключение NFS

Мы не будем подробно останавливаться на этом вопросе в сегодняшней статье. Это довольно большая тема, заслуживающая отдельной статьи. Но пару слов я все же скажу.

Чтобы подключить сетевую папку вам не нужен никакой nfs клиент ubuntu, достаточно использовать команду mount:

 sudo mount 127.0.0.1:/var/nfs/ /mnt/

Теперь вы можете попытаться создать файл в подключенной директории:

touch /mnt/test

Также мы посмотрите подключенные файловые системы с помощью df:

df -h

127.0.0.1:/var/nfs 30G 6,7G 22G 24% /mnt

Чтобы отключить эту файловую систему достаточно использовать стандартный umount:

sudo umount /mnt/

Повышение производительности NFS

На производительность NFS могут влиять несколько параметров, особенно при работе через медленные соединения. При работе с медленными и высоконагруженными соединениями, желательно использовать параметр hard, чтобы таймауты не привели к прекращению работы программ. Но необходимо осознавать, что если смонтировать файловую систему через NFS с параметром hard через fstab, а удаленный хост окажется недоступен, то при загрузке системы произойдет зависание.

Одним из способов повышения производительности NFS — увеличение количества байтов, передаваемых за один раз. Размер в 4096 байт слишком мал для современных быстрых соединений, увеличивая это значение до 8192 и более можно экспериментальным путем найти оптимальную скорость.

Так же, не стоит упускать из внимания и настройки тайм-аутов. NFS ожидает ответа на пересылку данных в течении промежутка времени, указанного в опции timeo, если ответ за это время не получен, то выполняется повторная пересылка. На загруженных и медленных соединениях это время может быть меньше времени реакции сервера и способности каналов связи, в результате чего могут быть излишние повторные пересылки, замедляющие работу.По умолчанию, timeo равно 0,7 сек (700 миллисекунд). после обнаружения факта обрыва связи в течении 700 мс сервер совершит повторную пересылку и удвоит время ожидания до 1,4 сек., увеличение timeo будет продолжаться до максимального значения в 60 сек.

Настройка DRBD

Ну хорошо, с идеей разобрались теперь перейдем к реализации.

По умолчанию в комплекте с ядром Linux поставляется модуль восьмой версии drbd, к сожалению он нам не подходит и нам необходимо установить модуль девятой версии.

Подключим репозиторий LINBIT и установим все необходимое:

  • — заголовки ядра необходимые для сборки модуля
  • — модуль ядра в формате DKMS
  • — основные утилиты для управления DRBD
  • — интерактивный инструмент, как top только для DRBD

После установки модуля проверим, все ли в порядке с ним:

Если вы увидите в выводе команды восьмую версию значит что-то пошло не так и загружен in-tree модуль ядра. Проверьте что-бы разобраться в чем причина.

Каждая нода у нас будет иметь одно и тоже drbd-устройство запущенное поверх обычных разделов. Для начала нам нужно подготовить этот раздел под drbd на каждой ноде.

В качестве такого раздела может выступать любое блочное устройство, это может быть lvm, zvol, раздел диска или весь диск целиком. В этой статье я буду использовать отдельный nvme диск с разделом под drbd:

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

Найти такой симлинк для можно таким образом:

Опишем наш ресурс на всех трех нодах:

Желательно для синхронизации drbd использовать отдельную сеть.

Теперь создадим метаданные для drbd и запустим его:

Повторим эти действия на всех трех нодах и проверим состояние:

Сейчас наш диск Inconsistent на всех трех нодах, это потому, что drbd не знает какой диск должен быть взят в качестве оригинала. Мы должны пометить один из них как Primary, что бы его состояние синхронизировалось на остальные ноды:

Сразу после этого начнется синхронизация:

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

Стоит не забыть активировать автозапуск drbd-сервиса на нодах:

NFS v3

Первое предложение по разработке NFS версии 3 в Sun Microsystems было озвучено вскоре после выпуска второго дистрибутива. Главной мотивацией была попытка смягчить проблему производительности синхронной записи. К июлю 1992 года практические доработки позволили решить многие недостатки NFS версии 2, оставив при этом лишь недостаточную поддержку файлов (64-разрядные размеры и смещения файлов).

Версия 3 добавила в себя следующее:

  • поддержку 64-битных размеров и смещений файлов для обработки данных размером более 2 гигабайт (ГБ);
  • поддержку асинхронной записи на сервере для повышения производительности;
  • дополнительные атрибуты файлов во многих ответах, позволяющие избежать необходимости их повторного извлечения;
  • операцию READDIRPLUS для получения данных и атрибутов вместе с именами файлов при сканировании каталога;
  • многие другие улучшения.

Во время введения версии 3 поддержка TCP как протокола транспортного уровня начала увеличиваться. Использование TCP в качестве средства передачи данных, выполненного с использованием NFS через WAN, стало позволять передавать большие размеры файлов для просмотра и записи. Благодаря этому разработчики смогли преодолеть пределы ограничений в 8 КБ, налагаемые протоколом пользовательских дейтаграмм (UDP).

Conclusion

In this tutorial, we created an NFS host and illustrated some key NFS behaviours by creating two different NFS mounts, which we shared with our NFS client. If you’re looking to implement NFS in production, it’s important to note that the protocol itself is not encrypted. In cases where you’re sharing files that are intended to be publicly accessible, this doesn’t cause any serious problems.

If you’re using NFS for private data, however, you’ll need to decide how you want to protect that data. You might be able to route NFS over SSH or a VPN connection to create a more secure experience, but this often comes with a significant reduction in performance. If performance is an issue, consider SSHFS. It’s slightly slower than unencrypted NFS traffic, but usually much faster than tunnelled NFS. Kerberos authenticated encryption for NFS is another option to explore.

NFS и файл /etc/exports

Сетевая файловая система (Network File System, NFS) позволяет монтировать файловую систему с
удаленного компьютера так, как будто она локальная и находится в вашей системе. После такого
монтирования вы можете непосредственно обращаться к файлам этой удаленной файловой системы.
Преимущество состоит в том, что различные компьютеры сети могут получать прямой доступ к одним
и тем же файлам без необходимости создания их копий. Существует только один экземпляр файла,
находящийся в удаленной файловой системе, и к нему может обращаться любой компьютер.

Система NFS работает в сети TCP/IP. Удаленный компьютер, на котором находится файловая система,
предоставляет ее другим машинами сети. Это достигается за счет экспорта файловой системы, для
чего на удаленном компьютере следует добавить соответствующие строки в файл конфигурации NFS
(его имя — /etc/exports), а также запустить два процесса-демона,
обеспечивающих доступ к удаленному компьютеру (это программы rpc.mountd
и rpc.nfsd). В каждой строке файла /etc/exports
указывается экспортируемая система и сетевые компьютеры, которые имеют право доступа к ней.
Для файловой системы указывается точка монтирования — каталог, в который она монтируется.
Затем следует список компьютеров, имеющих к ней доступ. За каждым именем может следовать
разделенный запятыми список опций мон-тирования, взятый в круглые скобки. Например, одному
компьютеру можно предоставить доступ только для чтения, другому — для чтения и записи и т.д.
Если указаны только опции, они распространяются на всех. Перечень опций монтирования приведен
в . Ниже приведены примеры записей файла /etc/exports. К файловой системе,
смонтированной в каталоге /pub (это имя обычно используется для общедоступного каталога), всем
компьютерам предоставляется доступ только для чтения без проверки прав доступа. Компьютеру
ant.trek.com предоставляется доступ для чтения и записи к файловой системе, смонтированной в
каталоге /home/foodstuff. Следующая запись предоставляет
компьютеру biitterny.trek.com доступ к компакт-диску. Последняя запись запрещает всем
компьютерам доступ к каталогу /home/ richlp.

/etc/exports
/pub               (ro,insecure,all_squash)
/home/foodstuff     ant.trek.com(rw)
/mnt/cdrom          butterfly.trck.com(ro)
/home/richip       (noaccess)

Прежде чем начать пользоваться удаленной файловой системой, ее нужно смонтировать на локальном
компьютере. Удаленную файловую систему можно смонтировать, либо сделав соответствующую запись
в файле /etc/fetab, либо явно командой mount.
В строке, описывающей сетевую файловую систему, в поле filesystemtype файла /etc/fetab
тип файловой системы должен быть определен как NFS. Имя сетевой файловой системы состоит из
имени хост-компьютера, на котором она расположена, и путевого имени каталога, в котором она
находится. Эти имена разделяются двоеточием. Например, имя rose.berkeley.edu:/ home/project
относится к файловой системе, смонтированной в каталоге /home/ project
на компьютере rose.berkeley.edu.

Существует несколько специальных опций монтирования NFS, которые можно указать в файле
/etc/fstab. Допускается, в частности, указание размера передаваемых
и принимаемых дейтаграмм, а также периода, в течение которого компьютер будет ждать ответа от
удаленной системы. Можно указать и режим монтирования файловой системы — hard
или soft. Если система смонтирована в режиме hard,
то в случае, когда удаленная система не отвечает, ваш компьютер будет непрерывно пытаться
установить соединение с нею. При монтировании в режиме soft
компьютер прекращает попытки и выдает сообщение об ошибке. По умолчанию осуществляется монтирование
в режиме hard. Полный перечень опций монтирования NFS со стороны
клиента содержится на man-странице, относящейся к команде mount,
и в . Они отличаются от опций монтирования NFS на
стороне сервера.

Ниже приведен пример строки файла /etc/fstab для сетевой файловой
системы. Удаленная система — ant.trek.com, а файловая система
смонтирована в каталоге /home/projects. В локальной системе эту
файловую систему необходимо смонтировать в каталоге /home/richlp.
Тип системы — NFS. Опция timeo указывает на то, что локальная
система будет ожидать ответа в течение 20 десятых секунды, т.е. 2 секунды.

ant.trek.com:/home/projects /home/richlp nfs timeo=-20

Файловую систему NFS можно смонтировать явно командой mount с
опцией -t nfs. Предыдущая операция выполняется следующей командой:

t mount -t nfs -о timeo=20 aut.trek.com:/home/projects /home/richlp

Спонсоры:

Хостинг:

Maxim ChirkovДобавить, Поддержать, Вебмастеру

Manually Mounting an NFS File Systems #

Mounting a remote NFS share is the same as mounting regular file systems.

To mount an NFS file system on a given mount point, use the command in the following form:

Use the steps below to manually mount a remote NFS share on your Linux system:

  1. First, create a directory to serve as the mount point for the remote NFS share:

    Mount point is a directory on the local machine where the NFS share is to be mounted.

  2. Mount the NFS share by running the following command as root or user with sudo privileges:

    Where is the IP address of the NFS server, is the directory that the server is exporting and is the local mount point.

    On success, no output is produced.

    If you want to specify additional , use the option. Multiple options can be provided as a comma-separated list. To get a list of all mount options type in your terminal.

  3. To verify that the remote NFS volume is successfully mounted use either the or command.

Once the share is mounted, the mount point becomes the root directory of the mounted file system.

When you are manually mounting the share, the NFS share mount does not persist after a reboot.

DRBDmanage и Linstor

Во первых стоит еще раз упомянуть про DRBDmanage, который очень неплохо интегрируется в Proxmox. LINBIT предоставляет готовый плагин DRBDmanage для Proxmox который позволяет использовать все его функции прямо из интерфейса Proxmox.

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

  • Во первых захаркоженные названия томов, LVM-группа или ZFS-пул обязательно должен иметь название .
  • Невозможность использования более одного пула на ноду
  • В силу специфики решения сontroller volume может находиться только на обычном LVM и никак иначе
  • Переодические глюки dbus, который тесно используется DRBDmanage для взаимодействия с нодами.

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

Linstor и правда работает очень хорошо. К сожалению разработчики выбрали java как основной язык для написания Linstor-server, но пусть это не пугает вас, так как Linstor сам по себе занимается только распределением конфигов DRBD и нарезкой LVM/ZFS разделов на нодах.

Troubleshooting

Mounting NFS shares in encrypted home won’t work on boot

Mounting an NFS share inside an encrypted home directory will only work after you are successfully logged in and your home is decrypted. This means that using /etc/fstab to mount NFS shares on boot will not work — because your home has not been decrypted at the time of mounting. There is a simple way around this using Symbolic links:

Create an alternative directory to mount the NFS shares in:

$ sudo mkdir /nfs
$ sudo mkdir /nfs/music

Edit /etc/fstab to mount the NFS share into that directory instead:

nfsServer:music    /nfs/music    nfs    auto    0 0

Create a symbolic link inside your home, pointing to the actual mount location (in our case delete the ‘Music’ directory already existing there first):

$ rmdir /home/user/Music
$ ln -s /nfs/music/ /home/user/Music

Критика NFS

Критика способствует улучшению

Критика, связанная с защищенностью NFS, была причиной многих улучшений в NSFv4. Создатели новой версии провели реальные мероприятия по усилению защищенности клиент-серверных взаимодействий. Фактически, они решили реализовать абсолютно новую модель системы защиты.

Для понимания модели системы защиты вы должны ознакомиться с интерфейсом прикладного программирования Generic Security Services (GSS-API) версии 2, редакции 1. GSS-API полностью описан в RFC 2743, который, к сожалению, является одним из наиболее сложных для понимания RFC-документов.

По нашему опыту работы с NFSv4 мы знаем, что не очень легко сделать сетевую файловую систему независимой от операционной системы. Но еще более трудно сделать независимыми от операционной системы и сетевых протоколов все области системы защиты. Нам нужно и то, и другое, поскольку NFS должна быть способна обрабатывать довольно большое количество пользовательских операций и делать это без связи со спецификой взаимодействия по сетевому протоколу.

Соединения между NFS-клиентами и серверами защищаются посредством так называемой (довольно поверхностно) системы защиты strong RPC. NFSv4 использует стандарт Open Network Computing Remote Procedure Call (ONCRPC), определенный в RFC 1831. Система защиты должна была быть усилена, поэтому вместо простой аутентификации (известной как AUTH_SYS) как обязательная часть протокола NFSv4 была определена и реализована разновидность основанной на GSS-API системы защиты, известная под названием RPCSEC_GSS. К наиболее важным доступным в NFSv4 механизмам защиты относятся Kerberos версии 5 и LIPKEY.

Если Kerberos имеет ограничения при использовании в Интернет, то у LIPKEY есть приятное преимущество — работая как Secure Sockets Layer (SSL), он запрашивает у пользователей их имена и пароли, избегая, в то же время, TCP-зависимости от SSL — зависимости, которую NFSv4 не разделяет. Вы можете настроить NFS на реализацию разновидностей системы защиты, если RPCSEC_GSS не требуется. Предыдущие версии NFS не имели такой возможности и, следовательно, не могли обеспечить качественную защиту, целостность данных, требования по аутентификации или типы шифрования.

Протокол NFSv3 подвергся существенной критике в области защищенности. Если NFSv3-серверы работали по TCP, было абсолютно реально запускать NFSv3-сети по Интернет. К сожалению, нужно было также открывать несколько портов, что приводило к появлению нескольких хорошо разрекламированных дыр в системе защиты

Сделав порт 2049 обязательным для NFS, стало возможным использование NFSv4 с брандмауэрами (firewall) без необходимости уделять слишком большое внимание тому, какие порты прослушивали другие протоколы, например, протокол Mount. Таким образом, исключение протокола Mount имело несколько положительных эффектов:

  • Обязательные механизмы строгой аутентификации: NFSv4 сделал механизмы строгой аутентификации обязательными. Разновидности Kerberos довольно распространены. Также должен поддерживаться Lower Infrastructure Public Key Mechanism (LIPKEY). NFSv3 никогда не поддерживал что-то большее, чем стандартное UNIX-шифрование для аутентификации доступа — это порождало основные проблемы защиты в больших сетях.
  • Обязательные схемы списков контроля доступа (access control list — ACL) в стиле Microsoft Windows NT: Хотя NFSv3 позволял реализовать строгое шифрование для аутентификации, он не использовал схемы ACL-доступа в стиле Windows NT. Списки ACL в стиле Portable Operating System Interface (POSIX) иногда реализовывались, но никогда не были общепринятыми. NFSv4 сделал ACL-схемы в стиле Windows NT обязательными.
  • Договорные механизмы и стили аутентификации: NFSv4 предоставил возможность договариваться о механизмах и стилях аутентификации. В NSFv3 было невозможно сделать что-то большее, чем ручное определение используемого стиля шифрования. Системный администратор должен был затем согласовывать протоколы шифрования и защиты.

Step 3 — Configuring the NFS Exports on the Host Server

Next, we’ll dive into the NFS configuration file to set up the sharing of these resources.

Open the file in your text editor with root privileges:

The file has comments showing the general structure of each configuration line. The syntax is basically:

/etc/exports

We’ll need to create a line for each of the directories that we plan to share. Since our example client has an IP of , our lines will look like the following. Be sure to change the IP address shown here to that of your client:

/etc/exports

Here, we’re using the same configuration options for both directories with the exception of . Let’s take a look at what each of these options mean:

  • : This option gives the client computer both read and write access to the volume.
  • : This option forces NFS to write changes to disk before replying. This results in a more stable and consistent environment since the reply reflects the actual state of the remote volume. However, it also reduces the speed of file operations.
  • : This option prevents subtree checking, which is a process where the host must check whether the file is actually still available in the exported tree for every request. This can cause many problems when a file is renamed while the client has it opened. In almost all cases, it is better to disable subtree checking.
  • : By default, NFS translates requests from a root user remotely into a non-privileged user on the server. This was intended as security feature to prevent a root account on the client from using the file system of the host as root. disables this behavior for certain shares.

When you are finished making your changes, save and close the file. Then, to make the shares available to the clients that you configured, restart the NFS server with the following command:

Before you can actually use the new shares, however, you’ll need to be sure that traffic to the shares is permitted by firewall rules.

Экспорт разделяемого ресурса

Для экспорта созданного ранее разделяемого ресурса (каталога) /nfsshareпросто добавим в конфигурационный файл строку 

Где:

192.168.1.20 — статический адрес компьтера-клиента (может быть использовано имя)

  • (rw,no_root_squash,sync) –набор опций, опции могут быть:
    • rw –чтение запись (может принимать значение ro – только чтение);
    • no_root_squash – по умолчанию в общих ресурсах NFS пользователь root становится обычным пользователем nfsnobody.Таким образом, владельцем всех файлов, созданных root, становится nfsnobody, что предотвращает загрузку на сервер программ с установленным битом setuid.Если указан параметр no_root_squash, удалённые пользователи root могут изменить любой файл в разделяемой файловой системе, и оставить для других пользователей троянские приложения.В целях безопасности этот параметр лучше не использовать
    • nohide — NFS автоматически не показывает нелокальные ресурсы (например, примонтированые с помощью mount –bind), эта опция включает отображение таких ресурсов;
    • sync – синхронный режим доступа (может принимать обратное значение- async).sync указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;
    • noaccess – запрещает доступ к указанной директории. Применяется, если доступ к определенной директории выдан всем пользователям сети , и необходимо ограничить доступ для некоторых пользователей;
    • all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя;
    • subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах.Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы.Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию.Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;
    • anonuid=1000– привязывает анонимного пользователя к «местному» пользователю;
    • anongid=1000– привязывает анонимного пользователя к группе «местного» пользователя.

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

sudo exportfs -ra

(подробности по возможностям команды см. man exportfs)

Proxmox и LXC-контейнеры

Теперь вопрос: почему Proxmox?

В принципе для построения подобной схемы мы могли бы использовать и Kubernetes так и обычную схему с кластер-менеджером. Но Proxmox предоставляет готовый, очень многофункциональный и в тоже время простой и интуитивно понятный интерфес практически для всего что нужно. Он из коробки умеет кластеризацию и поддерживает механизм fencing основанный на softdog. А при использовании LXC-контейнеров позволяет добиться минимальных таймаутов при переключении.
Полученное решение не будет иметь единой точки отказа.

По сути мы будем использовать Proxmox преимущественно как cluster-manager, где мы сможем рассматривать отдельный LXC-контейнер как сервис запущенный в классическом HA-кластере, лишь с тем отличием, что с контейнером в комплекте идет так же и его корневая система. То есть у вас нет необходимости устанавливать несколько экземаляров сервиса на каждом сервере отдельно, вы можете сделать это только один раз внутри контейнера.
Если вы когда-нибудь работали с cluster-manager software и обеспечением HA для приложений вы поймете что я имею ввиду.

NFSv4 and Autofs

Automount (or autofs) can be used in combination with NFSv4. Details on the configuration of autofs can be found in Autofs. The configuration is identical to NFSv2 and NFSv3 except that you have to specify -fstype=nfs4 as option. Automount supports NFSv4’s feature to mount all file systems exported by server at once. The exports are then treated as an entity, i.e. they are «all» mounted when you step into «one» directory on the NFS server’s file systems. When auto-mounting each file system separately the behavior is slightly different. In that case you would have to step into «each» file system to make it show up on the NFS client.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий