Network File System v.3
Grupi liikmed
-Thomas Tomson A31
-Laas Siimon A31
-Arno Joonsaar A32
Sissejuhatus
Network File System (NFS) võimaldab serveri failisüsteemi välja jagamist klientidele nii, et see näib nende jaoks lokaalse failisüsteemina. Vaatluse all on varasem NFSv3 ja uus ning põnev NFSv4. Võrguketas võimaldab lihtsamat failide haldamist, varundamist ja monitooringut.
Järgnev artikkel kirjeldab Network File System v.3 ja v.4 serveri ja kliendi seadistust, testimist ja varundamist Ubuntu 9.04 ja 9.10 versiooniga.
Legend
Eduka firma töötajate töökal grupil on käsil uus ja põnev projekt, mille edukaks edendamiseks on vaja ligipääsu tsentreeritud serveris asuvatele dokumentidele. Nad kuuluvad kõik samasse gruppi ning sellel grupil on vaja pidevalt viimast versiooni töös olevatest failidest.
- Kõik teenuse kasutajad kuuluvad gruppi "nfsusers"
- Serveris on NFSv3 puhul jagatud kaust nimega /var/nfs
- Kliendile näib see mounditud kaustana /var/files
- Kõikidele klientidele on antud lugemis- ja kirjutamisõigus.
- Root kasutaja serverisse ühendumist ei lubata
Eeldused
-NFS-i testimiseks on vaja eraldi virtuaalmasinaid serveri ja kliendi jaoks.
-Hetkel testitud Ubuntu Linuxi versioonidega 9.04 ja 9.10.
Viimase muutmise aeg
08.12.2009 12:31
Töö käik
Logime ennast root kasutajaks:
sudo -i
Enne installerimist tasub uuendada tarkvara nimekirja:
apt-get update
NFS serveri installeerimine
Installeerimine apt-käsu abil:
apt-get install nfs-kernel-server nfs-common portmap
NFS serveri seadistamine
Luua kasutajagrupp nfsusers:
groupadd nfsusers
Luua jagatavate failide jaoks kataloog, näiteks.
mkdir /var/nfs
Määrata loodud kausta grupiks nfsusers.
chgrp nfsusers /var/nfs
Lisa loodud kausta grupiõigustele lugemis- ja kirjutamisbitt
chmod g+rw /var/nfs
Ava nanoga fail /etc/exports
nano /etc/exports
Lisada faili lõppu rida
/var/nfs <kliendi masina ip>(rw,root_squash,no_subtree_check)
Selgitus:
rw - lubame klientidele lugemist ja kirjutamist.
root_squash - Serveriga ühenduda püüdev root kasutaja UID-ga 0 mapitakse anonüümseks kasutajaks. (st. turvariskide vähendamiseks ei lubada sharele ligi)
no_subtree_check - suurendab mõningatel juhtudel natuke süsteemi töökindlust.
NFS serveri reloadiks kasuta järgmist käsklust:
/etc/init.d/nfs-kernel-server restart
Ainult failis /etc/exports tehtud muudatusi saad rakendada ka serverit reloadimatta, kasutades käsku
exportfs -a
Kontrollida kasutusel olevaid porte käsuga
netstat -lntu
Vaata, et kuulatakse järgmiseid porte
2049 111
Selgitus: 2049 - standard pordi number NFSi jaoks.
111-portmapper
Kontrollida et NFS on töökorras
rpcinfo -p #Väljundist huvitavad meid read: program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs
Hiljem kliendi seadistamisel failide jagamise kontrollimiseks on abiks kui tekitada kausta /var/nfs mingi suvaline fail.
touch foo.txt
NFS kliendi installeerimine
Installeerimine apt-käsu abil:
sudo apt-get install portmap nfs-common
NFS kliendi seadistamine
Jälgida et NFSi kasutaja kuuluks gruppi nfsusers. Et kontrollida mis gruppi kasutaja kuulub kasuta groups
käsku.
groups <kasutajanimi>
Juhul kui kasutaja ei kuulu nimetatud gruppi lisada ta sinna.
addgroup <kasutajanimi> nfsusers
Loo kataloog, näiteks /var/files, salvestatavate failide jaoks
mkdir /var/files
Testimiseks tuleb mountida eelmises punktis loodud kataloog käsitsi kasutades mount käsku
mount <serveri ip>:/var/nfs /var/files
Mountimise õnnestumise kontrollimiseks sisesta käsk
df -h
Kontrollida et serverisse loodud foo.txt oleks nähtav kliendi /var/files kaustast.
Kontrollida kas on võimalik luua kliendi arvutist uut faili.
Mountimise lõpetamiseks kasutada käsku:
umount /var/files
Kui mountimine ja kausta jagamine õnnestusid muuda faili /etc/fstab
nano /etc/fstab
Faili lõppu lisada rida
<serveri ip>:/var/nfs /var/files nfs rw 0 0
Ühenda automaatselt kõik mis kuulub automaatsesse ühendamisesse
mount -a
NFSv3 varundamine
Serveris tee koopia failist
/etc/exports
Kliendi arvutis tee koopia failist
/etc/fstab
Taastamine
Taastamiseks kopeerida varem varundatud failid algupärastesse asukohtadesse.
Network File System version 4
NFSv3 ja NFSv4 võrdlus
-NFSv4 peamine eelis on mitmed keerukad turvamehhanismid mis on kliendile kohustuslikud. Nende mehhanismide seas on Kerberos 5 ja SPKM3, lisaks tradistsioonilisele AUTH_SYS autentimisele. Uus API võimaldab lihtsat turvamehhanismide lisamist tulevikus.
-NFSv4 võimaldab kliendi poolt anda failile seisundi (lukustamine, lugemine, kirjutamine jne) ning teavitada sellest serverit.
-NFSv4 võimaldab faili delegeerimist - server võimaldab kliendil muuta faili oma cache'is, saatmata serverile päringuid kuni serverisse tuleb päring teiselt kliendilt sama faili kohta. See omakorda vähendab liiklust serveri ja kliendi vahel juhul kui teised kasutajad ei soovi ligi pääseda samaaegselt ühele failile.
-NFSv4 kasutab kokkuliidetud RPCsid. NFSv4 klient suudab kombineerida mitu traditsioonilist NFS operatsiooni ühte RPC päringusse ning seega viia läbi keerulisi operatsioone tõhusamalt.
-NFSv4 toetab nimedega atribuute. Kasutajate ja gruppide info talletatakse stringi, mitte numbrilise väärtuse kujul. ACLid, kasutajnimed, grupi nimed ja nimedega atribuudid talletatakse, kasutades UTF-8 kodeeringut.
-NFSv4 kombineerib erinevad NFS protokollid ühte protokolli et võimaldada paremat ühilduvust võrgu tulemüüridega.
Legend
Otsustatakse üle minna NFSv4-le seoses Kerberose autentimise võimalusega. Hetkel toimub ainult NFS protokolli muutus ja Kerberost kasutusele ei võeta. Kui Kerberost mitte kasutada, tuleb ainult olemasolevat süsteemi konfiguratsiooni täiendada.
- Kasutajad kuuluvad gruppi "nfsusers"
- Pseudo failisüsteemi juur on kaust /var/nfs
- Kasutajatele on jagatud kaust nimega /var/nfs/files
- Kliendile näib see mounditud kaustana /var/files
- Kõikidele klientidele on antud lugemis- ja kirjutamisõigus.
- Root kasutaja serverisse ühendumist ei lubata
Serveri uuendamine
Avada nanoga fail /etc/default/nfs-kernel-server
nano /etc/default/nfs-kernel-server
Muuta faili sisu vastavalt
NEED_SVCGSSD=no
Selgitus: SVCGSSD on deemon Kerberosega ühendumiseks, mille lülitame välja. 'No' on vaikimisi seadistus juhul kui Kerberost ei kasutata.
Avada nanoga fail /etc/default/nfs-common
nano /etc/default/nfs-common
Muuta faili sisu vastavalt
NEED_IDMAPD=yes NEED_GSSD=no
Selgitus: IDMAPD vajalik ainult NFS 4 puhul. Transleerib UID ja GID nimedeks.
GSSD - võimaldab kasutada GSS teenuseid. Vastutab Kerberose mountide eest. 'No' on vaikimisi seadistus juhul kui Kerberost ei kasutata.
Avada nanoga fail /etc/exports
nano /etc/exports
Muuta varem faili lõppu lisatud rida ja lisada read:
/var/nfs <kliendi masina ip>(rw,fsid=0,no_subtree_check,async,root_squash) /var/nfs/files <kliendi masina ip>(rw,no_subtree_check,async,root_squash)
Avada nanoga fail /etc/idmapd.conf
nano /etc/idmapd.conf
Muuta failis domeeni parameeter õigeks.
Domain = <sinu domeeni nimi>
Tehke teenusele restart
service nfs-kernel-server restart
Failide jagamise kontrollimiseks tekita kausta /var/nfs/files suvaline fail.
touch foo.txt
Kliendi uuendamine
Mountida salvestatavate failide jaoks loodud kataloog esialgu käsitsi
mount -t nfs4 <serveri ip>:/files /var/files
Mountimise õnnestumise kontrollimiseks sisesta käsk
df -h
Kontrollida et serverisse loodud foo.txt oleks nähtav kliendi /var/files kaustast.
Kontrollida kas on võimalik luua kliendi arvutist uut faili.
Avada nanoga fail /etc/fstab
nano /etc/fstab
Muuta viimast rida
<serveri ip>:/files /var/files nfs4 _netdev,auto 0 0
Avada nanoga fail /etc/idmapd.conf
nano /etc/idmapd.conf
Muuta failis domeeni parameeter õigeks.
Domain = <sinu domeeni nimi>
Kui tegu on aeglase võrguga või peale alglaadimist on mountimisega probleeme, muuta faili /etc/rc.local
sleep 5 mount /var/files
NFSv4 varundamine
Serveris tee koopia failidest
/etc/exports
/etc/default/nfs-kernel-server
/etc/default/nfs-common
/etc/idmapd.conf
Kliendi arvutis tee koopia failidest
/etc/fstab
/etc/idmapd.conf
Taastamine
Taastamiseks kopeerida varem varundatud failid algupärastesse asukohtadesse.
Logid
NFS saadab oma logiteateid syslogisse, kust neid on saab vajadusel grepiga otsida. Kuna NFS töötab kerneli teenusena (syslog prefix kernel), ei ole võimalik NFSi logisid eraldi välja suunata. Lahendseks oleks NFS kasutamine userspace teenusena, kuid sellel on jällegi omad puudused.
Lingid
-http://nfs.sourceforge.net/ (ülevaate saamiseks NFS-ist tervikuna)
-http://www.ubuntugeek.com/nfs-server-and-client-configuration-in-ubuntu.html (väga hea step-by-step õpetus NFSv3 jaoks)
-https://help.ubuntu.com/community/NFSv4Howto (väga hea step-by-step õpetus NFSv4 jaoks)
-http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Deployment_Guide-en-US/s1-nfs-client-config-options.html (veel mountimise optioneid)