ZFS

Servidor NFS apoiado por OpenZFS Parte 1 - Criando um servidor

Servidor NFS apoiado por OpenZFS Parte 1 - Criando um servidor
Se você está familiarizado com o OpenZFS, sabe tudo sobre sua interface rica em recursos, arquitetura flexível, somas de verificação confiáveis ​​e mecanismos COW. Talvez você também queira na sua área de trabalho, mas não quer reformatar seus discos e partições existentes. Talvez você esteja usando o Windows 10, que ainda não oferece suporte a OpenZFS. Bem, nesta postagem do blog, irei discutir como você pode criar um Network File System, ou NFS, rodando em um servidor separado. Este dispositivo NFS pode então ser montado em sua estação de trabalho desktop. Desta forma, você pode ter a confiabilidade e robustez do ZFS com a facilidade de uso do seu sistema operacional de desktop favorito, uma vez que o NFS está disponível em todas as plataformas.

Vou detalhar a criação do ponto de montagem NFS em um cliente Windows 10 na Parte 2 desta série. Por enquanto, vamos nos concentrar em um servidor Ubuntu que oferece armazenamento NFS e um cliente Ubuntu tentando se conectar a ele.

A configuração

Meu servidor NFS será baseado no Ubuntu 18.04 LTS. Você pode usar sua distribuição Linux favorita ou FreeBSD, ou qualquer outro sistema operacional que suporte OpenZFS. Minha razão 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 linguagem simples, isso significa que todos os dispositivos conectados à minha rede doméstica (WiFi e Ethernet, et al) terão endereços IP variando 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 acima tenham acesso ao servidor NFS. Isso garantiria que apenas os dispositivos que se conectaram à minha LAN acessassem meus arquivos e o mundo externo não pudesse acessá-los. Se você tiver uma configuração de 'Wi-Fi aberto' ou se a segurança no endpoint do seu roteador for duvidosa, isso não garantiria qualquer segurança.

Eu não recomendaria executar NFS na Internet pública sem medidas de segurança adicionais.

Por último, os comandos que estão sendo executados no servidor NFS têm o prompt, server $ e os comandos a serem executados no lado do cliente têm o prompt client $

Criação de pool e conjunto de dados OpenZFS

1. Criando zpool

Se você já tem um zpool instalado e funcionando, pule esta etapa. No meu servidor NFS, que está executando o Ubuntu 18.04 Servidor LTS, primeiro instalo o OpenZFS.

servidor $ sudo apt install zfsutils-linux

A seguir iremos listar todos os dispositivos de bloco disponíveis, para ver os novos discos (e partições) esperando para serem formatados com zfs.

$ lsblk
NOME MAJ: MIN RM SIZE RO TYPE MOUNTPOINT
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
disco sda 8: 0 0 50G 0
├─sda1 8: 1 0 1M 0 parte
└─sda2 8: 2 0 50G 0 parte /
sdb 8:16 0 931G 0 disco
disco sdc 8:32 0 931G 0
sr0 11: 0 1 1024M 0 rom

Um exemplo típico é mostrado acima, mas sua convenção de nomenclatura pode ser totalmente diferente. Você terá que usar seu próprio julgamento e ter muito cuidado com isso. Você não quer formatar acidentalmente o disco do sistema operacional. Por exemplo, a partição sda1 claramente tem o sistema de arquivos raiz como seu ponto de montagem, portanto, não é aconselhável alterá-lo. Se você estiver usando novos discos, é provável que eles não tenham um ponto de montagem ou qualquer tipo de particionamento.

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 discos espelhados.

servidor $ sudo zpool criar espelho de tanque sdb sdc
server $ sudo zpool status tank
zpool status tank
piscina: tanque
estado: ONLINE
scan: nenhum solicitado
config:
NOME ESTADO LEIA ESCREVER CKSUM
tanque ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
erros: nenhum erro de dados conhecido

Seguindo em frente, você pode adicionar discos em conjuntos de dois (chamados vdev) para aumentar o tamanho deste zpool, os novos discos aparecerão como mirror-1, mirror-2 etc. Você não tem que criar seu zpool da maneira que eu fiz, você pode usar espelhamento com mais discos, pode usar striping sem redundância, mas com melhor desempenho, ou pode usar RAIDZ. Você pode aprender mais sobre isso aqui.

No final das contas, o que importa é que criamos um zpool chamado tank. No qual o NFS compartilhado viverá. Vamos criar um conjunto de dados que será compartilhado. Primeiro, certifique-se de que a piscina, chamada 'tanque', está montada. O ponto de montagem padrão é '/ tank' .

server $ sudo zfs mount tank
server $ sudo zfs create tank / nfsshare #criar um novo conjunto de dados no topo do pool

Definir permissões

Ao compartilhar um diretório NFS, o superusuário no sistema cliente não tem acesso a nada no compartilhamento. Embora o superusuário do lado do cliente seja 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: usuário nogroup e grupo de usuários. 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 / nfsshare

O servidor NFS irá executar qualquer ação do root do lado do cliente como usuário nobody, então a permissão acima irá permitir que as operações sejam realizadas.

Se você estiver usando um nome de usuário diferente (normal), geralmente é conveniente ter um usuário com o mesmo nome de usuário em ambos os lados.

Criação de compartilhamento NFS

Depois de criar o Zpool, você deve instalar o pacote do servidor nfs a partir do gerenciador de pacotes:

servidor $ sudo apt install nfs-kernel-server

Tradicionalmente, o servidor NFS usa o arquivo / etc / exports para obter uma lista de clientes aprovados e os arquivos aos quais eles terão acesso. No entanto, usaremos o recurso embutido do ZFS para obter o mesmo.

Basta usar o comando:

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

Anteriormente, eu aludi a dar acesso a apenas alguns IPs. Você pode fazer isso da seguinte maneira:

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

O 'rw' significa permissões de leitura e gravação, e é seguido pelo intervalo de IPs. Certifique-se de que os números das portas 111 e 2049 estejam abertos em seu firewall. Se estiver usando ufw, você pode verificar executando:

status do servidor $ ufw

Anote 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 é criado, você pode montá-lo em sua máquina cliente, executando o comando:

cliente $ mount -t servidor nfs.ip: / tank / nfsshare / mnt

Isto irá montar o compartilhamento NFS na pasta / mnt, mas você poderia facilmente ter escolhido qualquer outro ponto de montagem de sua escolha.

Conclusão

O compartilhamento de arquivos é provavelmente o aspecto mais importante da administração do sistema. Isso melhora sua compreensão da pilha de armazenamento, rede, permissões e privilégios do usuário. Você vai perceber rapidamente a importância do Princípio do Menor Privilégio - ou seja, apenas dê a um usuário o acesso mais básico possível de que ele precisa para seu trabalho.

Você também aprenderá sobre a interoperabilidade entre diferentes sistemas operacionais. Os usuários do Windows podem acessar os arquivos NFS, assim como os usuários do 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 linguagem. Então vá em frente e experimente seu compartilhamento NFS. Espero que você tenha aprendido algo.

WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...
O botão esquerdo do mouse não funciona no Windows 10
Se você estiver usando um mouse dedicado com seu laptop ou computador desktop, mas o o botão esquerdo do mouse não funciona no Windows 10/8/7 por algu...
O cursor pula ou se move aleatoriamente enquanto digita no Windows 10
Se você descobrir que o cursor do mouse pula ou se move por conta própria, de forma automática e aleatória ao digitar em um laptop ou computador com W...