Відмінності між версіями «2 Системи НФС»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
Рядок 1: Рядок 1:
Network File System (NFS) - мережева файлова система. Дозволяє експортувати файлові системи через мережу. Часто використовується для обслуговування бездискових робочих станцій, організації спільного використання файлів та програм.
+
'''Network File System''' (''NFS'') - протокол мережевого доступу до файлових систем, спочатку розроблений Sun Microsystems в 1984 . Заснований на протоколі виклику віддалених процедур ( ONC RPC ). Мережева файлова система дозволяє монтувати файлову систему з віддаленого комп'ютера так, як ніби вона локальна і знаходиться у вашій системі. Після такого монтування користувач може безпосередньо звертатися до файлів цієї віддаленої файлової системи. Перевага полягає в тому, що різні комп'ютери мережі можуть отримувати прямий доступ до одних і тих же файлів без необхідності створення їх копій. Існує тільки один екземпляр файлу, що знаходиться в віддаленій файловій системі, і до нього може звертатися будь-який комп'ютер.<br/>
NFS була розроблена, щоб дозволити монтувати розділи дисків віддалених комп'ютерів, так ніби вони знаходяться на локальному жорсткому диску. Це забезпечує швидке, прозоре спільне використання файлів через мережу. Ви зможете зберігати документи і програми в одному місці та зробити його доступним тільки для визначених користувачів.
+
Система NFS працює в мережі TCP / IP. Віддалений комп'ютер, на якому знаходиться файлова система, надає її іншим машинами мережі. Це досягається за рахунок експорту файлової системи. Щоб це здійснити необхідно на віддаленому комп'ютері додати відповідні рядки у файл конфігурації NFS (його ім'я - / etc / exports), а також запустити два процеси-демони, що забезпечують доступ до віддаленого комп'ютера (це програми rpc.mountd і rpc.nfsd). У кожному рядку файлу / etc / exports вказується експортована система і мережеві комп'ютери, які мають право доступу до неї. Для файлової системи вказується точка монтування - каталог, в який вона монтується. Потім, список комп'ютерів, що мають до неї доступ. За кожним ім'ям може слідувати розділений комами список опцій монтування, взятий в круглі дужки. Наприклад, для одного комп'ютера можна надати доступ лише для читання, для іншого - для читання і запису і т.д. Якщо зазначені тільки опції, вони поширюються на всіх. До файлової системи, змонтованої в каталозі / pub (це ім'я зазвичай використовується для загальнодоступного каталогу), всім комп'ютерам надається доступ тільки для читання без перевірки прав доступу.<br/>
При не коректному встановленню NFS також створює потенційну небезпеку несанкціонованого доступу до диску через мережу і як наслідок розголошення і псування інформації. Тому значний наголос, при використанні мережевих файлових систем, потрібно робити на безпеку та контроль доступу.
+
Існує безліч реалізацій NFS-серверів і клієнтів для різних операційних систем і апаратних архітектур. Найновіша версія NFS - v.4, яка підтримує різні засоби аутентифікації  (зокрема, Kerberos і LIPKEY з використанням протоколу RPCSEC GSS) і списків контролю доступу (як POSIX , чи Windows -типів).<br/>
Існують також інші мережеві файлові системи:
+
NFS надає клієнтам прозорий доступ до файлів і файлової системи сервера. На відміну від FTP , протокол NFS здійснює доступ тільки до тих частин файлу, до яких звернувся процес, і основна перевага його в тому, що він робить цей доступ прозорим. Це означає, що будь-який додаток клієнта, який може працювати з локальним файлом, з таким же успіхом може працювати і з NFS файлом, без будь-яких модифікацій самої програми.<br/>
Samba файлова система для оффтопікових (ТМ) клієнтів.  
+
NFS-клієнти отримують доступ до файлів на NFS-сервері шляхом відправки RPC -запитів на сервер. Це може бути реалізовано з використанням звичайних користувальницьких процесів - а саме, NFS-клієнт може бути для користувача процесом, який здійснює конкретні RPC-виклики на сервер, який так само може бути для користувача процесом.<br/>
Andrew файлова система для IBM, надає спільне використання файлів з додатковою безпекою та покращенню продуктивністю.
+
Важливою частиною останньої версії стандарту NFS (v4.1) стала специфікація pNFS , націлена на забезпечення розпаралелених реалізації спільного доступу до файлів, що збільшує швидкість передачі даних пропорційно розмірам і ступеня паралелізму системи.
Coda файлова система розроблена для роботи з від'єднаними клієнтами.
+
Більшість властивостей файлових систем Andrew і Coda реалізовані в NFS4.
+
Основною перевагою NFS є готовність, стандартність, зрозумілість та широка підтримка на багатьох платформах. Віддалений виклик процедур RPC
+
Remote Procedure Calls (RPC) - віддалений виклик процедур. Багато клієнт-серверних програм не прослуховують мережу на своєму порті, а замість того користуються технологією RPC. Коли сервіс ініціалізується він прослуховує будь-який порт і тоді регіструє цей порт з допомогою утиліти Portmapper. NFS відноситься саме до RPC сервісів тому вимагає утиліти Portmapper перед її запуском. Встановлення NFS утиліт
+
Для роботи NFS додатково потрібні http://nfs.sourceforge.net/ (http://www.nfsv4.org) утиліти, які для Gentoo можна встановити командою:
+
emerge net-fs/nfs-utils
+
Цей пакет встановить утиліти для portmapping, nfs серверні і клієнтські та автоматично вирішить всі залежності. Встановлення NFS сервера
+
 
+
Щоб встановити NFS сервер потрібно: включити підтримку NFS сервера в ядро, налаштувати файл /etc/exports та файли безпеки: /etc/hosts.allow і /etc/hosts.deny. Для забезпечення надійної роботи сервісу NFS в мережі його потрібно встановлювати на drbd - кластер дисків. Компіляція ядра Лінукс з підтримкою NFS для сервера
+
 
+
NFS сервер та станція потребують включення відповідної підтримки NFS в ядро Лінукса. Якщо у Ваше ядро така підтримка не входить, потрібно його перезібрати. По зсиці наведена детальна документація про компіляцію ядра GNU/Linux. Додатково потрібно додати: Networking --->
+
  [*] Networking support
+
          Networking options  --->
+
                <*> Packet socket
+
                [*]  Packet socket: mmapped IO
+
                <*> Unix domain sockets
+
                <*> IPsec user configuration interface
+
                <*> PF_KEY sockets
+
                [*] TCP/IP networking
+
                ..........
+
 
+
File systems ---> .........
+
    Network File Systems  --->
+
        <*> NFS file system support
+
        ............
+
        [ ]  Allow direct I/O on NFS files (EXPERIMENTAL)
+
        <*> NFS server support
+
        [*]  Provide NFSv3 server support
+
        [*]    Provide server support for the NFSv3 ACL protocol extension
+
        [*]    Provide NFSv4 server support (EXPERIMENTAL)
+
        ---  Provide NFS server over TCP support
+
        --- Secure RPC: Kerberos V mechanism (EXPERIMENTAL)
+
        ..........
+
 
+
Налаштування NFS сервера
+
 
+
Зараз потрібно відредагувати конфіґураційний файл /etc/exports  
+
 
+
Файл /etc/exports вказує як, що і до кого експортувати через NFS. Типовий /etc/exports для серверу, що обслуговує бездискові станції, виглядає так: $ cat /etc/exports
+
one line like this for each slave
+
 
+
/diskless/10.0.0.101 10.0.0.101(sync,rw,no_root_squash,no_all_squash)
+
common to all slaves
+
 
+
/opt 10.0.0.0/24(sync,ro,no_root_squash,no_all_squash) /usr 10.0.0.0/24(sync,ro,no_root_squash,no_all_squash) /home 10.0.0.0/24(sync,rw,no_root_squash,no_all_squash)
+
if you want to have a shared log
+
 
+
/var/log 10.0.0.0/24(sync,rw,no_root_squash,no_all_squash)
+
 
+
Перше поле визначає директорію яка експортується друге кому і як. Останнє поле розділене на дві частини перша саме кому дозволено монтувати дану директорію і друга що він може з цією файловою системою робити: ro
+
дозволяється тільки читати,
+
 
+
rw
+
дозволяється читати і писати,
+
 
+
noaccess
+
всі файли і директорії нище вказаної будуть не доступні,
+
 
+
link_relative
+
якщо зустрічається абсолютне символічне посилання його змінювати на відносне (../../),  
+
 
+
link_absolute
+
не змінювати символічні посилання.
+
 
+
no_root_squash
+
дозволяє root доступ до сервера, по замовчуванню клієнтський користувач root прив'язується до anonymous. Важлива для бездискових станцій що пишуть на диск, так що вони не будуть "squashed" коли робитимуть I/O запит,
+
 
+
no_all_squash
+
важлива для бездискових станцій що пишуть на диск, так що вони не будуть "squashed" коли робитимуть I/O запит,
+
 
+
all_squash
+
прив'язує всіх віддалених користувачів до anonymous. Тобто маютимуть допуск тільки до файлів з публічним допуском, а файли що створюватимуть будуть доступні всім з anonymous користувач/група. Тобто всі користувачі є nobody, так, як 2 не присвоюється для UID i GID використовується 65534. Щоб змінити потрібно явно вказати anonuid=1111 i anongid=1111.
+
 
+
map_static
+
по замовчуванню, допуски в NFS, для ідентичних користувачів, що мають однакові UID на сервері та клієнтській машині будуть прив'язані автоматично. Тобто користувачі будуть мати такі ж допуски до файлів на віддаленому сервері, якби вони знаходились локально.
+
 
+
Погана ідея експортувати /var/log вірне рішення описане тут: Syslog-ng - записувач подій в UNIX! Безпека NFS
+
 
+
Є декілька рівнів безпеки NFS. Рівень безпеки при монтуванні дозволяє вказати котрим комп'ютерам дозволено монтувати систему і з якими правами (читання/запис). Користувацький рівень безпеки дозволяє зв'язати користувача локальної системи з користувачем на NFS сервері, тоді користувач буде мати стандартні права і допуски в UNIX. Також можна використовувати політики SELinux(8).  
+
 
+
Варто скористатись і TCP обоями. Старт NFS сервера
+
 
+
І нарешті останній файл, який прийдеться відредагувати для сервера: /etc/conf.d/nfs котрий визначає декілька ініціалізаційних опцій, ось його вигляд у Gentoo: $ cat /etc/conf.d/nfs
+
Config file for /etc/init.d/nfs
+
Number of servers to be started up by default
+
 
+
RPCNFSDCOUNT=16
+
Options to pass to rpc.mountd
+
 
+
RPCMOUNTDOPTS=""
+
 
+
RPCNFSDCOUNT - рівне кількості клієнтських машин, можливо потрібно змінити.  
+
 
+
Далі, як звично:
+
/etc/init.d/nfs start
+
 
+
І щоб цей скрипт стартував при включенні системи виконуємо:
+
rc-update add nfs default
+
 
+
Для інших потрібно пам'ятати, що nfs запускається після portmap чи rpc.portmap. Тобто порядок запуску в ручну такий: rpc.portmap rpc.mountd rpc.nfsd rpc.statd rpc.lockd (якщо потрібно) rpc.rquotad Встановлення клієнтів NFS
+
 
+
Можна перевірити чи встановлене ядро підтримує NFS, для цього виконуємо: $ cat /proc/filesystems
+
 
+
якщо є стрічка: nodev nfs
+
 
+
значить ядро зібране з підтримкою NFS і наступний пункт можна пропустити. Компіляція ядра Лінукс з підтримкою NFS для клієнтів
+
 
+
Детальна документація про компіляцію ядра Лінукса. Додатково потрібно додати: Networking --->
+
  [*] Networking support
+
          Networking options  --->
+
                <*> Packet socket
+
                [*]  Packet socket: mmapped IO
+
                <*> Unix domain sockets
+
                <*> IPsec user configuration interface
+
                <*> PF_KEY sockets
+
                [*] TCP/IP networking
+
                ..........
+
 
+
File systems ---> .........
+
    Network File Systems  --->
+
        <*> NFS file system support
+
        [*]  Provide NFSv3 client support
+
        [*]    Provide client support for the NFSv3 ACL protocol extension
+
        [*]  Provide NFSv4 client support (EXPERIMENTAL)
+
        [ ]  Allow direct I/O on NFS files (EXPERIMENTAL)
+
        ............
+
        [*]  Root file system on NFS                                        Для бездискових станцій
+
        --- Secure RPC: Kerberos V mechanism (EXPERIMENTAL)
+
        ..........
+
 
+
Налаштування клієнтських /etc/fstab
+
 
+
Файл /etc/fstab на клієнтських комп'ютерах вказує що експортує сервер і що клієнти можуть змонтувати в себе. Клієнтський fstab файл, для бездискових станцій знаходиться в /diskless/10.0.0.101/etc/fstab та повинен виглядати приблизно так:
+
these entries are essential
+
 
+
10.0.0.10:/diskless/10.0.0.101 / nfs sync,hard,intr,rw,nolock,rsize=8192,wsize=8192 0 0 10.0.0.10:/opt /opt nfs sync,hard,intr,ro,nolock,rsize=8192,wsize=8192 0 0 10.0.0.10:/usr /usr nfs sync,hard,intr,ro,nolock,rsize=8192,wsize=8192 0 0 10.0.0.10:/home /home nfs sync,hard,intr,rw,nolock,rsize=8192,wsize=8192 0 0 none /proc proc defaults 0 0 10.0.0.10:/var/log /var/log nfs hard,intr,rw 0 0
+
для підтримки SELinux
+
 
+
none /selinux selinuxfs defaults 0 0
+
Тільки для кластерів openMosix
+
 
+
none /mnt/mfs mfs dfsa=1 0 0
+
 
+
В цьому прикладі 10.0.0.10 - ІР адрес NFS сервера. Перше поле визначає директорію на сервері що експортується, друге точку монтування на бездисковій станції, третє файлову систему і для NFS розділів повинна бути nfs. В четвертому полі визначаються різні опції які використовуються при монтуванні розділу, щоб побачити всі можливі опції, дивіться mount(8). Для спрощення приведено жорсткі точки монтування, але використовуючи різноманітні опції з /etc/fstab можна зробити кластер більш ефективним. Особливо не рекомендується вести системні журнали через nfs краще скористатись: Syslog-ng - записувач подій в UNIX
+

Версія за 01:44, 20 червня 2014

Network File System (NFS) - протокол мережевого доступу до файлових систем, спочатку розроблений Sun Microsystems в 1984 . Заснований на протоколі виклику віддалених процедур ( ONC RPC ). Мережева файлова система дозволяє монтувати файлову систему з віддаленого комп'ютера так, як ніби вона локальна і знаходиться у вашій системі. Після такого монтування користувач може безпосередньо звертатися до файлів цієї віддаленої файлової системи. Перевага полягає в тому, що різні комп'ютери мережі можуть отримувати прямий доступ до одних і тих же файлів без необхідності створення їх копій. Існує тільки один екземпляр файлу, що знаходиться в віддаленій файловій системі, і до нього може звертатися будь-який комп'ютер.
Система NFS працює в мережі TCP / IP. Віддалений комп'ютер, на якому знаходиться файлова система, надає її іншим машинами мережі. Це досягається за рахунок експорту файлової системи. Щоб це здійснити необхідно на віддаленому комп'ютері додати відповідні рядки у файл конфігурації NFS (його ім'я - / etc / exports), а також запустити два процеси-демони, що забезпечують доступ до віддаленого комп'ютера (це програми rpc.mountd і rpc.nfsd). У кожному рядку файлу / etc / exports вказується експортована система і мережеві комп'ютери, які мають право доступу до неї. Для файлової системи вказується точка монтування - каталог, в який вона монтується. Потім, список комп'ютерів, що мають до неї доступ. За кожним ім'ям може слідувати розділений комами список опцій монтування, взятий в круглі дужки. Наприклад, для одного комп'ютера можна надати доступ лише для читання, для іншого - для читання і запису і т.д. Якщо зазначені тільки опції, вони поширюються на всіх. До файлової системи, змонтованої в каталозі / pub (це ім'я зазвичай використовується для загальнодоступного каталогу), всім комп'ютерам надається доступ тільки для читання без перевірки прав доступу.

Існує безліч реалізацій NFS-серверів і клієнтів для різних операційних систем і апаратних архітектур. Найновіша версія NFS - v.4, яка підтримує різні засоби аутентифікації  (зокрема, Kerberos і LIPKEY з використанням протоколу RPCSEC GSS) і списків контролю доступу (як POSIX , чи Windows -типів).

NFS надає клієнтам прозорий доступ до файлів і файлової системи сервера. На відміну від FTP , протокол NFS здійснює доступ тільки до тих частин файлу, до яких звернувся процес, і основна перевага його в тому, що він робить цей доступ прозорим. Це означає, що будь-який додаток клієнта, який може працювати з локальним файлом, з таким же успіхом може працювати і з NFS файлом, без будь-яких модифікацій самої програми.
NFS-клієнти отримують доступ до файлів на NFS-сервері шляхом відправки RPC -запитів на сервер. Це може бути реалізовано з використанням звичайних користувальницьких процесів - а саме, NFS-клієнт може бути для користувача процесом, який здійснює конкретні RPC-виклики на сервер, який так само може бути для користувача процесом.
Важливою частиною останньої версії стандарту NFS (v4.1) стала специфікація pNFS , націлена на забезпечення розпаралелених реалізації спільного доступу до файлів, що збільшує швидкість передачі даних пропорційно розмірам і ступеня паралелізму системи.

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти