Pesquisa de site

Como instalar Stratis para gerenciar armazenamento local em camadas no RHEL 8


Stratis é um dos novos recursos fornecidos com a distribuição do RHEL 8. Stratis é uma solução de gerenciamento de armazenamento local que se concentra na simplicidade e na usabilidade aprimorada, ao mesmo tempo que fornece acesso a recursos avançados de armazenamento. Ele usa o sistema de arquivos XFS e concede acesso a recursos avançados de armazenamento, como:

  • Provisionamento fino
  • Instantâneos do sistema de arquivos
  • Camadas
  • Gerenciamento baseado em pool
  • Monitoramento

Basicamente, Stratis é um pool de armazenamento criado a partir de um ou mais discos locais ou partições de disco. Stratis ajuda um administrador de sistema a configurar e gerenciar configurações de armazenamento complexas.

Antes de prosseguirmos, vamos dar uma olhada em alguns dos termos técnicos que você certamente encontrará à medida que avançamos:

  • pool: Um pool é composto por um ou mais dispositivos de bloco. O tamanho total do pool é igual à soma total dos dispositivos de bloco.
  • blockdev: Como você deve ter adivinhado, isso se refere a dispositivos de bloco, como partições de disco.
  • Sistema de arquivos: Um sistema de arquivos é uma camada finamente provisionada que não tem um tamanho total fixo. O tamanho real do sistema de arquivos aumenta à medida que os dados são adicionados. O Stratis aumenta automaticamente o tamanho do sistema de arquivos à medida que o tamanho dos dados se aproxima do tamanho virtual do sistema de arquivos.

Os dispositivos de bloco que você pode usar com Stratis incluem:

  1. Volumes Lógicos LVM
  2. LUCAS
  3. SSDs (unidades de estado sólido)
  4. Multicaminho do mapeador de dispositivos
  5. iSCSI
  6. HDDs (unidades de disco rígido)
  7. mdraid
  8. Dispositivos de armazenamento NVMe

Componentes de software do Stratis

Stratis fornece 2 utilitários de software:

  • Stratis-cli: Esta é a ferramenta de linha de comando que acompanha o Stratis.
  • Daemon Stratisd: Este é um daemon que cria e gerencia dispositivos de bloco e desempenha um papel no fornecimento de uma API DBUS.

Como instalar o Stratis no RHEL 8

Tendo visto o que é Stratis e definido algumas terminologias. Vamos agora instalar e configurar o Stratis na distribuição RHEL 8 (também funciona no CentOS 8).

Instale Stratis no RHEL 8

Vamos ver como você pode instalar o Stratis em seu sistema RHEL 8, faça login como usuário root e execute o comando.

dnf install stratisd stratis-cli

Para encontrar mais informações sobre os pacotes instalados, execute o comando.

rpm -qi stratisd stratis-cli

Após a instalação bem-sucedida do Stratis, inicie o serviço executando o comando.

systemctl enable --now stratisd

Para verificar o status do Stratis, execute o comando.

systemctl status stratisd

Crie um pool Stratis

Para criar um pool Stratis você precisa de dispositivos de bloco que não estejam em uso ou montados. Além disso, presume-se que o serviço Stratisd esteja instalado e funcionando. Além disso, os dispositivos de bloco que você usará precisam ter pelo menos 1 GB de tamanho.

Em nosso sistema RHEL 8, temos quatro dispositivos de bloco adicionais: /dev/xvdb, /dev/xvdc, /dev/ xvdd, /dev/xvde. Para exibir os dispositivos de bloco, execute o comando lsblk.

lsblk

Nenhum desses dispositivos de bloco deve ter uma tabela de partições. Você pode confirmar isso usando o comando.

blkid -p /dev/xvdb

Se você não obtiver saída, significa que seus dispositivos de bloco não possuem nenhuma tabela de partição residente neles. No entanto, caso exista uma tabela de partição, você pode apagá-la usando o comando:

wipefs -a /<device-path>

Crie um pool Stratis a partir de um dispositivo de bloco

Você pode criar um pool Stratis a partir de um dispositivo de bloco único usando a sintaxe.

stratis pool create <pool-name> <block-device>

Por exemplo, para criar um pool de /dev/xvdb execute o comando.

stratis pool create my_pool_1 /dev/xvdb

Para confirmar a execução do pool criado.

stratis pool list

Crie um pool Stratis a partir de vários dispositivos de bloco

Para criar um pool de vários dispositivos, use a sintaxe abaixo listando todos os dispositivos em uma linha.

stratis pool create <pool_name> device-1 device-2 device-n

Para criar um pool de /dev/xvdc, /dev/xvdd e /dev/xvde execute o comando.

stratis pool create my_pool_2 /dev/xvdc /dev/xvdd/ /dev/xvde

Mais uma vez, liste os pools disponíveis usando o comando.

stratis pool list

Neste ponto, você deve ter dois pools: my_pool_1 e my_pool_2.

Como você pode ver acima, o espaço no disco rígido ocupado pelo pool my_pool_2 é três vezes maior que o do primeiro pool que criamos a partir de apenas um dispositivo de bloco com memória de 10GB.

Crie um sistema de arquivos a partir de um pool

Depois de criar seu sistema de arquivos, você pode criar um sistema de arquivos a partir de um dos pools usando a sintaxe.

stratis fs create <poolname> <filesystemname>

Por exemplo, para criar filesystem-1 e filesystem-2 a partir de my_pool_1 e my_pool_2, respectivamente, execute os comandos:

stratis fs create my_pool_1 filesystem-1
stratis fs create my_pool_2 filesystem-2

Para visualizar os sistemas de arquivos recém-criados, execute o comando.

