LVM e recuperação de desastres

11

Eu entendo o que LVM é e o que ele realiza, mas sinto que estou sentindo falta de algumas coisas.

Digamos que temos duas unidades físicas, sda e sdb. Ambos são 100 megas. Eu os coloco em VolumeGroup1 e crio um LogicalVolume1 de 200 meg.

O que aconteceria se eu criasse um arquivo de 150 meg? 100 megs seriam fisicamente em sda e 50 em sdb? Em caso afirmativo, o que diz ao sistema operacional que uma parte do arquivo está em uma unidade e outra parte está na outra?

E a falha da unidade? Assumindo que não há RAID, se sdb falhar, todos os dados em sda serão perdidos? Existe alguma maneira de controlar quais arquivos estão em quais drives físicos?

Como você geralmente gerencia o LVM? Você cria um ou dois grandes grupos de volume e faz partições, pois faz sentido? Alguma outra dica?

    
por Bob 25.06.2009 / 14:44

5 respostas

15

Lets say we have two physical drives, sda and sdb. Both are 100 Megs. I put them into VolumeGroup1 and create one 200 meg LogicalVolume1.
What would happen if I create a 150 meg file? Would 100 megs physically be on sda and 50 on sdb?

Correto (assumindo que o sistema de arquivos estava vazio antes do arquivo ser criado).

If so, what tells the OS that a piece of the file is on one drive, and another piece is on the other?

O LVM diz ao sistema operacional que existe um único disco de 200MB. A parte LVM do kernel (vem em duas partes, ferramentas de gerenciamento de espaço de usuário e drivers de kernel), então mapeará o que o sistema operacional vê em locais / blocos físicos nos discos.

What about drive failure? Assuming no RAID, if sdb fails, will all the data on sda be lost? Is there anyway to control what files are on what physical drives?

Sim, considere os dados perdidos.

Se você criar Volumes Lógicos menores, poderá usar o comando pvmove para movê-los de um disco para outro.

How do you generally manage LVM? Do you create one or two large Volume Groups then make partitions as it makes sense? Any other tips?

Eu costumo criar grandes grupos de volumes e, em seguida, criar volumes lógicos conforme necessário. Não há necessidade de alocar totalmente todo o espaço em um grupo de volumes; aloque quando for necessário. É fácil aumentar o tamanho de um Volume Lógico, e praticamente todos os sistemas de arquivos modernos podem ser facilmente desenvolvidos também.

    
por 25.06.2009 / 15:21
4

O elemento subjacente que permite que o LVM e o Software Raid no Linux funcionem é a parte do mapeador de dispositivos do kernel. Isso é o que abstrai os endereços de bloco dos dispositivos físicos para os dispositivos de bloco virtual que você está usando.

Ao usar o LVM como com qualquer coisa quando se trata de dados, você precisa estar ciente das repercussões da disponibilidade de dados. Isso não quer dizer que o LVM é perigoso, na verdade, quando as práticas apropriadas são usadas, o impacto sobre a disponibilidade é mínimo.

No cenário que você sugere em sua pergunta, a disponibilidade de seus dados seria a mesma de um RAID0, em que, se qualquer unidade falhar, isso resultaria em perda de dados.

Na prática, eu não usaria o LVM sem executá-lo em algum tipo de RAID. Eu usei o LVM em um servidor de arquivos de 30TB que tinha cerca de 20 volumes RAID5 de hardware em um VG. Mas se você tiver extensões livres suficientes, você pode usar o pvmove para migrar os dados de um ou mais PVs, caso ele comece a causar problemas.

Mas sempre tenha uma estratégia de backup que seja testada de tempos em tempos.

    
por 25.06.2009 / 15:30
3

Como você geralmente gerencia o LVM? Você cria um ou dois grandes grupos de volume e faz partições, já que faz sentido?

Minha estratégia geral é colocar em grupos de volumes separados os volumes físicos que possivelmente podem ser migrados (como um todo) para outro sistema.

Se você tiver armazenamento externo, é recomendável colocá-lo em um grupo de volumes separado. É fisicamente fácil desconectá-lo deste computador e conectar-se a outro, portanto, deve ser logicamente fácil exportá-lo / importá-lo no LVM, mantendo os dados intactos.

Se você já possui um vg00 em disco (s) interno (s) e depois compra outro disco interno para a sua máquina, faça uma pergunta: os dados no novo disco serão vinculados a vg00 e não faria sentido alguma vez em mover os dados para outro sistema? Neste caso, deve fazer parte do vg00. Caso contrário, criaria o vg01, pois ele pode ser facilmente exportado / importado por conta própria.

    
por 25.06.2009 / 16:03
0

Se você tem duas unidades como volumes físicos em um grupo como esse, então o que você tem é uma matriz JBOD (Apenas um monte de discos). Se uma das unidades falhar, você não estará mais protegido do que se as unidades estivessem organizadas em uma matriz RAID0.

Você não pode controlar diretamente o que acontece nas duas unidades se você tiver um volume lógico no grupo de volumes (pois isso será controlado pelo sistema de arquivos no volume, não no LVM), embora você divida o grupo de volumes em vários volumes lógicos, você pode ordenar manualmente sua criação de forma que um determinado volume lógico esteja em uma determinada unidade.

Eu acredito que cada PV em um VG tem uma cópia do layout de LV e os dados não são removidos como o RAID0, então você tem mais chance de recuperar algo se um de seus drives falhar, mas se houver perda de dados preocupação em tudo eu não consideraria usar duas unidades desta forma em todos (via LVM ou RAID0).

    
por 25.06.2009 / 14:54
0

What would happen if I create a 150 meg file? Would 100 megs physically be on sda and 50 on sdb? If so, what tells the OS that a piece of the file is on one drive, and another piece is on the other?

O LVM (Logical Volume Manager) coleta volumes físicos em grupos de volumes. Todo volume físico (a própria unidade) possui pequenos pedaços chamados de extensões físicas. Essas extensões possuem um identificador uniq no disco. Na verdade, eles são numerados sequencialmente. Quando você cria um volume lógico, ele foi construído a partir de extensões lógicas que estão emparelhadas com as extensões físicas. Extensões lógicas possuem ID uniq no volume lógico. No HP-UX, você pode verificar qual extensão lógica emparelha com qual extensão física. No SLES11 não consigo descobrir como verificar isso. lvdisplay --maps deve ser bom, mas não perferct (para mim).

    
por 25.06.2009 / 15:56