Работа с nfs linux centos

Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки.

Инструменты пользователя

Инструменты сайта

Боковая панель

Содержание

Установка и настройка сервера и клиента NFS в CentOS Linux 7.2

В этой статье мы рассмотрим простой пример того, как установить и настроить Network File System (NFS) в CentOS Linux 7.2. На стороне сервера будет настроена NFS-шара, а на стороне клиента эта шара будет подключена.

В некоторых дистрибутивах Linux NFS-сервер и клиент устанавливаются при установке ОС. Например в CentOS 6 NFS-сервер устанавливался по умолчанию, но служба не была включена в автозагрузку. В CentOS 7 серверные и клиентские компоненты NFS нужно устанавливать самостоятельно. При этом в CentOS 7 используется обновлённая усовершенствованная версия NFS 4.1.

Установка и настройка NFS-сервера

Устанавливаем пакеты для организации NFS-сервера

Включаем автозагрузку для служб rpcbind и nfs-server:

Проверяем для каких версий NFS способен принимать подключения наш NFS-сервер:

Как видим, наш NFS сервер должен принимать подключения как NFSv3 так и NFSv4.

Создаём каталог под NFS-шару

Создаём NFS-шару в файле /etc/exports:

Описание использованных опций позаиствовано отсюда:

rw – доступ на чтение и запись (может принимать значение ro-только чтение);

sync – синхронный режим доступа(может принимать обратное значение- async). sync (async) — указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;

no_root_squash – запрет подмены uid/gid для суперпользователя (root). По умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;

all_squash / no_all_squash — установка подмены идентификатора от всех пользователей all_squash — подмена запросов от ВСЕХ пользователей (не только root) на анонимного uid/gid, либо на пользователя, заданного в параметре anonuid/anongid. Используется обычно для публичного экспорта директорий. no_all_squash — запрет подмены uid/gid для от всех пользователей

Чтобы служба nfs-server перечитала конфигурацию, выполним

Выполнив команду exportfs убедимся в том, что ресурс опубликован:

Добавляем разрешающие правила брандмауэра:

Установка и настройка клиента NFS

Устанавливаем пакетов поддержки NFS:

Включаем и запускаем включаем службы NFS:

Создаем каталог, в который будет смонтирована шара и монтируем шару:

Проверяем то, что каталог примонтирован:

Проверим возможность записи в шару

Настраиваем автоматическое монтирование шары при перезагрузке системы, добавляя запись в конец файла /etc/fstab:

Автор первичной редакции:
Алексей Максимов
Время публикации: 01.09.2016 15:30

Источник

Установка и настройка NFS-сервера и клиента в CentOS/RHEL

Network File System (NFS) – протокол распределенной файловой системы для организации общего доступа к файлам и папками. За основу в NFS взят протокол удаленных процедур (ONC RPC). NFS позволяет монтировать удаленные файловые системы по сети сеть. В отличии от FTP, NFS позволяет получить доступ только к тем частям файла, к которым обратился процесс. Имейте в виду, что данные в протоколе NFS по умолчанию не шифруются, и аутентификация клиентов не выполняется (доступ ограничивается по IP).

Читайте также:  Jre 8u45 windows x64

NFS очень прост в настройке, как со стороны сервера, так и со стороны клиента. В данной статье мы рассмотрим установку и настройку NFS-сервера и после чего, подключим NFS ресурс на клиенте. В этой статье для примера использования технологии NFS мы используем CentOS 8. В других Linux дистрибутивах (RHEL, Fedora и т.д.) все действия аналогичны.

Установка и настройка NFS-сервера в Linux CentOS

По умолчанию nfs уже установлен в CentOS 8 с пакетом Standard. Если вы удалили компоненты NFS, или ставили сервер в режиме Minimal Install, можно установить пакет NFS с помощью пакетного менеджера yum (dnf):

# yum install nfs-utils -y

# dnf install nfs-utils -y

У меня пакет уже был установлен:

После установки нужных пакетов, нужно запустить службы nfs-server и rpcbind, добавьте их в автозагрузку:

Если у вас в системе установлен firewalld откройте необходимые порты:

# firewall-cmd —permanent —add-port=111/tcp
# firewall-cmd —permanent —add-port=20048/tcp
# firewall-cmd —permanent —zone=public —add-service=nfs
# firewall-cmd —permanent —zone=public —add-service=mountd
# firewall-cmd —permanent —zone=public —add-service=rpc-bind
# firewall-cmd —reload

