Що таке розширення файлу NFS? Що таке NFS? Network File System. Протокол мережного доступу до файлових систем Відкрити нфс

Всім доброї доби. У цій статті ми хотіли б розповісти Вам про те, як відкрити усі машини в NFS Most Wanted 2005. Насправді відкрити всі машини дуже легко і відкрити їх зможе кожен. Думаємо, що всі хочуть покататися на крутих машинах, проходити гру і відкривати їх немає бажання. У цій статті Ви відкриєте всі машини у грі за кілька хвилин. Існує безліч способів відкрити всі машини в Need For Speed ​​Most Wanted, і ми розповімо Вам кілька з них.

Відкрити всі машини встановивши збереження

Найлегший і простий спосіб – це завантажити 2005 з нашого сайту. Завантаживши та встановивши це збереженняВам не доведеться проходити гру і відкривати машини, тому що в ньому всі машини вже відкриті. До речі, на балансі у Вас також буде купа грошей, а якщо бути конкретнішими, то 900 мільйонів. Думаємо, щоб викупити всі машини у грі Вам цього вистачить. Насолоджуйтесь!

Чит код на відкриття всіх машин

Наступний спосіб – це прописати спеціальний чит-код, який відкриє всі тачки у NFS Most Wanted. Прописувати цей чит-код слід на англійській мовіперед входом у гру, коли на екрані висвічується напис "Click to continue".

iammostwanted- Чит-код на відкриття всіх машин в NFS Most Wanted 2005 року.

Розблокувати машини через трейнер

Якщо вище перераховані способи Вам не підходять, то пропонуємо Вам відкрити всі машини в НФС Міст Вантед через трейнер. Отже, завантажуємо з нашого сайту. Увага! Трейнер працює лише на NFS версії 1.3. Далі слідуємо інструкції.
  1. Розпаковуємо та запускаємо трейнер.

  2. Натискаємо кнопку "Run The Game", після чого має запуститися гра.

  3. Згортаємо гру ( ALT + TAB) і ставимо галочку в полі Enable All Cars.

  4. Вітаємо! Ви відкрили всі машини у NFS Most Wanted


Як Ви бачите, відкрити усі машини у Need For Speed ​​Most Wanted 2005 дуже легко. Тепер Ви можете без проблем кататися на всіх машинах, які є в грі, тільки не забудьте знайти гроші для покупки цих автомобілів. Про те, що можете скористатися нашою інструкцією. Власне, якщо у Вас виникли будь-які питання або у Вас не вдалося відкрити всі машини, то пишіть у коментарі під цією статтею. Приємної гри! Вже на стартовій заставці Need for Speed ​​Undergroung 2 можна познайомитися з головною метою гри. Це гарний і потужний автомобіль, оформлений відповідно до чудового стилю гравця, що має модифіковані елементи корпусу та неперевершені швидкісні характеристики. У грі можна повністю відтворити копії Ford Mustang, машини Ніккі Моріс з оригінальним вінілом NFSU, або Nissan Z, який був основним авто Рейчел Тейлор і мав найрідкісніший набір деталей для тюнінгу – комплект широкого кузова.

Навколо цієї теми ходить дуже багато суперечок, тому що однозначного способу отримання доступу до таких апгрейдів ніхто не знає. Встановлено цілком достовірно, що комплекти широкого кузова стають доступними незалежно від ігрового прогресу, але їх можна відкрити не раніше, ніж на п'ятому етапі кар'єри.

Окуляри репутації для машини та спонсори

Деталі для вдосконалення авто часто є бонусами за перемогу у змаганнях, як правило, у спонсорських та спеціальних. Крім того, за перемогу в будь-якій гонці передбачено не лише грошову винагороду, але й нарахування очок репутації, велика кількість яких підвищує шанси гравця на відкриття унікальних деталей.

Слід нагадати, що кожен спонсор пропонує у фіналі змагань провести кілька спеціальних перегонів та отримати у підсумку унікальні призи. Відомо кілька випадків, коли відкрити розширення кузова Need for Speed ​​вдавалося саме після перемоги в спонсорських заїздах або відразу після .

Рандомне отримання та призи за приховані гонки

Гравцям, які мають намір відкрити всі можливі вдосконалення для авто, у тому числі і комплекти широкого кузова, слід не поспішати з проходженням гри лише за завданням основної сюжетної лінії. Кожен з етапів кар'єри супроводжується додатковими можливостями, які цілком очевидні для геймера.

Одна з «пасхалок» Underground 2 – спеціальні гонщики, які можуть зустрітися головному герою як суперники на основних змаганнях. І тут перемога у гонці майже завжди супроводжується відкриттям додаткових можливостей у майстерні.

На карті ігрового світу є безліч доступних для проходження гонок, але спонсор не зобов'язує брати участь у всіх для виконання умов контракту. Чим більшу кількість перемог здобуде гравець, тим більша ймовірність отримання додаткових призів. У грі є й приховані перегони. Їх не знайти на карті в режимі вільної їзди, а побачити ореоли можна, коли проїжджаєте повз. Хоча, переглядаючи карту і перебуваючи у гаражі, гравець може встановити приблизне розташування місць змагань. Варто зауважити, що можливість отримання додаткового призу за участь у перегонах є цілком випадковою.

Участь в "аутранах"

Найефективнішим способом отримання унікальних апгрейдів, у тому числі і відкриття комплектів розширень кузова, є участь у вільних перегонах, так званих Out Run. Почати їх можна, зблизившись із суперником у режимі їзди містом (інші гонщики позначені на карті рудими трикутниками).

Щоб отримати розширення кузова за аутрани, гравцеві потрібно здобути кілька перемог поспіль, і чим більш унікальним та цінним є відкриття, тим більша ця кількість. Наприклад, перший комплект широкого кузова відкривається за чотири перемоги, а для отримання фірмового логотипу NFSU на свій автомобіль потрібно перемогти суперників одинадцять разів поспіль. Крім розширень кузова, як нагороду можна отримати інші апгрейды, а лічильник перемог скидається після невдачі чи отримання призу.

Мережна файлова система (NFS - Network File System) є рішенням загального доступу до файлів для організацій, які мають змішані середовища машин з Windows та Unix/Linux. Файлова система NFS дозволяє відкривати спільний доступ до файлів між вказаними різними платформами при функціонуючій операційній системі Windows Server 2012. Служби NFS у Windows Server 2012 включають такі можливості та вдосконалення.

1. Пошук у Active Directory. Ви можете використовувати Windows Active Directory для доступу до файлів. Розширення схеми Identity Management for Unix (Управління посвідченнями для Unix) для Active Directory містить поля ідентифікатора користувача Unix (Unix user identifier – UID) та ідентифікатора групи (group identifier – GID). Це дозволяє службам Server for NFS (Сервер для NFS) та Client for NFS (Клієнт для NFS) переглядати відображення облікових записів користувачів Windows на Unix прямо зі служб домену Active Directory (Active Directory Domain Services). Компонент Identity Management for Unix спрощує керування відображенням облікових записів користувачів Windows на Unix у Active Directory Domain Services.

