É assim que os instantâneos do LVM funcionam?

18
Estou tentando descobrir como os instantâneos do LVM funcionam para que eu possa implementá-lo no meu servidor de arquivos, mas estou tendo dificuldades em encontrar algo no google que explique como ele funciona, em vez de como usá-lo para um sistema de backup básico.

Pelo que li, acho que funciona mais ou menos assim:

  • Você tem um LVM com uma partição primária e muitos e muitos espaços livres não alocados que não estão na partição
  • Em seguida, você tira um instantâneo e o monta em um novo volume lógico. Os instantâneos devem ter alterações, portanto, esse primeiro instantâneo seria uma cópia inteira, correto?
  • Então, no dia seguinte, você tira outro instantâneo (o tamanho da partição deste não precisa ser tão grande) e o monta.
  • De alguma forma, o LVM monitora os instantâneos e não armazena bits inalterados no volume principal.
  • Então você decide que tem instantâneos suficientes e se livra do primeiro. Não tenho ideia de como isso funciona ou como isso afetaria o próximo instantâneo.

Alguém pode me corrigir onde estou errado. Na melhor das hipóteses, acho que não consigo encontrar nada no google.

vgdiplay

obu1:/home/jail/home/qps/backup/D# vgdisplay
  --- Volume group ---
  VG Name               fileserverLVM
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               931.51 GB
  PE Size               4.00 MB
  Total PE              238467
  Alloc PE / Size       238336 / 931.00 GB
  Free  PE / Size       131 / 524.00 MB
  VG UUID               qSGaG1-SQYO-D2bm-ohDf-d4eG-oGCY-4jOegU
    
por Malfist 15.07.2009 / 15:15

4 respostas

28

Não vamos dar uma olhada na seção de instantâneos do LVM-HOWTO ?

Os instantâneos LVM são sua solução básica de instantâneos "copy on write". O instantâneo não é nada mais do que pedir ao LVM para lhe dar um "ponteiro" para o estado atual do sistema de arquivos e escrever as alterações feitas após o instantâneo para uma área designada.

O LVM faz o instantâneo "ao vivo" dentro do grupo de volume que hospeda o volume sujeito ao instantâneo - não a outro volume. Sua declaração "... muitos e muitos espaço livre não alocado não é a partição" faz parecer que seu pensamento é que os instantâneos "vivem" fora do grupo de volume sujeito a instantâneo, e isso não é preciso. Seu grupo de volumes reside em uma partição do disco rígido, e o volume está sujeito a um instantâneo e a quaisquer shapshots que você tirou ao vivo nesse grupo de volumes.

A forma normal como os instantâneos do LVM são usados não é para armazenamento a longo prazo, mas para obter uma "imagem" consistente do sistema de arquivos, de modo que um backup possa ser feito. Depois que o backup é feito, o instantâneo é descartado.

Quando você cria um instantâneo LVM, designa uma quantidade de espaço para manter quaisquer alterações feitas enquanto o instantâneo estiver ativo. Se mais alterações forem feitas, o espaço designado para o instantâneo ficará inutilizado e deverá ser descartado. Você não quer deixar os snapshots por aí porque (a) eles vão encher e ficar inutilizáveis, e (b) o desempenho do sistema é impactado enquanto um snapshot está ativo - as coisas ficam mais lentas.

Editar:

O que os Serviços de Cópia de Sombra de Volume da Microsoft e os instantâneos de LVM não são muito diferentes. A solução da Microsoft é um pouco mais abrangente (como é tipicamente o caso da Microsoft - para melhor ou para pior, suas ferramentas e produtos geralmente procuram resolver problemas bastante grandes, em vez de se concentrar em uma coisa).

O VSS é uma solução mais abrangente que unifica o suporte a dispositivos de hardware que suportam instantâneos e instantâneos baseados em software em uma única API. Além disso, o VSS tem APIs para permitir que os aplicativos fiquem inativos por meio das APIs de snapshot, enquanto os snapshots do LVM se preocupam apenas com snapshots - qualquer aplicativo quiesce é o seu problema (colocando bancos de dados em estados "backup", etc.).

    
por 15.07.2009 / 15:31
27

