Detalharei a criação do NFS Mount Point em um cliente do Windows 10 na parte 2 desta série. Por enquanto, vamos nos concentrar em um servidor Ubuntu, oferecendo armazenamento NFS e um cliente do Ubuntu tentando se conectar a ele.
A configuração
Meu servidor NFS será baseado no Ubuntu 18.04 LTS. Você pode usar sua distração Linux favorita ou FreeBSD, ou qualquer outro sistema operacional que suporta o OpenZFS. Meu motivo para usar o Ubuntu 18.04 é que é bastante popular e reduziria consideravelmente a barreira de entrada.
O NFS deve estar disponível apenas na minha LAN, que tem a máscara de sub -rede de 255.255.255.0 e 192.168.0.1 como seu gateway padrão. Em inglês simples, isso significa que todos os dispositivos conectados à minha rede doméstica (WiFi e Ethernet, et al) terão endereços IP que variam de 192.168.0.2 a 192.168.0.254.
O servidor NFS será configurado para permitir que apenas dispositivos com apenas o endereço IP mencionado tenha acesso ao servidor NFS. Isso garantiria que apenas dispositivos que se conectaram à minha LAN estejam acessando meus arquivos e o mundo exterior não pode acessar. Se você tiver uma configuração 'wifi aberto' ou se a segurança no ponto final do seu roteador for duvidosa, isso não garantiria nenhuma segurança.
Eu não recomendaria executar o NFS pela Internet pública sem medida de segurança adicional.
Por fim, os comandos que estão sendo executados no servidor NFS têm o prompt, o servidor $ e os comandos a serem executados no lado do cliente têm o cliente prompt $ $
Criação de pool e conjunto de dados OpenZFS
Se você já tem um zpool em funcionamento, pule esta etapa. No meu servidor NFS, que está executando o Ubuntu 18.04 LTS Server, eu instalei primeiro o OpenZFS.
Servidor $ sudo apt install zfsutils-linuxEm seguida, listaremos todos os dispositivos de bloco disponíveis, para ver os novos discos (e partições) esperando para serem formatados com ZFS.
$ lsblkUm exemplo típico é mostrado acima, mas sua convenção de nomenclatura pode ser muito diferente. Você terá que usar seu próprio julgamento e ter muito cuidado com isso. Você não quer formatar acidentalmente seu disco do sistema operacional. Por exemplo, a partição SDA1 claramente tem o sistema de arquivos raiz como seu ponto de montagem, para que não seja aconselhável tocá -lo. Se você está usando novos discos, é provável que eles não tenham um ponto de montagem ou qualquer tipo de partição.
Depois de saber o nome de seus dispositivos, usaremos o comando ZPOOL CREATE para formatar alguns desses dispositivos de bloco (chamados SDB e SDC) em um ZPool com um único VDev que é composto de dois disco espelhado.
Servidor $ sudo zpool crie espelho de tanque sdb sdcAvançando, você pode adicionar discos em conjuntos de dois (chamados vdev) para aumentar o tamanho deste zpool, os novos discos aparecerão como espelho-1, espelho-2 etc. Você não precisa criar seu zpool do jeito que eu fiz, pode usar o espelhamento com mais discos, você pode usar o striping sem redundância, mas melhor desempenho, ou pode usar Raidz. No final do dia, o que importa é que criamos um zpool chamado Tank. Sobre o qual o NFS compartilhado viverá. Vamos criar um conjunto de dados que será compartilhado. Primeiro, verifique se a piscina, chamada 'Tank', está montada. O ponto de montagem padrão é '/tanque' .
servidor $ sudo zfs tank de montagemDefinindo permissões
Ao compartilhar um diretório NFS, o superusuário no sistema de clientes não tem acesso a nada no compartilhamento. Enquanto o superusuário do lado do cliente é capaz de fazer qualquer coisa na máquina cliente, a montagem NFS tecnicamente não faz parte da máquina cliente. Portanto, permitir operações em nome do superusuário do lado do cliente mapeado como superusuário do lado do servidor pode resultar em problemas de segurança. Por padrão, o NFS mapeia as ações do superusuário do lado do cliente para ninguém: Nogroup User and User Group. Se você pretende acessar os arquivos montados como root, o conjunto de dados em nosso servidor NFS também deve ter as mesmas permissões,
Servidor $ sudo chown Ninguém: Nogroup /Tank /NfSshareO servidor NFS executará qualquer ação pela raiz do lado do cliente como usuário ninguém, então a permissão acima permitirá que as operações sejam.
Se você estiver usando um nome de usuário diferente (regular), muitas vezes é conveniente ter um usuário com o mesmo nome de usuário exato de ambos os lados.
Criando compartilhamento de NFS
Depois de criar o ZPOOL, você deve instalar o pacote de servidor NFS no seu gerenciador de pacotes:
Servidor $ sudo apt install nfs-kernel-serverTradicionalmente, o NFS Server Usa /etc /exporta o arquivo para obter como lista de clientes aprovados e os arquivos aos quais eles terão acesso. No entanto, usaremos o recurso embutido do ZFS para alcançar o mesmo.
Basta usar o comando:
Servidor $ sudo zfs define sharenfs = ”em” /tank /nfSshareAntes, aludi a dar apenas certo IPS o acesso. Você pode fazer isso como seguinte:
Servidor $ sudo zfs define sharenfs = "rw [email protected]/24 "Tank/NfSshareO 'RW' significa Permissões de leitura e gravação, e isso é seguido pela faixa de IPS. Certifique -se de que a porta número 111 e 2049 esteja aberta no seu firewall. Se você estiver usando o UFW, pode verificar isso em execução:
Servidor $ UFW StatusAnote o IP do seu servidor na LAN, usando o comando ifconfig ou ip addr. Vamos chamá -lo de servidor.IP
Montagem do lado do cliente
Depois que o compartilhamento for criado, você pode montá -lo em sua máquina cliente, executando o comando:
Cliente $ Mount -t NFS Server.ip:/tank/nfssshare/mntIsso montará a pasta NFS compartilhará na /MNT, mas você pode ter facilmente escolhido qualquer outro ponto de montagem de sua escolha.
O compartilhamento de arquivos é provavelmente o aspecto mais importante da administração do sistema. Está melhora sua compreensão da pilha de armazenamento, rede, permissões de usuário e privilégios. Você rapidamente perceberá a importância do princípio do menor privilégio - ou seja, apenas dê a um usuário o melhor acesso possível que ele precisa para o seu trabalho.
Você também aprenderá sobre a interoperabilidade entre diferentes sistemas operacionais. Os usuários do Windows podem acessar arquivos NFS, assim como os usuários de Mac e BSD. Você não pode se restringir a um sistema operacional ao lidar com uma rede de máquinas, todas com suas próprias convenções e vernáculos. Então vá em frente e experimente seu compartilhamento de NFS. Espero que você tenha aprendido algo.