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:
Итак, NFS сервер в Windows Server 2012 значительно улучшен с точки зрения простоты развертывания, масштабируемость, стабильность, доступность, надежность, безопасности и совместимости. Общие папки могут быть одновременно доступны по протоколам SMB и NFS, что означает возможность использования Windows Server 2012 в качестве хранилища в гетерогенных сетях.
NFS сервер в Windows Server 2012 можно установить с помощью GUI и Powershell. Чтобы установить NFS сервер с помощью графического интерфейса, откройте и внутри роли файлового сервера (File and Storage Services) отметьте компонент Server for NFS .
После окончания установки компонента NFS, сервер необходимо перезагрузить.
Установка этой же роли с помощью Powershell также не вызывает затруднений, просто выполните команду:
Add-WindowsFeature "FS-NFS-Service"
Далее мы покажем, как с помощью установленной нами роли создать NFS шару (общую папку) на сервере Windows. Создать NFS шару можно опять несколькими способами: с помощью графического интерфейса или Powershell.
Откройте консоль Server Manager
, перейдите в раздел Share management
(находится внутри роли File and Storage Services
).
В контекстном меню запустите мастер создания нового общего каталога- New Share…
Выберите тип шары NFS Share — Quick
Затем необходимо задать тип аутентификации 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 шару:
New-NfsShare -Name "NFS " -Path "d:\shares\nfr" -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 в среде виртуализации , или для доступа к данным с других Unix-like клиентов. Как смонтировать NFS шару в Windows — клиентах описано в статье.
Mkdir ~/ Общедоступная
Для монтирования папки вручную необходимо выполнить в терминале команду:
Sudo mount -t nfs -O uid =1000 ,iocharset =utf-8 192.168.1.2:/ data ~/ Общедоступные
Следует помнить, что, как в настройках сервера, так и в настройках клиента при монтировании, путь к общему каталогу указывается полный . Данный пример показывает, что каталог /data находится в корне файловой системы.
Для большего удобства можно добавить запись с сетевой папкой в fstab. Целесообразно создать точку монтирования сетевой папки в /media, потому что каталоги, созданные там, будут отображаться в Nautilus в левой колонке, монтировать их можно будет одним кликом.
Sudo mkdir / media/ Общедоступные
В файл /etc/fstab добавляем подобную запись:
192.168.1.1:/data /media/Общедоступные nfs user,rw,noauto 0 0
опция «noauto» запрещает автоматическое монтирование при старте системы.
При монтировании удаленных папок NFS посредством fstab, в ситуации, когда сеть с сервером будет не доступна, ноутбук невозможно выключить или отправить в спящий режим. Для использования удаленных папок NFS на ноутбуке лучше воспользоваться монтированием при помощи autofs
Данный способ монтирования позволяет автоматически монтировать папку после обращения к ней в наутилусе (к примеру, через закладки) или в терминале:
Cd / nfs/ server/
и автоматически отмонтировать при отсутствии активности.
Для реализации данного способа необходимо доустановить пакет autofs:
Sudo apt-get install autofs
Для настройки autofs в файле /etc/auto.master необходимо добавить строку
/nfs /etc/auto.nfs --timeout=60
Здесь –timeout=60 указывает отмонтировать раздел при отсутствии активности на нём более чем 60 секунд. Создаем в корне файловой системы папку /nfs :
Sudo touch / etc/ auto.nfs && sudo mkdir / nfs
В файле /etc/auto.nfs добавляем строку/etc/default/autofs необходимо раскомментировать или добавить следующие строки:
#время ожидания ответа от mount
NEGATIVE_TIMEOUT=10
#время ожидания при неудачной попытке монтирования
После этого autofs будет пытаться примонтировать удаленную папку только 10 секунд.
После настройки автомонтирования сетевых папок NFS могут обнаружится некотрые проблемы с выключением или гибернацией системы. Чаще всего это проявляется как прерывающаяся гибернация (компьютер начинает уходить в гибернацию, гаснет экран, после чего экран опять загорается и работа продолжается, так же в этих случаях возможны проблемы с выключением и перезагрузкой системы. При последующих попытках отправить компьютер в гибернацию на черном экране вверрху можно наблюдать строку типа:
Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0)
Для диагностирования смотрим лог dmesg , возможный вывод:
Dmesg | grep -A 2 refuse Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0): nfs D 0000000000000000 0 2065 1 0x00800004
Dmesg | grep -A 2 refuse Freezing of tasks failed after 20.00 seconds (1 tasks refusing to freeze): updatedb.mloc D ffff88008e907578 0 9268 9261 0x00800004
Пакет, являющийся причиной зависания указан в начале строки, следующей после сообщения об ошибке.
Причиной данной проблемы является скрипт прерывания работы NetworkManager, необходимо запретить его выполнение переименовав его:
Sudo mv /usr/lib/pm-utils/sleep.d/55NetworkManager /usr/libg/pm-utils/sleep.d/old.55NetworkManager
updatedb является частью пакета mlocate - удобного пакета для быстрого поиска файлов по системе. К сожалению, версия 0.23.1-1ubuntu2 , находящаяся в репозиториях Ubuntu содержит баг, при котором возникает ситуация, когда компьютер не может выключиться или отправиться в гибернацию, когда сервер NFS выключен . Для решения данной проблемы необходимо установить пакет версии 0.23.1-1 из репозитория debian-sid:
Wget http:// ftp.ru.debian.org/ debian/ pool/ main/ m/ mlocate/ mlocate_0.23.1-1 _i386.deb sudo dpkg -i mlocate*
NFS была разработана в те времена, когда мы не могли открывать доступ к своим диска так как мы можем делать это сегодня - в windows окружении. NFS предоставляет возможность открывать доступ к дисковому пространству большого сервера маленьким клиентским системам. В то время как сегодня это выглядит стандартной возможностью, были времена, когда клиенты и серверы не могли разделять между собой дисковое пространство.
Сегодня мы разберемся, как установить и настроить клиент NFS (Network File System) в Windows Server 2012 R2 / Windows 8. Итак, чтобы подключить каталог (шару) в Windows Server 2012 R2 / Win 8, нужно, как и в предыдущих версиях Windows, установить отдельный компонент — клиент NFS (Client for NFS ). Дополнительно, для возможности управления настройками NFS подключения, можно установить компонент служб NFS (Services for Network File System ).
Клиент NFS входит в состав ОС Microsoft, начиная с Windows 7. В Windows 2012 / 8 клиент NFS получил небольшие изменения. Теперь NFS клиент поддерживает аутентификацию по протоколу Krb5p — Kerberos версии 5 (в дополнение к Krb5 и Krb5i, поддержка которых появилась еще в Windows 7), поддерживаются большие NFS пакеты – до 1024KB (в Win 7 максимальный размер пакета 32KB)
Клиент NFS можно установить через GUI или с помощью Powershell. Для установки в графическом режиме, откройте и выберите компонент (Features) под названием Client for NFS .
По умолчанию вместе с этим компонентом не устанавливается графическая консоль управления NFS, чтобы исправить это, установим опцию Services for Network File System Management Tools
в разделе Remote Server Administration Tools -> Role Administration Tools -> File Services Tools.
Для установки NFS-клиента в Windows 8 нужно активировать компонент Services for NFS ->Client for NFS , через установку/удаление компонентов (Turn Windows features on or off) в Панели управления (Control Panel -> Programs -> Programs and Features).
Примечание . В отличии от Windows 7, в которой NFS клиент присутствовал в редакциях Enterprise и Ultimate, в Windows 8 клиент Network File System поддерживается только в старшой версии — Windows 8 Enterprise.
Все перечисленные выше компоненты системы можно установить всего одной командой Powershell:
Install-WindowsFeature NFS-Client, RSAT-NFS-Admin
После окончания установки, запустите консоль Services for Network File System Managemen и откройте окно свойств NFS клиента (Client for NFS ).
В настройках NFS клиента можно задать:
После настройки установки, администраторы смогут смонтировать NFS каталог с помощью команды mount:
Mount \\lx01.abc.lab\nfs z:
В этом примере мы смонтировали под буквой Z: каталог NFS, расположенный на сервере lx01.abc.lab.
После монтирования, подключенный таким образом каталог на NFS сервере доступен в системе как отдельный диск с буквой Z:\ .
Смонтировать NFS шару можно и с помощью Powershell:
New-PSdrive -PSProvider FileSystem -Name Z -Root \\lx01.abc.lab\nfs
Примечание . Подключенный таким образом nfs каталог будет доступен только внутри сессии Powershell, в которой была выполнена команда монтирования. Чтобы смонтировать NFS каталог в системе на постоянной основе, в конце Powershell команды нужно добавить ключ –Persist .
Отключить смонтированный каталог можно так.