ZFS

Tutorial prático do ZFS DigitalOcean

Tutorial prático do ZFS DigitalOcean

OpenZFS: um guia prático usando DigitalOcean

Você deve ter ouvido várias vezes que o ZFS é um sistema de arquivos de nível corporativo feito para lidar com grandes quantidades de dados em matrizes complicadas. Naturalmente, isso faria qualquer recém-chegado pensar que não deveria (ou não poderia) se envolver com essa tecnologia.

Nada pode estar mais longe da verdade. ZFS é um dos poucos softwares que simplesmente funciona. Fora da caixa, sem qualquer ajuste fino, ele faz todas as coisas que anuncia - de verificações de integridade de dados à configuração de RAIDZ. Sim, existem opções de ajuste fino disponíveis e pode-se investigá-lo se houver necessidade. Mas para iniciantes, os padrões funcionam maravilhosamente bem.

A única limitação que você pode encontrar é a do hardware. Colocar vários discos em várias configurações significa que você tem muitos discos por aí para estar com! É aí que DigitalOcean (DO) vem para o resgate.

Observação: se você estiver familiarizado com DO e como configurar chaves SSH, pode pular direto para a parte ZFS da discussão. O que as próximas duas seções mostram é como configurar uma VM no DigitalOcean e conectar dispositivos de bloco a ela com

Introdução ao DigitalOcean

Simplificando, DigitalOcean é um provedor de serviços em nuvem onde você pode girar máquinas virtuais para seus aplicativos rodarem. Você obtém uma quantidade absurda de largura de banda e todo o armazenamento SSD para executar seus aplicativos. Ele é voltado para os desenvolvedores e não para os operadores, por isso a IU é muito mais simples e fácil de entender.

Além disso, eles cobram por hora, o que significa que você pode trabalhar em várias configurações do ZFS por algumas horas, excluir todas as VMs e armazenamento quando estiver satisfeito e sua conta não excederá alguns dólares.

Estaremos usando dois dos recursos do DigitalOcean para este tutorial:

  1. Gotas: Uma gota é a palavra deles para uma máquina virtual, executando um sistema operacional com um IP público estático. Nossa escolha de sistema operacional será Ubuntu 16.04 LTS.
  2. Armazenamento em Bloco: O armazenamento em bloco é semelhante a um disco conectado ao seu computador. Exceto, aqui você decide sobre o tamanho e o número de discos que deseja.

Inscreva-se no DigitalOcean se ainda não o fez.

Para fazer o login na sua máquina virtual, existem duas maneiras, uma é usar o console (para o qual a senha é enviada para você) ou você pode usar a opção de chave SSH.

Configuração SSH básica

MacOS e outros usuários UNIX que têm um terminal em sua área de trabalho podem usar isso para fazer SSH em seus droplets (o cliente SSH é instalado por padrão em quase todos os Unices) e o usuário Windows pode querer baixar Git Bash.

Quando estiver em seu terminal, digite os seguintes comandos:

$ mkdir -p ~ /.ssh
$ cd ~ /.ssh
$ ssh-keygen -y -f YourKeyName

Isso irá gerar dois arquivos em ~ /.ssh diretório, um chamado YourKeyName que você precisa manter seguro e privado o tempo todo. É a sua chave privada. Ele irá criptografar as mensagens antes de você enviá-las ao servidor e irá descriptografar as mensagens que o servidor enviar de volta. Como o nome sugere, a chave privada deve ser mantida em segredo o tempo todo.

Outro arquivo é criado com o nome YourKeyName.bar e esta é a sua chave pública que você fornecerá ao DigitalOcean ao criar o Droplet. Ele lida com criptografia e descriptografia de mensagens no servidor, assim como a chave privada faz em sua máquina local.

Criando sua primeira gota

Depois de se inscrever no DO, você está pronto para criar sua primeira gota.  Siga as etapas abaixo:

1. Clique no botão criar no canto superior direito e selecione Gotícula opção.

2. A próxima página permitirá que você decida sobre as especificações de sua gota. Estaremos usando Ubuntu.

3. Escolha o tamanho, mesmo a opção de US $ 5 / mês funciona para pequenos experimentos.

4. Escolha o data center mais próximo de você, para latências baixas. Você pode pular o resto das opções adicionais.

Nota: Não adicione nenhum volume agora. Nós os adicionaremos mais tarde por uma questão de clareza.

5. Clique em Novas chaves SSH e copie todo o conteúdo de YourKeyName.bar nele e dê um nome a ele. Agora é só clicar em Crio e sua gota está pronta para ir.

6. Obtenha o endereço IP de sua gota no painel.

7. Agora você pode fazer SSH, como usuário root, em seu Droplet, a partir de seu terminal usando o comando:

$ ssh root @ 138.68.97.47 -i ~ /.ssh / YourKeyName

Não copie o comando acima, pois o seu endereço IP será diferente. Se tudo funcionar bem, você receberá uma mensagem de boas-vindas em seu terminal e será conectado ao seu servidor remoto.

Adicionando Armazenamento em Bloco

Para obter a lista de dispositivos de armazenamento em bloco em sua VM, no terminal, use o comando:

$ lsblk

Você verá apenas um disco particionado em três dispositivos de bloco. Esta é a instalação do sistema operacional e não devemos fazer experiências com eles. Precisamos de mais dispositivos de armazenamento para isso.

Para isso acesse seu painel DigitalOcean e clique em Create botão como você fez na primeira etapa e escolha a opção de volume. Anexe-o à sua gota e dê-lhe um nome apropriado. Adicione três desses volumes, repetindo esta etapa mais duas vezes.

