Como gerenciar o armazenamento local em camadas com Stratis no Rhel 8

Como gerenciar o armazenamento local em camadas com Stratis no Rhel 8
Stratis é uma solução de armazenamento de gerenciamento local da equipe Redhat introduzida com o RHEL 8 que permite que os administradores do sistema configurem recursos de armazenamento avançado, como:
  1. Gerenciamento baseado em piscina
  2. Provisionamento fino
  3. Instantâneos do sistema de arquivos
  4. Monitoramento

Stratisd é o daemon por trás do Stratis e ajuda a configurar componentes de armazenamento no sistema de arquivos XFS e no subsistema de dispositivos-Mapper. No momento, o Stratis suporta Volumes lógicos LVM, Discos rígidos, SSDs, Nvme, e ISCIS dispositivos de armazenamento.

Agora, vamos mergulhar e olhar para alguns termos -chave básicos

  1. BlockDev: Esta é uma terminologia que se refere a bloquear dispositivos.
  2. Piscina: Uma piscina pode incluir um único ou vários dispositivos de bloco. O tamanho de uma piscina de Stratis será equivalente à soma dos dispositivos de bloco que compõem a piscina.
  3. Sistema de arquivo: Um sistema de arquivos é uma camada pouco provisionada cujo tamanho cresce à medida que mais informações ou dados são adicionados. O tamanho de um sistema de arquivos é dimensionado automaticamente por Stratis à medida que os dados crescem quase para o tamanho do sistema de arquivos virtual.

Stratis é constituído por:

  1. Daemon Stratisd: Um daemon que permite ao usuário gerenciar dispositivos de bloqueio.
  2. Stratis-cli: Um utilitário de linha de comando que vem com stratis.

Instalando Stratis no Rhel 8

Tendo introduzido brevemente o Stratis, o que faz e seus componentes, vamos agora instalar o Stratis no RHEL 8

Para instalar o Stratis no RHEL 8, faça login como usuário root e execute o comando:

# dnf install stratisd stratis-cli

Quando solicitado, digite Y a prosseguir com a instalação. Se tudo correr bem, você poderá obter a saída abaixo que confirma que tudo correu bem.

Para confirmar a instalação dos pacotes Stratis, execute o comando:

# rpm -q stratisd stratis -cli

Serviço de Stratis inicial no RHEL 8

Para iniciar o serviço Stratis, execute o comando:

# SystemCtl Habilable - -agora Stratisd

Em seguida, verifique o status de stratis, executando o comando:

# status systemctl stratisd

Da saída acima, podemos observar que o Stratis está em funcionamento.

Criando uma piscina de Stratis

Antes de começar com a criação de um pool de Stratis, verifique se os dispositivos de bloco em seu sistema têm um mínimo de 1 GB. Além disso, esses dispositivos precisam ser desmontados e ociosos. Além disso, o daemon stratisd precisa estar em execução. Em nossa configuração, existem 5 dispositivos de bloco além da partição primária:

  1. /dev/xvdb
  2. /dev/xvdc
  3. /dev/xvdd
  4. /dev/xvde
  5. /dev/xvdf

Você pode ter um vislumbre dos dispositivos de bloco existentes executando o comando:

# lsblk

Além disso, é crucial garantir que os dispositivos de bloco não tenham uma tabela de partição existente.

Confirme isso usando a sintaxe:

# blkid -p /

Por exemplo

# blkid -p /dev /xvdb

Nenhuma saída implica que nenhuma tabela de partição existe nos dispositivos de bloco. No entanto, caso exista uma tabela de partição em um dos dispositivos, você pode acabar com a partição usando o comando:

# wipefs -a /

Criando um pool de Stratis a partir de um dispositivo de bloco

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

# stratis pool crie

Por exemplo, para criar uma piscina Pool_1 Do dispositivo de bloco /dev/xvdb correr:

# stratis pool crie pool_1 /dev /xvdb

Para listar o pool criado, execute:

# Lista de stratis pool

Da saída acima, podemos ver claramente que um novo pool, Pool_1 foi criado.

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

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

# stratis pool crie

Para criar uma piscina de /dev/xvdc e /dev/xvdd Execute o comando:

# stratis pool crie pool_2/dev/xvdc/dev/xvdd/

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

# Lista de stratis pool

Neste ponto, você deve ter 2 piscinas: pool_1 e pool_2

A partir da saída acima, podemos observar claramente que Pool_2 tem o dobro do tamanho de Pool_1 porque compreende dois dispositivos de bloco, cada um dos quais tem um volume físico de 10 GB.

Criando um sistema de arquivos a partir de um pool

Em um dos pools Stratis criados anteriormente, você pode criar um sistema de arquivos usando a sintaxe abaixo:

