1 / 38

Network File System NFS

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

tekli
Download Presentation

Network File System NFS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 23.02.2007 Network File SystemNFS Linux-harjoitustyö Raine Kelkka

  2. Sisältö • Teoriaa • Johdanto / taustaa • Rakenne • Muut vaihtoehdot • Käytännössä • Huomioitavaa ennen asennusta • Asennus • Konfigurointi • Ylläpito

  3. 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/

  4. Teoriaa – Johdanto / taustaa • Arkkitehtuurista riippumaton • Yleisesti käytössä Unix-maailmassa • Myös esimerkiksi Windowsille olemassa erilaisia toteutuksia

  5. 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

  6. Teoriaa – Johdanto / taustaa • Perustana Client / Server –arkkitehtuuri • NFS-palvelin jakaa osan tiedostojärjestelmästään • NFS-asiakkaat liittävät verkkojaon omaan tiedostojärjestelmäänsä

  7. Teoriaa – Rakenne • Koostuu useista osista • Remote Procedure Call (RPC) -palveluja • Yhteydet 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

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

  9. Teoriaa – Rakenne

  10. Teoriaa – Rakenne • Lisäksi komentojen välittämiseen: • Remote Procedure Call (RPC) –lohko • eXternal Data Representation (XDR) -lohko

  11. Teoriaa – Rakenne • Komponenttien tehtävät tiivistettynä • XDR: Erilaisten arkkitehtuurien yhteensopivuus • RPC: Etäjärjestelmän funktiokutsut • portmap: RPC-kutsujen välitys oikealle palvelulle

  12. 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

  13. 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

  14. Teoriaa – Muut vaihtoehdot • Samba • Vahvuutena myös muiden resurssien jako • Unix <=> Windows • Andrew File System • Hajautettu järjestelmä: useita palvelimia • Yhteinen nimiavaruus • Laajemmat käyttöoikeusmäärittelyt • Access Control List (ACL)

  15. Teoriaa – Muut vaihtoehdot • Coda File System • AFS:n perillinen • Kaksi 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

  16. Teoriaa – Muut vaihtoehdot • NFSv4 • Yhtäaikaisten käyttäjien lukumäärän kasvatus muutamasta sadasta tuhansiin • Kaikki erilliset komponentit yhdistetty yhdeksi demoniksi • Laajemmat käyttöoikeudet (ACL-lista) • Sisäänrakennettu autentikointi • Myös Kerberos mahdollisuus

  17. Käytännössä – Huomioitavaa.. • Vaatii NFS-tuen kerneliin • Usein 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”

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

  19. Käytännössä – Asennus • NFS-palvelin office3-koneella • office-aliverkko asiakkaina • Myös dmz-verkosta voi käyttää levyjakoa

  20. 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

  21. Käytännössä – Asennus • Siis: • Asiakkaalla: aptitude install nfs-common • Palvelimella aptitude install nfs-kernel-server • Asentaa samalla nfs-common-paketin • Asennusohjelma lisää myös skriptit /etc/init.d/-hakemistoon

  22. Käytännössä – Konfigurointi • NFS-palvelin • Jaettavien hakemistojen määrittelyt • /etc/exports • Sallittujen yhteyksien määrittely • /etc/hosts.allow • /etc/hosts.deny

  23. Käytännössä – Konfigurointi • /etc/exports • Syntaksi: • 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)

  24. 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)

  25. Käytännössä – Konfigurointi • /etc/hosts.allow • Sallitaan office-aliverkko • portmap: 192.168.10.0/255.255.255.0 • nfsd: 192.168.10.0/255.255.255.0 • lockd: 192.168.10.0/255.255.255.0 • mountd: 192.168.10.0/255.255.255.0 • statd: 192.168.10.0/255.255.255.0 • rquotad: 192.168.10.0/255.255.255.0

  26. Käytännössä – Konfigurointi • /etc/hosts.deny • Kielletään muut paitsi juuri sallitut • portmap:ALL • nfsd:ALL • lockd:ALL • mountd:ALL • statd:ALL • rquotad:ALL

  27. 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ä

  28. Käytännössä – Konfigurointi • /etc/fstab • Syntaksi: • palvelimen_ip:/jaettu_hakemisto • hakemisto mihin liitetään • tiedostojärjestelmän tyyppi • asetukset • Huom! Määrittelyt yhdellä rivillä vaikka tässä jaettu luettavuuden parantamiseksi

  29. 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

  30. Käytännössä – Konfigurointi • Käytetyt asetukset • user: myös tavallinen käyttäjä voi liittää • auto: liitetään koneen käynnistyessä • async: asynkroninen kirjoitus • rw: luku-kirjoitus-oikeudet • bg: liitos suoritetaan taustalla* • rsize & wsize: luku-/kirjoitus-paketin koko • tcp: käytetään TCP-protokollaa

  31. 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

  32. 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

  33. Käytännössä - Ylläpito • Palvelimella • Levyjakojen lisäys / muuttaminen: /etc/exports • Muutokset 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!

  34. Käytännössä - Ylläpito • Valvonta -- ohjelmat • Sekä 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

  35. 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

  36. Käytännössä - Ylläpito • Valvonta -- tiedostot • NFS ei luo erikseen lokitiedostoja • Mount- ja virheilmoitukset: • /var/log/messages

  37. Käytännössä - Palomuuri • NFS-palvelin palomuurin kanssa • Vain 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=32768 • Palomuuriin vastaavat asetukset (seur.sivu)

  38. 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

More Related