38
Network File System NFS Linux-harjoitustyö Raine Kelkka 23.02.20 07

Network File System NFS

  • 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

Page 1: Network File System NFS

Network File SystemNFS

Linux-harjoitustyö

Raine Kelkka

23.02.2007

Page 2: Network File System NFS

Sisältö

Teoriaa Johdanto / taustaa Rakenne Muut vaihtoehdot

Käytännössä Huomioitavaa ennen asennusta Asennus Konfigurointi Ylläpito

Page 3: Network File System NFS

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/

Page 4: Network File System NFS

Teoriaa – Johdanto / taustaa

Arkkitehtuurista riippumatonYleisesti käytössä Unix-maailmassaMyös esimerkiksi Windowsille olemassa

erilaisia toteutuksia

Page 5: Network File System NFS

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

Page 6: Network File System NFS

Teoriaa – Johdanto / taustaa

Perustana Client / Server –arkkitehtuuriNFS-palvelin jakaa osan

tiedostojärjestelmästäänNFS-asiakkaat liittävät verkkojaon omaan

tiedostojärjestelmäänsä

Page 7: Network File System NFS

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

Page 8: Network File System NFS

[Linux NFS and Automounter Administration; Erez Zadok (Sybex, 2001)]

Verkko

Page 9: Network File System NFS

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

Page 10: Network File System NFS

Teoriaa – Rakenne

Lisäksi komentojen välittämiseen:Remote Procedure Call (RPC) –lohkoeXternal Data Representation (XDR) -lohko

Page 11: Network File System NFS

Teoriaa – Rakenne

Komponenttien tehtävät tiivistettynäXDR: Erilaisten arkkitehtuurien yhteensopivuusRPC: Etäjärjestelmän funktiokutsutportmap: RPC-kutsujen välitys oikealle

palvelulle

Page 12: Network File System NFS

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

Page 13: Network File System NFS

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

Page 14: Network File System NFS

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)

Page 15: Network File System NFS

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

Page 16: Network File System NFS

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

Page 17: Network File System NFS

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”

Page 18: Network File System NFS

Käytännössä – Huomioitavaa..

Page 19: Network File System NFS

Käytännössä – Asennus

NFS-palvelin office3-koneella office-aliverkko asiakkaina Myös dmz-verkosta voi käyttää levyjakoa

Page 20: Network File System NFS

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

Page 21: Network File System NFS

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

Page 22: Network File System NFS

Käytännössä – Konfigurointi

NFS-palvelinJaettavien hakemistojen määrittelyt

/etc/exports

Sallittujen yhteyksien määrittely /etc/hosts.allow /etc/hosts.deny

Page 23: Network File System NFS

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)

Page 24: Network File System NFS

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)

Page 25: Network File System NFS

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

Page 26: Network File System NFS

Käytännössä – Konfigurointi

/etc/hosts.deny Kielletään muut paitsi juuri sallitut

portmap:ALLnfsd:ALL lockd:ALLmountd:ALLstatd:ALLrquotad:ALL

Page 27: Network File System NFS

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ä

Page 28: Network File System NFS

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

Page 29: Network File System NFS

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

Page 30: Network File System NFS

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

Page 31: Network File System NFS

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

Page 32: Network File System NFS

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

Page 33: Network File System NFS

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!

Page 34: Network File System NFS

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

Page 35: Network File System NFS

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

Page 36: Network File System NFS

Käytännössä - Ylläpito

Valvonta -- tiedostotNFS ei luo erikseen lokitiedostojaMount- ja virheilmoitukset:

/var/log/messages

Page 37: Network File System NFS

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)

Page 38: Network File System NFS

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