Материал просмотрен 3,999 раз(а)

С вводом в строй новых серверов под управлением ОС семейства не Windows подумал об использовании этими серверами какого-либо сетевого файлового хранилища (для тех же бэкапов). Файловое хранилище у меня под управлением Windows Server 2003 R2.

Использовать smb (она же cifs) не хочется, так как для этого придется поставить кучу ненужного софта.

Решил остановить взгляд на NFS (Network File System).

Начнем с Windows Server 2003. У вас должна быть версия R2, так в ней есть компоненты для установки NFS сервера.

Установка необходимых компонентов. Откройте «Add or Remove Programs» (appwiz.cpl). Жмем на кнопку «Windows Components Wizard». Ищем в списке «Other Network File and Print Services». Жмем кнопку «Details…», ставим галочку напротив пункта «Microsoft Services for NFS», опять нажимаем «Details…», там выбираем все, кроме «Client for NFS» (клиент нам уж точно не понадобится). Жмем где надо «OK».

Настройка сервера NFS. Жмем Start, All Programs, Administrative Tools, Microsoft Services for Network File System. Откроется консоль управления NFS сервером. Чтобы связка заработала, необходимо, чтобы пользователи UNIX систем как-то были связаны с пользователями Windows. Заранее скажу, что я попробовал несколько вариантов и сейчас вкратце объясню их различия. Первый вариант  – мапить на пользователей AD из оснастки ADUC (Active Directory Users and Computers). А именно давать каким-либо пользователям UID и GID, соответствующий какому-либо UID и GID пользователя UNIX системы. Мне этот вариант не понравился, по причине того, что мне не нужны столь масштабные возможности. UNIX серверов всего три, пользователи там в основном админы, т.е. их мало. Второй вариант – загрузить список пользователей и групп из самой UNIX системы. И сделать соответствие пользователя Windows системы и NIX системы. Итак, надо скачать файлы /etc/passwd /etc/group. Сделать это можно при помощи тулзы psftp.exe из состава putty. Команды такие же, как у любого консольного ftp клиента:

get /etc/passwd

В оснастке «Microsoft Services for Network File System» жмем правой кнопкой по «User Name mapping», выбираем радиокнопку «Use Password and Group files», загружаем файлы. Жмем кнопку «Synchronize Now», дальше Ok.

Теперь создаем пользователя в Windows. Он нам будет нужен, чтоб на него мапить пользователя UNIX системы и давать разрешения на NFS шару. Например, nfsuser.

В оснастке «Microsoft Services for Network File System» жмем правой кнопкой мыши по «User Maps», выбираем пункт «Create Map…». Откроется диалоговое окно, где надо будет делать соответствие пользователей. Нажимаем две кнопки «List Windows Users» и «List Unix Users». В одном столбце ищем nfsuser, в другом root. Нажимаем «Add», потом «Close».

User Maps

Создаем NFS шару и выдаем права. Нам нужно создать группу, в которой будут состоять наши сервера. Для этого открываем cmd и выполним пару команд:

nfsadmin server creategroup <имя группы>
nfsadmin server addmembers <имя группы> <IP UNIX клиента>

Создадим папку, чтоб расшарить ее. Я назвал ее NFS. Жмем правой кнопкой, выбираем «Sharing and Security». Переходим на вкладку «NFS Sharing». Выбираем радиокнопку «Share this folder». Нажимаем «Permissions». Нажимаем «Add». Там выбираем только что созданную нами группу. Выбираем «Type of Access Read-Write» и «Allow root access». Нажимаем «Add». Нажимаем «Ok».

Выбираем «ALL MACHINES» и делаем «No Access». Так мы разрешим доступ к нашему NFS серверу только доверенным клиентам.

All Permissions

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

Настройка NFS клиента на FreeBSD. В /etc/rc.conf добавим строку

nfs_client_enable=”YES”

Выполним скрипт

# /etc/rc.d/nfsclient start

, чтоб у нас заработал nfs клиент.

Можно попробовать примонтировать шару к системе:

#  mount –t nfs 10.0.0.8:/NFS /mnt

Зайти туда и попробовать что-нибудь записать. Можно прописать статически в файле /etc/fstab.

Однако, этот вариант я не рекомендую, потому что может возникнуть такая ситуация: сервер под виндой запустится позже, чем фря (напрмер, после выключения электричества) и NFS шара не примонтируется. Для этого есть классный демон amd (название не связано с производителем видеочипов).

Допишем в /etc/rc.conf строку

amd_enable=”YES”

Запустим демон

# /etc/rc.d/amd start

Теперь, при обращении к NFS шаре amd будет ее автоматически монтировать и размонтировать в директорию: /host или /net. Если у нас шара расположена на 10.0.0.8 под названием NFS, то путь обращения будет /host/10.0.0.8/NFS. Если доменное имя компа успешно разрешается, то можно обращаться и так: /host/b1-dc/NFS.