Jeg vil detaljere opprettelsen av NFS -monteringspunkt på en Windows 10 -klient i delen 2 i denne serien. La oss foreløpig fokusere på en Ubuntu -server som tilbyr NFS -lagring og en Ubuntu -klient som prøver å koble seg 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 vil redusere inngangsbarrieren betydelig.
NFS skal visstnok være tilgjengelig bare på LAN som har undernettmasken på 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 bli konfigurert til at bare enheter med bare den nevnte IP -adressen skal ha 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 det. Hvis du har et "åpent wifi" -oppsett, eller hvis sikkerheten på ruterens endepunkt er tvilsom, vil dette ikke garantere noen sikkerhet.
Jeg vil ikke anbefale å kjøre NFS over offentlig internett uten ekstra sikkerhetstiltak.
Til slutt har kommandoene som kjøres på NFS -serveren, serveren $ og kommandoene som skal kjøres på klientsiden, har den hurtige klienten $
Opprette OpenZFS -basseng og datasett
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 installerer zfsutils-linuxNeste gang vil vi liste opp alle tilgjengelige blokkeringsenheter, for å se de nye diskene (og partisjonene) som venter på å bli formatert med ZFS.
$ LSBLKEt typisk eksempel er vist ovenfor, men navnekonvensjonen din kan være veldig annerledes. Du må bruke din egen skjønn, og være veldig forsiktig med det. Du vil ikke ved et uhell formatere OS -disken din. For eksempel har SDA1 -partisjonen tydelig 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 monteringspunkt eller noen form for partisjonering.
Når du vet navnet på enhetene dine, vil vi bruke Zpool Create Command for å formatere et par av disse blokkenhetene (kalt SDB og SDC) til en Zpool med en enkelt VDEV som består av to speilede disk.
server $ sudo zpool lage tank speil sdb sdcFremover kan du legge til disker i sett med to (kalt VDEV) for å vokse størrelsen på denne zpoolen, vil de nye diskene 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. På slutten av dagen er det som betyr noe at vi har laget en Zpool som heter Tank. Som de delte NF -ene vil leve på. La oss lage et datasett som vil bli delt. Forsikre deg først om at bassenget, som heter 'Tank', er montert. Standard monteringspunkt er '/tank' .
server $ sudo zfs montering tankSette tillatelser
Når du deler en NFS -katalog, har ikke superbrukeren på klientsystemet tilgang til noe på aksjen. Mens superbruker-siden er i stand til å gjøre noe på klientmaskinen, er NFS-monteringen teknisk sett ikke en del av klientmaskinen. Så å tillate operasjoner på vegne av superbruker-siden som er kartlagt som superbruker-siden, kan føre til sikkerhetsproblemer. Som standard kartlegger NFS kundesiden Superuser-handlinger til ingen: Nogroup-bruker og brukergruppe. Hvis du har tenkt å få tilgang til de monterte filene som root, bør datasett på NFS -serveren vår også ha de samme tillatelsene,
server $ sudo chown ingen: nogroup /tank /nfsshareNFS-serveren vil kjøre enhver handling fra klientsiden som bruker ingen, så ovennevnte tillatelse vil tillate operasjonene å gå gjennom.
Hvis du bruker et annet (vanlig) brukernavn, er det ofte praktisk å ha en bruker med samme eksakte brukernavn på begge sider.
Opprette NFS -deling
Når du har opprettet Zpool, bør du installere NFS -serverpakken fra Package Manager:
server $ sudo apt install nfs-kernel-serverTradisjonelt bruker NFS -serveren /etc /eksportfil for å få som 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 = ”på” /tank /nfsshareTidligere henviste jeg til å gi bare visse IP -er tilgangen. Du kan gjøre det som å følge:
server $ sudo zfs set sharenfs = "rw [email protected]/24 "tank/nfsshare'RW' står for lese-skriv tillatelser, og det blir fulgt av utvalget av IPS. Forsikre deg om at portnummeret 111 og 2049 er åpne på brannmuren din. 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
Klientsiden montering
Når andelen er opprettet, kan du montere den på klientmaskinen din ved å kjøre kommandoen:
klient $ montering -t nfs server.ip:/tank/nfsshare/mntDette vil montere NFS -delingen på /mnt -mappen, men du kunne like gjerne valgt et hvilket som helst annet monteringspunkt du ønsker.
Fildeling er sannsynligvis det viktigste aspektet ved systemadministrasjon. Det forbedrer din forståelse av lagringsstabelen, nettverk, brukertillatelser og privilegier. Du vil raskt innse viktigheten av prinsippet om minst privilegium - det vil si, bare gi en bruker den barest mulig tilgangen den trenger til jobben.
Du vil også lære om interoperabiliteten mellom forskjellige operativsystemer. Windows -brukere kan få tilgang til NFS -filer, så kan Mac- og BSD -brukerne. Du kan ikke begrense deg til ett operativsystem når du arbeider med et nettverk av maskiner som alle har sine egne konvensjoner og språklige. Så gå videre og eksperimentere med din NFS -deling. Jeg håper du lærte noe.