Em sua resposta à pergunta "tipos de ataque misto" , HBruijn sugere o uso do LVM para implementar o RAID vs o MDRAID mais padrão.
Após uma pequena investigação, parece que o LVM também suporta a funcionalidade RAID. No passado, eu usei o LVM em cima do MDRAID e não sabia até agora que o LVM também suporta a funcionalidade RAID. Este parece ser um desenvolvimento relativamente recente, mas ainda não descobri exatamente quando isso foi implementado.
Portanto, essas são maneiras alternativas de implementar o RAID de software no Linux. Quais são os prós e os contras dessas duas abordagens diferentes? Estou procurando comparações de recursos entre as duas abordagens para que as pessoas possam decidir qual é melhor para elas. Conclusões baseadas em experimentação (como em, esse recurso não funciona tão bem quanto esse recurso e aqui está o porquê) também são válidas, desde que você inclua seus dados na resposta.
Alguns problemas específicos a serem abordados:
- Suponha que eu queira fazer swid RAID + LVM (um cenário comum). Devo usar o suporte do LVM para sw RAID e, portanto, usar um utilitário em vez de dois? Essa abordagem mais integrada tem vantagens?
- O suporte a LVMs para sw RAID tem deficiências significativas em comparação com o MDADM mais maduro? Especificamente, quão estável / livre de erros é o suporte LVM para sw RAID? Parece que esse suporte remonta apenas a 2011 (veja abaixo), enquanto o MDADM é muito mais antigo. Além disso, como ele se compara em termos de conjunto de recursos? Possui deficiências significativas de recursos em comparação com o MDADM? Por outro lado, ele oferece suporte a recursos RAID sw que o MDADM não possui?
NOTAS:
Há uma discussão detalhada em http://www.olearycomputers.com/ll/linux_mirrors.html, mas não consegui descobrir em que data foi escrita.
Pergunta semelhante sobre Serverfault: linux LVM mirror vs. MD mirror . No entanto, essa pergunta foi feita em 2010 e as respostas podem estar desatualizadas.
A entrada do registro de alterações da versão 2.02.87 - 12 de agosto de 2011 foi
Adicione configure --with-raid para o novo segtype 'raid' para suporte ao MD RAID 1/4/5/6
Portanto, parece que o suporte a RAID no LVM tem cerca de 3 anos.
fonte
md
volumes. Então você temlvextend
e estápvmove
disponível para a movimentação entre dispositivos, enquanto que commd
o processo é muito mais manual sem benefícios claros.Respostas:
Qual é a maturidade e a funcionalidade do LVM RAID?
LVM-RAID é realmente mdraid debaixo das cobertas. Funciona basicamente criando dois volumes lógicos por dispositivo RAID (um para dados, chamado "rimage"; outro para metadados, chamado "rmeta"). Em seguida, passa-os para os drivers mdraid existentes. Portanto, coisas como lidar com erros de leitura de disco, balanceamento de carga de E / S etc. devem estar bem maduras.
Essa é a boa notícia.
Ferramentas
Você não pode usá
mdadm
-lo (pelo menos, não de maneira fácil¹) e as ferramentas LVM RAID não estão nem tão maduras. Por exemplo, no Debian Wheezy,lvs
não posso dizer o status da sincronização RAID5. Duvido muito que o reparo e a recuperação (especialmente de situações "o que nunca deveria acontecer!") Sejam tão bons quanto o mdadm (e acidentalmente encontrei um deles nos meus testes e finalmente desisti de recuperá-lo - recuperação com MDADM teria sido fácil).Especialmente se você não estiver usando as versões mais recentes de todas as ferramentas, as coisas pioram.
Recursos ausentes
As versões atuais do LVM-RAID não suportam a redução (
lvreduce
) de um volume lógico RAID. Eles também não suportam a alteração do número de discos ou do nível RAID (lvconvert
uma mensagem de erro informando que ainda não há suporte).lvextend
funciona e pode até aumentar os níveis de RAID aos quais recentemente tive suporte, como o RAID10. Na minha experiência, estender LVs é muito mais comum do que reduzi-los, então isso é realmente razoável.Alguns outros recursos do mdraid não estão presentes e, especialmente, você não pode personalizar todas as opções possíveis com o mdadm.
Nas versões mais antigas (como encontradas, por exemplo, no Debian Wheezy), o LVM RAID também não suporta crescimento. Por exemplo, no Wheezy:
Em geral, você não deseja executar as versões do Wheezy.
O acima é uma vez que você instalá-lo. Esse também não é um processo trivial.
Problemas da ferramenta
Brincando com minha Jessie VM, desconectei (virtualmente) um disco. Isso funcionou, a máquina continuou funcionando.
lvs
, no entanto, não deu indicação de que as matrizes estavam degradadas. Voltei a conectar o disco e removi um segundo. Permaneceu em execução (este é o raid6). Reconectado, ainda não há indicação delvs
. Corrilvconvert --repair
no volume, ele me disse que estava tudo bem. Então eu puxei um terceiro disco ... e a máquina morreu. Reinsira-o, reinicie-o e agora não tenho certeza de como corrigir.mdadm --force --assemble
consertaria isso; nemvgchange
nemlvchange
parece ter essa opção (lvchange aceita--force
, mas não parece fazer nada). Mesmo tentandodmsetup
alimentar diretamente a tabela de mapeamento no kernel, não consegui descobrir como recuperá-lo.Além disso,
mdadm
é uma ferramenta dedicada apenas para gerenciar RAID. O LVM faz muito mais, mas parece (e admito que isso é bastante subjetivo) que a funcionalidade RAID foi meio que empurrada para lá; não se encaixa bem.Como você realmente instala um sistema com LVM RAID?
Aqui está um breve resumo de como instalá-lo no Debian Jessie ou Wheezy. Jessie é muito mais fácil; observe se você vai tentar isso no Wheezy, leia tudo primeiro…
Use uma imagem de CD completa para instalar, não uma imagem netinst.
Prossiga normalmente, acesse o particionamento de disco, configure seus volumes físicos do LVM. Você pode colocar o
/boot
LVM-RAID (no Jessie e no Wheezy com alguns trabalhos detalhados abaixo).Crie seu (s) grupo (s) de volumes. Deixe-o no menu LVM.
Primeiro divertido: o instalador não tem o
dm-raid.ko
módulo carregado ou disponível! Então você pode pegá-lo no pacote linux-image que será instalado. Alterne para um console (por exemplo, Alt- F2) e:O instalador não sabe como criar LVM-RAID LVs, então você precisa usar a linha de comando para fazer isso. Observe que eu não fiz nenhum benchmarking; o tamanho da faixa (
-I
) abaixo é totalmente um palpite para a minha configuração da VM:Em Jessie, você pode usar o RAID10 para troca. No Wheezy, o RAID10 não é suportado. Portanto, você pode usar duas partições de troca, cada RAID1. Mas você precisa dizer exatamente em quais volumes físicos os colocar ou coloca as duas metades do espelho no mesmo disco . Sim. A sério. De qualquer forma, isso se parece com:
Por fim, volte ao instalador e pressione 'Concluir' no menu LVM. Agora você será apresentado a vários volumes lógicos. Esse é o instalador que não entende o que está acontecendo; ignore tudo com
rimage
ourmeta
em seu nome (veja o primeiro parágrafo acima para obter uma explicação do que são).Vá em frente e crie sistemas de arquivos, troque partições, etc. normalmente. Instale o sistema base, etc., até chegar ao prompt do grub.
No Jessie, o grub2 funcionará se instalado no MBR (ou provavelmente com o EFI, mas ainda não testei). No Wheezy, a instalação falhará e a única solução é fazer o backport do grub2 de Jessie. Isso é realmente bastante fácil, ele compila de forma limpa no Wheezy. De alguma forma, obtenha seus pacotes grub com backport
/target
(ou faça isso em um segundo, após o chroot) e:Na verdade, no meu mais recente Jessie VM o grub-install travou. Mudar para F2 e fazer
while kill $(pidof vgs); do sleep 0.25; done
, seguido pelo mesmo paralvs
, conseguiu através do grub-install. Ele apareceu para gerar uma configuração válida, apesar disso, mas apenas no caso eu fiz umchroot /target /bin/bash
, certificou-se/proc
e/sys
foram montadas, e fez umupdate-grub
. Naquele tempo, completou. Fiz então umdpkg-reconfigure grub-pc
para selecionar a instalação do grub nos MBRs de todos os discos virtuais.No Wheezy, depois de fazer o acima, selecione 'continuar sem um gerenciador de inicialização'.
Conclua a instalação. Vai arrancar. Provavelmente.
Conhecimento da comunidade
Há um número razoável de pessoas que conhecem
mdadm
e têm muita experiência em implantação. É provável que o Google responda à maioria das perguntas sobre o assunto. Geralmente, você pode esperar uma pergunta sobre o assunto aqui para obter respostas, provavelmente dentro de um dia.O mesmo não pode ser dito para o LVM RAID. É difícil encontrar guias. A maioria das pesquisas do Google que eu realizava me ensinou a usar matrizes mdadm como PVs. Para ser honesto, isso provavelmente ocorre principalmente porque é mais recente e menos usado. De certa forma, parece injusto manter isso contra isso - mas se algo der errado, a comunidade existente muito maior em torno do mdadm tornará mais provável a recuperação dos meus dados.
Conclusão
O LVM-RAID está avançando rapidamente. No Wheezy, ele não é realmente utilizável (pelo menos, sem fazer backports do LVM e do kernel). No início de 2014, nos testes do Debian, parecia uma ideia interessante, mas inacabada. Os testes atuais, basicamente o que se tornará Jessie, parecem algo que você realmente pode usar, se frequentemente precisar criar pequenas fatias com diferentes configurações de RAID (algo que é um pesadelo administrativo
mdadm
).Se suas necessidades forem atendidas adequadamente por algumas matrizes RAID mdadm grandes, divididas em partições usando LVM, sugiro continuar usando isso. Se, em vez disso, você tiver que criar muitas matrizes (ou mesmo matrizes de volumes lógicos), considere alternar para LVM-RAID. Mas mantenha bons backups.
Muitos dos usos do LVM RAID (e até do mdadm RAID) estão sendo adotados por coisas como armazenamento em cluster / sistemas de objetos, ZFS e btrfs. Eu recomendo também investigar aqueles, eles podem atender melhor às suas necessidades.
Obrigado
Gostaria de agradecer à psusi por me fazer revisitar o estado do LVM-RAID e atualizar esta publicação.
Notas de rodapé
Suspeito que você possa usar o mapeador de dispositivos para colar os metadados e dados de uma maneira que
mdadm --assemble
os leve a sério. Claro, você pode rodarmdadm
em volumes lógicos muito bem ... e isso seria mais saudável.Ao fazer a instalação do Wheezy, não consegui fazer isso pela primeira vez e acabei sem nenhuma configuração do grub. Eu tive que inicializar o sistema digitando todas as informações no prompt do grub. Uma vez inicializado, funcionou, então acho que funcionará bem no instalador. Se você terminar no prompt do grub, aqui estão as linhas mágicas para digitar:
PS: Já faz um tempo desde que eu realmente fiz os experimentos originais. Fiz minhas anotações originais disponíveis. Observe que agora fiz outras mais recentes, abordadas nesta resposta, e não nessas anotações.
fonte
dpkg-deb
fornece uma maneira mais limpa de extrair arquivos de pacotes deb, sem a necessidade de pular etapas.dpkg-deb
disponível no ambiente do instalador? Não costumava ser ... Verifique também o Wheezy.ar -x
deve funcionar para descompactar os arquivos deb, embora seja mais desajeitado. Além disso, que tal atualizar sua resposta com o status atual?Também não sabia que o LVM poderia fazer RAID. Pessoalmente, eu continuaria com o mdadm, pois é um software muito mais maduro que faz a mesma coisa. Se algo romper com o LVM RAID, você provavelmente não poderá obter tanto suporte quanto se tivesse usado o mdadm. Além disso, eu não confiaria no LVM RAID, já que o LVM demonstrou historicamente não ser o software mais robusto.
ZFS e BTRFS são o futuro. Os benefícios que eles oferecem vão além do que é possível na camada de blocos. A menos que eu busque compatibilidade, não usarei mais o LVM / mdadm. O ZFS e o BTRFS têm muitos recursos, como compactação, desduplicação e cópia na gravação, mas não vou abordar isso aqui, pois seria um pouco fora do escopo.
No final, faça sua pesquisa e use o que for mais adequado às suas necessidades / desejos.
fonte
LVM+XFS
que no BTRFS. Eles suportam BTRFS, mas isso é mais uma coisa do Oracle / SuSE.