Настройка NFS сервера под Windows Server 2003 и использование под FreeBSD

The software implements a multithreaded NFS Server for all Windows platforms.

The implementation supports:

  • NFS 3, NFS 2, WebNFS and NLM protocol.
  • UDP as well as TCP connections.
  • Unix soft-links (symbolic links).
  • Unix hard-links on NTFS volumes
  • If supported symbolic links can use Windows reparse points.
  • Inodes for block- and character devices.
  • Implemented as Windows service and Windows application
  • Use of NTFS file id as inode for Windows 7 and higher

The installer contains the 32bit software and native x64 versions of the programs.

The NFS Server runs as a background service on Windows XP/VISTA/20xx/7/8/10. The necessary SunPRC PortMap Daemon is implemented as an independent service.

The NFS server application is a portable Windows application with a built-in SunRPC Portmapper.

Connections with the NFS Server are supported over UDP or TCP using NFS 3 or NFS 2 protocol. For connection setup the WebNFS protocol WebNFS (RFC 2055) and the Sun RPC based mount protocol is supported. Multithreaded implemenation with a configurable number of UDP server threads and one thread per TCP connection.

The software is shareware.

Ну что, продолжаем наши изыскания в плане просмотра фильмов с компа или NAS по сети ,а точнее по WiFi. Сколько не мучился, а добиться нормального комфортного просмотра с использованием Samba или FTP через вафлю так и не смог – несколько секунд просмотра а потом слайд-шоу! Решив перепробовать все возможные подключения установил на комп NFS сервер (HaneWin NFS Server), запустил его, настроил, а когда включил просмотр фильма, то просто обалдел! Фильм (БД-ремукс) шел плавно, нигде не тормозя и не зависая и все это на связке комп → рутер (Asus RT-N16, последняя официальная прошивка от Asus 1.0.1.9 → Popcorn с-200 с WiFi (в с200 установлен модуль MN-200). Для чистоты эксперимента прогнал еще несколько ремуксов и рипов и все идет совершенно без тормозов! Так что, могу смело утверждать, что просмотр тяжелого контента на Попкорн С200 возможен через WiFi.

Читайте также:  Как запаять медный чайник

Ниже привожу примеры с картинками по установке и настройке haneWIN NFS Server для тех кто решит повторить мой опыт.

Давайте рассмотрим установку и настройку NFS-сервера на наш компьютер. В Интернете есть множество различных программ по установке и настройке NFS-сервера. Мы же воспользуемся приложением haneWIN NFS Server (оно является условно-бесплатным, и по истечении определенного срока требует регистрации серийного номера ). Все рекомендации я почерпнул на сайте samsungtvupgrade.blogspot.com, за что автору caferomeo огромное спасибо!

image

далее переходим на вкладку Server и устанавливаем кодировку UTF-8, также устанавливаем флажок напротив Reset inode-table…;

image

переходим на вкладку Exports и нажимаем кнопку Edit exports file;

затем нужно отредактировать файл exports, с помощью которого мы откроем доступ телевизору к нужной папке с фильмами на компьютере (в нашем примере мы указываем, что папка на компьютере С:films будет открыта для доступа Попкорну, 192.168.xxx.xxx – это IP адрес вашего Попкорна в локальной сети, причем в медиа-плеере папка с фильмами будет отображаться под именем video); Примечание: вы также можете открыть доступ Попкорну к другим папкам и дискам компьютера, добавив соответствующую строку в файл exports (например, что бы открыть доступ ко всему диску D нужно добавить строку D: -name:D 192.168.xxx.xxx); после редактирования, предварительно сохранив изменения, можете закрыть файл exports затем нажмите на кнопку Restart Server; теперь можете закрыть приложение (нажав OK). На этом настройка NFS-сервера завершена. На всякий случай перезагрузите компьютер. После перезагрузки компьютера никаких действий больше производить не нужно – по идее, NFS-сервер должен стартовать автоматически в фоновом режиме каждый раз вместе с загрузкой Windows. Читайте также:  Калькулятор градусов и минут сложение и вычитание

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

  • mountd — обслуживание операций монтирования;

Читайте также:  Корень суммы меньше суммы корней

The software implements a multithreaded NFS Server for all Windows platforms.

The implementation supports:

  • NFS 3, NFS 2, WebNFS and NLM protocol.
  • UDP as well as TCP connections.
  • Unix soft-links (symbolic links).
  • Unix hard-links on NTFS volumes
  • If supported symbolic links can use Windows reparse points.
  • Inodes for block- and character devices.
  • Implemented as Windows service and Windows application
  • Use of NTFS file id as inode for Windows 7 and higher

The installer contains the 32bit software and native x64 versions of the programs.

The NFS Server runs as a background service on Windows XP/VISTA/20xx/7/8/10. The necessary SunPRC PortMap Daemon is implemented as an independent service.

The NFS server application is a portable Windows application with a built-in SunRPC Portmapper.

Connections with the NFS Server are supported over UDP or TCP using NFS 3 or NFS 2 protocol. For connection setup the WebNFS protocol WebNFS (RFC 2055) and the Sun RPC based mount protocol is supported. Multithreaded implemenation with a configurable number of UDP server threads and one thread per TCP connection.

The software is shareware.

Инструкции для чайников о том, как сделать апгрейд своего телевизора Samsung

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

Суть проблемы: в свое время компания Samsung стала выпускать телевизоры, поддерживающие разработанную ведущими производителями бытовой техники технологию DLNA, основанную на принципе “цифровой дом”. Эта технология позволила интегрировать телевизоры в локальную домашнюю сеть, что дало возможность обмениваться медиа-контентом между телевизором и компьютером, и в частности, просматривать на ТВ фильмы, хранящиеся на компьютере по локальной сети или через WiFi. Однако мультимедийное решение, предложенное Самсунгом для реализации этой технологии, мягко говоря, оставляет желать лучшего. Так, фильмы просматриваемые по сети во встроенном в телевизор медиа-плеере, в большинстве случаев не перематываются. Кроме того во время просмотра фильмов по сети, в отличие от просмотра фильмов с флешки или переносного жесткого диска, подключенного к ТВ по USB-порту, не поддерживается функция беспрерывного воспроизведения (синяя кнопка на пульте). Наконец, сама необходимость каждый раз запускать на компьютере Samsung PC Share Manger и производить коррекцию после каждого удаления или добавления виде-файлов на диск, немного напрягает.

Читайте также:  Irbis tw81 hard reset

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

NFS – это сетевой протокол, организованный по принципу “сервер – клиент”. В роли сервера у нас будет компьютер, в роли клиента – телевизор. Включение поддержки NFS в телевизоре мы уже рассмотрели в предыдущем разделе во время настройки и установки в ТВ приложения SamyGO Auto. Если вы помните, то в настройках конфигуратора SamyGO Auto мы установили флажок напротив секции NFS и также прописали IP-адрес NFS-сервера (192.168.xxx.xxx), то есть адрес нашего компьютера:

  • скачиваем программу haneWIN NFS Server (генератор серийных номеров уже в архиве). Что бы скачать архив просто нажмите кнопку Download;
  • открываем скачанный архив, и запустив setup, производим установку (как для любой другой программы);
  • после установки программы на рабочем столе появится ярлык NFS Server, запустив который мы произведем необходимую настройку, но сперва не забудьте зарегистрировать серийный номер (кнопка Register);
  • далее выполняем основную настройку. Сначала на вкладке NFS убираем флажок напротив Version 2, затем меняем значение Number of UDP NFS Server Threads на 32, а Maximum NFS transfer size на 32768 (после внесения изменений не забудьте нажать кнопку Применить;

Если вы обратите внимание, то напротив NFS стоит значок USB-соединения. Это то, о чем мы ранее говорили, теперь ваш ТВ будет воспринимать компьютер как жесткий диск или флешку, подключенную по USB. Можете переходить в раздел Movie и наслаждаться просмотром фильмов по сети. Запускать Samsung PC Share Manger на компьютере вам больше не понадобиться. Просто добавьте фильм в папку с фильмами на компьютере, и он автоматически “подгрузится” в меди-плеер ТВ.

В следующем разделе мы расскажем о том, как записывать передачи с ТВ на флешку или, раз уж теперь у нас есть NFS – то в папку с фильмами на компьютере.

Читайте также:  Intellij idea как пользоваться

NFS (Network File System) — сетевой протокол доступа к доступ к файлам и файловой системе NFS-сервера, популярный в семейства ОС Linux/ UNIX, а также различных системах хранения. Microsoft также, не желая отставать от конкурентов, внедрила базовый функционал NFS сервера еще в Windows Server 2003 R2. В последующих версиях серверных платформ Microsoft возможности встроенного NFS Windows сервера расширялись, появлялся новый функционал и средства управления. NFS сервер в Windows Server 2012 – очередная веха в развитии данной технологии.

Что же нового предлагают нам разработчики Microsoft в данном продукте? Новые возможности NFS сервера в Windows Server 2012:

  1. Поддержка стандарта NFS v4.1. Поддержка последней версии NFS 4.1 – одно из основных новшеств Windows Server 2012. По сравнению с NFS v3 этот протокол обеспечивает повышенную безопасность, производительность и совместимость, полностью реализуя все аспекты RFC 5661.
  2. Производительность «из коробки». Благодаря использованию новой транспортной инфраструктуры RPC-XDR, оптимальная производительность NFS сервера может быть достигнута сразу «из коробки» без необходимости тонкой настройки параметров системы. Оптимальная производительность достигается за счет автоматически настраивающегося кэша, разделения рабочих процессов на пулы и динамическое управление пулами, основанное на их нагрузке.
  3. Упрощенное развертывание и управление. Данный факт достигнут за счет:
  4. — более 40 командлетов PowerShell для настройки сервера NFS и управления общими папками
  5. — простого графического интерфейса управления, позволяющего одновременно управлять как SMB, так и NFS шарами, а также настройками скрининга файлов и файловой классификации.
  6. — фиксации RPC порта (порт 2049) для простоты настройки файерволов
  7. — нового провайдера WMI v2
  8. — упрощенной идентификации за счет плоского файла мапинга
  9. Улучшения в NFSv3. За счет быстрой отправки клиентам уведомлений о сбоях монитором NSM (Network Status Monitor), старые NFS клиенты лучше и быстрее обрабатывают процедуру failover, что означает меньшее время простоя.

Итак, NFS сервер в Windows Server 2012 значительно улучшен с точки зрения простоты развертывания, масштабируемость, стабильность, доступность, надежность, безопасности и совместимости. Общие папки могут быть одновременно доступны по протоколам SMB и NFS, что означает возможность использования Windows Server 2012 в качестве хранилища в гетерогенных сетях.

Далее мы разберем сценарий развертывания и управления сервером NFS в Windows Server 2012.

Установка NFS сервера в Windows Server 2012

NFS сервер в Windows Server 2012 можно установить с помощью GUI и Powershell. Чтобы установить NFS сервер с помощью графического интерфейса, откройте консоль Server Manager и внутри роли файлового сервера (File and Storage Services) отметьте компонент Server for NFS.

Читайте также:  Смартфон bq 5022 bond gold

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

Установка этой же роли с помощью Powershell также не вызывает затруднений, просто выполните команду:

Настройка общей папки NFS в Windows Server 2012

Далее мы покажем, как с помощью установленной нами роли создать NFS шару (общую папку) на сервере Windows. Создать NFS шару можно опять несколькими способами: с помощью графического интерфейса или Powershell.

Создание общего каталога NFS с помощью консоли Server Manager

Откройте консоль Server Manager, перейдите в раздел Share management (находится внутри роли File and Storage Services). В контекстном меню запустите мастер создания нового общего каталога- New Share…

Выберите тип шары NFS Share — Quick

Далее нужно указать местоположение каталога на диске и путь, по которому должны подключатся удаленные NFS клиенты.

Затем необходимо задать тип аутентификации NFS клиентов: возможно, задействовать как Kerberos- аутентификацию, так и анонимную.

Предположим, в качестве потребителя создаваемого NFS ресурса будет выступать сервер виртуализации ESXi, в котором возможность аутентифицировать NFS соединения отсутствует (ESXi не поддерживает NFSv4). Поэтому тип аутентификации будет No Server Authentication, отметим также опции Enable unmapped user access и Allow unmapped user access by UID/GID.

Чтобы немного обезопасить создаваемую NFS шару от доступа сторонних лиц, ограничим доступ к NFS ресурсу по IP адресу клиента.

Host: 192.168.1.100 Language Encoding : BIG5 Share Permissions : Read/Write Allow root access : Yes

Далее осталось проверить, что на уровне NTFS пользователь, в которого мапится подключающийся юзер, имеет доступ на чтение/запись (если решено задействовать анонимный доступ, придется для пользователя Everyone дать полные r/w права на уровне NTFS).

Как создать NFS шару с помощью Powershell

Создадим новую NFS шару:

Разрешим доступ к шаре для IP адреса 192.168.1.100 и зададим кодировку BIG5 (возможность просмотра содержимого NFS шары для клиента ESXi).

Созданную NFS шару можно использовать, например, как NFS-datastore в среде виртуализации VMWare vSphere, или для доступа к данным с других Unix-like клиентов. Как смонтировать NFS шару в Windows — клиентах описано в этой статье.

NFS (Network File System) — сетевой протокол доступа к доступ к файлам и файловой системе NFS-сервера, популярный в семейства ОС Linux/ UNIX, а также различных системах хранения. Microsoft также, не желая отставать от конкурентов, внедрила базовый функционал NFS сервера еще в Windows Server 2003 R2. В последующих версиях серверных платформ Microsoft возможности встроенного NFS Windows сервера расширялись, появлялся новый функционал и средства управления. NFS сервер в Windows Server 2012 – очередная веха в развитии данной технологии.

Что же нового предлагают нам разработчики Microsoft в данном продукте? Новые возможности NFS сервера в Windows Server 2012:

  1. Поддержка стандарта NFS v4.1. Поддержка последней версии NFS 4.1 – одно из основных новшеств Windows Server 2012. По сравнению с NFS v3 этот протокол обеспечивает повышенную безопасность, производительность и совместимость, полностью реализуя все аспекты RFC 5661.
  2. Производительность «из коробки». Благодаря использованию новой транспортной инфраструктуры RPC-XDR, оптимальная производительность NFS сервера может быть достигнута сразу «из коробки» без необходимости тонкой настройки параметров системы. Оптимальная производительность достигается за счет автоматически настраивающегося кэша, разделения рабочих процессов на пулы и динамическое управление пулами, основанное на их нагрузке.
  3. Упрощенное развертывание и управление. Данный факт достигнут за счет:
    • — более 40 командлетов PowerShell для настройки сервера NFS и управления общими папками
    • — простого графического интерфейса управления, позволяющего одновременно управлять как SMB, так и NFS шарами, а также настройками скрининга файлов и файловой классификации.
    • — фиксации RPC порта (порт 2049) для простоты настройки файерволов
    • — нового провайдера WMI v2
    • — упрощенной идентификации за счет плоского файла мапинга
  4. Улучшения в NFSv3. За счет быстрой отправки клиентам уведомлений о сбоях монитором NSM (Network Status Monitor), старые NFS клиенты лучше и быстрее обрабатывают процедуру failover, что означает меньшее время простоя.

Итак, NFS сервер в Windows Server 2012 значительно улучшен с точки зрения простоты развертывания, масштабируемость, стабильность, доступность, надежность, безопасности и совместимости. Общие папки могут быть одновременно доступны по протоколам SMB и NFS, что означает возможность использования Windows Server 2012 в качестве хранилища в гетерогенных сетях.

Далее мы разберем сценарий развертывания и управления сервером NFS в Windows Server 2012.

Установка NFS сервера в Windows Server 2012

NFS сервер в Windows Server 2012 можно установить с помощью GUI и Powershell. Чтобы установить NFS сервер с помощью графического интерфейса, откройте консоль Server Manager и внутри роли файлового сервера (File and Storage Services) отметьте компонент Server for NFS.

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

Установка этой же роли с помощью Powershell также не вызывает затруднений, просто выполните команду:

Add-WindowsFeature "FS-NFS-Service"

Настройка общей папки NFS в Windows Server 2012

Далее мы покажем, как с помощью установленной нами роли создать NFS шару (общую папку) на сервере Windows. Создать NFS шару можно опять несколькими способами: с помощью графического интерфейса или Powershell.

Создание общего каталога NFS с помощью консоли Server Manager

Откройте консоль Server Manager, перейдите в раздел Share management (находится внутри роли File and Storage Services). В контекстном меню запустите мастер создания нового общего каталога- New Share…

Выберите тип шары NFS Share — Quick

Далее нужно указать местоположение каталога на диске и путь, по которому должны подключатся удаленные NFS клиенты.

Затем необходимо задать тип аутентификации NFS клиентов: возможно, задействовать как Kerberos- аутентификацию, так и анонимную.

Предположим, в качестве потребителя создаваемого NFS ресурса будет выступать сервер виртуализации ESXi, в котором возможность аутентифицировать NFS соединения отсутствует (ESXi не поддерживает NFSv4). Поэтому тип аутентификации будет No Server Authentication, отметим также опции Enable unmapped user access и Allow unmapped user access by UID/GID.

Чтобы немного обезопасить создаваемую NFS шару от доступа сторонних лиц, ограничим доступ к NFS ресурсу по IP адресу клиента.

Host: 192.168.1.100 Language Encoding : BIG5 Share Permissions : Read/Write Allow root access : Yes

Далее осталось проверить, что на уровне NTFS пользователь, в которого мапится подключающийся юзер, имеет доступ на чтение/запись (если решено задействовать анонимный доступ, придется для пользователя Everyone дать полные r/w права на уровне NTFS).

Как создать NFS шару с помощью Powershell

Создадим новую NFS шару:

New-NfsShare -Name "NFS " -Path "d:sharesnfr" -AllowRootAccess $true -Permission Readwrite -Authentication sys

Разрешим доступ к шаре для IP адреса 192.168.1.100 и зададим кодировку BIG5 (возможность просмотра содержимого NFS шары для клиента ESXi).

Grant-NfsSharePermission -Name “NFS” -ClientName 192.168.1.100  -ClientType host  -LanguageEncoding BIG5

Созданную NFS шару можно использовать, например, как NFS-datastore в среде виртуализации VMWare vSphere, или для доступа к данным с других Unix-like клиентов. Как смонтировать NFS шару в Windows — клиентах описано в этой статье.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Можно разрешить только нужную подсеть, например:

/var/nfs 192.168.0.0/24(rw,sync,no_subtree_check)

Для того чтобы разрешить все адреса используйте подсеть 0.0.0.0/0 или символ *.

Открытие шары NFS в Ubuntu почти завершено. Осталось разобраться с правами. Кроме ограничений IP адреса работает обычная система полномочий UNIX, поэтому если вы хотите чтобы определённый пользователь мог получить доступ к папке, то на сервере должен существовать пользователь с таким же UID и эта папка должна принадлежать ему или группе в которой он состоит.

Кроме того, обратите внимание на то, что все подключения от имени пользователя root считаются по умолчанию анонимными (nfsnobody), чтобы это отключить добавьте опцию монтирования no_root_squash, но это не безопасно, потому что любой root пользователь сможет получить доступ на запись ко всем файлам. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.

Для того чтобы все пользователи могли получить доступ ко всем файлам можно создать пользователя с UID 1001 и попросить NFS все запросы считать запросами от анонимного пользователя, а анонимному пользователю присвоить UID 1001. Это делается такими опциями:

/var/nfs 127.0.0.1(rw,sync,all_squash,root_squash,anonuid=1001,anongid=1001)

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

Если на вашем сервере используется брандмауэр, то следует открыть порты 111 и 2049:

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

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

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

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

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

–>

image Навожу инструкцию по установке и настройке NFS (Network File System). NFS – это сетевая файловая система, с помощью которой можно обращаться к файлам и каталогам удалённого компьютера (сервера), как будто эти файлы и каталоги были локальными. Главным преимуществом такой системы является то, что отдельно взятые рабочие станции могут использовать меньше собственного дискового пространства, так как совместно используемые данные хранятся на отдельной машине (хранилище данных) и доступны для других машин в сети. NFS – это клиент-серверное приложение, где роль хранилища возлагается на сервер. Каждый участник сети – это NFS-клиент, который монтирует сетевой диск сервера у себя в файловой системе. В роли сервера возьмем Ubuntu 12.04. В качестве клиентов будем использовать и тестировать Centos и Winows 7.

Master server: 192.168.2.213 (Ubuntu)

Clients: 192.168.2.72 (Centos), 192.168.2.180 (Windows)

Для начала нужно настроить сервер. Так как мы будем использовать Ubuntu в роли сервера, нужно установить соответствующий пакет

  root@ubuntu:~# apt-get install nfs-kernel-server  

После установки нужного пакеты у нас создались два файла конфигураций. Из лога установки:

  …  Creating config file /etc/idmapd.conf with new version  Creating config file /etc/default/nfs-common with new version  …  

В первом файле описан user (созданный при установке пакета) и group , для участия в mapping-e (идентификации пользователей).

  root@ubuntu:~# cat /etc/idmapd.conf  [General]    Verbosity = 0  Pipefs-Directory = /run/rpc_pipefs  # set your own domain here, if id differs from FQDN minus hostname  # Domain = localdomain    [Mapping]    Nobody-User = nobody  Nobody-Group = nogroup  
  root@ubuntu:~# cat /etc/default/nfs-common  # If you do not set values for the NEED_ options, they will be attempted  # autodetected; this should be sufficient for most people. Valid alternatives  # for the NEED_ options are "yes" and "no".    # Do you want to start the statd daemon? It is not needed for NFSv4.  NEED_STATD=    # Options for rpc.statd.  #   Should rpc.statd listen on a specific port? This is especially useful  #   when you have a port-based firewall. To use a fixed port, set this  #   this variable to a statd argument like: "--port 4000 --outgoing-port 4001".  #   For more information, see rpc.statd(8) or http://wiki.debian.org/SecuringNFS  STATDOPTS=    # Do you want to start the gssd daemon? It is required for Kerberos mounts.  NEED_GSSD=  
  root@ubuntu:~# tree /home/alex/  /home/alex/  ├── nfs_dir1  │   ├── file1_dir1  │   ├── file2_dir1  │   └── file3_dir1  ├── nfs_dir2  ├── file1_dir2  ├── file2_dir2  └── file3_dir2  

Теперь нужно присвоит юзера и группу для этих каталогов (берем с файла /etc/idmapd.conf ).

  root@ubuntu:~# chown –R nobody:nogroup nfs_dir1/  root@ubuntu:~# chown –R nobody:nogroup nfs_dir2/  

Для начала сделаем экспорт директории nfs_dir1 для конкретного IP. Редактируем файл /etc/exprots.

  root@ubuntu:~# vim /etc/exports  # Для конкретного хоста (Windows)  /home/alex/nfs_dir1     192.168.2.180(rw,sync,all_squash,no_subtree_check,insecure)  # Для  любого хоста подсети  /home/alex/nfs_dir2     192.168.2.0/24(rw,no_root_squash,sync,no_subtree_check)  

Здесь наведен минимальный набор опций для корректной работы хранилища с ОС Windows.

  • /home/alex/nfs_dir1 – путь к папке, для которой раздается доступ;
  • 192.168.2.180 – IP-адрес, которому раздается доступ к папке(можно указать всю сеть, тогда запись примет вид 192.168.2.0/24)
  • (rw,sync,all_squash,no_subtree_check) – набор опций.

Популярные опции:

  • rw –чтение/запись(может принимать значение ro-только чтение);
  • no_root_squash – по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;
  • sync – синхронный режим доступа(может принимать обратное значение — async);
  • noaccess – запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.
  • all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя (нужно для Windows клиента)
  • anonuid=1000 – привязывает анонимного пользователя к «местному» пользователю;
  • anongid=1000 – привязывает анонимного пользователя к группе «местного» пользователя.
  • no_subtree_check(subtree_check) –если экспортируется подкаталог файловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
  • Обычно, Linux (и другие Unix-подобные операционные системы) резервируют TCP и UDP порты от 1-1023 (так называемые безопасные порты) для использования процессами пользователя root. Чтобы удостовериться, что именно root инициировал удаленное подключение NFS, сервер NFS обычно требует, чтобы удаленные клиенты использовали безопасные порты. Это соглашение, однако, не соблюдается некоторыми операционными системами (например Windows). В таких случаях опция insecure позволяет клиенту NFS использовать любой порт TCP/UDP. Обычно она требуется при обслуживании клиентов Windows.

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

  root@ubuntu:~# man exports  

Далее нужно применить настройки

  root@ubuntu:~# exportfs –a  

Теперь проверяем что у нас экспортировалось.

  root@ubuntu:~# exportfs -v  /home/alex/nfs_dir1        192.168.2.180(rw,wdelay,all_squash,no_subtree_check,insecure)  /home/alex/nfs_dir2        192.168.2.0/24(rw,wdelay,no_root_squash,no_subtree_check)  

Сервер настроен.

Настройка Windows клиента

Если не было сообщений об ошибке. Можно приступить к монтирование на клиентской стороне. Для начала, нужно добавить сервис (службу-клиента) NFS. Для этого переходив в Пуск —> Панель управления —> Программы и компоненты и нажимаем на пункт меню слева Включение или отключение компонентов Windows. В появившимся окне выбираем Клиент для NFS и жмем ОК(рис. 1).

image Рисунок 1

Далее нужно смонтировать диск. Для этого можно использовать командную строку или же просто щелкнуть правой кнопкой мыши на Мой компьютер и выбрать Подключение сетевого диска. И ввести строку \192.168.2.213homealexnfs_dir1. Это IP сервера и путь к папке (рис. 2).

image Рисунок 2

Если все ок, мы увидим диск (рис. 3).

image Рисунок 3

То же можно проделать, используя командную строку (рис. 4).

image Рисунок 4

Возможные ошибки:

image Рисунок 5 – Ошибка подключения сетевого NFS диска

image Рисунок 6 – Ошибка при добавлении файла на NFS диска

Настройка Centos клиента

Настройка линукс систем довольно проста и безболезненна. Нужно просто установить нужные пакеты и смонтировать диск. Для Centos нужны следующие пакеты

  [root@centos ~]# yum install nfs-utils nfs-utils-lib  

Далее создаем папку и монтируем NFS раздела

  [root@centos ~]# mkdir -p /mnt/nfs  [root@centos ~]# mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/nfs  [root@centos ~]# mount  /dev/mapper/vg_slave-lv_root on / type ext4 (rw)  proc on /proc type proc (rw)  sysfs on /sys type sysfs (rw)  devpts on /dev/pts type devpts (rw,gid=5,mode=620)  tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")  /dev/sda1 on /boot type ext4 (rw)  none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  192.168.2.213:/home/alex/nfs_dir1 on /mnt/nfs type nfs (rw,vers=4,addr=192.168.2.213,clientaddr=192.168.2.72)  

В данном случае мы можем добавлять любой файл и директорию в смонтированную nfs_dir1 папку от имени любого пользователя системы (all_squash). Но если мы смонтируем вторую папку nfs_dir2, то в нее может записывать ТОЛЬКО root, так как там стоит опция no_root_squash. Проверяем.

  [root@centos ~]# mkdir /mnt/dir1  [root@centos ~]# mkdir /mnt/dir2  [root@centos ~]# mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/dir1  [root@centos ~]# mount 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2  или  [root@centos ~]# mount -t nfs4 -o rw,hard,intr,bg 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2  [root@centos ~]# echo "Hello" > /mnt/dir1/file1  [root@centos ~]# echo "Hello" > /mnt/dir2/file1  [root@centos ~]# su alex  [alex@centos root]$ echo "Hello" > /mnt/dir1/file1  [alex@centos root]$ echo "Hello" > /mnt/dir2/file1  bash: /mnt/dir2/file1: Permission denied  

Возможные флаги монтирования.

Флаг Описание
rw Монтирование файловой системы для чтения/записи (она должна экспортировать­ся сервером в режиме чтения/записи)
го Монтирование файловой системы только для чтения
bg Если смонтировать файловую систему не удается (сервер не отвечает), следует перевести операцию в фоновый режим и продолжить обработку других запросов на монтирование
hard Если сервер отключился, операции, которые пытаются получить к нему доступ, блокируются до тех пор, пока сервер не включится вновь
soft Если сервер отключился, операции, которые пытаются получить к нему доступ, завершаются выдачей сообщения об ошибке. Этот флаг полезно устанавливать для того, чтобы предотвратить зависание процессов в случае неудачного монтирова­ния не очень важных файловых систем
intr Позволяет прерывать с клавиатуры заблокированные операции (будут выдаваться сообщения об ошибке)
nointr Не позволяет прерывать с клавиатуры заблокированные операции
retrans=n Указывает, сколько раз нужно повторить запрос, прежде чем будет выдано со­общение об ошибке (для файловых систем, смонтированных с флагом soft)
timeo=n Задает интервал тайм-аута для запросов (в десятых долях секунды)
rsize=n Задает размер буфера чтения равным n байт
wsize=fl Задает размер буфера записи равным n байт
sec=режим Задает режим безопасности
vers=n Задает версию протокола NFS
proto = протокол Выбирает транспортный протокол; им должен быть протокол tcp для версии NVS 4

Так же можно проверить с консоли, правильно ли сервер экспортировал файловую систему.

  root@centos ~# showmount -e 192.168.2.213  Export list for 192.168.2.213:  /home/alex/nfs_dir2 192.168.2.0/24  /home/alex/nfs_dir1 192.168.2.180  

Добавляем монтирование в автозагрузку

  [root@centos ~]# cat /etc/fstab  ...  192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 nfs4 rw,bg,intr,hard,nodev,nosuid 0 0  

Чтобы проверить правильно ли добавили запись в fstab — смонтируем ФС.

  root@centos  ~# mount -a -t nfs4  

Возможные ошибки.

  root@centos  ~# mount -a -t nfs4  mount.nfs4: mount point /mnt/dir2 does not exist  
  root@centos  ~# mount -a -t nfs4  mount.nfs4: remote share not in 'host:dir' format  

В первом случаи нужно создать папку. Во втором — синтаксические ошибки в fstab. Если возникли ошибки при монтировании NFS разделов – пройдитесь по списку Возможные ошибки из предыдущего раздела. Для монтирования NFS разделов можно также использовать autofs. О чем пойдет речь в следующей статье.

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий