chapéu vermelho

Como gerenciar armazenamento local em camadas com Stratis no RHEL 8

Como gerenciar armazenamento local em camadas com Stratis no RHEL 8
Stratis é uma solução de armazenamento de gerenciamento local pela equipe RedHat introduzida com RHEL 8 que permite aos administradores de sistema configurar recursos avançados de armazenamento, como:

  1. Gestão baseada em pool
  2. Provisionamento fino
  3. Instantâneos do sistema de arquivos
  4. Monitoramento

Stratisd é o daemon por trás do Stratis e ajuda a configurar os componentes de armazenamento no sistema de arquivos XFS e no subsistema de mapeamento de dispositivos. No momento, Stratis apoia Volumes lógicos LVM, Discos rígidos, SSDs, NVMe, e ISCIs dispositivos de armazenamento.

Agora, vamos dar uma olhada em alguns termos-chave básicos

  1. blockdev: Esta é uma terminologia que se refere a dispositivos de bloco.
  2. Piscina: Um pool pode ser composto por um ou vários dispositivos de bloco. O tamanho de um pool de stratis será equivalente à soma dos dispositivos de bloco que compõem o pool.
  3. Sistema de arquivo: Um sistema de arquivos é uma camada pouco provisionada cujo tamanho aumenta à medida que mais informações ou dados são adicionados. O tamanho de um sistema de arquivos é aumentado automaticamente pelo Stratis conforme os dados crescem quase até o tamanho do sistema de arquivos virtual.

Stratis é constituído por:

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

Instalando Stratis no RHEL 8

Tendo apresentado brevemente o Stratis, o que ele 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 para prosseguir com a instalação. Se tudo correu bem, você deve conseguir 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

Iniciando o serviço Stratis no RHEL 8

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

# systemctl enable --now stratisd

Em seguida, verifique o status do Stratis, executando o comando:

# systemctl status stratisd

A partir da saída acima, podemos observar que o Stratis está instalado e funcionando.

Criação de um pool Stratis

Antes de começar a criação de um pool Stratis, certifique-se de que os dispositivos de bloco em seu sistema tenham um mínimo de 1 GB. Além disso, esses dispositivos precisam ser desmontados e inativos. Além disso, o stratisd daemon 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 limpar a partição usando o comando:

# wipefs -a /

Criando um Stratis Pool 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  

Por exemplo, para criar uma piscina pool_1 do dispositivo de bloco  / dev / xvdb corre:

# stratis pool create pool_1 / dev / xvdb

Para listar o pool criado, execute:

# lista de pool de stratis

Na saída acima, podemos ver claramente que um novo pool, pool_1 foi criado.

Crie um Stratis Pool 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

Para criar um pool de / dev / xvdc e  / dev / xvdd execute o comando:

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

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

# lista de pool de stratis

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

A partir da saída acima, podemos notar claramente que pool_2 tem o dobro do tamanho de pool_1 porque compreende dois dispositivos de bloco, cada um com um volume físico de 10 GB.

Criação de um sistema de arquivos a partir de um pool

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

# stratis fs create  

Por exemplo, para criar um sistema de arquivos fs_1 a partir de pool_1 execute o comando:

# stratis fs criar pool_1 fs_1

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

fs_2 
& fs_3
# stratis fs criar pool_2 fs_2
# stratis fs criar pool_2 fs_3

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

lista # stratis fs

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

lista # stratis fs

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

# stratis fs list pool_1

Para pool_2, execute:

# stratis fs list pool_2

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

Neste ponto, executando o  lsblk comando produzirá uma saída semelhante a esta 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

Portanto, crie o primeiro ponto de montagem para o sistema de arquivos em pool_1

# mkdir / storage

Em seguida, monte o sistema de arquivos

# mount / Stratis / pool_1 / fs_1 / storage

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

# mkdir / database

Monte o sistema de arquivos:

# mount / stratis / pool_2 / fs_2 / database

E, finalmente, para o último sistema de arquivos:

# mkdir / backup

Monte o sistema de arquivos:

# mount / stratis / pool_2 / fs_3 / backup

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

# df -Th | grep stratis

