LVM e recuperação de desastres

13

Entendo o que é LVM e o que ele realiza, mas sinto que estou perdendo algumas coisas.

Vamos dizer que temos duas unidades físicas, sda e sdb. Ambos são 100 megas. Coloquei-os no 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 informa ao sistema operacional que uma parte do arquivo está em uma unidade e outra parte está na outra?

E a falha na unidade? Supondo que não haja RAID, se o sdb falhar, todos os dados no sda serão perdidos? Existe alguma maneira de controlar quais arquivos estão em quais unidades físicas?

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

Prumo
fonte
1
Se você quiser evitar a redundância de um ataque, uma grande mídia e pode viver com as falhas de disco único, este trabalho poder para você: serverfault.com/a/543684/165065
Dennish

Respostas:

15

Vamos dizer que temos duas unidades físicas, sda e sdb. Ambos são 100 megas. Coloquei-os no 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?

Correto (supondo que o sistema de arquivos estivesse vazio antes da criação do arquivo).

Em caso afirmativo, o que informa ao sistema operacional que uma parte do arquivo está em uma unidade e outra parte está na outra?

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

E a falha na unidade? Supondo que não haja RAID, se o sdb falhar, todos os dados no sda serão perdidos? Existe alguma maneira de controlar quais arquivos estão em quais unidades físicas?

Sim, considere os dados perdidos.

Se você criar volumes lógicos menores, poderá usar o pvmovecomando para movê-los de disco para disco.

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

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-o quando for necessário. É fácil aumentar o tamanho de um volume lógico e praticamente todos os sistemas de arquivos modernos também podem ser facilmente cultivados.

pgs
fonte
Você tem certeza sobre o primeiro? Pensei LVM geralmente padrão para striping, para que o arquivo de 150 meg seria propensos a ter cerca de 75 meg em cada unidade
Freiheit
2
As faixas não são criadas, a menos que você especifique --stripes <num>(curto -i <num>) quando criar o Volume Lógico.
pgs
PS, a minha resposta aqui contém um script que irá mostrar-lhe que PVs cada LV Usos: serverfault.com/questions/28592/...
PGS
@ freiheit, pgs está certo, o padrão é estender, não distribuir, o volume.
Avery Payne
sobre gerenciamento, estou disposto a criar um grupo lvm para meus 3 HDs, mas apenas criar volumes lógicos limitados a volumes físicos e, em seguida, usar apenas os espaços disponíveis para criar instantâneos; você acredita que isso é o mais seguro para um usuário doméstico (que não tem invasão nem dinheiro para substituir rapidamente as coisas)?
Poder de Aquário
4

A coisa subjacente que permite que o LVM e o Software Raid no Linux funcionem é a parte do mapeador de dispositivos do kernel. É isso que abstrai os endereços de bloco dos dispositivos físicos para os dispositivos de bloco virtuais que você está usando.

Ao usar o LVM como em qualquer outra coisa quando se trata de dados, você precisa estar ciente das repercussões na disponibilidade de dados. Isso não quer dizer que o LVM seja perigoso, de fato, quando as práticas adequadas são usadas, o impacto na disponibilidade é mínimo.

No cenário que você sugere na sua pergunta, a disponibilidade dos seus dados seria a mesma do RAID0, onde, se alguma 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 30 TB que tinha cerca de 20 volumes RAID5 de hardware em um VG. Mas se você tiver extensões livres suficientes, poderá usar o pvmove para migrar os dados de um ou mais PVs, caso isso comece a causar problemas.

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

3dinfluence
fonte
3

Como você geralmente gerencia o LVM? Você cria um ou dois grandes grupos de volumes e cria partições como faz sentido?

Minha estratégia geral é colocar em um grupo de volumes separado os volumes físicos que podem ser migrados (como um conjunto inteiro) 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 igualmente logicamente fácil exportá-lo / importá-lo no LVM, mantendo os dados intactos.

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

kubanczyk
fonte
0

Se você tiver duas unidades como volumes físicos em um grupo como esse, 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 dispostas em uma matriz RAID0.

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

Acredito que cada PV em um VG tem uma cópia do layout LV e os dados não são removidos como no RAID0, então você tem mais chances de recuperar algo se uma de suas unidades falhar, mas se a perda de dados for alguma preocupação. Eu não consideraria o uso de duas unidades dessa maneira (via LVM ou RAID0).

David Spillett
fonte
0

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 informa ao sistema operacional que uma parte do arquivo está em uma unidade e outra parte está na outra?

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 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 é construído a partir de extensões lógicas que são emparelhadas com as extensões físicas. As extensões lógicas possuem um ID uniq no volume lógico. No HP-UX, você pode verificar qual extensão lógica emparelhada com qual extensão física. No SLES11, não consigo descobrir como verificá-lo. lvdisplay --mapsdeve ser bom, mas não perferct (para mim).

Saabi
fonte