2. Покращена продуктивність сервера.Служби NFS включають драйвер фільтру файлів, який значно скорочує загальні затримки доступу до файлів на сервері.

3. Підтримка спеціальних пристроїв Unix.Служби NFS підтримують спеціальні пристрої Unix (mknod).

4. Розширена підтримка Unix.Служби NFS підтримують такі версії Unix: Sun Microsystems Solaris 9, Red Hat Linux версії 9, IBM AIX версії 5L 5.2 та Hewlett Packard HP-UX версії 11i, а також багато сучасних дистрибутивів Linux.

Один з найпоширеніших сценаріїв, який створює необхідність у застосуванні NFS, передбачає відкриття доступу користувачам до середовищі Windowsдо системи планування ресурсів підприємства (enterprise resource planning – ERP), заснованої на Unix. Перебуваючи в системі ERP, користувачі можуть створювати звіти та експортувати фінансові дані в Microsoft Excel для подальшого аналізу. Файлова система NFS дозволяє звертатися до цих файлів, як і раніше, перебуваючи в середовищі Windows, що скорочує потребу в наявності спеціальних технічних навичок і знижує тимчасові витрати на експорт файлів з використанням сценарію Unix і подальший їх імпорт у програму Windows.

Може також виникнути ситуація, коли ви маєте систему Unix, яка застосовується для зберігання файлів в якійсь мережі зберігання даних (Storage Area Network - SAN). Запуск служб NFS на машині Windows Server 2012 дозволяє користувачам в організації отримувати доступ до збережених файлів без накладних витрат, пов'язаних зі сценаріями на стороні Unix.

Перед встановленням служб NFS ви повинні видалити будь-які раніше встановлені компоненти NFS, такі як компоненти NFS, які були включені до складу Services for Unix.

Компоненти служб NFS

Доступні два компоненти служб NFS.

1. Server for NFS(сервер для NFS). Зазвичай комп'ютер, що базується на Unix, не може звертатися до файлів, що розташовані на комп'ютері, що базується на Windows. Тим не менш, комп'ютер, на якому функціонує Windows Server 2012 R2 і компонент Server NFS, може діяти як файловий сервер для комп'ютерів з Windows і Unix.

2. Client for NFS(Клієнт для NFS). Зазвичай комп'ютер, заснований на Windows, не може звертатися до файлів, що знаходяться на комп'ютері, що базується на Unix. Проте комп'ютер, на якому функціонує Windows Server 2012 R2 та компонент Client for NFS, може отримувати доступ до файлів, що зберігаються на сервері NFS, що базується на Unix.

Установка Server For NFS за допомогою PowerShell

Давайте подивимося, як використовувати PowerShell для встановлення ролі NFS на сервері та створення спільного файлового ресурсу NFS.

1. Відкрийте вікно Windows PowerShellчерез панель завдань від імені облікового запису адміністратора.

2. Введіть наведені нижче команди, щоб встановити роль NFS на сервері:

PS З:\> Import-Module ServerManager PS З:\> Add-WindowsFeature FS-NFS-Services PS З:\> Import-Module NFS

3. Введіть наведену нижче команду, щоб створити новий спільний файловий ресурс NFS:

PS З:\> New-NfsShare -Name "Test" -Path "C:\Shares\Test"

4. Щоб переглянути всі нові командлети PowerShell, що стосуються NFS, доступних у Windows Server 2012 R2, виконайте таку команду:

PS: Get-Command -Module NFS

5. Клацніть правою кнопкою миші папку C:\Shares\Test, виберіть "Властивості", потім перейдіть на вкладку NFS Sharing (Загальний доступ NFS). Натисніть кнопку Manage NFS Sharing (Керувати спільним доступом NFS), у діалоговому вікні ви можете керувати дозволами для доступу до папки, дозволити анонімний доступ, налаштувати параметри кодування файлів. Ви можете відкривати спільний доступ до папки NFS за допомогою діалогового вікна NFS Advanced Sharing без використання PowerShell.

Встановлення стандартних дозволів

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

Доброго часу, читачі та гості . Дуже велика перерва між постами була, але я знову в бою). У сьогоднішній статті розгляну роботу протоколу NFS, а також настроювання сервера NFS та клієнта NFS на Linux.

Вступ до NFS

NFS (Network File System - мережна файлова система) на мою думку - ідеальне рішення в локальній мережі, де потрібен швидкий (швидший у порівнянні з SAMBA і менш ресурсоємний в порівнянні з віддаленими файловими системами з шифруванням - sshfs, SFTP, etc ...) обмін даними і на чолі не варто безпека інформації, що передається. Протокол NFSдозволяє монтувати віддалені файлові системи через мережу в локальне дерево каталогів, якби це була примонтована дискова файлова система. Тим самим локальні програмиможуть працювати з віддаленою файловою системою, як із локальною. Але треба бути обережним (!) з настроюванням NFS, бо за певної конфігурації можна підвісити операційну систему клієнта чекаючи нескінченного вводу/вывода. Протокол NFSзаснований на роботі протоколу RPC, який поки що не піддається моєму розумінню)) тому матеріал у статті буде трохи розпливчатим... Перш ніж Ви зможете використовувати NFS, будь то сервер або клієнт, Ви повинні переконатися, що Ваше ядро ​​має підтримку файлової системи NFS. Перевірити чи підтримує ядро ​​файлову систему NFS можна, переглянувши наявність відповідних рядків у файлі /proc/filesystems:

ARCHIV ~ # grep nfs /proc/filesystems nodev nfs nodev nfs4 nodev nfsd

Якщо вказаних рядків у файлі /proc/filesystemsне виявиться, необхідно встановити описані нижче пакети. Це, швидше за все, дозволить встановити залежні модулі ядра для підтримки потрібних файлових систем. Якщо після інсталяції пакетів, підтримка NFS не відображається в вказаному файлі, необхідно буде , з включенням даної функції.

Історія Network File System

Протокол NFSрозроблений компанією Sun Microsystems та має у своїй історії 4 версії. NFSv1була розроблена в 1989 і була експериментальною, працювала на протоколі UDP. Версія 1 описана у . NFSv2була випущена в тому ж 1989, описувалася тим же RFC1094 і так само базувалася на протоколі UDP, при цьому дозволяла читати не більше 2Гб з файлу. NFSv3доопрацьована в 1995 р. та описана в . Основними нововведеннями третьої версії стала підтримка файлів великого розміру, додана підтримка протоколу TCP та TCP-пакетів великого розміру, що суттєво прискорило працездатність технології. NFSv4доопрацьована в 2000 р. і описана в RFC 3010, в 2003 р. переглянута та описана в . Четверта версія включила поліпшення продуктивності, підтримку різних засобів аутентифікації (зокрема, Kerberos і LIPKEY з використанням протоколу RPCSEC GSS) і списків контролю доступу (як POSIX, так і Windows-типів). NFS версії v4.1була схвалена IESG у 2010 р., та отримала номер . Важливим нововведенням версії 4.1 є специфікація pNFS - Parallel NFS, механізму паралельного доступу NFS-клієнта до даних безлічі розподілених NFS-серверів. Наявність такого механізму в стандарті мережевої файлової системи допоможе будувати розподілені «хмарні» (cloud) сховища та інформаційні системи.