# stratis fs crie

Por exemplo, para criar um sistema de arquivos fs_1 de Pool_1 executar o comando:

# stratis fs crie pool_1 fs_1

Além disso, você pode criar mais de 1 sistema de arquivos a partir de um pool. No segundo pool, criaremos 2 sistemas de arquivos:

fs_2
& fs_3
# stratis fs crie pool_2 fs_2
# stratis fs crie pool_2 fs_3

Agora, para exibir os novos sistemas de arquivos, execute:

# stratis fs list

Para listar os sistemas de arquivos em um determinado pool, use a sintaxe

# stratis fs list

Por exemplo, para visualizar os sistemas de arquivos existentes em pool_1, execute o comando:

# stratis fs list pool_1

Para piscina_2 executar:

# stratis fs list pool_2

Como esperado, temos 2 sistemas de arquivos no segundo pool.

Neste ponto, executando o LSBLK O comando produzirá saída semelhante ao abaixo:

Como montar um sistema de arquivos Stratis

Para acessar os sistemas de arquivos, precisamos, antes de tudo, montá -los. O primeiro passo será criar pontos de montagem para cada um dos sistemas de arquivos. Isso está resumido na tabela abaixo

Sistema de arquivo Ponto de montagem
fs_1 /armazenar
fs_2 /base de dados
fs_3 /cópia de segurança

Então, crie o primeiro ponto de montagem para o sistema de arquivos em Pool_1

# mkdir /armazenamento

Em seguida, monte o sistema de arquivos

# montagem /stratis /pool_1 /fs_1 /armazenamento

Para montar o segundo sistema de arquivos, siga o mesmo procedimento:

# mkdir /banco de dados

Monte o sistema de arquivos:

# montagem /stratis /pool_2 /fs_2 /banco de dados

E finalmente para o último sistema de arquivos:

# mkdir /backup

Monte o sistema de arquivos:

# montagem /stratis /pool_2 /fs_3 /backup

Você pode confirmar a existência dos pontos de montagem usando o comando:

# df -th | grep stratis

Torne os sistemas de arquivos Stratis persistentes

Os sistemas de arquivos que acabamos de criar não sobreviverão a uma reinicialização. Para torná -los persistentes, precisamos adicioná -los ao /etc/fstab arquivo.

Primeiro, vamos recuperar o UUID dos sistemas de arquivos, como mostrado

# blkid -p/stratis/pool_1/fs_1
# blkid -p/stratis/pool_2/fs_2
# blkid -p/stratis/pool_2/fs_3
# eco "uuid = 9161DA55-6C4B-4761-9DA9-1B3999945964 /armazenamento
XFS Padrões 0 0 "| sudo tee -a /etc /fstab
# eco "uuid = ddfa4252-a9d6-4c10-8981-e7dbd56450ee /banco de dados
XFS Padrões 0 0 "| sudo tee -a /etc /fstab
# eco "uuid = 512bc0b7-182e-46ed-9fbd-d5Be4d055fcf /backup
XFS Padrões 0 0 "| sudo tee -a /etc /fstab

Você pode confirmar a adição dos sistemas de arquivos ao /etc/fstab como mostrado:

Para que as mudanças entrem em vigor no efeito no sistema, execute o comando:

# Systemctl Daemon-Reload

Em seguida, monte todos os sistemas de arquivos

# Monte -a

Adicionando um dispositivo em bloco a um pool de Stratis

Para adicionar um dispositivo em bloco a um pool Stratis existente, execute o comando:

# stratis pool add-data

Por exemplo, para adicionar o volume do bloco /dev/xvde para Pool_1 Execute o comando:

# stratis pool add-data pool_1 /dev /xvde

Agora verifique o tamanho de Pool_1

# Lista de stratis pool

Como observado, o tamanho de Pool_1 dobrou como resultado do dispositivo de bloco adicionado.

Criando um instantâneo Stratis

Um sistema de arquivos Stratis é uma cópia exata ou réplica de outro sistema de arquivos Stratis. Ele contém o mesmo conteúdo que o sistema de arquivos original. No entanto, um instantâneo pode ser modificado posteriormente e as diferenças serão posteriormente entre o instantâneo e o sistema de arquivos original.

Aqui estão algumas coisas que você também deve saber:

  1. Um instantâneo de um sistema de arquivos é simplesmente outro sistema de arquivos de réplica.
  2. Você não precisa montar um sistema de arquivos para poder criar um instantâneo a partir dele.
  3. Um sistema de arquivos instantâneos pode sobreviver ao sistema de arquivos original de onde foi criado

Para criar um instantâneo, use a sintaxe:

# Stratis fs Snapshot

Por exemplo, para criar um instantâneo chamado snapshot_1 em Pool_1 execute o comando

