ZFS

Server NFS supportato da OpenZFS Parte 1 - Creazione di un server

Server NFS supportato da OpenZFS Parte 1 - Creazione di un server
Se hai familiarità con OpenZFS, sai tutto sulla sua interfaccia ricca di funzionalità, architettura flessibile, checksum affidabili e meccanismi COW. Forse lo vuoi anche sul desktop, ma non vuoi riformattare i dischi e le partizioni esistenti. Forse stai usando Windows 10, che non supporta ancora OpenZFS. Bene, in questo post sul blog, discuterò come è possibile creare un file system di rete, o NFS, in esecuzione in un server separato. Questo dispositivo NFS può quindi essere montato sulla workstation desktop. In questo modo puoi avere l'affidabilità e la robustezza di ZFS con la facilità d'uso del tuo sistema operativo desktop preferito, poiché NFS è disponibile su tutte le piattaforme.

Descriverò in dettaglio la creazione del punto di montaggio NFS su un client Windows 10 nella parte 2 di questa serie. Per ora concentriamoci su un server Ubuntu che offre spazio di archiviazione NFS e un client Ubuntu che cerca di connettersi ad esso.

Il set up

Il mio server NFS sarà basato su Ubuntu 18.04 LTS. Puoi usare la tua distribuzione Linux preferita o FreeBSD o qualsiasi altro sistema operativo che supporti OpenZFS. La mia ragione per usare Ubuntu 18.04 è che è abbastanza popolare e ridurrebbe notevolmente la barriera di ingresso.

L'NFS dovrebbe essere disponibile solo sulla mia LAN che ha la subnet mask di 255.255.255.0 e 192.168.0.1 come gateway predefinito. In parole povere, questo significa che tutti i dispositivi collegati alla mia rete domestica (WiFi ed Ethernet, et al) avranno indirizzi IP che vanno da 192.168.0.da 2 a 192.168.0.254.

Il server NFS sarà configurato per consentire l'accesso al server NFS solo ai dispositivi con solo il suddetto indirizzo IP. Ciò garantirebbe che solo i dispositivi collegati alla mia LAN accedano ai miei file e il mondo esterno non possa accedervi. Se disponi di una configurazione "Wifi aperto" o se la sicurezza sull'endpoint del tuo router è dubbia, ciò non garantirebbe alcuna sicurezza.

Non consiglierei di eseguire NFS su Internet pubblico senza ulteriori misure di sicurezza.

Infine, i comandi in esecuzione sul server NFS hanno il prompt, server $ e i comandi da eseguire sul lato client hanno il prompt client $

Creazione di pool e set di dati OpenZFS

1. Creazione di zpool

Se hai già uno zpool attivo e funzionante, salta questo passaggio. Sul mio server NFS, che esegue Ubuntu 18.04 Server LTS, installo prima OpenZFS.

server $ sudo apt install zfsutils-linux

Successivamente elencheremo tutti i dispositivi a blocchi disponibili, per vedere i nuovi dischi (e partizioni) in attesa di essere formattati con zfs.

$ lsblk
NOME   MAJ:MIN RM  DIMENSIONE RO TIPO PUNTO DI MONTAGGIO
loop0    7:0    0 89.5M  1 loop/snap/core/6130
loop1    7:1    0 86.9M  1 loop /snap/core/4917
loop2    7:2    0 91.1M  1 loop /snap/core/6259
sda      8:0    0   50G  0 disco
├─sda1   8:1     0    1M  0 parte
└─sda2   8:2    0   50G  0 parte /
sdb      8:16   0  931G  0 disco
sdc      8:32   0  931G  0 disco
sr0    11:0    1 1024M  0 rom

Un tipico esempio è mostrato sopra, ma la tua convenzione di denominazione potrebbe essere molto diversa. Dovrai usare il tuo giudizio e stare molto attento a questo. Non vuoi formattare accidentalmente il disco del tuo sistema operativo. Ad esempio, la partizione sda1 ha chiaramente il filesystem di root come punto di montaggio, quindi non è saggio toccarlo. Se stai usando nuovi dischi, è probabile che non abbiano un punto di montaggio o alcun tipo di partizionamento.

Una volta che conosci il nome dei tuoi dispositivi, utilizzeremo il comando zpool create per formattare un paio di questi dispositivi a blocchi (chiamati sdb e sdc) in uno zpool con un singolo vdev composto da due dischi con mirroring.

server $ sudo zpool create tank mirror sdb sdc
server $ sudo zpool status tank
zpool stato serbatoio
piscina: serbatoio
stato: ONLINE
scansione: nessuna richiesta
configurazione:
NOME        STATO     LEGGI SCRIVI CKSUM
serbatoio        ONLINE       0     0     0
mirror-0  ONLINE       0     0     0
sdb     ONLINE       0     0     0
sdc     ONLINE       0     0     0
errori: nessun errore di dati noto