stratis fs list

Para restringir os resultados de um sistema de arquivos a um pool, execute o comando:

stratis fs list <poolname>

Por exemplo, para verificar o sistema de arquivos em my_pool_2 execute o comando.

stratis fs list my_pool_2

Agora, se você executar o comando lsblk, a saída deverá ser um pouco semelhante ao exemplo de saída abaixo.

lsblk

Montando um sistema de arquivos Stratis

Agora vamos montar os sistemas de arquivos existentes para acessá-los. Primeiro, crie os pontos de montagem.

Para o sistema de arquivos no primeiro pool, execute o comando:

mkdir /data
mount /stratis/my_pool_1/filesystem-1 /data

Para o segundo sistema de arquivos no segundo pool, execute o comando.

mkdir /block
mount /stratis/my_pool_2/filesystem-2 /block

Para verificar a existência dos pontos de montagem atuais, execute o comando df:

df -Th | grep  stratis

Perfeito! Podemos ver claramente que nossos pontos de montagem estão presentes.

Monte sistemas de arquivos Stratis persistentemente

Os pontos de montagem que acabamos de criar não podem sobreviver a uma reinicialização. Para torná-los persistentes, primeiro obtenha o UUID de cada um dos sistemas de arquivos:

blkid -p /stratis/my_pool_1/filesystem-1
blkid -p /stratis/my_pool_2/filesystem-2

Agora prossiga e copie as opções do UUID e do ponto de montagem para /etc/fstab conforme mostrado.

echo "UUID=c632dcf5-3e23-46c8-82b6-b06a4cc9d6a7 /data xfs defaults 0 0" | sudo tee -a /etc/fstab
echo "UUID=b485ce80-be18-4a06-8631-925132bbfd78 /block xfs defaults 0 0" | sudo tee -a /etc/fstab

Para o sistema registrar a nova configuração execute o comando:

systemctl daemon-reload

Para verificar se a configuração funciona conforme o esperado, monte os sistemas de arquivos.

mount /data
mount /block

Removendo um sistema de arquivos Stratis

Para remover um sistema de arquivos, primeiro você precisa desmontar o sistema de arquivos conforme mostrado.

umount /mount-point

Neste caso teremos.

umount /data

Para destruir o sistema de arquivos, use a sintaxe:

stratis filesystem destroy <poolname> <filesystem-name>

Então, teremos:

stratis filesystem destroy my_pool_1 filesystem-1

Para confirmar a remoção do sistema de arquivos, emita o comando.

stratis filesystem list my_pool_1

Na saída, podemos ver claramente que o sistema de arquivos associado a my_pool_1 foi excluído.

Adicionando um disco a um pool Stratis existente

Você pode adicionar um disco a um pool existente usando o comando:

stratis pool add-data <poolname> /<devicepath>

Por exemplo, para adicionar um disco adicional /dev/xvdf, em my_pool_1, execute o comando:

stratis pool add-data my_pool_1 /dev/xvdf

Observe que o tamanho de my_pool_1 dobrou de tamanho após adicionar o volume extra.

Crie instantâneos Stratis

Um instantâneo é uma leitura e gravação de uma cópia de um sistema de arquivos em um determinado momento.

Para criar um instantâneo, execute o comando:

stratis fs snapshot <poolname> <fsname> <snapshotname>

Neste caso o comando será:

stratis fs snapshot my_pool_2 filesystem-2 mysnapshot

Você pode anexar o atributo de dados -$ (data +%Y-%m-%d) ao instantâneo e adicionar a tag de data conforme mostrado na captura de tela abaixo.

Para verificar a criação do snapshot, execute o comando:

stratis filesystem list <poolname>

Neste caso o comando será:

stratis filesystem list my_pool_2

Revertendo para um instantâneo anterior usando um sistema de arquivos

Para reverter um sistema de arquivos Stratis para um snapshot criado anteriormente, primeiro desmonte e destrua o sistema de arquivos original.

umount /stratis/<poolname>/filesystem

Em nosso cenário, isso será.


umount /stratis/my_pool_2/filesystem-2

Em seguida, crie uma cópia do snapshot usando o sistema de arquivos original:

stratis filesystem snapshot <poolname> filesystem-snapshot filesystem

O comando será:

stratis filesystem snapshot my_pool_2 mysnapshot-2019-10-24 block

Finalmente, monte o instantâneo.

mount /stratis/my-pool/my-fs mount-point

Removendo um instantâneo do Stratis

Para remover o instantâneo, primeiro desmonte o instantâneo.

unmount /stratis/my_pool_2/mysnapshot-2019-10-24

Em seguida, prossiga e destrua o instantâneo:

stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24

Removendo uma piscina Stratis

Para remover um pool Stratis, siga as etapas simples abaixo.

1. Liste os sistemas de arquivos que existem no pool.

stratis filesystem list <poolname>

2. Em seguida, desmonte todos os sistemas de arquivos do pool.

umount /stratis//filesystem-1
umount /stratis//filesystem-2
umount /stratis//filesystem-3

3. Destrua os sistemas de arquivos.

stratis filesystem destroy <poolname> fs-1 fs-2

4. E então, livre-se da piscina.

stratis pool destroy poolname

Neste caso, a sintaxe será.

stratis pool destroy my_pool_2

Você pode verificar a lista de pools novamente.

stratis pool list

Finalmente, remova as entradas em /etc/fstab para os sistemas de arquivos.

Chegamos ao final do guia. Neste tutorial, esclarecemos como você pode instalar e usar o Stratis para gerenciar o armazenamento local em camadas no RHEL. Esperamos que você tenha achado útil. Experimente e conte-nos como foi.