# iptables -t filter -A INPUT -p tcp —dport 111 -j ACCEPT
# iptables -t filter -A INPUT -p tcp —dport 2049 -j ACCEPT
# iptables -t filter -A INPUT -p tcp —dport 20048 -j ACCEPT
# service iptables save
# service iptables restart

Теперь создадим директорию, которая будет раздаваться вашим NFS сервером:

# mkdir -p /backup/nfs
# chmod -R 777 /backup/nfs

Теперь в конфигурационном файле с настройками NFS сервера (/etc/exports) нужно опубликовать данный каталог и назначить права доступа.

Добавьте в файл следующую строку для предоставления доступа к NFS всем хостам в указанной IP подсети:

Или можно ограничить доступ для конкретного IP:

Рассмотрим более подробно формат предоставления прав к NFS каталогу:

  • rw – права на запись в каталоге, ro – доступ только на чтение;
  • sync – синхронный режим доступа. async – подразумевает, что не нужно ожидать подтверждения записи на диск (повышает производительность NFS, но уменьшает надежность);
  • no_root_squash – разрешает root пользователю с клиента получать доступ к NFS каталогу (обычно не рекомендуется);
  • no_all_squash — включение авторизации пользователя. all_squash – доступ к ресурсам от анонимного пользователя;
  • no_subtree_check – отключить проверку, что пользователь обращается в файлу в определенном каталоге (subtree_check – используется по умолчанию);
  • anonuid, anongid – сопоставить NFS пользователю/группу указанному локальному пользователю/группе(UID и GID).

Чтобы применить новые настройки NFS каталогов, выполните:

И перезапустите nfs-сервер:

# systemctl restart nfs-server

На этом установка и настройка nfs-сервера закончена и можно приступить к настройке клиента.

Настройка клиента NFS в CentOS

Для настройки NFS клиента, нужно также установить пакет nfs-utils. Для CentOS 7:

# yum install nfs-utils -y

# dnf install nfs-utils -y Добавляем сервисы в автозагрузку и включаем:

# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server

Теперь на клиенте, нужно создать директорию, в которую мы смонтируем nfs-каталог:

Теперь можно смонтировать удаленное NFS-хранилище командой:

# mount -t nfs 192.168.0.100:/backup/nfs/ /backup

можно принудительно указать версию NFS протокола, которую нужно использовать

Читайте также:  Общий доступ windows порт

# mount -t nfs -o vers=4 192.168.0.100:/backup/nfs/ /backup

Где IP — это адрес NFS-сервера, который вы настроили ранее.

Теперь Теперь в списке перемонтированных разделов диска отображается подключенный NFS ресурс с удаленного сервере. Вы можете читать данные из этого каталога, или записывать в него (в зависимости от прав, которые назначены для вашего IP на NFS сервере). Чтобы NFS каталог автоматически монтировался при перезагрузке, нужно открыть файл fstab:

И добавьте строку:

После сохранения файла fstab, можно применить его командой:

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

Источник

Монтирование директорий используя NFS в CentOS

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

Шаг 1. Установка NFS

Master Server: 192.168.2.1
Client Server: 192.168.2.10

Установим необходимые пакеты:

Добавим в автозагрузку и запустим:

Шаг 2. Настройка

Определим какую директорию будем расшаривать на клиентский сервер и указываем её в файле /etc/exports

Например мы хотим расшарить папку /storage

rw : Данная опция позволяет производить чтение и запись в выбранный каталог
sync : Синхронный режим работы, ответы на запросы происходят только после того, как данные надежно будут
записаны на диск. Надежность выше, производительность меньше.
no_subtree_check : Если экспортируется подкаталог файловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
no_root_squash : — root (uid0) на стороне клиента, выглядит как nobody (uid 65534) на стороне сервера, это называется смещением root т.к. позволяет защитить файлы, владельцом которых является root от изменений клиентами NFS. Опция no_root_squash : отменяет такое поведение, и позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу. Данная опция может использоваться только в случае доверия.

Также (опционально):
async — Асинхронный режим работы, ответы на запросы происходят сразу, не дожидаясь записи на диск. Надежность ниже, производительность больше.
proto=(tcp|udp) — выбор протокола, по умолчанию — первый доступный из /etc/netconfig .
ro — Права только на чтение. Можно и не указывать, так как она установлена по умолчанию.

После того, как были внесены изменения запускаем команду:

Шаг 3. Настройка клиента

Установим дополнительные пакеты:

Шаг 4. Монтирование директорий

Создаем папку для монтируемой директории:

Выполним df -h для проверки маунта