Tornar 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

# echo "UUID = 9161da55-6c4b-4761-9da9-1b3999945964 / storage
xfs defaults 0 0 "| sudo tee -a / etc / fstab
# echo "UUID = ddfa4252-a9d6-4c10-8981-e7dbd56450ee / banco de dados
xfs defaults 0 0 "| sudo tee -a / etc / fstab
# echo "UUID = 512bc0b7-182e-46ed-9fbd-d5be4d055fcf / backup
xfs defaults 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 alterações tenham efeito no sistema, execute o comando:

# systemctl daemon-reload

Em seguida, monte todos os sistemas de arquivos

# mount -a

Adicionando um dispositivo de bloco a um pool Stratis

Para adicionar um dispositivo de 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 do  pool_1

# lista de pool de stratis

Como observado, o tamanho do pool_1 dobrou como resultado do dispositivo de bloqueio adicionado.

Criação de 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 do sistema de arquivos original. No entanto, um instantâneo pode ser modificado posteriormente e, daí em diante, existirão diferenças 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 outra réplica do sistema de arquivos.
  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âneo pode sobreviver ao sistema de arquivos original a partir do qual foi criado

Para criar um instantâneo, use a sintaxe:

# stratis fs instantâneo

Por exemplo, para criar um instantâneo chamado instantâneo_1 dentro 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:

# stratis lista de sistema de arquivos

Nesse caso, o comando será:

# stratis filesystem list 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 instantâneo Stratis recém-criado, emita o comando:

# stratis filesystem list pool_2

A partir da saída acima, podemos ver um instantâneo criado em pool_2 com uma etiqueta 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 para instantâneo_2 desmonte 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 instantâneo do sistema de arquivos
snapshot fs-mountpoint

O comando será:

# stratis filesystem snapshot pool_2 snapshot_2-2019-11-15 database

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

# mount / stratis / pool_2 / fs_2 / database

Removendo um instantâneo Stratis

Para remover um instantâneo Stratis, em primeiro lugar, desmonte o instantâneo.

# umount / snapshot_mountpoint

Para remover o instantâneo criado em pool_2, desmonte o ponto de montagem 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 no pool_2. Você notará que o instantâneo se foi.

# stratis filesystem list 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 dentro pool_1, primeiro desmonte-o conforme mostrado:

# umount / stratis / pool_1 / fs_1

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

# stratis filesystem destroy pool fs

Em nosso cenário, o comando será:

# stratis filesystem destroy pool_1 fs_1

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

# stratis filesystem list pool_1

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

Removendo uma piscina Stratis

Por último, vamos ver como você pode remover um pool Stratis.

Para remover um pool de stratis, você precisa desmontar e destruir quaisquer sistemas de arquivos e instantâneos no pool, como vimos nos subtópicos anteriores.

Uma vez que há um instantâneo restante no pool_1, vamos primeiro removê-lo removendo primeiro o ponto de montagem associado ao instantâneo

# umount / storage

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 destroy pool_1

Agora liste as piscinas disponíveis:

# lista de pool de stratis

Remover pool_2 , vamos primeiro listar os sistemas de arquivos

# stratis filesystem list pool_2

Desmonte e destrua os sistemas de arquivos como mostrado

# umount / stratis / pool_2 / fs_3
# stratis filesystem destroy pool_2 fs_3
# stratis filesystem destruir banco de dados pool_2

Em seguida, destrua o pool e liste os pools

# stratis pool destroy pool_2
# lista de pool de stratis

Perfeito ! todas as piscinas se foram agora. Nós 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 comentários são muito bem-vindos.

Referências:

  • https: // access.chapéu vermelho.com / documentation / en-us / red_hat_enterprise_linux / 8 / html / manage_file_systems / manage-layered-local-storage-with-stratis_managing-file-systems
  • https: // www.tecmint.com / install-stratis-to-manage-layered-local-storage-on-rhel /
Como capturar e transmitir sua sessão de jogo no Linux
No passado, jogar era considerado apenas um hobby, mas com o tempo a indústria de jogos viu um grande crescimento em termos de tecnologia e número de ...
Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...