espelho LVM linux vs. espelho MD

11

Acho que me lembro de fazer alguns espelhos anos atrás com o LVM, e não me lembro dessa coisa de "log". Ou talvez eu tenha feito o espelho com o mdadm e colocado o LVM em cima. Deve ser isso.

  1. Para que serve o log do LVM se for apenas um espelho? O que é armazenado lá? Qual é seu propósito? O uso do "--mirrorlog core" está ruim? Qual é o lado negativo? Não quero ter outra partição para logs, se não precisar.

  2. Alguma recomendação sobre o uso de qualquer tecnologia? Mesmo que eu faça o espelho com o mdadm, usarei o LVM em cima disso. Então, nesse caso, talvez seja melhor ter toda a configuração criada com o LVM ...? Isso levaria mais um impacto no desempenho ou menos?

Os discos destinam-se ao armazenamento de "discos" do Xen domU.

Desculpe pela complexa "questão" não pertinente.

Idéias, sugestões e links são bem-vindos. Obrigado!

d -_- b
fonte
O md parece ter um desempenho melhor para operações de espelho quando comparado ao lvm. Consulte serverfault.com/questions/80134/linux-md-vs-lvm-performance
Zoredache
1
O espelhamento LVM foi criado para um propósito diferente. Embora você possa usá-lo para "espelhar" da maneira que o MD faz, ele realmente é usado para clonar volumes. Veja serverfault.com/questions/97845/lvm-mirroring-vs-raid1
Avery Payne
1
Se é para clonagem, por que requer três volumes?
precisa
Veja a questão relacionada unix.stackexchange.com/questions/150644/…
Faheem Mitha

Respostas:

9

Pessoalmente, eu sempre vou MD + LVM. É mais rápido (o MD pode fazer leituras paralelas no RAID1) e requer apenas 2 discos (se você não deseja reconstruir o espelho após cada reinicialização) e o MD foi projetado apenas para executar o RAID, e faz isso muito bem. Também é mais flexível.

Também fui queimado pelo LVM. Em um caso, foi a distribuição LVM no HP-UX (não deveria acontecer com o LVM2 no Linux), e eu não pude estender o LV porque a extensão tinha que ter exatamente o mesmo número de faixas. Parece razoável, mas às vezes ...

Outra vez foi com o espelhamento (LVM2 no Linux desta vez), mas agora não me lembro se o LVM se recusou a tirar uma foto instantânea de um LV espelhado ou estendê-lo, negando efetivamente o benefício de ter o LVM em primeiro lugar (nós fizemos isso no final, mas envolvido com o uso do lvconvert).

Dan Andreatta
fonte
Obrigado! Acho que vou com o LVM em cima do MD. Parece que há alguns problemas com a detecção automática do MD. ( raid.wiki.kernel.org/index.php/RAID_Boot ) Eu meio que queria espelhar todo o meu sistema (troca, inicialização, /, var, home, usr). Então terei que procurar algo diferente de detecção automática.
precisa
Sim, a detecção automática é uma boa ideia em princípio, mas causa todo tipo de dor de cabeça. Eu configurei com iSCSI + multipath + MD + LVM ... e a detecção automática é ... interessante, mas inútil neste caso.
Dan Andreatta
4

Quando um par espelhado é desligado abruptamente, em qualquer sistema, pode haver alguns blocos que foram gravados em um dispositivo, mas ainda não no outro. É possível que, ao reordenar os caminhos de E / S, alguns blocos tenham sido gravados em A, mas não em B, e alguns gravados em B, mas ainda não em A.

Quando a máquina é reiniciada, ela precisa tornar os dispositivos consistentes. Apenas ter os dois dispositivos sozinhos não é suficiente: ele não saberia quais blocos são inconsistentes e não saberia qual versão era mais recente.

Portanto, o software espelho precisa armazenar um pouco de metadados para acompanhar isso. Isso é chamado de "log de intenção de gravação".

O md normalmente o armazena em algum espaço reservado dentro do próprio dispositivo , embora você também possa optar por armazená-lo em um dispositivo separado. (Essa é uma das razões pelas quais os espelhos md são um pouco menores que os dispositivos básicos.

Os espelhos LVM podem armazenar apenas o log de extensão de gravação externamente, o que, como você observa, é um pouco irritante para o caso típico em que você tem exatamente dois discos físicos. Acredito que você ainda tem a opção de armazená-lo em uma partição diferente no mesmo dispositivo físico, mas isso ainda é inconveniente.

O objetivo do log de espelho do LVM, como eu o entendo, é acompanhar os blocos que foram gravados em um dispositivo, mas ainda não no outro.

poolie
fonte
2

estes são dois conceitos diferentes:

  • LVM é como o nome diz para gerenciamento de volume. Pense nisso como um mecanismo para combinar vários volumes em um (sim, você pode dizer que é como raid0), redimensionando-os, redimensionando ao vivo, criando instantâneos.
  • MD é para gerenciamento de RAID. Adicione vários dispositivos a um único metadispositivo, torne esse metadispositivo altamente disponível usando raid1, 5, 10, etc ...

O LVM opera em dispositivos de armazenamento, sejam eles metadispositivos ou dispositivos apresentados pelo controlador RAID ou apenas discos simples.

O MD opera em discos (sim, você também pode usar os discos apresentados pelo controlador de ataque, mas qual é o objetivo? ..

O LVM não é para tornar seu armazenamento altamente disponível. Da mesma forma, o MD não é para gerenciamento de volumes ...

Espero que isto ajude :)

Rytis
fonte
1
Eu entendo o que eles são. No entanto, se você ler a página de manual do lvcreate, ele diz que pode criar espelhos. Eu acho que isso é um pouco de brinquedo por enquanto?
precisa
1
imho sim. não vejo nenhum bom uso para isso, pelo menos por enquanto. além de ser um espelho no nível de volume (e não no dispositivo), também é um pouco "interessante" como ele é criado; por exemplo, se você precisar de espelho de duas vias (como no original + cópia), precisará de três volumes - um para cada lado do espelho + volume de log. mas, novamente - imho. :)
rytis 28/03
1

O LVM veio de outros tipos de sistema UNIX. Usei-o no HPUX, que não tinha a camada MD do Linux quando trabalhei nele há 10 anos, não tenho certeza agora. Nessas circunstâncias, o espelhamento LVM se torna útil em uma situação em que o RAID de hardware não está disponível.

Ron McOuat
fonte
Achei estranho que um espelho LVM precise de mais de um volume. Que tipo de espelho é esse?
precisa
1
@ para o terceiro volume é usado para armazenar um log write-ahead para o espelho, basicamente para acompanhar o que precisa ser ressincronizado após uma parada abrupta. No MD, isso normalmente é armazenado em uma parte reservada dos dois discos.
poolieby
1

com a opção -mirrorlog mirrored e -alloc qualquer lugar, com dois discos, você obtém dois logs de espelho 4M, um em cada disco. Estou chateado por ter que substituir a política pelo que parece ser a situação mais comum, mas tudo bem.

O LVM no Linux não está relacionado à coisa no HP-UX ou AIX, apenas possui os mesmos comandos do espaço do usuário. O LVM no Linux usa internamente o sistema DM e, portanto, usa o mesmo código que o MD. Neste ponto, não vejo vantagem do LVM sobre o MD. Para partições que você deseja com rapidez e não se preocupa com backups (por exemplo, partições de troca para VMs convidadas), o LVM oferece a opção de você querer aquelas espelhadas ou não, ou se a remoção é melhor.

E é muito mais fácil adicionar um disco ao LVM do que MD.

mcr
fonte