Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 68. Configuração e gerenciamento de volumes lógicos

68.1. Volumes lógicos

O gerenciamento de volume cria uma camada de abstração sobre o armazenamento físico, permitindo criar volumes lógicos de armazenamento. Isto proporciona uma flexibilidade muito maior em diversas formas do que a utilização direta do armazenamento físico. Além disso, a configuração do armazenamento de hardware é escondida do software para que ele possa ser redimensionado e movido sem parar aplicações ou desmontar sistemas de arquivos. Isto pode reduzir os custos operacionais.

Os volumes lógicos oferecem as seguintes vantagens em relação ao uso direto do armazenamento físico:

  • Capacidade flexível

    Ao utilizar volumes lógicos, os sistemas de arquivo podem se estender por vários discos, já que é possível agregar discos e partições em um único volume lógico.

  • Piscinas de armazenamento redimensionáveis

    Você pode estender os volumes lógicos ou reduzir os volumes lógicos em tamanho com comandos de software simples, sem reformatar e reparticionar os dispositivos de disco subjacentes.

  • Relocalização de dados on-line

    Para implantar subsistemas de armazenamento mais novos, mais rápidos ou mais resilientes, você pode mover os dados enquanto seu sistema estiver ativo. Os dados podem ser rearranjados em discos enquanto os discos estiverem em uso. Por exemplo, você pode esvaziar um disco permutável a quente antes de removê-lo.

  • Nome conveniente do dispositivo

    Os volumes de armazenamento lógico podem ser gerenciados em grupos personalizados e definidos pelo usuário.

  • Tiras de disco

    Você pode criar um volume lógico que risca os dados em dois ou mais discos. Isto pode aumentar drasticamente a produção.

  • Espelhamento de volumes

    Os volumes lógicos proporcionam uma forma conveniente de configurar um espelho para seus dados.

  • Instantâneos de volume

    Usando volumes lógicos, você pode tirar instantâneos do dispositivo para backups consistentes ou para testar o efeito das mudanças sem afetar os dados reais.

  • Volumes finos

    Os volumes lógicos podem ser provisionados de forma fina. Isto permite criar volumes lógicos maiores do que as extensões disponíveis.

  • Volumes de cache

    Um volume lógico de cache usa um pequeno volume lógico que consiste em dispositivos de blocos rápidos (como unidades SSD) para melhorar o desempenho de um volume lógico maior e mais lento, armazenando os blocos freqüentemente usados no volume lógico menor e mais rápido.

68.1.1. Visão geral da arquitetura LVM

A unidade de armazenamento físico subjacente de um volume lógico LVM é um dispositivo de bloco, como uma partição ou disco inteiro. Este dispositivo é inicializado como um LVM physical volume (PV).

Para criar um volume lógico LVM, os volumes físicos são combinados em um volume group (VG). Isto cria um pool de espaço em disco a partir do qual os volumes lógicos LVM (LVs) podem ser alocados. Este processo é análogo à maneira pela qual os discos são divididos em partições. Um volume lógico é usado por sistemas de arquivos e aplicações (como bancos de dados).

Figura 68.1, “Componentes lógicos de volume LVM” mostra os componentes de um simples volume lógico LVM:

Figura 68.1. Componentes lógicos de volume LVM

LVM Logical Volume Components

68.1.2. Volumes físicos

A unidade de armazenamento físico subjacente de um volume lógico LVM é um dispositivo de bloco, como uma partição ou disco inteiro. Para usar o dispositivo para um volume lógico LVM, o dispositivo deve ser inicializado como um volume físico (PV). A inicialização de um dispositivo de bloco como volume físico coloca uma etiqueta perto do início do dispositivo.

Por padrão, a etiqueta da LVM é colocada no segundo setor de 512 bytes. Você pode sobrescrever este padrão colocando a etiqueta em qualquer um dos 4 primeiros setores ao criar o volume físico. Isto permite que os volumes LVM coexistam com outros usuários destes setores, se necessário.

Uma etiqueta LVM fornece a identificação correta e o pedido de um dispositivo físico, uma vez que os dispositivos podem surgir em qualquer ordem quando o sistema é inicializado. Uma etiqueta LVM permanece persistente em todas as reinicializações e em todo um cluster.

A etiqueta LVM identifica o dispositivo como um volume físico LVM. Ela contém um identificador aleatório único (o UUID) para o volume físico. Ele também armazena o tamanho do dispositivo de bloco em bytes, e registra onde os metadados do LVM serão armazenados no dispositivo.

Os metadados do LVM contêm os detalhes de configuração dos grupos de volume do LVM em seu sistema. Por padrão, uma cópia idêntica dos metadados é mantida em cada área de metadados em cada volume físico dentro do grupo de volume. Os metadados do LVM são pequenos e armazenados como ASCII.

Atualmente o LVM permite armazenar 0, 1 ou 2 cópias idênticas de seus metadados em cada volume físico. O padrão é 1 cópia. Uma vez configurado o número de cópias de metadados sobre o volume físico, não é possível alterar esse número posteriormente. A primeira cópia é armazenada no início do dispositivo, logo após a etiqueta. Se houver uma segunda cópia, ela é colocada no final do dispositivo. Se você acidentalmente sobrescrever a área no início do disco, escrevendo em um disco diferente do que você pretende, uma segunda cópia dos metadados no final do dispositivo lhe permitirá recuperar os metadados.

68.1.2.1. LVM layout de volume físico

Figura 68.2, “Layout do volume físico” mostra o layout de um volume físico LVM. A etiqueta LVM está no segundo setor, seguida da área de metadados, seguida do espaço utilizável no dispositivo.

Nota

No núcleo do Linux (e em todo este documento), os setores são considerados de 512 bytes de tamanho.

Figura 68.2. Layout do volume físico

LVM Physical Volume Layout

68.1.2.2. Partições múltiplas em um disco

O LVM permite a criação de volumes físicos a partir de partições de disco. A Red Hat recomenda que você crie uma única partição que cubra o disco inteiro para rotular como um volume físico LVM pelas seguintes razões:

  • Conveniência administrativa

    É mais fácil acompanhar o hardware em um sistema se cada disco real aparecer apenas uma vez. Isto se torna particularmente verdadeiro se um disco falhar. Além disso, vários volumes físicos em um único disco podem causar um aviso do kernel sobre tipos de partição desconhecidos na inicialização.

  • Desempenho de striping

    A LVM não pode dizer que dois volumes físicos estão no mesmo disco físico. Se você criar um volume lógico listrado quando dois volumes físicos estão no mesmo disco físico, as faixas podem estar em partições diferentes no mesmo disco. Isto resultaria em uma diminuição do desempenho em vez de um aumento.

Embora não seja recomendado, pode haver circunstâncias específicas quando for necessário dividir um disco em volumes físicos LVM separados. Por exemplo, em um sistema com poucos discos pode ser necessário mover dados em torno de partições quando você estiver migrando um sistema existente para volumes LVM. Além disso, se você tiver um disco muito grande e quiser ter mais de um grupo de volumes para fins administrativos, então é necessário particionar o disco. Se você tiver um disco com mais de uma partição e ambas as partições estiverem no mesmo grupo de volumes, tenha o cuidado de especificar quais partições devem ser incluídas em um volume lógico ao criar volumes listrados.

68.1.3. Grupos de volume

Os volumes físicos são combinados em grupos de volume (VGs). Isto cria um pool de espaço em disco a partir do qual os volumes lógicos podem ser alocados.

Dentro de um grupo de volume, o espaço em disco disponível para alocação é dividido em unidades de tamanho fixo chamadas extensões. Uma extensão é a menor unidade de espaço que pode ser alocada. Dentro de um volume físico, as extensões são chamadas de extensões físicas.

Um volume lógico é alocado em extensões lógicas do mesmo tamanho que as extensões físicas. O tamanho da extensão é, portanto, o mesmo para todos os volumes lógicos do grupo de volume. O grupo de volume mapeia os extensões lógicas em extensões físicas.

68.1.4. LVM volumes lógicos

Na LVM, um grupo de volumes é dividido em volumes lógicos. Um administrador pode aumentar ou diminuir os volumes lógicos sem destruir os dados, ao contrário das partições de disco padrão. Se os volumes físicos em um grupo de volumes estiverem em unidades separadas ou matrizes RAID, então os administradores também podem espalhar um volume lógico pelos dispositivos de armazenamento.

Você pode perder dados se encolher um volume lógico para uma capacidade menor do que os dados sobre o volume exigem. Para garantir a máxima flexibilidade, crie volumes lógicos para atender às suas necessidades atuais e deixe o excesso de capacidade de armazenamento sem alocação. Você pode estender com segurança os volumes lógicos para usar o espaço não alocado, dependendo de suas necessidades.

Importante

Nos servidores AMD, Intel, sistemas ARM e IBM Power Systems, o carregador de inicialização não consegue ler volumes LVM. Você deve fazer uma partição de disco padrão, não LVM, para sua partição /boot. No IBM Z, o carregador de inicialização zipl suporta /boot em volumes lógicos LVM com mapeamento linear. Por padrão, o processo de instalação sempre cria as partições / e swap dentro dos volumes LVM, com uma partição /boot separada em um volume físico.

As seções seguintes descrevem os diferentes tipos de volumes lógicos.

68.1.4.1. Volumes lineares

Um volume linear agrega espaço de um ou mais volumes físicos em um volume lógico. Por exemplo, se você tiver dois discos de 60GB, você pode criar um volume lógico de 120GB. O armazenamento físico é concatenado.

A criação de um volume linear atribui uma gama de extensões físicas a uma área de um volume lógico em ordem. Por exemplo, como mostrado em Figura 68.3, “Mapeamento de Extensão”, extensões lógicas de 1 a 99 poderiam mapear um volume físico e extensões lógicas de 100 a 198 poderiam mapear um segundo volume físico. Do ponto de vista da aplicação, há um dispositivo que tem 198 extensões em tamanho.

Figura 68.3. Mapeamento de Extensão

Mapping extents in a linear volume

Os volumes físicos que compõem um volume lógico não precisam ter o mesmo tamanho. Figura 68.4, “Volume linear com volumes físicos desiguais” mostra o grupo de volume VG1 com um tamanho de extensão física de 4MB. Este grupo de volume inclui 2 volumes físicos denominados PV1 e PV2. Os volumes físicos são divididos em unidades de 4MB, já que esse é o tamanho da extensão. Neste exemplo, PV1 tem 200 extensões em tamanho (800MB) e PV2 tem 100 extensões em tamanho (400MB). Pode-se criar um volume linear de qualquer tamanho entre 1 e 300 extensões (4MB a 1200MB). Neste exemplo, o volume linear denominado LV1 é de 300 extensões.

Figura 68.4. Volume linear com volumes físicos desiguais

Linear volume with unequal physical volumes

Você pode configurar mais de um volume lógico linear de qualquer tamanho que desejar do pool de extensões físicas. Figura 68.5, “Múltiplos volumes lógicos” mostra o mesmo grupo de volume que em Figura 68.4, “Volume linear com volumes físicos desiguais”, mas neste caso dois volumes lógicos foram esculpidos do grupo de volume: LV1, que é 250 extensões em tamanho (1000MB) e LV2 que é 50 extensões em tamanho (200MB).

Figura 68.5. Múltiplos volumes lógicos

Multiple logical volumes

68.1.4.2. Volumes lógicos listrados

Quando você escreve os dados em um volume lógico LVM, o sistema de arquivo estabelece os dados em todos os volumes físicos subjacentes. Você pode controlar a forma como os dados são escritos nos volumes físicos criando um volume lógico listrado. Para leituras e gravações sequenciais grandes, isto pode melhorar a eficiência da E/S dos dados.

A striping melhora o desempenho escrevendo dados para um número pré-determinado de volumes físicos de forma arredondada. Com a striping, as E/S podem ser feitas em paralelo. Em algumas situações, isto pode resultar em ganho de desempenho quase linear para cada volume físico adicional na listra.

A ilustração a seguir mostra os dados sendo listrados em três volumes físicos. Nesta figura:

  • a primeira faixa de dados é escrita no primeiro volume físico
  • a segunda faixa de dados é escrita para o segundo volume físico
  • a terceira faixa de dados é escrita para o terceiro volume físico
  • a quarta faixa de dados é escrita no primeiro volume físico

Em um volume lógico listrado, o tamanho da listra não pode exceder o tamanho de uma extensão.

Figura 68.6. Dados de striping em três PVs

Striping data across three physical volumes

Os volumes lógicos listrados podem ser estendidos concatenando outro conjunto de dispositivos no final do primeiro conjunto. Para estender um volume lógico listrado, entretanto, deve haver espaço livre suficiente no conjunto de volumes físicos subjacentes que compõem o grupo de volume para suportar a listra. Por exemplo, se você tiver uma faixa de duas vias que utiliza um grupo de volume inteiro, adicionar um único volume físico ao grupo de volume não lhe permitirá estender a faixa. Ao invés disso, você deve adicionar pelo menos dois volumes físicos ao grupo de volume.

68.1.4.3. Volumes lógicos RAID

O LVM suporta níveis RAID 0, 1, 4, 5, 6, e 10.

Um volume LVM RAID tem as seguintes características:

  • Os volumes lógicos RAID criados e gerenciados pela LVM alavancam os drivers de kernel de múltiplos dispositivos (MD).
  • Você pode dividir temporariamente as imagens RAID1 da matriz e fundi-las novamente na matriz mais tarde.
  • Os volumes LVM RAID suportam snapshots.

Aglomerados

Os volumes lógicos RAID não são sensíveis a aglomerações.

Embora você possa criar e ativar volumes lógicos RAID exclusivamente em uma máquina, você não pode ativá-los simultaneamente em mais de uma máquina.

Subvolumes

Quando você cria um volume lógico RAID, o LVM cria um subvolume de metadados que é uma extensão em tamanho para cada dado ou subvolume de paridade na matriz.

Por exemplo, a criação de uma matriz RAID1 de duas vias resulta em dois subvolumes de metadados (lv_rmeta_0 e lv_rmeta_1) e dois subvolumes de dados (lv_rimage_0 e lv_rimage_1). Da mesma forma, criar uma faixa de 3 vias (mais 1 dispositivo de paridade implícita) RAID4 resulta em 4 subvolumes de metadados (lv_rmeta_0, lv_rmeta_1, lv_rmeta_2, e lv_rmeta_3) e 4 subvolumes de dados (lv_rimage_0, lv_rimage_1, lv_rimage_2, e lv_rimage_3).

Integridade

Você pode perder dados quando um dispositivo RAID falha ou quando ocorre corrupção suave. A corrupção suave no armazenamento de dados implica que os dados recuperados de um dispositivo de armazenamento são diferentes dos dados gravados naquele dispositivo. A adição de integridade a um RAID LV ajuda a mitigar ou prevenir a corrupção suave. Para saber mais sobre corrupção branda e como adicionar integridade a um RAID LV, consulte Seção 68.7.6, “Usando integridade DM com RAID LV”.

68.1.4.4. Volumes lógicos de fornecimento fino (volumes finos)

Os volumes lógicos podem ser provisionados de forma fina. Isto permite criar volumes lógicos maiores do que as extensões disponíveis. Usando thin provisioning, você pode gerenciar um pool de armazenamento de espaço livre, conhecido como thin pool, que pode ser alocado a um número arbitrário de dispositivos quando necessário pelas aplicações. Você pode então criar dispositivos que podem ser vinculados ao thin pool para alocação posterior quando uma aplicação realmente escreve para o volume lógico. O thin pool pode ser expandido dinamicamente quando necessário para alocação econômica de espaço de armazenamento.

