Upload
tekli
View
34
Download
0
Embed Size (px)
DESCRIPTION
23.02.2007. Network File System NFS. Linux-harjoitustyö Raine Kelkka. Sisältö. Teoriaa Johdanto / taustaa Rakenne Muut vaihtoehdot Käytännössä Huomioitavaa ennen asennusta Asennus Konfigurointi Ylläpito. Teoriaa – Johdanto / taustaa. Jo 1980-luvulta peräisin - PowerPoint PPT Presentation
Citation preview
Network File SystemNFS
Linux-harjoitustyö
Raine Kelkka
23.02.2007
Sisältö
Teoriaa Johdanto / taustaa Rakenne Muut vaihtoehdot
Käytännössä Huomioitavaa ennen asennusta Asennus Konfigurointi Ylläpito
Teoriaa – Johdanto / taustaa
Jo 1980-luvulta peräisin Sun Microsystems kehitti aluksi
Sittemmin julkaistu vapaaseen käyttöön Neljä eri versiota: NFSv1 … NFSv4
NFSv3 vallalla (myös tässä työssä)NFSv4 tulossa
University of Michigan: NFSv4 for Linux: http://www.citi.umich.edu/projects/nfsv4/
Teoriaa – Johdanto / taustaa
Arkkitehtuurista riippumatonYleisesti käytössä Unix-maailmassaMyös esimerkiksi Windowsille olemassa
erilaisia toteutuksia
Teoriaa – Johdanto / taustaa
Käyttökohteita Kotihakemistot ”Projektikansion” jako Levyttömät työasemat Käyttöjärjestelmän asennus
LAN / WAN Usein käyttö lähiverkon sisällä Toimii myös laajemmissa verkoissa
ks. ieee: ”NFS Dynamics Over Flow-Controlled Wide Area Networks” Koling Chang, Robert Morris and H.T. Kung, 1997
Teoriaa – Johdanto / taustaa
Perustana Client / Server –arkkitehtuuriNFS-palvelin jakaa osan
tiedostojärjestelmästäänNFS-asiakkaat liittävät verkkojaon omaan
tiedostojärjestelmäänsä
Teoriaa – Rakenne
Koostuu useista osistaRemote Procedure Call (RPC) -palvelujaYhteydet eivät ainoastaan portista porttiin
Asiakkaan ja palvelimen RPC-palvelut kommunikoivat suoraan keskenään
Käyttäjän käskyt kulkevat usean lohkon läpi
[Linux NFS and Automounter Administration; Erez Zadok (Sybex, 2001)]
Verkko
Teoriaa – RakennePALVELIN (nfsd) ASIAKAS (nfs)
Demonit: Demonit:
portmap, mountd lockd, statd, rpciod
lockd, statd, rpciod
Tiedostot: Tiedostot:
/etc/exports /etc/fstab
/etc/hosts.allow
/etc/hosts.deny
Teoriaa – Rakenne
Lisäksi komentojen välittämiseen:Remote Procedure Call (RPC) –lohkoeXternal Data Representation (XDR) -lohko
Teoriaa – Rakenne
Komponenttien tehtävät tiivistettynäXDR: Erilaisten arkkitehtuurien yhteensopivuusRPC: Etäjärjestelmän funktiokutsutportmap: RPC-kutsujen välitys oikealle
palvelulle
Teoriaa – Rakenne
Komponentit jatkuu.. NFS Mount Daemon (mountd)
Käsittelee asiakkaiden levyjakojen liittämispyynnöt
NFS Locking (lockd) & Status Daemon (statd) Tiedostolukitukset
NFS I/O Daemon (rpciod) Lähtevän datan puskurointi
NFS Quota Daemon (rquotad) Levykiintiöt
Teoriaa – Rakenne
Komponentit jatkuu..knfsd: NFS-palvelindemoni
Ajetaan kernelissä Kuuntelee ja tulkkaa RPC-kutsut
knfs: NFS-asiakas Myös kernelissä Kääntää järjestelmäkutsut NFS-protokollan
mukaisiksi RPC-viesteiksi Lähettää viestit palvelimelle
Teoriaa – Muut vaihtoehdot
SambaVahvuutena myös muiden resurssien jakoUnix <=> Windows
Andrew File System Hajautettu järjestelmä: useita palvelimia Yhteinen nimiavaruus Laajemmat käyttöoikeusmäärittelyt
Access Control List (ACL)
Teoriaa – Muut vaihtoehdot
Coda File SystemAFS:n perillinenKaksi mainittavampaa eroa
Server replication Luku- ja kirjoitusoperaatiot usealle palvelimelle yhtä aikaa
Disconnected operation Käytetään hyödyksi asiakaan välimuistia
Lyhyet katkokset verkossa eivät haittaa
Teoriaa – Muut vaihtoehdot
NFSv4Yhtäaikaisten käyttäjien lukumäärän kasvatus
muutamasta sadasta tuhansiinKaikki erilliset komponentit yhdistetty yhdeksi
demoniksiLaajemmat käyttöoikeudet (ACL-lista)Sisäänrakennettu autentikointi
Myös Kerberos mahdollisuus
Käytännössä – Huomioitavaa..
Vaatii NFS-tuen kerneliinUsein valmiina, voi tarkistaa:
modprobe nfs cat /proc/filesystems ”nfs” = asiakastuki ”nfsd” = palvelintuki
Jos tukea ei ole, tarvitsee kernelin konfiguroinnista valita ”File Systems => Network File Systems”
Käytännössä – Huomioitavaa..
Käytännössä – Asennus
NFS-palvelin office3-koneella office-aliverkko asiakkaina Myös dmz-verkosta voi käyttää levyjakoa
Käytännössä – Asennus
Debianille valmiit paketit nfs-common
Sekä palvelin että asiakas tarvitsevat tämän nfs-kernel-server TAI nfs-user-server
Palvelinohjelmisto kernel-server: ohjelma ajetaan kernelissä user-server: ohjelma ajetaan user-spacessa
portmap: Myös vaadittu, mutta asentuu riippuvuuksien johdosta em.
pakettien mukana, mikäli se ei ole asennettu valmiina
Käytännössä – Asennus
Siis:Asiakkaalla: aptitude install nfs-commonPalvelimella aptitude install nfs-kernel-server
Asentaa samalla nfs-common-paketin
Asennusohjelma lisää myös skriptit /etc/init.d/-hakemistoon
Käytännössä – Konfigurointi
NFS-palvelinJaettavien hakemistojen määrittelyt
/etc/exports
Sallittujen yhteyksien määrittely /etc/hosts.allow /etc/hosts.deny
Käytännössä – Konfigurointi
/etc/exportsSyntaksi:
jaettava_hakemisto mille_koneille(asetukset)
/nfsjako/ 192.168.10.0/255.255.255.0(rw,root_squash,async) /nfsjako/ 192.168.10.1(ro,no_root_squash,async) /nfsjako/ 192.168.1.0/255.255.255.0(ro,no_root_squash,async)
Käytännössä – Konfigurointi
Esimerkki: /nfsjako/ 192.168.10.0/255.255.255.0(rw,root_squash,async)
Jaetaan hakemisto ”/nfsjako” Office-aliverkolle (192.168.10.0 – 192.168.10.255) Asetuksilla:
Luku-kirjoitus-oikeudet (rw) Ei sallita root-käyttäjää (root_squash) Asynkroninen kirjoitus (async)
Käytännössä – Konfigurointi
/etc/hosts.allow Sallitaan office-aliverkko
portmap: 192.168.10.0/255.255.255.0nfsd: 192.168.10.0/255.255.255.0 lockd: 192.168.10.0/255.255.255.0mountd: 192.168.10.0/255.255.255.0statd: 192.168.10.0/255.255.255.0rquotad: 192.168.10.0/255.255.255.0
Käytännössä – Konfigurointi
/etc/hosts.deny Kielletään muut paitsi juuri sallitut
portmap:ALLnfsd:ALL lockd:ALLmountd:ALLstatd:ALLrquotad:ALL
Käytännössä – Konfigurointi
NFS-asiakas:Liitettävien jakojen määrittelyt
/etc/fstab Ei ole pakollinen, mutta mahdollistaa mm.
levyjakojen automaattisen liittämisen käynnistyksessä
Käytännössä – Konfigurointi
/etc/fstabSyntaksi:
palvelimen_ip:/jaettu_hakemisto hakemisto mihin liitetään tiedostojärjestelmän tyyppi asetukset
Huom! Määrittelyt yhdellä rivillä vaikka tässä jaettu luettavuuden parantamiseksi
Käytännössä – Konfigurointi
Esimerkki: 192.168.10.3:/nfsjako (<= Sama kuin /etc/exports) /mnt/nfsmount nfs user,auto,async,rw,bg,rsize=8192,wsize=8192,nfsvers=3
,tcp 0 0
Käytännössä – Konfigurointi
Käytetyt asetuksetuser: myös tavallinen käyttäjä voi liittääauto: liitetään koneen käynnistyessäasync: asynkroninen kirjoitusrw: luku-kirjoitus-oikeudetbg: liitos suoritetaan taustalla*rsize & wsize: luku-/kirjoitus-paketin koko tcp: käytetään TCP-protokollaa
Käytännössä – Konfigurointi
Huomioitavaa:Palvelimen /etc/exports-asetukset määräävät,
mitä asiakas saa tehdäAsiakkaan /etc/fstab-asetukset ilmoittavat,
mitä asiakas haluaa tehdäEsim: Jos palvelin määrää jaon vain
luettavaksi (”ro”), ei asiakas saa siihen kirjoitusoikeuksia ”rw”-asetuksella
Käytännössä - Ylläpito
Palvelujen käynnistys / sammutus /etc/init.d/portmap start / stop / restart /etc/init.d/nfs-common start / stop / restart /etc/init.d/nfs-kernel-server start / stop / restart
Levyjakojen liittäminen / irrottaminen Jos määritelty /etc/fstab:ssa:
mount /mnt/nfsmount mount –a –t nfs / umount –a –t nfs
Jos ei määritelty: mount 192.168.10.3:/nfsjako /mnt/nfsmount umount /mnt/nfsmount
Käytännössä - Ylläpito
PalvelimellaLevyjakojen lisäys / muuttaminen: /etc/exportsMuutokset päivitettävä käyttöön
/usr/sbin/exportfs –r
Voi lisätä myös suoraan em. komennolla exportfs -io ro 192.168.10.1:/usr Vastaa: /usr 192.168.10.1(ro) Tämä ei kirjaudu /etc/exports-tiedostoon!
Käytännössä - Ylläpito
Valvonta -- ohjelmatSekä palvelimella että asiakkaalla
/usr/sbin/nfsstat tilastotietoa luku-, kirjoitus- yms. –operaatioista
rpcinfo –p listaa käynnissä olevat RPC-palvelut
Vain palvelimella /sbin/showmount
näyttää levyjakoja käyttävät asiakkaat
Käytännössä - Ylläpito
Valvonta -- tiedostot palvelimella Kernelin ”näkemys” levyjaoista
/proc/fs/nfs/exports Sama informaatio ”fyysisessä” tiedostossa
/var/lib/nfs/xtab Vastaava kuin /etc/exports, mutta täällä näkyvät myös
exportfs-komennolla erikseen lisätyt levyjaot /etc/var/lib/nfs/etab
Asiakkaiden tällä hetkellä liittämät levyjaot /var/lib/nfs/rmtab
Käytännössä - Ylläpito
Valvonta -- tiedostotNFS ei luo erikseen lokitiedostojaMount- ja virheilmoitukset:
/var/log/messages
Käytännössä - Palomuuri
NFS-palvelin palomuurin kanssaVain portmap ja nfsd vakioporteissa (111 &
2049)Muille määrättävä manuaalisesti
rpc.statd –p 32765 –o 32766 rpc.mountd –p 32767 options lockd nlm_udpport=32768
nlm_tcpport=32768Palomuuriin vastaavat asetukset (seur.sivu)
Käytännössä - Palomuuri #Päästää NFS:n läpi DMZ verkosta NFS-serverille (192.168.10.3)
iptables -A FORWARD -p udp --source 192.168.1.0/24 --destination 192.168.10.3 --destination-port 32765:32768 -j ACCEPT
iptables -A FORWARD -p tcp --source 192.168.1.0/24 --destination 192.168.10.3 --destination-port 32765:32768 -j ACCEPT iptables -A FORWARD -p udp --source 192.168.1.0/24 --destination 192.168.10.3 --destination-port 2049 -j ACCEPT iptables -A FORWARD -p tcp --source 192.168.1.0/24 --destination 192.168.10.3 --destination-port 2049 -j ACCEPT iptables -A FORWARD -p udp --source 192.168.1.0/24 --destination 192.168.10.3 --destination-port 111 -j ACCEPT iptables -A FORWARD -p tcp --source 192.168.1.0/24 --destination 192.168.10.3 --destination-port 111 -j ACCEPT
#Sallii NFS:n tälle koneelle iptables -A INPUT --source 0/0 -p udp --destination-port 32765:32768 -j ACCEPT iptables -A INPUT --source 0/0 -p tcp --destination-port 32765:32768 -j ACCEPT iptables -A INPUT --source 0/0 -p udp --destination-port 2049 -j ACCEPT iptables -A INPUT --source 0/0 -p tcp --destination-port 2049 -j ACCEPT iptables -A INPUT --source 0/0 -p udp --destination-port 111 -j ACCEPT iptables -A INPUT --source 0/0 -p tcp --destination-port 111 -j ACCEPT