Jeg vil detaljere etableringen av NFS-monteringspunkt på en Windows 10-klient i del 2 av denne serien. For nå, la oss fokusere på en Ubuntu-server som tilbyr NFS-lagring og en Ubuntu-klient som prøver å koble til den.
Oppsettet
NFS-serveren min kommer til å være basert på Ubuntu 18.04 LTS. Du kan bruke din favoritt Linux distro eller FreeBSD, eller et hvilket som helst annet operativsystem som støtter OpenZFS. Min grunn til å bruke Ubuntu 18.04 er at det er ganske populært og ville redusere inngangsbarrieren betraktelig.
NFS skal bare være tilgjengelig på LAN-nettet mitt som har nettverksmasken 255.255.255.0 og 192.168.0.1 som standard gateway. På vanlig engelsk betyr dette at alle enhetene som er koblet til hjemmenettverket mitt (WiFi og Ethernet, et al.) Vil ha IP-adresser fra 192.168.0.2 til 192.168.0.254.
NFS-serveren vil være konfigurert slik at bare enheter med bare den nevnte IP-adressen har tilgang til NFS-serveren. Dette vil sikre at bare enheter som har koblet til LAN-en min får tilgang til filene mine og omverdenen ikke får tilgang til den. Hvis du har et åpent Wifi-oppsett, eller hvis sikkerheten på ruteren din er tvilsom, vil dette ikke garantere noen sikkerhet.
Jeg vil ikke anbefale å kjøre NFS over offentlig internett uten ytterligere sikkerhetstiltak.
Til slutt har kommandoene som kjøres på NFS-serveren ledeteksten, server $ og kommandoene som skal kjøres på klientsiden, har ledeklienten $
Opprette OpenZFS-basseng og datasett
1. Oppretter zpool
Hvis du allerede har en zpool i gang, kan du hoppe over dette trinnet. På min NFS-server, som kjører Ubuntu 18.04 LTS-server, jeg installerer først OpenZFS.
server $ sudo apt installere zfsutils-linuxNeste vil vi liste opp alle tilgjengelige blokkenheter, for å se de nye diskene (og partisjonene) som venter på å bli formatert med zfs.
$ lsblkNAVN MAJ: MIN RM STØRRELSE RO TYPE MOUNTPOINT
loop0 7: 0 0 89.5M 1 sløyfe / snap / kjerne / 6130
loop1 7: 1 0 86.9M 1 sløyfe / snap / kjerne / 4917
loop2 7: 2 0 91.1M 1 sløyfe / snap / kjerne / 6259
sda 8: 0 0 50G 0 disk
├─sda1 8: 1 0 1M 0 del
└─sda2 8: 2 0 50G 0 del /
sdb 8:16 0 931G 0 disk
sdc 8:32 0 931G 0 disk
sr0 11: 0 1 1024M 0 rom
Et typisk eksempel er vist ovenfor, men navnekonvensjonen din kan være veldig annerledes. Du må bruke din egen dømmekraft, og være veldig forsiktig med den. Du vil ikke formatere OS-disken din ved et uhell. For eksempel har sda1-partisjonen klart rotfilsystemet som monteringspunkt, så det er ikke lurt å berøre det. Hvis du bruker nye disker, er sjansen stor for at de ikke har et festepunkt eller noen form for partisjonering.
Når du vet navnet på enhetene dine, vil vi bruke kommandoen zpool create til å formatere et par av disse blokkene (kalt sdb og sdc) til en zpool med en enkelt vdev som består av to speilvendte disker.
server $ sudo zpool lage tank speil sdb sdcserver $ sudo zpool status tank
zpool status tank
basseng: tank
tilstand: ONLINE
skanning: ingen forespurt
config:
NAVN STAT LES SKRIV CKSUM
tank ONLINE 0 0 0
speil-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
feil: Ingen kjente datafeil
Fremover kan du legge til disker i sett med to (kalt vdev) for å vokse størrelsen på denne zpoolen, de nye diskene vil vises som speil-1, speil-2 osv. Du trenger ikke å lage din zpool slik jeg gjorde, du kan bruke speiling med flere disker, du kan bruke striping uten redundans, men bedre ytelse, eller du kan bruke RAIDZ. Du kan lære mer om det her.
På slutten av dagen er det som betyr noe at vi har opprettet en tank som heter zpool. Deretter vil den delte NFS leve. La oss lage et datasett som skal deles. Forsikre deg først om at bassenget, med navnet "tank", er montert. Standard monteringspunkt er '/ tank' .
server $ sudo zfs monteringstankserver $ sudo zfs create tank / nfsshare #create a new dataset on top of the pool
Angi tillatelser
Når du deler en NFS-katalog, har ikke superbrukeren på klientsystemet tilgang til noe på delingen. Mens superbrukeren på klientsiden er i stand til å gjøre hva som helst på klientmaskinen, er NFS-monteringen teknisk sett ikke en del av klientmaskinen. Så å tillate operasjoner på vegne av superbrukeren på klientsiden som er kartlagt som superbruker på serversiden, kan føre til sikkerhetsproblemer. Som standard tilordner NFS superbrukerhandlingene på klientsiden til ingen: nogroup bruker og brukergruppe. Hvis du har tenkt å få tilgang til de monterte filene som root, bør datasettet på NFS-serveren også ha samme tillatelser,
server $ sudo chown none: nogroup / tank / nfsshareNFS-serveren vil kjøre alle handlinger fra klientsiden som bruker ingen, så tillatelsen ovenfor vil tillate operasjonene å gjennomgå.
Hvis du bruker et annet (vanlig) brukernavn, er det ofte praktisk å ha en bruker med samme eksakte brukernavn på begge sider.
Opprette NFS-andel
Når du har opprettet Zpool, bør du installere nfs-serverpakken fra pakkebehandleren:
server $ sudo apt installere nfs-kernel-serverTradisjonelt bruker NFS server / etc / export file for å få en liste over godkjente klienter og filene de vil ha tilgang til. Imidlertid vil vi bruke ZFS 'innebygde funksjon for å oppnå det samme.
Bare bruk kommandoen:
server $ sudo zfs set sharenfs = ”on” / tank / nfsshareTidligere henviste jeg til å gi bare visse IP-er tilgang. Du kan gjøre det som følger:
server $ sudo zfs set sharenfs = "[email protected] / 24" tank / nfsshare'Rw' står for lese- og skrivetillatelser, og det blir fulgt av rekke IP-er. Forsikre deg om at portnummer 111 og 2049 er åpen på brannmuren. Hvis du bruker ufw, kan du sjekke det ved å kjøre:
server $ ufw statusNoter serverens IP på LAN ved å bruke ifconfig eller ip addr-kommandoen. La oss kalle det server.ip
Montering på klientsiden
Når delingen er opprettet, kan du montere den på klientmaskinen din ved å kjøre kommandoen:
klient $ mount -t nfs-server.ip: / tank / nfsshare / mntDette vil montere NFS-delen på / mnt-mappen, men du kunne like gjerne ha valgt et hvilket som helst annet monteringspunkt du ønsker.
Konklusjon
Fildeling er trolig det viktigste aspektet ved systemadministrasjon. Det forbedrer forståelsen din av lagringsstakken, nettverk, brukertillatelser og privilegier. Du vil raskt innse viktigheten av prinsippet om minst privilegium - det vil si bare gi en bruker den barest mulige tilgangen den trenger til jobben sin.
Du vil også lære om interoperabilitet mellom forskjellige operativsystemer. Windows-brukere har tilgang til NFS-filer, så også Mac- og BSD-brukere. Du kan ikke begrense deg til ett operativsystem når du arbeider med et nettverk av maskiner som alle har sine egne konvensjoner og sitt morsmål. Så fortsett og eksperimenter med NFS-andelen din. Jeg håper du har lært noe.