Nota

Os volumes finos não são suportados através dos nós em um cluster. O pool fino e todos os seus volumes finos devem ser ativados exclusivamente em um único nó de cluster.

Ao utilizar thin provisioning, um administrador de armazenamento pode comprometer excessivamente o armazenamento físico, muitas vezes evitando a necessidade de comprar armazenamento adicional. Por exemplo, se cada dez usuários solicitarem um sistema de arquivo de 100GB para sua aplicação, o administrador de armazenamento pode criar o que parece ser um sistema de arquivo de 100GB para cada usuário, mas que é apoiado por menos armazenamento real que é usado somente quando necessário. Ao utilizar thin provisioning, é importante que o administrador de armazenamento monitore o pool de armazenamento e acrescente mais capacidade se este começar a ficar cheio.

Para garantir que todo o espaço disponível possa ser utilizado, a LVM suporta o descarte de dados. Isto permite a reutilização do espaço que antes era utilizado por um arquivo descartado ou outro intervalo de blocos.

Os volumes finos fornecem suporte para uma nova implementação de volumes lógicos de cópia-em-escrita (COW), que permitem que muitos dispositivos virtuais compartilhem os mesmos dados no pool fino.

68.1.4.5. Volumes instantâneos

O recurso LVM snapshot oferece a capacidade de criar imagens virtuais de um dispositivo em um determinado instante sem causar uma interrupção do serviço. Quando uma mudança é feita no dispositivo original (a origem) após uma foto, o recurso de foto faz uma cópia da área de dados alterada como estava antes da mudança para que possa reconstruir o estado do dispositivo.

Nota

A LVM apóia snapshots com pouco tempo de fornecimento.

Como um instantâneo copia apenas as áreas de dados que mudam depois que o instantâneo é criado, o recurso de instantâneo requer uma quantidade mínima de armazenamento. Por exemplo, com uma origem raramente atualizada, 3-5 % da capacidade da origem é suficiente para manter o instantâneo.

Nota

As cópias instantâneas de um sistema de arquivo são cópias virtuais, não um backup de mídia real para um sistema de arquivo. Os instantâneos não fornecem um substituto para um procedimento de backup.

O tamanho do instantâneo rege a quantidade de espaço reservado para armazenar as mudanças no volume de origem. Por exemplo, se você fizer um instantâneo e depois sobrescrever completamente a origem, o instantâneo teria que ser pelo menos tão grande quanto o volume de origem para segurar as mudanças. Você precisa dimensionar um instantâneo de acordo com o nível de mudança esperado. Assim, por exemplo, um instantâneo de curta duração de um volume mais lido, como /usr, precisaria de menos espaço do que um instantâneo de longa duração de um volume que vê um número maior de escritas, como /home.

Se um instantâneo estiver cheio, o instantâneo se torna inválido, uma vez que não pode mais rastrear as mudanças no volume de origem. Você deve monitorar regularmente o tamanho do instantâneo. Os instantâneos são totalmente redimensionáveis, porém, se você tiver a capacidade de armazenamento, poderá aumentar o tamanho do volume do instantâneo para evitar que ele caia. Por outro lado, se você achar que o volume da foto é maior do que você precisa, você pode reduzir o tamanho do volume para liberar espaço que é necessário para outros volumes lógicos.

Quando você cria um sistema de arquivo instantâneo, o acesso completo de leitura e escrita à origem permanece possível. Se um pedaço de um instantâneo for alterado, esse pedaço é marcado e nunca é copiado do volume original.

Há vários usos para o recurso de instantâneo:

  • Normalmente, um instantâneo é tirado quando é necessário fazer um backup em um volume lógico sem interromper o sistema ao vivo que está continuamente atualizando os dados.
  • Você pode executar o comando fsck em um sistema de arquivo instantâneo para verificar a integridade do sistema de arquivo e determinar se o sistema de arquivo original requer reparo do sistema de arquivo.
  • Como o instantâneo é lido/escrito, você pode testar aplicações contra os dados de produção tirando um instantâneo e executando testes contra o instantâneo, deixando os dados reais intocados.
  • Você pode criar volumes LVM para uso com a Virtualização da Red Hat. Snapshots LVM podem ser usados para criar snapshots de imagens de convidados virtuais. Estes snapshots podem fornecer uma maneira conveniente para modificar os convidados existentes ou criar novos convidados com o mínimo de armazenamento adicional.