Используем команду mount для проверки примонтированных директорий.

Для автоматического монтирования после перезагрузки, добавим запись в /etc/fstab

Источник

Обзор CentOS 7. Часть 3: NFS, FedFS, pNFS

В первой части обзора CentOS 7 было рассказано о поддержке контейнеров Linux в Cent OS 7. Во второй части мы поговорили об управлении идентификацией. Третья часть обзора посвящена сетевой файловой системе NFS и ее окружению в CentOS 7. В конце поста ссылка на бесплатное тестирование CentOS 7 в облаке InfoboxCloud.

Сетевая файловая система NFS позволяет удаленным хостам монтировать файловые системы по сети и взаимодействовать с этими файловыми системами так, словно они смонтированы локально.

В CentOS 7 поддерживаются две версии NFS: v3 и v4. NFSv3 поддерживает безопасные асинхронные записи и более надежную обработку ошибок по сравнению с NFSv2 и поддерживает 64-разрядные размеры файлов, позволяя клиентам получать доступ более чем к двум гигабайтам данный файлов. NFSv4 поддерживает работу через файрволы в интернете, больше не требует сервиса rcpbind, поддерживает списки контроля доступа ACL и использует операции с состоянием.

Читайте также:  What is windows style builder

В CentOS 7 была добавлена поддержка сетевой файловой системы NFS 4.1 с улучшенной производительностью и безопасностью, включая поддержку Parallel NFS на клиентской стороне. NFS 4.1 больше не требует отдельного TCP соединения для обратных вызовов, что позволяет серверу NFS работать даже за NAT и файрволлами.

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

NFS 4.1 использует стандартные сетевые протоколы для лучшей производительности в перегруженных сетях. NFS поверх TCP позволяет сетевым картам последнего поколения использовать функцию TCP segmentation offload (TCO), освобождая ресурсы CPU для полезной работы. При передаче данных с использованием TCP/IP часто приходится разбивать блоки данных большого размера на несколько маленьких, это связано с ограничениями протокола. Такой процесс разбиения называется сегментацией. Обычно в процессе сегментации используется центральный процессор. Сетевой адаптер, снабженный функцией TCP Segmentation, освобождает процессор компьютера от выполнения функции сегментации и берет ее на себя.

Для развертывания и поддержки более безопасных окружений, NFSv4.2 labeled NFS позволяет использовать контексты SELinux, в том числе безопасные домашние директории виртуальных машин, хранящиеся в NFS.

CentOS 7 поддерживает клиенты NFSv3, NFSv4 и NFSv4.1. По-умолчанию клиенты пытаются смонтировать NFSv4 и переключаются на NFSv3, если попытка не удалась. NFSv4 требует TCP, в то время как NFSv3 может работать по UDP (из за возможности работы по сети без состояния). Если сервер неожиданно станет недоступен, клиенты, работающие по UDP, продолжат отправлять запросы серверу. Так же, когда фрейм теряется с UDP, весь RPC запрос должен быть передан заново, а при использовании TCP только потерянный фрейм должен быть отправлен заново. Поэтому рекомендуется использовать TCP для работы с сервером NFS.

Протоколы монтирования и блокировок были включены в протокол NFSv4. NFSv4 больше не взаимодействует с rcpbind, lockd и rpc.statd. NFS серверу по-прежнему требуется rcp.mountd для настройки экспортов, но не участвует в каких-то других операциях.

Настройки NFS сервера, разрешающие доступ клиентам, по-прежнему находятся в /etc/exports. Сервер по-прежнему слушает TCP порт 2049, поэтому не забудьте разрешить его в IPTables.

FedFS

Другая интересная особенность CentOS 7 – поддержка федеративной файловой системы FedFS. FedFS предоставляет набор открытых протоколов, которые позволяют строить масштабируемые пространства имен между множеством файловых серверов с использованием системных ссылок NFSv4, доступные немодифицированным клиентам NFS.


В CentOS 7 развивается поддержка pNFS, которая позволяет масштабировать NFS на обычные NAS для обеспечения возможности клиентам читать и писать данные напрямую и параллельно на физические хранилища.


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

pNFS layouts поддерживаются в CentOS 7.


Полноценной поддержки pNFS пока нет.

Результаты тестов pNFS. Исследование проводилось на Red Hat Enterprise Linux 7 с ядром 3.10.0.119 RC1 с OracleR2 OLTP. Для тестирования использовался кластер из 2х нод с pNFS клиентами. Достигнуто почти 250 000 транзакций в минуту со 100 пользователями.

Источник

Оцените статью