NFS сервер

Бо у нас NFS- це мережевафайлова система, то необхідно. (Так само можна почитати статтю). Далі необхідно. У Debian це пакет nfs-kernel-serverі nfs-common, у RedHat це пакет nfs-utils. Також необхідно дозволити запуск демона на необхідних рівнях виконання ОС (команда в RedHat - /sbin/chkconfig nfs onу Debian - /usr/sbin/update-rc.d nfs-kernel-server defaults).

Установлені пакети в Debian запускаються в наступному порядку:

ARCHIV ~ # ls -la /etc/rc2.d/ | grep nfs lrwxrwxrwx 1 root root 20 Жов 18 15:02 S15nfs-common -> ../init.d/nfs-common lrwxrwxrwx 1 root root 27 Жов 22 01:23 S16nf. /nfs-kernel-server

Тобто спочатку запускається nfs-commonпотім сам сервер nfs-kernel-server. У RedHat ситуація аналогічна, за тим лише винятком, що перший скрипт називається nfslock, а сервер називається просто nfs. Про nfs-common нам сайт debian дослівно каже наступне: спільні файли для клієнта та сервера NFS, цей пакет потрібно встановлювати на машину, яка буде працювати як клієнт або сервер NFS. У пакет включені програми: lockd, statd, showmount, nfsstat, gssd та idmapd. Переглянувши вміст скрипту запуску /etc/init.d/nfs-commonможна відстежити наступну послідовність роботи: скрипт перевіряє наявність виконуваного бінарного файлу /sbin/rpc.statd, перевіряє наявність у файлах /etc/default/nfs-common, /etc/fstabі /etc/exportsпараметрів, що вимагають запуск демонів idmapd і gssd , запускає демона /sbin/rpc.statd , далі перед запуском /usr/sbin/rpc.idmapdі /usr/sbin/rpc.gssdперевіряє наявність цих виконуваних бінарних файлів, далі для демона /usr/sbin/rpc.idmapdперевіряє наявність sunrpc, nfsі nfsd, а також підтримку файлової системи rpc_pipefsв ядрі (тобто наявність її у файлі /proc/filesystems), якщо все вдало, то запускає /usr/sbin/rpc.idmapd . Додатково для демона /usr/sbin/rpc.gssd перевіряє модуль ядра rpcsec_gss_krb5та запускає демон.

Якщо переглянути вміст скрипта запуску NFS-серверана Debian ( /etc/init.d/nfs-kernel-server), то можна простежити таку послідовність: при старті, скрипт перевіряє існування файлу /etc/exports, наявність nfsd, наявність підтримки файлової системи NFSв (тобто у файлі /proc/filesystems), якщо все на місці, то запускається демон /usr/sbin/rpc.nfsd , далі перевіряє заданий параметр NEED_SVCGSSD(задається у файлі налаштувань сервера /etc/default/nfs-kernel-server) і, якщо заданий - запускає демона /usr/sbin/rpc.svcgssd , останнім запускає демона /usr/sbin/rpc.mountd . З цього скрипта видно, що робота сервера NFS складається здемонів rpc.nfsd, rpc.mountd і якщо використовується Kerberos-автентифікація, то демон rcp.svcgssd. У червоному капелюсі ще запускається демон rpc.rquotad і nfslogd (У Debian я чомусь не знайшов інформації про цього демона і про причини його відсутності, мабуть видалений...).

З цього ставати зрозуміло, що сервер Network File System складається з наступних процесів (читай – демонів), розміщених у каталогах /sbin та /usr/sbin:

У NFSv4 при використанні Kerberos додатково запускаються демони:

  • rpc.gssd- Демон NFSv4 забезпечує методи аутентифікації через GSS-API (Kerberos-аутентифікація). Працює на клієнті та сервері.
  • rpc.svcgssd- Демон сервера NFSv4, який забезпечує автентифікацію клієнта на стороні сервера.

portmap та протокол RPC (Sun RPC)

Крім зазначених вище пакетів, для коректної роботи NFSv2 та v3 потрібно додатковий пакет portmap(у новіших дистрибутивах замінений на перейменований на rpcbind). Цей пакет зазвичай встановлюється автоматично з NFS як залежний і реалізує роботу сервера RPС, тобто відповідає динамічне призначення портів деяких служб, зареєстрованих в RPC сервері. Дослівно, згідно з документацією - це сервер, який перетворює номери програм RPC (Remote Procedure Call) у номери портів TCP/UDP. portmap оперує декількома сутностями: RPC-дзвінками або запитами, TCP/UDP портами,версією протоколу(tcp або udp), номерами програмі версіями програм. Демон portmap запускається скриптом /etc/init.d/portmap до старту NFS-сервісів.