Você pode usar a opção --merge do comando lvconvert para fundir um instantâneo em seu volume de origem. Um uso para este recurso é realizar o rollback do sistema se você tiver perdido dados ou arquivos ou se precisar restaurar seu sistema a um estado anterior. Após fundir o volume de snapshot, o volume lógico resultante terá o nome do volume de origem, número menor e UUID e o snapshot fundido é removido.

68.1.4.6. Volumes de fotos de última geração

O Red Hat Enterprise Linux fornece suporte para volumes de instantâneos pouco fornecidos. Os volumes de snapshot finos permitem que muitos dispositivos virtuais sejam armazenados no mesmo volume de dados. Isto simplifica a administração e permite o compartilhamento de dados entre os volumes de snapshot.

Como para todos os volumes de instantâneos LVM, assim como para todos os volumes finos, os volumes de instantâneos finos não são suportados em todos os nós de um cluster. O volume de instantâneos deve ser ativado exclusivamente em um único nó de cluster.

Os volumes finos proporcionam os seguintes benefícios:

  • Um volume fino de instantâneo pode reduzir o uso do disco quando há vários instantâneos com o mesmo volume de origem.
  • Se houver vários instantâneos da mesma origem, então uma gravação na origem fará com que uma operação COW preserve os dados. Aumentar o número de instantâneos da origem não deve resultar em uma grande desaceleração.
  • Os volumes finos podem ser usados como uma origem lógica de volume para outro instantâneo. Isto permite uma profundidade arbitrária de instantâneos recursivos (instantâneos de instantâneos de instantâneos de instantâneos...).
  • Um instantâneo de um volume lógico fino também cria um volume lógico fino. Isto não consome espaço de dados até que uma operação COW seja necessária, ou até que o próprio instantâneo seja escrito.
  • Um volume de instantâneo fino não precisa ser ativado com sua origem, portanto, um usuário pode ter apenas a origem ativa enquanto houver muitos volumes de instantâneos inativos da origem.
  • Quando você apaga a origem de um volume de imagens de origem, cada imagem desse volume de origem se torna um volume independente de imagens de origem. Isto significa que, ao invés de fundir um instantâneo com seu volume de origem, você pode optar por excluir o volume de origem e então criar um novo instantâneo com uma fina previsão usando esse volume independente como o volume de origem para o novo instantâneo.

Embora haja muitas vantagens no uso de volumes finos, há alguns casos de uso para os quais o recurso de volume de instantâneos LVM antigo pode ser mais apropriado às suas necessidades:

  • Não se pode mudar o tamanho de um pedaço de uma piscina fina. Se a piscina fina tiver um pedaço de tamanho grande (por exemplo, 1MB) e você precisar de uma foto de curta duração para a qual um pedaço de tamanho tão grande não seja eficiente, você pode optar por usar o recurso de foto mais antigo.
  • Não é possível limitar o tamanho de um volume fino; o instantâneo utilizará todo o espaço da piscina fina, se necessário. Isto pode não ser apropriado para suas necessidades.

Em geral, você deve considerar as exigências específicas de seu site ao decidir qual o formato de instantâneo a ser utilizado.

68.1.4.7. Volumes de Cache

LVM suporta o uso de dispositivos de blocos rápidos (como unidades SSD) como caches de gravação ou caches de gravação para dispositivos de blocos maiores e mais lentos. Os usuários podem criar volumes lógicos de cache para melhorar o desempenho de seus volumes lógicos existentes ou criar novos volumes lógicos de cache compostos de um dispositivo pequeno e rápido acoplado a um dispositivo grande e lento.