Os instantâneos do LVM são um exemplo de solução de instantâneos de cópia na gravação, como Evan disse. Como isso funciona é um pouco diferente de Evan implícito, mas não por muito.

Quando você tem um volume LVM sem instantâneos, as gravações no volume acontecem conforme o esperado. Um bloco é alterado e é isso.

Assim que você cria um instantâneo, o LVM cria um pool de blocos. Esse pool também contém uma cópia completa dos metadados do LVM do volume. Quando as gravações acontecem no volume principal, como atualizar um inode, o bloco sendo sobrescrito é copiado para esse novo pool e o novo bloco é gravado no volume principal. Este é o 'copy-on-write'. Por causa disso, quanto mais dados forem alterados entre quando uma captura instantânea foi obtida e o estado atual do volume principal, mais espaço será consumido por esse conjunto de instantâneos.

Quando você monta a captura instantânea, os meta-dados gravados quando a captura instantânea foi obtida permitem o mapeamento de blocos do conjunto de instantâneos sobre blocos alterados no volume (ou instantâneo de nível superior). Dessa forma, quando um acesso chega para um bloco específico, o LVM sabe qual acesso de bloqueio. No que diz respeito ao sistema de arquivos nesse volume, não há instantâneos.

James apontou uma das falhas deste sistema. Quando você tem vários instantâneos do mesmo volume, toda vez que você escreve em um bloco no volume principal, é possível que você acione gravações em cada instantâneo. Isso ocorre porque cada captura instantânea mantém seu próprio conjunto de blocos alterados. Além disso, para árvores de snapshots longas, o acesso a um snapshot pode causar um pouco de computação no servidor para descobrir qual bloco exato precisa ser servido para um acesso.

Quando você descarta um instantâneo, o LVM apenas descarta o conjunto de instantâneos e atualiza a árvore de instantâneos conforme necessário. Se a captura instantânea eliminada fizer parte de uma árvore de instantâneos, alguns blocos serão copiados para a captura instantânea de nível inferior. Se for o instantâneo mais baixo (ou o único), o conjunto é descartado e a operação é muito rápida.

Alguns sistemas de arquivos oferecem snapshots no sistema de arquivos, o ZFS e o BTRFS são apenas dois dos mais conhecidos. Eles funcionam de maneira semelhante, embora o próprio sistema de arquivos gerencie o mapeamento alterado / inalterado. Esta é sem dúvida uma maneira melhor de fazer isso, já que você pode verificar a consistência de uma família de instantâneos inteira, o que é algo que você não pode fazer com o LVM direto.

    
por 15.07.2009 / 20:51
2

Você não especifica se está usando Linux ou HP-UX. No HP-UX, você cria um volume lógico e o monta como um instantâneo de outro volume lógico. No Linux, você cria um volume lógico como um volume de instantâneo.

A remoção de um instantâneo no HP-UX é feita pela desmontagem do volume; no Linux é feito usando lvremove para remover o volume lógico.

Em qualquer caso, as alterações são a única coisa que é armazenada no seu instantâneo. Quanto mais tempo o instantâneo permanecer disponível, mais alterações ele acumulará - e há a chance de que ele possa ser preenchido se não for dimensionado ou liberado adequadamente.

A velocidade de acesso ao disco em um volume de instantâneo é mais lenta do que seria para um volume normal; você deve levar isso em conta.

    
por 17.07.2009 / 02:42
1

Os instantâneos do LVM são ineficientes, quanto mais instantâneos houver, mais lento será o sistema.

Eu só suporte o xfs, já que é o que usamos e o xfs_freeze pode ser usado para interromper o novo acesso ao sistema de arquivos e criar uma imagem estável no disco.

Copiar em Escrita é usado para que o espaço do disco seja usado com eficiência.

Você criou um sistema de arquivos em um volume lógico que possui espaço extra para os instantâneos.

Este é um exemplo do FAQ

    
por 15.07.2009 / 15:30