Você pode compartilhar seus pools e sistemas de arquivos ZFS usando o protocolo de compartilhamento de arquivos NFS (Sistema de Arquivos de Rede) e acessá-los a partir de computadores remotos com muita facilidade.
Neste artigo, vou mostrar como compartilhar pools e sistemas de arquivos ZFS usando o serviço de compartilhamento de arquivos NFS e acessá -los a partir de computadores remotos. Então vamos começar.
Índice
Diagrama de rede
Neste artigo, vou configurar um Ubuntu 20.04 LTS Computer (nome do host: Linuxhint, IP: 192.168.122.98) como um servidor NFS e configure um Ubuntu 20.04 LTS Computer (nome do host: NFS-Client, IP: 192.168.122.203) como um cliente NFS. Ambos os computadores estão na sub -rede 192.168.122.0/24. Vou configurar o servidor NFS de uma maneira que apenas computadores/servidores nesta sub -rede poderão acessar o servidor NFS.
Figura 1: Servidor NFS e cliente conectado à sub -rede 192 da rede.168.122.0/24
Instalando o servidor NFS
Você deve ter o pacote NFS Server instalado no computador de onde deseja compartilhar seus pools/sistemas de arquivos ZFS via NFS.
Se você está usando o Debian 10 ou Ubuntu 20.04 LTS, você pode instalar o pacote do servidor NFS no seu computador da seguinte forma:
$ sudo apt install nfs-kernel-server -yDepois que o pacote do servidor NFS estiver instalado, o NFS-Server O serviço Systemd deve ser ativo.
$ sudo status Systemctl nfs-server.serviçoSe você estiver usando o CentOS 8/RHEL 8, leia o artigo como configurar o NFS Server no CentOS 8 para obter assistência na instalação do servidor NFS no seu computador.
Instalação Cliente NFS
Você deve ter o pacote cliente NFS instalado no computador de onde você estará acessando seus pools/sistemas de arquivos ZFS via NFS.
Se você está usando o Debian 10 ou Ubuntu 20.04 LTS, você pode executar o seguinte comando para instalar o pacote cliente NFS no seu computador:
$ sudo apt install nfs -common -yCriação de pools ZFS e sistemas de arquivos
Nesta seção, vou criar um pool de ZFS Pool1 Usando os dispositivos de armazenamento vdb e VDC na configuração do espelho.
$ sudo lsblk -e7 -dPara criar um novo pool ZFS Pool1 Usando os dispositivos de armazenamento vdb e VDC Na configuração do espelho, execute o seguinte comando:
$ sudo zpool create -f pool1 espelho vdb vdcUma nova piscina do ZFS Pool1 deve ser criado e o pool ZFS Pool1 deve ser montado automaticamente no /pool1 diretório.
Lista de $ sudo zfsCrie um sistema de arquivos ZFS fs1 na piscina do ZFS Pool1 do seguinte modo:
$ sudo zfs crie pool1/fs1Um novo sistema de arquivos ZFS fs1 deve ser criado e montado automaticamente no /pool1/fs1 diretório.
Lista de $ sudo zfsCompartilhando Pools de ZFS com NFS
Para compartilhar o pool ZFS Pool1 via NFS, você deve definir o sharenfs propriedade do seu pool de ZFS de acordo.
Para permitir que todos na rede leiam/grava acesso ao pool do ZFS Pool1, você pode definir o sharenfs propriedade da piscina do ZFS Pool1 do seguinte modo:
$ sudo zfs set sharenfs = "rw" pool1Ou,
$ sudo zfs set sharenfs = "rw =*" pool1Para permitir todos os computador/servidor na sub -rede de rede 192.168.122.0/24 Leia/Escreva acesso ao pool ZFS Pool1 Só você pode definir o sharenfs propriedade da piscina do ZFS Pool1 do seguinte modo:
$ sudo zfs set sharenfs = "rw [email protected]/24 "Pool1Para permitir apenas o computador com o endereço IP 192.168.122.203 Leia/Escreva acesso ao pool ZFS Pool1, você pode definir o sharenfs propriedade da piscina do ZFS Pool1 do seguinte modo:
$ sudo zfs set sharenfs = "rw = 192.168.122.203 "Pool1Você pode usar o cólon (:) Símbolo para permitir o acesso ao pool ZFS Pool1 de várias sub -redes de rede ou endereços IP também.
Por exemplo, para permitir as sub -redes de rede 192.168.122.0/24 e 192.168.132.0/24 Leia/Escreva acesso ao pool ZFS Pool1, você pode definir o sharenfs propriedade da piscina do ZFS Pool1 do seguinte modo:
$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "Pool1Da mesma maneira, para permitir apenas os computadores com os endereços IP 192.168.122.203 e 192.168.122.233 Leia/Escreva acesso ao pool ZFS Pool1, você pode definir o sharenfs propriedade da piscina do ZFS Pool1 do seguinte modo:
$ sudo zfs set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "Pool1Você pode verificar se o sharenfs A propriedade está definida corretamente no pool ZFS Pool1 do seguinte modo:
$ sudo zfs get sharenfs pool1Compartilhando sistemas de arquivos ZFS com NFS
Para compartilhar o sistema de arquivos ZFS fs1 via NFS, você deve definir o sharenfs propriedade do sistema de arquivos ZFS de acordo.
Para permitir que todos na rede leiam/grava acesso ao sistema de arquivos ZFS fs1, você pode definir o sharenfs Propriedade do sistema de arquivos ZFS fs1 do seguinte modo:
$ sudo zfs set sharenfs = "rw" pool1/fs1Ou,
$ sudo zfs set sharenfs = "rw =*" pool1/fs1Para permitir todos os computador/servidor na sub -rede de rede 192.168.122.0/24 Leia/escreva acesso ao sistema de arquivos ZFS Pool1/FS1, você pode definir o sharenfs Propriedade do sistema de arquivos ZFS Pool1/FS1 do seguinte modo:
$ sudo zfs set sharenfs = "rw [email protected]/24 "Pool1/FS1Para permitir apenas o computador com o endereço IP 192.168.122.203 Leia/escreva acesso ao sistema de arquivos ZFS Pool1/FS1, você pode definir o sharenfs Propriedade do sistema de arquivos ZFS Pool1/FS1 do seguinte modo:
$ sudo zfs set sharenfs = "rw = 192.168.122.203 "Pool1/FS1Você pode usar o cólon (:) Símbolo para permitir o acesso ao sistema de arquivos ZFS fs1 de várias sub -redes de rede ou endereços IP também.
Por exemplo, para permitir as sub -redes de rede 192.168.122.0/24 e 192.168.132.0/24 Leia/escreva acesso ao sistema de arquivos ZFS Pool1/FS1, você pode definir o sharenfs Propriedade do sistema de arquivos ZFS Pool1/FS1 do seguinte modo:
$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "Pool1/FS1Da mesma maneira, para permitir apenas os computadores com os endereços IP 192.168.122.203 e 192.168.122.233 Leia/escreva acesso ao sistema de arquivos ZFS Pool1/FS1, você pode definir o sharenfs Propriedade do sistema de arquivos ZFS Pool1/FS1 do seguinte modo:
$ sudo zfs set sharenfs = "rw = 192.168.122.203: 192.168.122.233 "Pool1/FS1Você pode verificar se o sharenfs A propriedade está definida corretamente no sistema de arquivos ZFS Pool1/FS1 do seguinte modo:
$ sudo zfs get sharenfs pool1/fs1Montagem NFS compartilhou pools e sistemas de arquivos
Para montar os pools do ZFS e os sistemas de arquivos que você compartilhou via NFS no seu computador (cliente NFS), você precisa saber o endereço IP do seu servidor NFS.
Você pode executar o 'hostname -i ' Comando no seu servidor NFS para encontrar o endereço IP do seu servidor NFS. No meu caso, o endereço IP é 192.168.122.98.
$ hostname -iDepois de conhecer o endereço IP do servidor NFS, você pode listar todas as ações da NFS disponíveis do seu computador da seguinte forma:
$ showmount -e 192.168.122.98Como você pode ver, a piscina do ZFS Pool1 e o sistema de arquivos ZFS fs1 estão listados como ações da NFS /pool1 e /pool1/fs1 respectivamente.
Crie um diretório /mnt/pool1 Para montar o compartilhamento do NFS /pool1 (Pool ZFS Pool1) do seguinte modo:
$ sudo mkdir -v /mnt /pool1Você pode montar o compartilhamento de NFS /pool1 (Pool ZFS Pool1) do servidor NFS 192.168.122.98 no /mnt/pool1 Diretório do seu computador (cliente NFS) da seguinte forma:
$ sudo monte -t nfs 192.168.122.98:/pool1/mnt/pool1O NFS compartilha /pool1 deve ser montado no /mnt/pool1 Diretório do seu computador (cliente NFS).
$ df -h /mnt /pool1Da mesma maneira, crie um novo diretório /mnt/fs1 Para montar o compartilhamento do NFS /pool1/fs1 (ZFS FileSystem fs1) do seguinte modo:
$ sudo mkdir -v /mnt /fs1Mount the NFS Compartilhe /pool1/fs1 (ZFS FileSystem fs1) do servidor NFS 192.168.122.98 no /mnt/fs1 Diretório do seu computador (cliente NFS) da seguinte forma:
$ sudo monte -t nfs 192.168.122.98:/pool1/fs1/mnt/fs1O NFS compartilhou /pool1/fs1 (ZFS FileSystem fs1) deve ser montado no /mnt/fs1 Diretório do seu computador (cliente NFS).
$ df -h /mnt /fs1Montando automaticamente os pools e sistemas de arquivos compartilhados de NFS e sistemas de arquivos
Você pode montar as ações da NFS /pool1 (Pool ZFS Pool1) e /pool1/fs1 (ZFS FileSystem fs1) no seu computador (cliente NFS) automaticamente no tempo de inicialização.
Para fazer isso, abra o /etc/fstab arquivo com o Nano Editor de texto da seguinte forma:
$ sudo nano /etc /fstabAdicione as seguintes linhas no final do /etc/fstab arquivo.
# Mount NFS compartilhaDepois de terminar, pressione + X seguido pela Y e Para salvar o /etc/fstab arquivo.
Para que as alterações entrem em vigor, reinicie seu computador (cliente NFS) da seguinte forma:
$ sudo reiniciarNa próxima vez que as botas do seu computador (cliente NFS), o NFS compartilha /pool1 (Pool ZFS Pool1)e /pool1/fs1 (ZFS FileSystem fs1) deve ser montado no /mnt/pool1 e /mnt/fs1 diretórios respectivamente.
$ df -h -t nfs4Permitir gravações para os pools e sistemas de arquivos compartilhados da NFS
Se você tentar escrever para as ações da NFS /pool1 (Pool ZFS Pool1) ou /pool1/fs1 (ZFS FileSystem fs1) do seu computador (cliente NFS) agora, você receberá o Permissão negada mensagem como mostrado na captura de tela abaixo.
Para resolver esse problema, você pode fazer um dos seguintes:
OBSERVAÇÃO: NFS mapeia o UID (ID do usuário) e o GID (ID do grupo) dos computadores clientes da NFS com o UID e o GID do servidor NFS. Portanto, se um usuário/grupo puder gravar em um compartilhamento de NFS no servidor NFS, o mesmo usuário/grupo com o mesmo UID/GID também poderá ser capaz de escrever para que o NFS compartilhe no computador cliente NFS.
Nesta seção, vou mostrar como configurar os usuários e grupos necessários no servidor NFS e nos computadores clientes para poder escrever nos compartilhamentos da NFS.
No servidor NFS, crie um novo grupo NFS-Users e defina o GID (ID do grupo) do NFS-Users grupo para 2000 do seguinte modo:
$ sudo grupoNos computadores clientes da NFS, crie um novo grupo NFS-Users e defina o GID (ID do grupo) do NFS-Users grupo para 2000 também.
$ sudo grupoNo servidor NFS, altere o grupo do /pool1 (Pool ZFS Pool1) e /pool1/fs1 (ZFS FileSystem fs1) diretórios para NFS-Users do seguinte modo:
$ sudo chgrp -rfv nfs -users /pool1Permitir que o grupo leia e escreva permissões para o /pool1 (Pool ZFS Pool1) e /pool1/fs1 (ZFS FileSystem fs1) Diretórios da seguinte forma:
$ sudo chmod -rfv 0775 /pool1O grupo do /pool1 (Pool ZFS Pool1) e /pool1/fs1 (ZFS FileSystem fs1) Os diretórios devem ser alterados para NFS-Users e as permissões de leitura/gravação em grupo também devem ser definidas.
$ ls -lhd /pool1Para que as alterações entrem em vigor, reinicie o servidor NFS da seguinte forma:
$ sudo reiniciarAgora, você deve criar as contas de usuário necessárias nos computadores clientes da NFS para poder escrever para os compartilhamentos da NFS.
Crie um novo usuário Alex (digamos) com o UID 5001 (para que eles não interfiram nos usuários já disponíveis no servidor NFS) e defina o grupo principal do usuário como NFS-Users do seguinte modo:
$ sudo userAdd -m -s /bin /bash -u 5001 -g NFS -Users AlexUm novo usuário Alex com o UID 5001 e grupo primário NFS-Users (Gid 2000) deve ser criado no computador cliente NFS.
$ id alexAgora, reinicie o computador cliente da NFS para que as alterações tenham efeito.
$ sudo reiniciarUma vez que as botas de computador do cliente NFS, o NFS compartilha /pool1 (Pool ZFS Pool1) e /pool1/fs1 (ZFS FileSystem fs1) deve ser montado.
$ df -h -t nfs4Os compartilhamentos da NFS /pool1 (Pool ZFS Pool1) e /pool1/fs1 (ZFS FileSystem fs1) também deve ter as permissões de diretório corretas.
$ ls -lhd /mnt /pool1Agora, faça login como usuário Alex no computador cliente da NFS da seguinte maneira:
$ sudo su - AlexO usuário Alex deve ser capaz de criar arquivos no compartilhamento da NFS /pool1 (Pool ZFS Pool1) e acessá -los como você pode ver na captura de tela abaixo.
$ echo '[pool1] Olá mundo'>/mnt/pool1/olá.TXTO usuário Alex Também deve ser capaz de criar arquivos no compartilhamento da NFS /pool1/fs1 (ZFS FileSystem fs1) e acessá -los como você pode ver na captura de tela abaixo.
$ echo '[fs1] Olá mundo'>/mnt/fs1/hello.TXTNo servidor NFS, o UID (ID do usuário) dos arquivos que o usuário Alex criado a partir do computador cliente NFS deve ser 5001 e o grupo deve ser NFS-Users Como você pode ver na captura de tela abaixo.
$ ls -lh /pool1Se você deseja resolver os uids em nomes de usuário do seu servidor NFS, você deve criar o mesmo usuário com o mesmo UID (como você criou no computador cliente NFS) no servidor NFS.
Para um pequeno número de usuários, você pode executar o mesmo UserAdd Comando no servidor NFS e nos computadores clientes para resolver este problema. Se você precisar gerenciar um grande número de usuários, será muito trabalho fazer isso manualmente. Em vez disso, você deve usar o NIS (Network Information Server) ou LDAP (Lightweight Directory Access Protocol) para sincronizar automaticamente os usuários entre o servidor NFS e os computadores clientes da NFS.
Para obter assistência na configuração do NIS em seus computadores de servidor e cliente NFS, consulte os seguintes artigos:
Para obter assistência na configuração do LDAP em seus computadores de servidor e cliente NFS, consulte os seguintes artigos:
Pools de ZFS e sistemas de arquivos em não estar
Se você quiser parar de compartilhar o pool do ZFS Pool1 você terá que definir o sharenfs propriedade da piscina do ZFS Pool1 para desligado do seguinte modo:
$ sudo zfs set sharenfs = off pool1O compartilhamento de NFS deve ser desativado para o pool ZFS Pool1 Como você pode ver na captura de tela abaixo.
$ sudo zfs get sharenfs pool1Da mesma maneira, você pode parar de compartilhar o sistema de arquivos ZFS fs1 Definindo o sharenfs Propriedade do sistema de arquivos ZFS fs1 para desligado do seguinte modo:
$ sudo zfs set sharenfs = off pool1/fs1O compartilhamento de NFS deve ser desativado para o sistema de arquivos ZFS fs1 Como você pode ver na captura de tela abaixo.
$ sudo zfs get sharenfs pool1/fs1Conclusão
Neste artigo, mostrei como compartilhar pools e sistemas de arquivos ZFS e acessá-los remotamente usando o protocolo de compartilhamento de arquivos NFS. Eu também mostrei como montar automaticamente os pools/sistemas de arquivos ZFS que você compartilhou com o NFS nos computadores clientes da NFS no tempo de inicialização. Eu mostrei como gerenciar permissões de acesso para os compartilhamentos da NFS e permitir que você também tenha acesso às ações da NFS dos computadores clientes da NFS.
Referências
[1] Ubuntu Manpage: ZFS - Configura os sistemas de arquivos ZFS
[2] Compartilhamento e Netimento de Arquivos ZFS Sistemas - Administração Oracle Solaris: Sistemas de Arquivos ZFS
[3] Sinopse - Páginas Man Seção 1M: Comandos de Administração do Sistema
[4] NFSSEC MANPAGE SEÇÃO 5 - Documentação do Oracle Solaris
[5] CENTOS - NFS Padrão para 777 - Falha no servidor
[6] Capítulo 4. Exportação da NFS compartilha Red Hat Enterprise Linux 8 | Portal do cliente Red Hat