# stratis fs snapshot pool_1 fs_1 snapshot_1

Isso levará cerca de 30 segundos.

Para confirmar a criação do instantâneo, execute:

# Lista de sistemas de arquivos Stratis

Nesse caso, o comando será:

# Lista de sistemas de arquivos Stratis Pool_1

Além disso, você pode adicionar o atributo de data (-$ (data +%y-%m-%d) para identificar facilmente quando o instantâneo foi criado. Vamos criar outro instantâneo usando o segundo pool.

# stratis fs snapshot pool_2 fs_2 snapshot_2-$ (data +%y-%m-%d)

Para listar o recém -criado Stratis Snapshot Issue o comando:

# Lista de sistemas de arquivos Stratis Pool_2

Da saída acima, podemos ver um instantâneo criado em pool_2 com uma tag de data.

Como reverter para um instantâneo anterior usando um sistema de arquivos

Para reverter para um instantâneo anterior usando um sistema de arquivos, você precisa primeiro desmontar e destruir o sistema de arquivos original.

# Umount /stratis //sistema de arquivo

Por exemplo, em pool_2 para reverter snapshot_2 desmontar o sistema de arquivos fs_2

# Umount/stratis/pool_2/fs_2

Em seguida, crie uma cópia do instantâneo do sistema de arquivos original

# Stratis FileSystem Snapshot
Snapshot FS-Mountpoint

O comando será:

# STRATIS FIOSSYSTEM Snapshot Pool_2 Snapshot_2-2019-11-15 Banco de dados

Finalmente, monte o instantâneo usando o ponto de montagem do sistema de arquivos

# montagem /stratis /pool_2 /fs_2 /banco de dados

Removendo um instantâneo Stratis

Para remover um instantâneo Stratis, antes de tudo, desmonte o instantâneo.

# Umount /snapshot_mountpoint

Para remover o instantâneo criado em pool_2, desmontar o MountPoint como mostrado

# Umount /banco de dados

Em seguida, prossiga e destrua o instantâneo:

# Stratis FileSystem Destroy

O comando será:

# Stratis Filesystem Destroy pool_2 snapshot_2-2019-11-15

Agora tente listar os sistemas de arquivos em pool_2. Você notará que o instantâneo agora se foi.

# Lista de sistemas de arquivos Stratis Pool_2

Removendo um sistema de arquivos Stratis

Para se livrar de um sistema de arquivos, primeiro desmonte o sistema de arquivos usando a sintaxe abaixo:

# Umount/Stratis/Pool/FileSystem

Por exemplo, para remover o sistema de arquivos fs_1 em Pool_1, Primeiro, desmonte -o como mostrado:

# Umount/stratis/pool_1/fs_1

Em seguida, destrua o sistema de arquivos usando a sintaxe abaixo:

# Stratis FilesSystem Destroy Pool FS

Em nosso cenário, o comando será:

# Stratis Filesystem Destroy pool_1 fs_1

Para confirmar que o sistema de arquivos foi removido com sucesso, execute o comando:

# Lista de sistemas de arquivos Stratis Pool_1

Como você pode observar, o sistema de arquivos não existe mais.

Removendo uma piscina de Stratis

Por fim, vamos ver como você pode remover uma piscina de Stratis.

Para remover um pool de Stratis, você precisa desmontar e destruir qualquer sistema de arquivos e instantâneos no pool, como vimos nos sub tópicos anteriores.

Como restam um instantâneo no pool_1, vamos removê -lo primeiro removendo o ponto de montagem associado ao instantâneo

# Umount /armazenamento

Em seguida, destrua o sistema de arquivos.

# Stratis Filesystem Destroy pool_1 snapshot_1

Com o instantâneo agora removido, remova Pool_1 usando o comando

# stratis pool destruir pool_1

Agora liste os pools disponíveis:

# Lista de stratis pool

Remover pool_2 , Vamos primeiro listar os sistemas de arquivos

# Lista de sistemas de arquivos Stratis Pool_2

Desmontar e destruir os sistemas de arquivos como mostrado

# Umount/stratis/pool_2/fs_3
# Stratis Filesystem Destroy pool_2 fs_3
# Stratis Filesystem Destroe Pool_2 Database

Em seguida, destrua a piscina e liste as piscinas

# stratis pool destruir pool_2
# Lista de stratis pool

Perfeito ! Todas as piscinas se foram agora. Voltamos para onde começamos ! Você pode confirmar mais uma vez listando os dispositivos de bloqueio usando o comando:

e como você pode usá -lo para gerenciar dispositivos de bloco, criar instantâneos, sistemas de arquivos e pools e removê -los também. Seus pensamentos e feedback são bem -vindos.