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?
Respostas:
Correto (supondo que o sistema de arquivos estivesse vazio antes da criação do arquivo).
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.
Sim, considere os dados perdidos.
Se você criar volumes lógicos menores, poderá usar o
pvmove
comando para movê-los de disco para disco.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.
fonte
--stripes <num>
(curto-i <num>
) quando criar o Volume Lógico.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.
fonte
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.
fonte
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).
fonte
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 --maps
deve ser bom, mas não perferct (para mim).fonte