Andando avanti, puoi aggiungere dischi in gruppi di due (chiamati vdev) per aumentare le dimensioni di questo zpool, i nuovi dischi verranno visualizzati come mirror-1, mirror-2 ecc. Non devi creare il tuo zpool come ho fatto io, puoi usare il mirroring con più dischi, puoi usare lo striping senza ridondanza ma con prestazioni migliori, oppure puoi usare RAIDZ. Puoi saperne di più qui.

Alla fine, ciò che conta è che abbiamo creato uno zpool chiamato tank. Su cui vivrà l'NFS condiviso. Creiamo un set di dati che sarà condiviso. Per prima cosa assicurati che la piscina, denominata 'tank', sia montata. Il punto di montaggio predefinito è '/tank' .

server $ sudo zfs mount tank
server $ sudo zfs create tank/nfsshare #crea un nuovo set di dati in cima al pool

Impostazione dei permessi

Quando si condivide una directory NFS, il superutente sul sistema client non ha accesso a nulla sulla condivisione. Mentre il superutente lato client è in grado di fare qualsiasi cosa sulla macchina client, il montaggio NFS non fa tecnicamente parte della macchina client. Pertanto, consentire operazioni per conto del superutente lato client mappato come superutente lato server potrebbe comportare problemi di sicurezza. Per impostazione predefinita, NFS mappa le azioni del superutente sul lato client a nessuno: utente di nessun gruppo e gruppo di utenti. Se intendi accedere ai file montati come root, anche il set di dati sul nostro server NFS dovrebbe avere le stesse autorizzazioni,

server $ sudo chown nessuno:nogroup /tank/nfsshare

Il server NFS eseguirà qualsiasi azione da parte del root lato client come utente nessuno, quindi l'autorizzazione di cui sopra consentirà il completamento delle operazioni.

Se stai utilizzando un nome utente diverso (normale), spesso è conveniente avere un utente con lo stesso nome utente esatto su entrambi i lati.

Creazione di una condivisione NFS

Una volta creato Zpool, dovresti installare il pacchetto del server nfs dal tuo gestore di pacchetti:

server $ sudo apt install nfs-kernel-server

Tradizionalmente, il server NFS utilizza il file /etc/exports per ottenere un elenco di client approvati e i file a cui avranno accesso. Tuttavia, utilizzeremo la funzione integrata di ZFS per ottenere lo stesso.

Usa semplicemente il comando:

server $ sudo zfs set sharenfs=”on” /tank/nfsshare

In precedenza, ho accennato al fatto di concedere l'accesso solo a determinati IP. Puoi farlo come segue:

server $ sudo zfs set sharenfs="[email protected]/24" tank/nfsshare

Il 'rw' sta per i permessi di lettura-scrittura e questo è seguito dall'intervallo di IP. Assicurati che i numeri di porta 111 e 2049 siano aperti sul tuo firewall. Se stai usando ufw, puoi verificarlo eseguendo:

stato del server $ ufw

Prendi nota dell'IP del tuo server sulla LAN, usando il comando ifconfig o ip addr. Chiamiamolo server.ip

Montaggio lato cliente

Una volta creata la condivisione, puoi montarla sul tuo computer client, eseguendo il comando:

client $ mount -t nfs  server.ip:/tank/nfsshare /mnt

Questo monterà la condivisione NFS sulla cartella /mnt ma potresti aver scelto altrettanto facilmente qualsiasi altro punto di montaggio di tua scelta.

Conclusione

La condivisione dei file è probabilmente l'aspetto più importante dell'amministrazione del sistema. Migliora la tua comprensione dello stack di archiviazione, della rete, delle autorizzazioni e dei privilegi dell'utente. Ti renderai presto conto dell'importanza del Principio del Minimo Privilegio - Vale a dire, dare a un utente solo il minimo accesso possibile di cui ha bisogno al suo lavoro.

Imparerai anche l'interoperabilità tra diversi sistemi operativi. Gli utenti Windows possono accedere ai file NFS, così come gli utenti Mac e BSD. Non puoi limitarti a un sistema operativo quando hai a che fare con una rete di macchine tutte con le proprie convenzioni e vernacolo. Quindi vai avanti e sperimenta con la tua condivisione NFS. Spero che tu abbia imparato qualcosa.

Come cambiare i pulsanti sinistro e destro del mouse su PC Windows 10
È abbastanza normale che tutti i mouse dei computer siano progettati ergonomicamente per gli utenti destrimani. Ma sono disponibili dispositivi mouse ...
Emula i clic del mouse passando il mouse utilizzando il mouse senza clic in Windows 10
L'uso di un mouse o di una tastiera nella postura sbagliata di un uso eccessivo può causare molti problemi di salute, tra cui tensione, sindrome del t...
Aggiungi i gesti del mouse a Windows 10 utilizzando questi strumenti gratuiti
Negli ultimi anni computer e sistemi operativi si sono notevolmente evoluti greatly. C'è stato un tempo in cui gli utenti dovevano usare i comandi per...