Agora, se você voltar ao seu terminal e digitar lsblk, você verá novas entradas para esta lista. Na captura de tela abaixo, há 3 novos discos que usaremos para testar o ZFS.

Como uma etapa final, antes de entrar no ZFS, você deve primeiro rotular seus discos no esquema GPT. O ZFS funciona melhor com o esquema GPT, mas o armazenamento em bloco adicionado aos droplets tem um rótulo MBR neles. O comando a seguir corrige o problema adicionando um rótulo GPT aos seus dispositivos de bloco recém-anexados.

$ sudo parted / dev / sda mklabel gpt

Nota: Ele não particiona o dispositivo de bloco, ele apenas usa o utilitário 'parted' para fornecer um ID Globalmente Único (GUID) para o dispositivo de bloco. GPT significa Tabela de Partição GUID e rastreia cada disco ou partição com um rótulo GPT nele.

Repita o mesmo para sdb e sdc.

Agora estamos prontos para começar a usar o OpenZFS com drives suficientes para experimentar diferentes arranjos.

Zpools e VDEVs

Para começar a criar seu primeiro Zpool. Você tem que entender o que é um dispositivo virtual e qual é sua finalidade.

Um dispositivo virtual (ou um Vdev) pode ser um único disco ou um agrupamento de discos que são expostos como um único dispositivo ao zpool. Por exemplo, os três dispositivos de 100 GB criados acima sda, sdb e sdc todos podem ser seus próprios vdev e você pode criar um zpool, chamado tanque, dele que terá a capacidade de armazenamento dos 3 discos combinados que é de 300 GB
Primeiro instale o ZFS para Ubuntu 16.04:

$ apt install zfs
$ zpool criar tanque sda ​​sdb sdc
tanque de status $ zpool

Seus dados são espalhados pelos três discos, de maneira uniforme, e se algum dos discos falhar, todos os seus dados serão perdidos. Como você pode ver acima, os discos são os próprios vdevs.

Mas você também pode criar um zpool onde os três discos se replicam, conhecido como espelhamento.

Primeiro destrua o pool criado anteriormente:

$ zpool destroy tank

Para criar um vdev espelhado, usaremos a palavra-chave espelho:

$ zpool criar espelho de tanque sda ​​sdb sdc

Agora, a quantidade total de armazenamento disponível é de apenas 100 GB (use zpool list para ver isso), mas agora podemos suportar até duas unidades de falha no vdev espelho-0.

Quando você ficar sem espaço e quiser adicionar mais armazenamento ao seu pool, terá que criar mais três volumes no DigitalOcean e repetir as etapas em Adicionando Armazenamento em Bloco faça isso com mais 3 dispositivos de bloco que aparecerão como vdev espelho 1. Você pode pular esta etapa por enquanto, apenas saiba que isso pode ser feito.

$ zpool adicionar espelho de tanque sde sdf sdg

Por último, existe a configuração raidz1 que pode ser usada para agrupar três ou mais discos em cada vdev e pode sobreviver à falha de 1 disco por vdev e dar um armazenamento total disponível de 200 GB.

$ zpool destroy tank
$ zpool criar tank raidz1 sda sdb sdc

Enquanto a lista zpool mostra a capacidade líquida do armazenamento bruto, lista zfs e df -h comandos mostram o armazenamento real disponível do zpool. Portanto, é sempre uma boa ideia verificar o armazenamento disponível usando lista zfs comando.

Estaremos usando isso para criar conjuntos de dados.

Conjuntos de dados e recuperação

Tradicionalmente, costumávamos montar sistemas de arquivos como / home, / usr e / temp em partições diferentes e quando ficamos sem espaço, tínhamos que adicionar links simbólicos para dispositivos de armazenamento extras adicionados ao sistema.

Com zpool add você pode adicionar discos ao mesmo pool e ele continua crescendo de acordo com sua necessidade. Você pode então criar conjuntos de dados, que é o termo zfs para um sistema de arquivos, como / usr / home e muitos outros que vivem no zpool e compartilham todo o armazenamento disponibilizado para eles.

Para criar um conjunto de dados zfs no pool tanque use o comando:

$ zfs criar tanque / conjunto de dados1
lista $ zfs

Como mencionado antes, um pool raidz1 pode resistir à falha de até um disco. Então vamos testar isso.

$ zpool offline tank sda

Agora o pool está offline, mas nem tudo está perdido. Podemos adicionar outro volume, sdd, usando DigitalOcean e dando a ele um rótulo gpt como antes.

Leitura adicional

Incentivamos você a experimentar o ZFS e seus vários recursos o quanto quiser, em seu tempo livre. Certifique-se de excluir todos os volumes e gotas, quando terminar, para evitar cobranças inesperadas no final do mês.

Você pode aprender mais sobre a terminologia ZFS aqui.

Os 10 melhores jogos para jogar no Ubuntu
A plataforma Windows tem sido uma das plataformas dominantes para jogos devido à grande porcentagem de jogos que estão sendo desenvolvidos hoje para o...
5 melhores jogos de arcade para Linux
Hoje em dia, os computadores são máquinas sérias usadas para jogos. Se você não pode obter a nova pontuação máxima, você saberá o que quero dizer. Nes...
Batalha por Wesnoth 1.13.6 Desenvolvimento lançado
Batalha por Wesnoth 1.13.6 lançado no mês passado, é o sexto lançamento de desenvolvimento no 1.13.série x e oferece uma série de melhorias, principal...