ZFS

OpenZFS-støttet NFS-server Del 1 - Opprette en server

OpenZFS-støttet NFS-server Del 1 - Opprette en server
Hvis du er kjent med OpenZFS, vet du alt om funksjonsrikt grensesnitt, fleksibel arkitektur, pålitelige sjekksummer og COW-mekanismer. Kanskje du også vil ha det på skrivebordet, men du vil ikke formatere de eksisterende diskene og partisjonene dine. Kanskje du bruker Windows 10, som ikke støtter OpenZFS, ennå. Vel i dette blogginnlegget vil jeg diskutere hvordan du kan opprette et nettverksfilsystem, eller NFS, som kjører på en egen server. Denne NFS-enheten kan deretter monteres på din stasjonære arbeidsstasjon. På denne måten kan du ha påliteligheten og robustheten til ZFS med brukervennligheten til ditt favoritt Desktop OS, siden NFS er tilgjengelig på alle plattformer.

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-linux

Neste vil vi liste opp alle tilgjengelige blokkenheter, for å se de nye diskene (og partisjonene) som venter på å bli formatert med zfs.

$ lsblk
NAVN 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 sdc
server $ 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 monteringstank
server $ 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 / nfsshare

NFS-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-server

Tradisjonelt 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 / nfsshare

Tidligere 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 status

Noter 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 / mnt

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

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...