понедельник, 30 марта 2015 г.

NFS version 3 and 4.1 setup for Microsoft Windows 7, Linux and Mac Os X Clients

Настройка NFS (nfs3, nfs41) и подключение клиентов Microsoft Windows 7, Linux, Mac Os X 

 

Concept: "single service" vs. "many services" 


Идея единой службы (vs многие службы), которая "экспортируетресурсы, управляемые файл-серверами и хранилищами, является привлекательной для администратора файл-сервера (хранилища) и приемлемой для пользователей в следующих предположениях: 
  • Администратор избегает управлять технически несовместимыми политиками выделения ресурсов;
  • В прикладной среде (Linux, Windows 7+ Professional, Mac Os X) поддерживается  клиент для этой службы; 
  • Простота и прозрачность  в использовании (например, в Windows - это привязка ресурса к "буковке", "Y:"); 
  • 100% локализация: клиенты  работают  с русскими именами файлов (поддержка UTF-8) [1]; 
  • Сервер корректно отрабатыает запросы типа "создать копию папки", не направляя перекачку данных по сети "через клиентский буфер"; 
  • Сервис шустро работает, масштабируем. Процессор оптимально загружен; 
В средах Windows лучшим выбором такой "единой службы" является Microsoft Windows networking (SMB). Наилучшим выбором является Windows Server в качестве домен-контроллера, с поддержкой Active Directory. В смешанных (Mac Os X, Windows 7+, Windows XP, Linux) средах наилучшего выбора нет
Коммерческая платформа Windows Server 2012 (см. рисунок) и open source Arch Linux позволяют настроить службы SMB, NFS или обе службы одновременно. 

В данном упражнении рассмотрим настройку NFS в смешанной среде: Arch Linux, Mac Os X Yosemite, Windows 7, Windows Vista. 

 

Constraints 



  • Mac Os X поддерживает NFS. Клиент работает с по протоколу nfs3, используя "непривилегированные" (>1024) порты  и не поддерживает nfs4. Поддерживается трансляция национальных кодировок;
  • Windows Vista и 7 версий Ultimate и Enterprise (не professional!) имеет "службы подключения к NFS". Службы не установлены по умолчанию. Эти службы работают по протоколу nfs3, используя "непривилегированные" (>1024) порты,  не поддерживает nfs4,  не поддерживают UTF-8 [1]; 
  •  Windows 7 версий Professional  NFS Version 4 Open Source Reference Implementation(ms-nfs41-client-x64)  не понимает nfs3  [5]; 
  • Сервер Arch Linux может экспортировать ресурсы в соответствии со спецификациями nfs3 и nfs4 для разных клиентов.  
В данном примере рассматриваем простейшие работающие в средах Linux, Mac Os X и Windows 7 примеры конфигурации сервера и клиента учитывающие вышеуказанные constraints. 
  • Не рассматриваются: Kerberos, схемы identity (uid и gid) mapping между Windows и Linux, интеграция со информационными службами каталогов как-то (open)ldap, NIS, ActiveDirectory. 
  • Скажу забегая вперёд: "Захоти что-то из п. 1- косяки вылезут".

Установка и конфигурация службы NFS 


1) На сервере (используем Arch Linux Arm) установим nfs-utils: 

$sudo pacman -S nfs-utils 

2) Экспортируем по протоколу NFS существующие (и отстроенные в плане прав доступа) файловые системы.
Конфигурации выделены синим.  
Внимание. 
Есть "волшебные" опции;
Предлагаю уяснить применение каждой из них в процессе самозадрачиванияподготовки.  

$sudo nano /etc/exports  
# /etc/exports - exports(5) - directories exported to NFS clients 
# 
# Example for NFSv2 and NFSv3: (works for Linux, Windows Vista Ultimate and Mac Os X) 
/srv/home        192.168.1.0/24(rw,sync,insecure) 

# Example for NFSv4 (works for Linux and Windows 7 ms-nfs41-client-x64): 
/srv/nfs4 192.168.1.0/24(sec=sys,rw,sync,fsid=0,insecure) 

# Use `exportfs -arv` to reload. 

3) Перезагрузим службу NFS: 

$ sudo exportfs -arv 

 

Тестирование подключения Mac Os X к  службе NFS 

1) Командуем монтировать /srv/home, экспортируемую по протоколу nfs3: 

medv-MBP-3:~ medv$ sudo mkdir /private/nfs2 
medv-MBP-3:~ medv$ sudo mount -t nfs -o resvport 192.168.1.3:/srv/home /private/nfs2 
medv-MBP-3:~ medv$

2) Ресурс "/srv/home" смонтирован на "/private/nfs2" -> Тест passed 

Тестирование подключения клиента Windows 7 NFS Version 4 Open Source Reference Implementation к службе NFS 


1) Скачиваем NFS Version 4 Open Source Reference Implementation (клиент Windows) [2] и устанавливаем, как описывает методичка [3]; 

2) После успешной установки клиента в каталог "С:\Users\Public\ms-nfs41-client-x64 
командуем подключить /srv/nfs4,  экспортируемую по протоколу nfs4, к буковке "Y:" 

Внимание
/srv/nfs4 экспортируется с параметром fsid=0 (то есть как "/"). 
Поэтому Windows NFS Version 4 клиент будет отсчитывать путь как "192.168.1.3:/",  не находя путь, заданный в формате "192.168.1.3:/srv/nfs4". 

Microsoft Windows [Version 6.1.7601] 
Copyright (c) 2009 Microsoft Corporation.  All rights reserved. 

C:\Windows\system32>net start "pnfs client" 
The requested service has already been started. 

More help is available by typing NET HELPMSG 2182. 


C:\Windows\system32>cd c:\Users\Public\ms-nfs41-client-x64 

c:\Users\Public\ms-nfs41-client-x64>nfs_mount.exe Y: 192.168.1.3:/ 
Successfully mounted 192.168.1.3 to drive Y: 

c:\Users\Public\ms-nfs41-client-x64>Y: 

Y:\>dir /w 
 Volume in drive Y is PnfsVolume 
 Volume Serial Number is BABA-FACE 

 Directory of Y:\ 

[.]                   [video]               [etc] 
rootfs.tgz            usb_key_func.sh.2     ._rootfs.tgz 
._usb_key_func.sh.2   rootfs.tar.gz 
               5 File(s)    763.416.187 bytes 
               3 Dir(s)  110.300.561.408 bytes free 

Y:\> 
3) Ресурс "/srv/nfs4" подключен к буковке Y: -> Test passed 

 

Публикации 


  1. Zhang Weiwu "There is no solution with Microsoft's NFS client in Windows 7"  http://superuser.com/ 
  2.  University of Michigan Projects: NFSv4.1 Client for Windows  
  3.  University of Michigan Windows NFS 4.1 Client Instructions

Комментариев нет:

Отправить комментарий