Pesquisa de site

Como criar um volume VDO em um dispositivo de armazenamento no RHEL 8


Introduzido pela RedHat no RHEL 7.5 e versões posteriores, VDO, abreviação de Virtual Date Optimizer, é uma tecnologia de virtualização de blocos que fornece desduplicação em linha e compactação de dados em nível de dispositivo de bloco.

A ideia da desduplicação é bastante simples: remover cópias de dados duplicados e ficar apenas com uma cópia. Quando um arquivo idêntico é adicionado em um dispositivo de bloco, ele é marcado como duplicado e o arquivo original é referenciado. Ao fazer isso, o VDO ajuda a economizar espaço no volume de blocos.

Neste tutorial, você aprenderá como criar um volume VDO em um dispositivo de armazenamento no sistema RHEL 8.

Etapa 1: Instale o VDO no RHEL 8

Para começar, faça login em seu servidor e atualize seu RHEL usando o comando dnf.

sudo dnf update -y

Após a conclusão da atualização dos pacotes e do kernel, prossiga e instale os módulos e dependências do kernel VDO usando o comando.

sudo dnf install kmod-kvdo vdo
  • vdo – Este é um conjunto de ferramentas de gerenciamento para Virtual Data Optimizer.
  • kmod-kvdo – Este é um grupo de módulos de kernel para Virtual Data Optimizer.

Após a instalação bem-sucedida, inicie, ative e verifique o daemon vdo.

sudo systemctl start vdo
sudo systemctl enable vdo
sudo systemctl status vdo

Etapa 2: Crie um volume VDO no RHEL 8

Antes de criar um volume vdo, certifique-se de ter um disco rígido adicional em seu sistema. Neste tutorial, anexamos um volume adicional xvdb . Isso pode ser demonstrado executando o comando lsblk abaixo.

lsblk

Na saída, você pode ver claramente que o segundo disco tem capacidade de 100 GB.

Agora, criaremos um volume VDO vazio no disco /dev/xvdb.

sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

Você encontrará o erro mostrado.

Este é um bug comum e a solução alternativa é simplesmente reiniciar o servidor.

sudo reboot

Na segunda tentativa, o comando será executado, criando um volume VDO vazio no dispositivo /dev/xvdb.

sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

Vamos analisar o comando e dar uma olhada na opção usada:

  • create – Inicia a criação do volume VDO.
  • –name=vdo1 – Isso dá ao volume um rótulo conhecido como vdo1. Sinta-se à vontade para atribuir qualquer nome de sua escolha.
  • –device=/dev/xvdb – A opção de dispositivo especifica o disco no qual o volume será criado.
  • –vdoLogicalSize=300G – Indica a capacidade de volume efetiva a ser usada pelo sistema operacional, neste caso, 300G.

Etapa 3: sondando o novo volume VDO

O novo volume VDO foi criado em /dev/mapper/vdo1 seguindo a saída que vimos na etapa anterior. Podemos usar o comando ls conforme mostrado para investigar permissões e propriedade de arquivos.

ls -l /dev/mapper/vdo1

Para obter informações mais detalhadas, use o comando vdostats para recuperar estatísticas sobre o tamanho e o uso do volume.

vdostats --hu

O sinalizador --hu exibe as informações em um formato legível por humanos, ou seja, um formato que é muito mais fácil de ler e decifrar com facilidade. Podemos visualizar atributos como o nome do dispositivo, o tamanho do disco adicional, o espaço usado e o espaço disponível como o uso de %.

Observe atentamente que a economia de % está indicada como Não Aplicável (N/A).

Além disso, observe que já temos algum uso de volume 4.1G, o que se traduz em 4%, mas ainda não escrevemos nada sobre o volume. Por que é que? Isso ocorre porque a desduplicação universal já foi gravada no disco e é o que torna possível a desduplicação.

O comando vdostats pode ser usado com o sinalizador --verbose para recuperar informações mais detalhadas, conforme mostrado:

sudo vdostats --verbose /dev/mapper/vdo1 | grep -B6 ‘saving percent’

O que você pode ver são basicamente os mesmos dados do exemplo anterior, mas em um formato diferente.

Etapa 4: particionar o volume VDO

Depois de obter insights suficientes do volume, precisamos particioná-lo e posteriormente criar um sistema de arquivos para que possa ser usado como um disco normal.

Vamos criar um volume físico e um grupo de volumes conforme mostrado, execute os seguintes comandos.

sudo pvcreate /dev/mapper/vdo1
sudo vgcreate vdo1vg /dev/mapper/vdo1

Para exibir as estatísticas da execução do grupo de volumes:

sudo vgdisplay vdo1vg

Agora, criaremos 2 volumes lógicos de tamanhos iguais, cada um com capacidade de 50G.

sudo lvcreate -n vdo1v01 -L 50G vdo1vg
sudo lvcreate -n vdo1v02 -L 50G vdo1vg

Posteriormente, você poderá visualizar as estatísticas dos volumes recém-criados executando o comando.

sudo lvs

Etapa 4: formatação e montagem de sistemas de arquivos

Normalmente, quando um sistema de arquivos é criado, uma operação de corte é realizada no dispositivo. Isto é indesejável no caso do VDO. Ao formatar usando o comando mkfs, use a opção -K para instruir o comando a não descartar blocos durante a criação do sistema de arquivos.

sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v01
sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v02

Se você estiver usando o sistema de arquivos EXT$, use a opção “-E nodiscard”.

Crie os pontos de montagem para montar os volumes:

sudo mkdir /data/v01
sudo mkdir /data/v02

Agora monte os sistemas de arquivos em seus pontos de montagem conforme mostrado.

sudo mount -o discard /dev/vdo1vg/vdo1v01  /data/v01
sudo mount -o discard /dev/vdo1vg/vdo1v02  /data/v02

Agora, ao inspecionar o volume VDO, você notará que a economia de % mudou para 99%, o que é bastante impressionante. Isso implica que a desduplicação está funcionando conforme o esperado.

sudo vdostats --hu

Você pode investigar mais detalhadamente usando o comando df -Th. Na seção inferior, você verá os sistemas de arquivos montados em /data/v01 e /data/v02 respectivamente.

df -hT

Neste tutorial, demonstramos como você pode criar um volume VDO a partir de um dispositivo de armazenamento adicional no RHEL 8. Posteriormente, demonstramos como você pode criar mais volumes e sistemas de arquivos a partir desses volumes.