Vous pouvez partager vos pools et systèmes de fichiers ZFS à l'aide du protocole de partage de fichiers NFS (Système de fichiers réseau) et y accéder à partir d'ordinateurs distants très facilement.
Dans cet article, je vais vous montrer comment partager les pools et les systèmes de fichiers ZFS à l'aide du service de partage de fichiers NFS et d'y accéder à partir d'ordinateurs distants. Alors, commençons.
Table des matières
Diagramme de réseau
Dans cet article, je configurerai un Ubuntu 20.04 ordinateur LTS (nom d'hôte: linuxhint, IP: 192.168.122.98) En tant que serveur NFS et configurer un Ubuntu 20.04 ordinateur LTS (nom d'hôte: NFS-CLIENT, IP: 192.168.122.203) En tant que client NFS. Ces deux ordinateurs sont dans le sous-réseau 192.168.122.0/24. Je vais configurer le serveur NFS d'une manière que seuls les ordinateurs / serveurs de ce sous-réseau pourront accéder au serveur NFS.
Figure 1: Serveur NFS et client connecté au sous-réseau réseau 192.168.122.0/24
Installation du serveur NFS
Vous devez avoir le package NFS Server installé sur l'ordinateur à partir de l'endroit où vous souhaitez partager vos pools / systèmes de fichiers ZFS via NFS.
Si vous utilisez Debian 10 ou Ubuntu 20.04 LTS, vous pouvez installer le package NFS Server sur votre ordinateur comme suit:
$ sudo apt install nfs-kernel-server -yUne fois le package NFS Server installé, le NFS-Server Le service SystemD devrait être actif.
$ sudo systemctl status nfs-server.serviceSi vous utilisez CentOS 8 / RHEL 8, lisez l'article comment configurer le serveur NFS sur CentOS 8 pour obtenir de l'aide sur l'installation du serveur NFS sur votre ordinateur.
Installation Client NFS
Vous devez avoir le package client NFS installé sur l'ordinateur à partir de l'endroit où vous allez accéder à vos pools / systèmes de fichiers ZFS via NFS.
Si vous utilisez Debian 10 ou Ubuntu 20.04 LTS, vous pouvez exécuter la commande suivante pour installer le package client NFS sur votre ordinateur:
$ sudo apt installer nfs-common -yCréation de pools et de systèmes de fichiers ZFS
Dans cette section, je vais créer une piscine ZFS piscine 1 Utilisation des périphériques de stockage vdb et VDC Dans la configuration du miroir.
$ sudo lsblk -e7 -dPour créer une nouvelle piscine ZFS piscine 1 Utilisation des périphériques de stockage vdb et VDC Dans la configuration du miroir, exécutez la commande suivante:
$ sudo zpool Create -f Pool1 Mirror VDB VDCUne nouvelle piscine ZFS piscine 1 devrait être créé et la piscine ZFS piscine 1 devrait être automatiquement monté dans le / piscine1 annuaire.
$ sudo zfsCréer un système de fichiers ZFS FS1 Dans la piscine ZFS piscine 1 comme suit:
$ sudo ZFS Créer Pool1 / FS1Un nouveau système de fichiers ZFS FS1 doit être créé et monté automatiquement dans le / pool1 / fs1 annuaire.
$ sudo zfsPartage des pools ZFS avec NFS
Pour partager la piscine ZFS piscine 1 via NFS, vous devez définir le sharenfs propriété de votre pool ZFS en conséquence.
Pour permettre à tout le monde sur le réseau de lire / écrire un accès au pool ZFS piscine 1, vous pouvez définir le sharenfs propriété de la piscine ZFS piscine 1 comme suit:
$ sudo ZFS Set sharenfs = "rw" pool1Ou,
$ sudo ZFS Set sharenfs = "rw = *" pool1Pour permettre à chaque ordinateur / serveur du sous-réseau réseau 192.168.122.0/24 lire / écrire un accès au pool ZFS piscine 1 seulement, vous pouvez définir le sharenfs propriété de la piscine ZFS piscine 1 comme suit:
$ sudo ZFS Set sharenfs = "rw = @ 192.168.122.0/24 "Pool1Pour autoriser uniquement l'ordinateur avec l'adresse IP 192.168.122.203 lire / écrire un accès au pool ZFS piscine 1, vous pouvez définir le sharenfs propriété de la piscine ZFS piscine 1 comme suit:
$ sudo ZFS Set sharenfs = "rw = 192.168.122.203 "Pool1Vous pouvez utiliser le côlon (:) symbole pour permettre l'accès à la piscine ZFS piscine 1 à partir de plusieurs sous-réseaux de réseau ou adresses IP également.
Par exemple, pour permettre aux sous-réseaux du réseau 192.168.122.0/24 et 192.168.132.0/24 lire / écrire un accès au pool ZFS piscine 1, vous pouvez définir le sharenfs propriété de la piscine ZFS piscine 1 comme suit:
$ sudo ZFS Set sharenfs = "rw = @ 192.168.122.0/24: @ 192.168.132.0/24 "Pool1De la même manière, pour autoriser uniquement les ordinateurs avec les adresses IP 192.168.122.203 et 192.168.122.233 lire / écrire un accès au pool ZFS piscine 1, vous pouvez définir le sharenfs propriété de la piscine ZFS piscine 1 comme suit:
$ sudo ZFS Set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "Pool1Vous pouvez vérifier si le sharenfs La propriété est correctement définie sur le pool ZFS piscine 1 comme suit:
$ sudo zfs obtient le pool Sharenfs1Partage de système de fichiers ZFS avec NFS
Pour partager le système de fichiers ZFS FS1 via NFS, vous devez définir le sharenfs propriété du système de fichiers ZFS en conséquence.
Pour permettre à tout le monde sur le réseau de lire / écrire un accès au système de fichiers ZFS FS1, vous pouvez définir le sharenfs propriété du système de fichiers ZFS FS1 comme suit:
$ sudo ZFS Set sharenfs = "rw" pool1 / fs1Ou,
$ sudo ZFS Set sharenfs = "rw = *" pool1 / fs1Pour permettre à chaque ordinateur / serveur du sous-réseau réseau 192.168.122.0/24 lire / écrire un accès au système de fichiers ZFS Pool1 / FS1, vous pouvez définir le sharenfs propriété du système de fichiers ZFS Pool1 / FS1 comme suit:
$ sudo ZFS Set sharenfs = "rw = @ 192.168.122.0/24 "Pool1 / FS1Pour autoriser uniquement l'ordinateur avec l'adresse IP 192.168.122.203 lire / écrire un accès au système de fichiers ZFS Pool1 / FS1, vous pouvez définir le sharenfs propriété du système de fichiers ZFS Pool1 / FS1 comme suit:
$ sudo ZFS Set sharenfs = "rw = 192.168.122.203 "Pool1 / FS1Vous pouvez utiliser le côlon (:) symbole pour permettre l'accès au système de fichiers ZFS FS1 à partir de plusieurs sous-réseaux de réseau ou adresses IP également.
Par exemple, pour permettre aux sous-réseaux du réseau 192.168.122.0/24 et 192.168.132.0/24 lire / écrire un accès au système de fichiers ZFS Pool1 / FS1, vous pouvez définir le sharenfs propriété du système de fichiers ZFS Pool1 / FS1 comme suit:
$ sudo ZFS Set sharenfs = "rw = @ 192.168.122.0/24: @ 192.168.132.0/24 "Pool1 / FS1De la même manière, pour autoriser uniquement les ordinateurs avec les adresses IP 192.168.122.203 et 192.168.122.233 lire / écrire un accès au système de fichiers ZFS Pool1 / FS1, vous pouvez définir le sharenfs propriété du système de fichiers ZFS Pool1 / FS1 comme suit:
$ sudo ZFS Set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "Pool1 / FS1Vous pouvez vérifier si le sharenfs la propriété est correctement définie sur le système de fichiers ZFS Pool1 / FS1 comme suit:
$ sudo zfs obtient les sharenfs pool1 / fs1Le montage NFS partage les pools et les systèmes de fichiers ZFS
Pour monter les pools et systèmes de fichiers ZFS que vous avez partagés via NFS sur votre ordinateur (client NFS), vous devez connaître l'adresse IP de votre serveur NFS.
Vous pouvez exécuter le 'nom d'hôte -i ' Commande sur votre serveur NFS pour trouver l'adresse IP de votre serveur NFS. Dans mon cas, l'adresse IP est 192.168.122.98.
$ hostname -iUne fois que vous connaissez l'adresse IP du serveur NFS, vous pouvez répertorier toutes les partages NFS disponibles à partir de votre ordinateur comme suit:
$ showmount -e 192.168.122.98Comme vous pouvez le voir, la piscine ZFS piscine 1 Et le système de fichiers ZFS FS1 sont répertoriés comme des actions NFS / piscine1 et / pool1 / fs1 respectivement.
Créer un répertoire / mnt / pool1 pour le montage de la part du NFS / piscine1 (Piscine ZFS piscine 1) comme suit:
$ sudo mkdir -v / mnt / pool1Vous pouvez monter le partage NFS / piscine1 (Piscine ZFS piscine 1) à partir du serveur NFS 192.168.122.98 sur le / mnt / pool1 Répertoire de votre ordinateur (client NFS) comme suit:
$ sudo Mount -T NFS 192.168.122.98: / pool1 / mnt / pool1Le partage NFS / piscine1 devrait être monté sur le / mnt / pool1 Répertoire de votre ordinateur (client NFS).
$ df -h / mnt / pool1De la même manière, créez un nouveau répertoire / mnt / fs1 pour le montage de la part du NFS / pool1 / fs1 (Système de fichiers ZFS FS1) comme suit:
$ sudo mkdir -v / mnt / fs1Monter le partage NFS / pool1 / fs1 (Système de fichiers ZFS FS1) à partir du serveur NFS 192.168.122.98 sur le / mnt / fs1 Répertoire de votre ordinateur (client NFS) comme suit:
$ sudo Mount -T NFS 192.168.122.98: / pool1 / fs1 / mnt / fs1Le partage NFS / pool1 / fs1 (Système de fichiers ZFS FS1) doit être monté sur le / mnt / fs1 Répertoire de votre ordinateur (client NFS).
$ df -h / mnt / fs1Montant automatiquement NFS partageant les pools et systèmes de fichiers ZFS
Vous pouvez monter les actions NFS / piscine1 (Piscine ZFS piscine 1) et / pool1 / fs1 (Système de fichiers ZFS FS1) sur votre ordinateur (client NFS) automatiquement au démarrage.
Pour ce faire, ouvrez le / etc / fstab fichier avec le nano Éditeur de texte comme suit:
$ sudo nano / etc / fstabAjouter les lignes suivantes à la fin du / etc / fstab déposer.
# Mount NFS ShareUne fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le / etc / fstab déposer.
Pour que les modifications prennent effet, redémarrez votre ordinateur (client NFS) comme suit:
$ sudo redémarrerLa prochaine fois que votre ordinateur (client NFS) bopsa, le NFS partage / piscine1 (Piscine ZFS piscine 1)et / pool1 / fs1 (Système de fichiers ZFS FS1) doit être monté dans le / mnt / pool1 et / mnt / fs1 répertoires respectivement.
$ df -h -t nfs4Autoriser les écritures aux pools et systèmes de fichiers NFS partagés NFS
Si vous essayez d'écrire aux actions NFS / piscine1 (Piscine ZFS piscine 1) ou / pool1 / fs1 (Système de fichiers ZFS FS1) De votre ordinateur (client NFS) dès maintenant, vous obtiendrez le Permission refusée Message comme indiqué dans la capture d'écran ci-dessous.
Pour résoudre ce problème, vous pouvez faire l'un des éléments suivants:
NOTE: NFS mappe l'IID (ID utilisateur) et GID (ID de groupe) des ordinateurs clients NFS avec l'UID et le GID du serveur NFS. Ainsi, si un utilisateur / groupe peut écrire à un partage NFS sur le serveur NFS, le même utilisateur / groupe avec le même UID / GID devrait également être en mesure d'écrire à ce partage NFS à partir de l'ordinateur client NFS.
Dans cette section, je vais vous montrer comment configurer les utilisateurs et groupes nécessaires sur le serveur NFS et les ordinateurs clients pour pouvoir écrire sur les partages NFS.
Sur le serveur NFS, créez un nouveau groupe NFS-Users et définir le GID (ID de groupe) du NFS-Users se regrouper 2000 comme suit:
$ sudo groupAdd - Users NFS de 2000Sur les ordinateurs clients NFS, créez un nouveau groupe NFS-Users et définir le GID (ID de groupe) du NFS-Users se regrouper 2000 aussi.
$ sudo groupAdd - Users NFS de 2000Sur le serveur NFS, modifiez le groupe du / piscine1 (Piscine ZFS piscine 1) et / pool1 / fs1 (Système de fichiers ZFS FS1) répertoires à NFS-Users comme suit:
$ sudo chgrp -rfv nfs-users / pool1Autoriser les autorisations de lecture et d'écriture du groupe pour le / piscine1 (Piscine ZFS piscine 1) et / pool1 / fs1 (Système de fichiers ZFS FS1) répertoires comme suit:
$ sudo chmod -rfv 0775 / pool1Le groupe du / piscine1 (Piscine ZFS piscine 1) et / pool1 / fs1 (Système de fichiers ZFS FS1) Les répertoires doivent être modifiés en NFS-Users et les autorisations de lecture / écriture de groupe doivent également être définies.
$ ls -lhd / pool1Pour que les modifications prennent effet, redémarrez le serveur NFS comme suit:
$ sudo redémarrerMaintenant, vous devez créer les comptes d'utilisateurs nécessaires sur vos ordinateurs clients NFS pour pouvoir écrire sur les partages NFS.
Créer un nouvel utilisateur Alex (disons) avec l'UID 5001 (afin qu'ils n'interfèrent pas avec les utilisateurs déjà disponibles dans le serveur NFS) et définissent le groupe principal de l'utilisateur pour NFS-Users comme suit:
$ sudo useradd -m -s / bin / bash -u 5001 -g nfs-users alexUn nouvel utilisateur Alex avec l'UID 5001 et groupe primaire NFS-Users (GID 2000) doit être créé sur l'ordinateur client NFS.
$ id AlexMaintenant, redémarrez l'ordinateur client NFS pour que les modifications prennent effet.
$ sudo redémarrerUne fois que l'ordinateur du client NFS est en train de botter, le NFS partage / piscine1 (Piscine ZFS piscine 1) et / pool1 / fs1 (Système de fichiers ZFS FS1) doit être monté.
$ df -h -t nfs4Les actions NFS / piscine1 (Piscine ZFS piscine 1) et / pool1 / fs1 (Système de fichiers ZFS FS1) devrait également avoir les autorisations de répertoire correctes.
$ ls -lhd / mnt / pool1Maintenant, connectez-vous en tant qu'utilisateur Alex sur l'ordinateur client NFS comme suit:
$ sudo su - AlexL'utilisateur Alex devrait être en mesure de créer des fichiers sur le partage NFS / piscine1 (Piscine ZFS piscine 1) et y accéder comme vous pouvez le voir dans la capture d'écran ci-dessous.
$ echo '[Pool1] Hello World'> / mnt / Pool1 / Hello.SMSL'utilisateur Alex devrait également être en mesure de créer des fichiers sur le partage NFS / pool1 / fs1 (Système de fichiers ZFS FS1) et y accéder comme vous pouvez le voir dans la capture d'écran ci-dessous.
$ echo '[fs1] bonjour world'> / mnt / fs1 / bonjour.SMSSur le serveur NFS, l'UID (ID utilisateur) des fichiers que l'utilisateur Alex créé à partir de l'ordinateur client NFS doit être 5001 Et le groupe devrait être NFS-Users Comme vous pouvez le voir dans la capture d'écran ci-dessous.
$ ls -lh / pool1Si vous souhaitez résoudre les UID en noms d'utilisateur sur votre serveur NFS, vous devez créer le même utilisateur avec le même UID (que vous l'avez créé sur l'ordinateur client NFS) sur le serveur NFS.
Pour un petit nombre d'utilisateurs, vous pouvez exécuter la même chose userAdd Commande sur le serveur NFS et les ordinateurs clients pour résoudre ce problème. Si vous devez gérer un grand nombre d'utilisateurs, alors ce sera beaucoup de travail pour le faire manuellement. Au lieu de cela, vous devez utiliser NIS (Network Information Server) ou LDAP (Protocole d'accès au répertoire léger) pour synchroniser automatiquement les utilisateurs entre votre serveur NFS et les ordinateurs clients NFS.
Pour obtenir de l'aide sur la configuration de NIS sur votre serveur NFS et vos ordinateurs clients, consultez les articles suivants:
Pour obtenir de l'aide sur la configuration de LDAP sur votre serveur NFS et vos ordinateurs clients, consultez les articles suivants:
Pools et systèmes de fichiers ZFS sans partage
Si vous voulez arrêter de partager la piscine ZFS piscine 1 vous devrez définir le sharenfs propriété de la piscine ZFS piscine 1 pour désactivé comme suit:
$ sudo ZFS Set Sharenfs = Off Pool1Le partage NFS doit être désactivé pour le pool ZFS piscine 1 Comme vous pouvez le voir dans la capture d'écran ci-dessous.
$ sudo zfs obtient le pool Sharenfs1De la même manière, vous pouvez arrêter de partager le système de fichiers ZFS FS1 en définissant le sharenfs propriété du système de fichiers ZFS FS1 pour désactivé comme suit:
$ sudo ZFS Set Sharenfs = Off Pool1 / FS1Le partage NFS doit être désactivé pour le système de fichiers ZFS FS1 Comme vous pouvez le voir dans la capture d'écran ci-dessous.
$ sudo zfs obtient les sharenfs pool1 / fs1Conclusion
Dans cet article, je vous ai montré comment partager les pools et les systèmes de fichiers ZFS et d'y accéder à distance à l'aide du protocole de partage de fichiers NFS. Je vous ai également montré comment monter automatiquement les pools / systèmes de fichiers ZFS que vous avez partagés avec NFS sur les ordinateurs clients NFS à l'heure du démarrage. Je vous ai montré comment gérer les autorisations d'accès aux actions NFS et permettre à l'écriture d'accès aux actions NFS des ordinateurs du client NFS également.
Les références
[1] Ubuntu ManPage: ZFS - Configure des systèmes de fichiers ZFS
[2] Systèmes de fichiers ZFS de partage et de non-partage - Oracle Solaris Administration: Systèmes de fichiers ZFS
[3] Synopsis - Pages de l'homme Section 1M: Commandes d'administration système
[4] NFSSEC MANPAGE SECTION 5 - Documentation Oracle Solaris
[5] Centos - NFS par défaut à 777 - défaut de serveur
[6] Chapitre 4. L'exportation de NFS partage Red Hat Enterprise Linux 8 | Portail client Red Hat