Коротко кажучи, робота сервера RPC (Remote Procedure Call) полягає у обробці RPC-дзвінків (т.зв. RPC-процедур) від локальних та віддалених процесів. Використовуючи RPC-дзвінки, сервіси реєструють або видаляють себе в/з перетворювача портів (він же відображає порти, він же portmap, він же portmapper, він же, в нових версіях, rpcbind), а клієнти за допомогою RPC-дзвінків надсилаючи запити до portmapper одержують необхідну інформацію. Користувач-френдлі назви сервісів програм та відповідні їм номери визначені у файлі /etc/rpc. Як тільки будь-який сервіс відправив відповідний запит і зареєстрував себе на сервері RPC в відображачі портів, RPC-сервер присвоює зіставляє сервісу TCP і UDP порти на яких запустився сервіс і зберігає в собі ядру відповідну інформацію про працюючий сервіс (про ім'я), унікальний номер сервісу (відповідно до /etc/rpc) , про протокол та порт на якому працює сервіс та про версію сервісу та надає зазначену інформацію клієнтам за запитом. Сам перетворювач портів має номер програми (100000), номер версії – 2, TCP порт 111 та UDP порт 111. Вище, при вказівці складу демонів сервера NFS я вказав основні RPC номери програм. Я, напевно, трохи заплутав Вас даним абзацом, тому скажу основну фразу, яка повинна внести ясність: основна функція відображача портів полягає в тому, щоб на запит клієнта, який надав номер RPC-програми (або RPC-номер програми) і версію, повернути йому (клієнту) порт, у якому працює запитана програма . Відповідно, якщо клієнту потрібно звернутися до RPC з конкретним номером програми, він спочатку повинен увійти в контакт із процесом portmap на серверній машині та визначити номер порту зв'язку з необхідним йому сервісом RPC.

Роботу RPC-сервера можна представити такими кроками:

  1. Перетворювач портів повинен стартувати першим, як правило, при завантаженні системи. При цьому створюється кінцева точка TCP і здійснюється відкриття TCP порту 111. Також створюється кінцева точка UDP, яка чекає, коли на UDP порт 111 прибуде UDP датаграма.
  2. При старті програма, що працює через сервер RPC, створює кінцеву точку TCP і кінцеву точку UDP для кожної підтримуваної версії програми. (Сервер RPC може підтримувати кілька версій. Клієнт вказує потрібну версію при надсиланні RPC-дзвінка.) Номер порту, що динамічно призначається, закріплюється за кожною версією сервісу. Сервер реєструє кожну програму, версію, протокол і номер порту, здійснюючи відповідний RPC-виклик.
  3. Коли програмі клієнта RPC необхідно отримати необхідну інформацію, вона викликає виклик процедуру перетворювача портів, щоб отримати номер порту, що динамічно призначається для заданої програми, версії і протоколу.
  4. У відповідь цей запит північ повертає номер порту.
  5. Клієнт надсилає повідомлення RPC-запиту на номер порту, отриманий у пункті 4. Якщо використовується UDP, клієнт просто надсилає UDP датаграму, що містить повідомлення RPC-дзвінка, на номер UDP порту, на якому працює запитаний сервіс. У відповідь послуга відправляє UDP датаграму, що містить повідомлення RPC відгуку. Якщо використовується TCP, клієнт здійснює активне відкриття на номер TCP порту необхідного сервісу і потім надсилає повідомлення виклику RPC встановленому з'єднанню. Сервер відповідає повідомленням відгуку RPC з'єднання.

Для отримання інформації від RPC-сервера використовується утиліта rpcinfo. При вказанні параметрів -p hostпрограма виводить список всіх зареєстрованих програм RPC на хості host. Без вказівки хоста програма виведе послуги на localhost. Приклад:

ARCHIV ~ # rpcinfo -p прог-ма верс прото порт 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 59451 status 100024 1 tcp 60872 status 100021 1 udp 44310 nlockmgr 100021 3 udp 44310 nlockmgr 100021 4 udp 44310 nlockmgr 100021 1 tcp 44851 nlockmgr 100021 3 tcp 44851 nlockmgr 100021 4 tcp 44851 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100005 1 udp 51306 mountd 100005 1 tcp 41405 mountd 100005 2 udp 51306 mountd 100005 2 tcp 41405 mountd 100005 3 udp 51306 mountd 100005 3 tcp 41405 mou

Як видно, rpcinfo відображає (у стовпчиках зліва направо) номер зареєстрованої програми, версію, протокол, порт та назву. За допомогою rpcinfo можна видалити реєстрацію програми або отримати інформацію про окремий сервіс RPC (більше опцій у man rpcinfo). Як видно, зареєстровані демони portmapper версії 2 на udp та tcp портах, rpc.statd версії 1 на udp та tcp портах, NFS lock manager версій 1,3,4, демон nfs сервера версії 2,3,4, а також демон монтування версій 1,2,3.

NFS сервер (точніше демон rpc.nfsd) отримує запити від клієнта у вигляді UDP датаграм на порт 2049. Незважаючи на те, що NFS працює з перетворювачем портів, що дозволяє серверу використовувати порти, що динамічно призначаються, UDP порт 2049 жорстко закріплений за NFS в більшості реалізацій .

Робота протоколу Network File System

Монтування віддаленої NFS

Процес монтування віддаленої файлової системи NFS можна представити такою схемою:

Опис протоколу NFS при монтуванні віддаленого каталогу:

  1. На сервері та клієнті запускається RPC сервер (зазвичай при завантаженні), обслуговуванням якого займається процес portmapper та реєструється на порту tcp/111 та udp/111.
  2. Запускаються послуги (rpc.nfsd,rpc.statd та ін.), які реєструються на RPC сервері та реєструються на довільних мережевих портах (якщо в налаштуваннях сервісу не заданий статичний порт).
  3. команда mount на комп'ютері клієнта відправляє ядру запит на монтування мережевого каталогу із зазначенням типу файлової системи, хоста та власне - каталогу, ядро ​​відправляє формує RPC-запит процесу portmap на NFS сервері на порт udp/111 (якщо на клієнті не задана опція працювати через tcp )
  4. Ядро сервера NFS опитує RPC про наявність демона rpc.mountd та повертає ядру клієнта мережевий порт, де працює демон.
  5. mount відправляє запит RPC на порт, на якому працює rpc.mountd. Тепер NFS сервер може перевірити достовірність клієнта, спираючись на його IP адресу та номер порту, щоб переконатися, чи можна цьому клієнту змонтувати вказану файлову систему.
  6. Демон монтування повертає опис запитаної файлової системи.
  7. Команда mount клієнта видає системний виклик mount, щоб зв'язати описувач файлу, отриманий за кроком 5, з локальною точкою монтування на хості клієнта. Описувач файлу зберігається в коді NFS клієнта, і з цього моменту будь-яке звернення процесів користувача до файлів на файловій системі сервера використовуватиме описувач файлу як стартову точку.

Обмін даними між клієнтом та сервером NFS

Типовий доступ до віддаленої файлової системи можна описати такою схемою:

Опис процесу звернення до файлу на сервері NFS:

  1. Клієнту (процесу користувача) байдуже, чи отримує він доступ до локального файлу або до NFS файлу. Ядро займається взаємодією із залізом через модулі ядра або вбудовані системні виклики.
  2. Модуль ядра kernel/fs/nfs/nfs.ko,який виконує функції NFS клієнта, відправляє RPC запити NFS серверу через модуль TCP/IP. NFS зазвичай використовує UDP, проте нові реалізації можуть використовувати TCP.
  3. NFS сервер отримує запити від клієнта у вигляді UDP датаграм на порт 2049. Незважаючи на те, що NFS може працювати з перетворювачем портів, що дозволяє серверу використовувати порти, що динамічно призначаються, UDP порт 2049 жорстко закріплений за NFS в більшості реалізацій.
  4. Коли сервер NFS отримує запит від клієнта, він передається локальній підпрограмі доступу до файлу, яка забезпечує доступ до локальному дискуна сервері.
  5. Результат звернення до диска повертається клієнту.

Налаштування сервера NFS

Налаштування серверав цілому полягає у завданні локальних каталогів, дозволених для монтування віддаленими системами у файлі /etc/exports. Ця дія називається експорт ієрархії каталогів. Основними джерелами інформації про експортовані каталоги є такі файли:

  • /etc/exports- Основний конфігураційний файл, що містить у собі конфігурацію експортованих каталогів. Використовується при запуску NFS та утиліті exportfs.
  • /var/lib/nfs/xtab- Містить список каталогів, монтованих віддаленими клієнтами. Використовується демоном rpc.mountd, коли клієнт намагається змонтувати ієрархію (створюється запис про монтування).
  • /var/lib/nfs/etab- Список каталогів, які можуть бути змонтовані віддаленими системами із зазначенням всіх параметрів експортованих каталогів.
  • /var/lib/nfs/rmtab- Список каталогів, які не розекспортовані в даний момент.
  • /proc/fs/nfsd- Спеціальна файлова система (ядро 2.6) для керування сервером NFS.
    • exports- Список активних експортованих ієрархій та клієнтів, яким їх експортували, а також параметри. Ядро отримує цю інформаціюз /var/lib/nfs/xtab.
    • threads- містить кількість потоків (також можна змінювати)
    • за допомогою filehandle можна отримати покажчик на файл
    • та ін...
  • /proc/net/rpc- Містить "сиру" (raw) статистику, яку можна отримати за допомогою nfsstat, а також різні кеші.
  • /var/run/portmap_mapping- інформація про зареєстровані в RPC сервіси

Прим: взагалі, в інтернеті купа трактувань та формулювань призначення файлів xtab, etab, rmtab, кому вірити – не знаю Навіть на http://nfs.sourceforge.net/ трактування не однозначне.

Налаштування файлу /etc/exports

У найпростішому випадку файл /etc/exports є єдиним файлом, який вимагає редагування для налаштування сервера NFS. Цей файлкерує такими аспектами:

  • Які клієнтиможуть звертатися до файлів на сервері
  • До яких ієрархійкаталогів на сервері може звертатися кожен клієнт
  • Як імена клієнтів будуть відображатисяна локальні імена користувачів

Кожен рядок файлу exports має такий формат:

точка_експорта клієнт1 (опції) [клієнт2(опції) ...]

Де точка_експорту абсолютний шлях експортованої ієрархії каталогів, клієнт1 - n ім'я однієї або більше клієнтів або IP-адрес, розділені пробілами, яким дозволено монтувати точку_експорту . Опції описують правила монтування для клієнта, зазначеного перед опціями .

Ось типовий приклад конфігурації файлу exports:

ARCHIV ~ # cat /etc/exports /archiv1 files(rw,sync) 10.0.0.1(ro,sync) 10.0.230.1/24(ro,sync)

В даному прикладікомп'ютерам files та 10.0.0.1 дозволено доступ до точки експорту /archiv1, при цьому, хосту files на читання/запис, а для хоста 10.0.0.1 та підмережі 10.0.230.1/24 доступ тільки на читання.

Опис хостів у /etc/exports дозволяється в наступному форматі:

  • Імена окремих вузлів описуються як files або files.DOMAIN.local.
  • Опис маски доменів проводиться в такому форматі: * DOMAIN.local включає всі вузли домену DOMAIN.local.
  • Підмережі задаються у вигляді пар адрес IP/маска. Наприклад: 10.0.0.0/255.255.255.0 містить усі вузли, адреси яких починаються з 10.0.0.
  • Встановлення імені мережної групи @myclients, яка має доступ до ресурсу (при використанні сервера NIS)

Загальні опції експорту ієрархій каталогів

У файлі exports використовуються такі загальні опції(спочатку вказані опції, що застосовуються за замовчуванням у більшості систем, у дужках - не за замовчуванням):

  • auth_nlm (no_auth_nlm)або secure_locks (insecure_locks)- Вказує, що сервер повинен вимагати автентифікацію запитів на блокування (за допомогою протоколу NFS Lock Manager (диспетчер блокування NFS)).
  • nohide (hide)- якщо сервер експортує дві ієрархії каталогів, при цьому одна вкладена (примонтована) до іншої. Клієнту необхідно явно змонтувати другу (дочірню) ієрархію, інакше точка монтування дочірньої ієрархії виглядатиме як порожній каталог. Опція nohide призводить до появи другої ієрархії каталогів без явного монтування. ( прим:я цю опцію так і не зміг змусити працювати...)
  • ro (rw)- Дозволяє лише запити на читання (запис). (зрештою - можливо прочитати/записати чи ні визначається на підставі прав файлової системи, при цьому сервер не здатний відрізнити запит на читання файлу від запиту на виконання, тому дозволяє читання, якщо користувач має право на читання або виконання.)
  • secure (insecure)- вимагає, щоб запити NFS надходили із захищених портів (< 1024), чтобы программа без прав root не могла монтировать иерархию каталогов.
  • subtree_check (no_subtree_check)- Якщо експортується підкаталог фалової системи, але не вся файлова система, сервер перевіряє, чи запитаний файл в експортованому підкаталозі. Вимкнення перевірки зменшує безпеку, але збільшує швидкість передачі даних.
  • sync (async)- Вказує, що сервер повинен відповідати на запити лише після запису на диск змін, виконаних цими запитами. Опція async показує серверу чекати запису інформації на диск, що підвищує продуктивність, але знижує надійність, т.к. у разі обриву з'єднання або відмови обладнання можлива втрата інформації.
  • wdelay (no_wdelay)- вказує серверу затримувати виконання запитів на запис, якщо очікується наступний запит на запис, записуючи дані більшими блоками. Це підвищує продуктивність при надсиланні великих черг команд на запис. no_wdelay вказує не відкладати виконання команди на запис, що може бути корисно, якщо сервер отримує велику кількість команд, не пов'язаних один з одним.

Експорт символічних посилань та файлів пристроїв.При експорті ієрархії каталогів, що містять символічні посилання, необхідно, щоб об'єкт посилання був доступний для клієнтської (віддаленої) системи, тобто має виконуватися одне з наступних правил:

Файл пристрою відноситься до інтерфейсу. Під час експорту файлу пристрою експортується цей інтерфейс. Якщо клієнтська система не має такого ж типу, то експортований пристрій не буде працювати. У клієнтській системі, при монтуванні NFS об'єктів можна використовувати опцію nodev, щоб файли пристроїв в каталогах, що монтуються, не використовувалися.

Параметри за замовчуванням у різних системах можуть відрізнятися, їх можна переглянути у файлі /var/lib/nfs/etab. Після опису експортованого каталогу в /etc/exports і перезапуску сервера NFS всі опції, що бракують (читай: опції за замовчуванням) будуть відображені у файлі /var/lib/nfs/etab.

Опції відображення (відповідності) ідентифікаторів користувачів

Для більшого розуміння сказаного нижче я б порадив ознайомитися зі статтею. Кожен користувач Linux має свої UID та головний GID, які описані у файлах /etc/passwdі /etc/group. Сервер NFS вважає, що операційна система віддаленого вузла виконала автентифікацію користувачів і призначила їм коректні ідентифікатори UID і GID. Експортування файлів дає користувачам системи клієнта такий самий доступ до цих файлів, якби вони реєструвалися безпосередньо на сервері. Відповідно, коли клієнт NFS надсилає запит серверу, сервер використовує UID та GID для ідентифікації користувача в локальній системі, що може призводити до деяких проблем:

  • користувач може не мати одні й ті ж ідентифікатори в обох системах і, відповідно, може отримати доступ до файлів іншого користувача.
  • т.к. у користувача root ідентифікатор завжди 0, цей користувач відображається на локального користувача в залежності від заданих опцій.

Наступні опції задають правила відображення віддалених користувачів локальних:

  • root_squash (no_root_squash)- При заданій опції root_squash, запити від користувача root відображаються на анонімного uid/gid, або користувача, заданого в параметрі anonuid/anongid.
  • no_all_squash (all_squash)- Не змінює UID/GID користувача, що підключається. Опція all_squashзадає відображення ВСІХ користувачів (не тільки root) як анонімних або заданих у параметрі anonuid/anongid.
  • anonuid= UID і anongid= GID - Явно визначає UID/GID для анонімного користувача.
  • map_static= /etc/file_maps_users - Задає файл, у якому можна задати зіставлення віддалених UID/GID – локального UID/GID.

Приклад використання файлу картки користувачів:

ARCHIV ~ # cat /etc/file_maps_users # Мапінг користувачів # remote local comment uid 0-50 1002 # зіставлення користувачів з віддаленим UID 0-50 до локального UID 1002 gid 0-50 1002 # зіставлення користувачів з/span віддаленим GID 0-5 локальному GID 1002

Керування сервером NFS

Керування сервером NFS здійснюється за допомогою наступних утиліт:

  • nfsstat
  • showmsecure (insecure)ount

nfsstat: статистика NFS та RPC

Утиліта nfsstat дозволяє переглянути статистику RPC та NFS серверів. Опції команди можна переглянути в man nfsstat.

showmount: виведення інформації про стан NFS

Утиліта showmountзапитує демон rpc.mountd на віддаленому хості про змонтовані файлові системи. За замовчуванням видається список відсортованих клієнтів. Ключі:

  • --all- Видається список клієнтів та точок монтування із зазначенням куди клієнт примонтував каталог. Ця інформація може бути ненадійною.
  • --directories- Видається список точок монтування
  • --exports- видається список експортованих файлових систем з погляду nfsd

При запуску showmount без аргументів на консоль буде виведена інформація про системи, яким дозволено монтувати локальнікаталоги. Наприклад, хост ARCHIV нам надає список експортованих каталогів з IP-адресами хостів, яким дозволено монтувати зазначені каталоги:

FILES ~ # showmount --exports archiv Export list for archiv: /archiv-big 10.0.0.2 /archiv-small 10.0.0.2

Якщо вказати в аргументі ім'я хоста/IP, то буде виведена інформація про цей хост:

ARCHIV ~ # showmount files clnt_create: RPC: Program not registered # це повідомленнякаже нам, що на хості FILES демон NFSd не запущений

exportfs: керування експортованими каталогами

Ця команда обслуговує експортовані каталоги, задані у файлі /etc/exports, точніше написати не обслуговує, а синхронізує з файлом /var/lib/nfs/xtabта видаляє з xtab неіснуючі. exportfs виконується під час запуску демона nfsd з аргументом -r. Утиліта exportfs у режимі ядра 2.6 спілкується з демоном rpc.mountd через файли каталогу /var/lib/nfs/ і не спілкується безпосередньо з ядром. Без параметрів видає список поточних файлових систем, що експортуються.

Параметри exportfs:

  • [клієнт:ім'я-каталогу] - додати або видалити вказану файлову систему для вказаного клієнта)
  • -v - виводити більше інформації
  • -r - переекспортувати всі каталоги (синхронізувати /etc/exports та /var/lib/nfs/xtab)
  • -u - видалити зі списку експортованих
  • -a - додати або видалити всі файлові системи
  • -o - опції через кому (аналогічний опціям застосовуваним в / etc / exports; т.ч. можна змінювати опції вже змонтованих файлових систем)
  • -i - не використовувати /etc/exports при додаванні тільки параметри поточного командного рядка
  • -f - скинути список експортованих систем у ядрі 2.6;

Клієнт NFS

Перш ніж звернутися до файлу на віддаленій файловій системі клієнт (ОС клієнта) повинен змонтувати їїта отримати від сервера покажчик на неї. Монтування NFSможе здійснюватися за допомогою або за допомогою одного з автоматичних монтувальників, що розплодилися (amd, autofs, automount, supermount, superpupermount). Процес монтування добре продемонстровано вище на ілюстрації.

На клієнтів NFSніяких демонів запускати не потрібно, функції клієнтавиконує модуль ядра kernel/fs/nfs/nfs.ko, який використовується для монтування віддаленої файлової системи. Експортовані каталоги з сервера можуть монтуватися на клієнта такими способами:

  • вручну, за допомогою команди mount
  • автоматично при завантаженні, при монтуванні файлових систем, описаних у /etc/fstab
  • автоматично за допомогою демона autofs

Третій спосіб з autofs у цій статті я розглядати не буду, зважаючи на його об'ємну інформацію. Можливо, у наступних статтях буде окремий опис.

Монтування файлової системи Network Files System командою mount

Приклад використання команди mount представлений у пості. Тут я розгляну приклад команди mount для монтування файлової системи NFS:

FILES ~ # mount -t nfs archiv:/archiv-small /archivs/archiv-small FILES ~ # mount -t nfs -o ro archiv:/archiv-big /archivs/archiv-big FILES ~ # mount ..... .. archiv:/archiv-small on /archivs/archiv-small type nfs (rw,addr=10.0.0.6) archiv:/archiv-big on /archivs/archiv-big type nfs (ro,addr=10.0.0.6)

Перша команда монтує експортований каталог /archiv-smallна сервері archivу локальну точку монтування /archivs/archiv-smallз параметрами за замовчуванням (тобто для читання та запису). Хоча команда mountв останніх дистрибутивах вміє розуміти який тип файлової системи використовується і без вказівки типу, все ж таки вказувати параметр -t nfsбажано. Друга команда монтує експортований каталог /archiv-bigна сервері archivв локальний каталог /archivs/archiv-bigз опцією лише для читання ( ro). Команда mountбез параметрів наочно відображає результат монтування. Крім опції лише читання (ro), можна задати інші основні опції при монтуванні NFS:

  • nosuid- Ця опція забороняє виконувати програми зі змонтованого каталогу.
  • nodev(no device - не пристрій) - Дана опція забороняє використовувати як пристрої символьні та блокові спеціальні файли.
  • lock (nolock)- Дозволяє блокувати NFS (за замовчуванням). nolock відключає блокування NFS (не запускає демон lockd) і зручна під час роботи зі старими серверами, які не підтримують блокування NFS.
  • mounthost=ім'я- Ім'я хоста, на якому запущено демон монтування NFS – mountd.
  • mountport=n -Порт, використовуваний демоном mountd.
  • port=n- порт, який використовується для підключення до сервера NFS (за замовчуванням 2049, якщо демон rpc.nfsd не зареєстрований на RPC-сервері). Якщо n=0 (за замовчуванням), NFS надсилає запит до portmap на сервері, щоб визначити порт.
  • rsize=n(read block size – розмір блоку читання) - Кількість байтів, що читаються за один раз з NFS-сервера. Стандартно – 4096.
  • wsize=n(Write block size - розмір блоку запису) - Кількість байтів, що записуються за один раз на NFS-сервер. Стандартно – 4096.
  • tcpабо udp- Для монтування NFS використовувати протокол TCP або UDP відповідно.
  • bg- При втраті доступу до сервера, повторювати спроби в фоновому режиміщоб не блокувати процес завантаження системи.
  • fg- У разі втрати доступу до сервера, повторювати спроби в пріоритетному режимі. Цей параметр може заблокувати процес завантаження системи повторення спроб монтування. Тому параметр fg використовується переважно при налагодженні.

Опції, що впливають на кешування атрибутів під час монтування NFS

Атрибути файлів, що зберігаються в (індексних дескрипторах), такі як час модифікації, розмір, жорсткі посилання, власник, зазвичай змінюються не часто для звичайних файлів і ще рідше - для каталогів. Багато програм, наприклад ls, звертаються до файлів тільки для читання та не змінюють атрибути файлів або вмісту, але витрачають ресурси системи на дорогі мережеві операції. Щоб уникнути непотрібних витрат ресурсів, можна кешувати дані атрибути. Ядро використовує час модифікації файлу, щоб визначити чи застарів кеш, порівнюючи час модифікації в кеші і час модифікації самого файлу. Кеш атрибутів періодично оновлюється відповідно до заданих параметрів:

  • ac (noac) (attrebute cache- кешування атрибутів) - Дозволяє кешування атрибутів (за замовчуванням). Хоча опція noac уповільнює роботу сервера, вона дозволяє уникнути старіння атрибутів, коли кілька клієнтів активно записують інформацію у спільну ієрархію.
  • acdirmax=n (attribute cache directory file maximum- Кешування атрибута максимум для файлу каталогу) - Максимальна кількістьсекунд, яке NFS очікує до оновлення атрибутів каталогу (за замовчуванням 60 с.)
  • acdirmin=n (attribute cache directory file minimum- кешування атрибута мінімум для файлу каталогу) - Мінімальна кількість секунд, що NFS очікує до оновлення атрибутів каталогу (за замовчуванням 30 сек.)
  • acregmax=n (attribute cache regular file maximum- кешування атрибуту максимум для звичайного файлу) - Максимальна кількість секунд, що NFS очікує до оновлення атрибутів звичайного файлу (за замовчуванням 60 с.)
  • acregmin=n (attribute cache regular file minimum- кешування атрибута мінімум для звичайного файлу) - Мінімальна кількість секунд, що NFS очікує до оновлення атрибутів звичайного файлу (за замовчуванням 3 сек.)
  • actimeo=n (attribute cache timeout- таймаут кешування атрибутів) - Замінює значення для всіх наведених опцій. Якщо actimeo не заданий, вищезазначені значення набирають значення за замовчуванням.

Опції обробки помилок NFS

Наступні опції керують діями NFS за відсутності відповіді від сервера або у разі виникнення помилок вводу/виводу:

  • fg (bg) (foreground- передній план, background- задній план) - Робити спроби монтування, що відмовила NFS на передньому плані/у фоні.
  • hard (soft)- виводить на консоль повідомлення "server not responding" при досягненні таймауту та продовжує спроби монтування. При заданій опції soft- при таймууті повідомляє програму про помилку введення/виводу, що викликала операцію. (опцію soft радять не використовувати)
  • nointr (intr) (no interrupt- не переривати) - Не дозволяє сигналам переривати файлові операції в жорстко змонтованій ієрархії каталогів при досягненні великого таймауту. intr- дозволяє переривання.
  • retrans=n (retransmission value- значення повторної передачі) - Після n малих таймаутів NFS генерує великий таймаут (за замовчуванням 3). Великий тайм-аут припиняє виконання операцій або виводить на консоль повідомлення "server not responding", залежно від вказівки опції hard/soft.
  • retry=n (retry value- значення повторно спроби) - Кількість хвилин повторень служби NFS операцій монтування, перш ніж здатись (за замовчуванням 10000).
  • timeo=n (timeout value- значення таймуута) - Кількість десятих часток секунди очікування службою NFS до повторної передачі у разі RPC або малого таймууту (за замовчуванням 7). Це значення збільшується при кожному таймуут до максимального значення 60 секунд або до настання великого таймууту. У разі зайнятої мережі, повільного сервера або при проходженні запиту через кілька маршрутизаторів або шлюзів, збільшення цього значення може підвищити продуктивність.

Автоматичне монтування NFS при завантаженні (опис файлових систем /etc/fstab)

Підібрати оптимальний timeo для певного значення пакета (значень rsize/wsize), що передається, можна за допомогою команди ping:

FILES ~ # ping -s 32768 archiv PING archiv.DOMAIN.local (10.0.0.6) 32768(32796) bytes of data. 32776 bytes від archiv.domain.local (10.0.0.6): icmp_req=1 ttl=64 time=0.931 ms 32776 bytes from archiv.domain.local (10.0.0.6): icmp_req=2 t3=7 t3 від archiv.domain.local (10.0.0.6): icmp_req=3 ttl=64 time=1.03 ms 32776 bytes from archiv.domain.local (10.0.0.6): icmp_req=4 ttl=64 time=1.0 .domain.local (10.0.0.6): icmp_req=5 ttl=64 time=1.08 ms ^C --- archiv.DOMAIN.local ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rt min/avg/max/mdev = 0.931/1.002/1.083/0.061 ms

Як видно, при відправленні пакета розміром 32768 (32Kb) час його подорожі від клієнта до сервера і назад плаває близько 1 мілісекунди. Якщо цей час зашкалюватиме за 200 мс, то варто задуматися про підвищення значення timeo, щоб воно перевищувало значення обміну в три-чотири рази. Відповідно, даний тестбажано робити під час сильного завантаження мережі

Запуск NFS та налаштування Firewall

Нотатка скопіпсчена з блогу http://bog.pp.ru/work/NFS.html, за що йому велике спасибі!

Запуск сервера NFS, монтування, блокування, квотування та статусу з "правильними" портами (для мережного екрана)

  • бажано попередньо розмонтувати всі ресурси на клієнтах
  • зупинити та заборонити запуск rpcidmapd, якщо не планується використання NFSv4: chkconfig --level 345 rpcidmapd off service rpcidmapd stop
  • якщо потрібно, то дозволити запуск сервісів portmap, nfs і nfslock: chkconfig --levels 345 portmap/rpcbind on chkconfig --levels 345 nfs on chkconfig --levels 345 nfslock on
  • якщо потрібно, то зупинити сервіси nfslock і nfs, запустити portmap/rpcbind, вивантажити модулі service nfslock stop service nfs stop service portmap start # service rpcbind start umount /proc/fs/nfsd service rpcidmapd stop rmmod його треба запустити rmmod nfs rmmod nfs_acl rmmod lockd
  • відкрити порти в
    • для RPC: UDP/111, TCP/111
    • для NFS: UDP/2049, TCP/2049
    • для rpc.statd: UDP/4000, TCP/4000
    • для lockd: UDP/4001, TCP/4001
    • для mountd: UDP/4002, TCP/4002
    • для rpc.rquota: UDP/4003, TCP/4003
  • для сервера rpc.nfsd додати до /etc/sysconfig/nfs рядок RPCNFSDARGS="--port 2049"
  • для сервера монтування додати до /etc/sysconfig/nfs рядок MOUNTD_PORT=4002
  • для налаштування rpc.rquota для нових версій необхідно додати до /etc/sysconfig/nfs рядок RQUOTAD_PORT=4003
  • для налаштування rpc.rquota необхідно для старих версій (тим не менше, треба мати пакет quota 3.08 або свіже) додати до /etc/services rquotad 4003/tcp rquotad 4003/udp
  • перевірить адекватність /etc/exports
  • запустити сервіси rpc.nfsd, mountd та rpc.rquota (заодно запускаються rpcsvcgssd та rpc.idmapd, якщо не забули їх видалити) service nfsd start або в нових версіях service nfs start
  • для сервера блокування для нових систем додати /etc/sysconfig/nfs рядки LOCKD_TCPPORT=4001 LOCKD_UDPPORT=4001
  • для сервера блокування для старих систем додати безпосередньо до /etc/modprobe[.conf]: options lockd nlm_udpport=4001 nlm_tcpport=4001
  • прив'язати сервер статусу rpc.statd до порту 4000 (для старих систем /etc/init.d/nfslock запускати rpc.statd з ключем -p 4000) STATD_PORT=4000
  • запустити сервіси lockd та rpc.statd service nfslock start
  • переконатися, що всі порти прив'язалися нормально за допомогою "lsof -i -n -P" та "netstat -a -n" (частина портів використовується модулями ядра, які lsof не бачить)
  • якщо перед "перебудовою" сервером користувалися клієнти та їх не вдалося розмонтувати, то доведеться перезапустити на клієнтах послуги автоматичного монтування (am-utils, autofs)

Приклад конфігурації NFS сервера та клієнта

Конфігурація сервера

Якщо ви хочете зробити ваш розділений NFS каталог відкритим та з правом запису, ви можете використовувати опцію all_squashу комбінації з опціями anonuidі anongid. Наприклад, щоб встановити права користувача "nobody" у групі "nobody", ви можете зробити таке:

ARCHIV ~ # cat /etc/exports # Доступ на читання та запис для клієнта на 192.168.0.100, з доступом rw для користувача 99 з gid 99 /files 192.168.0.100(rw,sync,all_squash,an9id=9 ) # Доступ на читання та запис для клієнта на 192.168.0.100, з доступом rw для користувача 99 з gid 99 /files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))

Це також означає, що якщо ви хочете дозволити доступ до зазначеної директорії, nobody.nobody має бути власником розділеної директорії:

man mount
man exports
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/nfs_perf.htm - продуктивність NFS від IBM.

З повагою, Mc.Sim!

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

У цій статті буде розглянуто встановлення nfs в Ubuntu 16.04. Ми розберемо встановлення всіх необхідних компонентів, налаштування спільної папки, а також підключення папок мережі.

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

Встановлення компонентів NFS

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

sudo apt install nfs-kernel-server

Тепер давайте перевіримо, чи правильно встановився сервер. Сервіс NFS слухає з'єднання як для TCP, так і для UDP на порту 2049. Переглянути справді зараз ці порти можна використовувати командою:

rpcinfo-p | grep nfs

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

cat /proc/filesystems | grep nfs

Бачимо, що працює, але якщо ні, потрібно вручну завантажити модуль ядра nfs:

Давайте ще додамо nfs в автозавантаження:

sudo systemctl enable nfs

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

sudo apt install nfs-common

Налаштування сервера NFS в Ubuntu

Ми можемо відкрити NFS доступ до будь-якої папки, але давайте створимо для цього нову:

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

Адреса папки - це та папка, яку потрібно зробити доступною через мережу. Клієнт - ip адреса або адреса мережі, з якої можуть отримати доступ до цієї папки. А ось із опціями трохи складніше. Розглянемо деякі з них:

  • rw- дозволити читання та запис у цій папці
  • ro- дозволити лише читання
  • sync- відповідати на наступні запити лише тоді, коли дані будуть збережені на диск (за замовчуванням)
  • async- не блокувати підключення поки дані записуються на диск
  • secure- використовувати для з'єднання тільки порти нижче 1024
  • insecure- Використовувати будь-які порти
  • nohide- не приховувати піддиректорії при відкритті доступу до кількох директорій
  • root_squash- підміняти запити від root на анонімні
  • all_squash- перетворювати всі запити на анонімні
  • anonuidі anongid- Вказує uid і gid для анонімного користувача.

Наприклад, для нашої папки цей рядок може виглядати так:

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

Коли все було налаштовано, залишилося оновити таблицю експорту NFS:

sudo exportfs -a

Ось і все, відкриття кулі nfs в ubuntu 16.04 завершено. Тепер спробуємо настрої клієнта і спробуємо її примонтувати.

Підключення NFS

Ми не будемо докладно зупинятись на цьому питанні у сьогоднішній статті. Це досить велика тема, що заслуговує на окрему статтю. Але пару слів я все ж таки скажу.

Щоб підключити мережну папку вам не потрібен ніякий nfs клієнт ubuntu, достатньо використовувати команду mount:

sudo mount 127.0.0.1:/var/nfs/ /mnt/

Тепер ви можете спробувати створити файл у підключеній директорії:

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

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

Щоб відключити цю файлову систему, достатньо використовувати стандартний umount:

sudo umount /mnt/

Висновки

У цій статті була розглянута налаштування nfs ubuntu 16.04, як бачите, все робиться дуже просто та прозоро. Підключення NFS кулі виконується в кілька кліків, за допомогою стандартних команд, а відкриття кулі nfs в ubuntu 16.04 не набагато складніше за підключення. Якщо у вас залишилися питання, пишіть у коментарях!

Схожі записи:


Встановлення пристроїв