Usando o Linux LVM, posso alterar o número de distribuições e “rebalancear” o volume lógico?

3

Eu criei um RAID10 adicionando dois dispositivos RAID1 md como volumes físicos a um grupo de volumes. Infelizmente, parece que esqueci de especificar o número de faixas quando criei os volumes lógicos (era tarde):

PV         VG     Fmt  Attr PSize   PFree  
/dev/md312 volume lvm2 a-   927.01G 291.01G
/dev/md334 volume lvm2 a-   927.01G 927.01G

Eu sei que posso mover todos os dados de um volume lógico de um volume físico para outro com pvmove . Também parece que lvextend suporta uma alteração de -i para alterar o número de distribuições. Existe alguma maneira de combinar estes dois, ou seja. alterar o número de distribuições e "rebalancear" os dados nas listas com base na política de alocação?

De acordo com este e-mail de Ross Walker de março de 2010, não é É possível, mas talvez isso tenha mudado desde então.

    
por mss 30.06.2011 / 16:58

1 resposta

2

O pvmove é muito lento. Você provavelmente será mais rápido se recriar seu layout durante um pequeno tempo de inatividade.

Se nenhum tempo de inatividade for possível, eu recriaria o md334 como espelho distribuído com discos raid1 degradados como discos subjacentes (ou seja, use md para Raid 10 - não LVM). Então faça o seu pvmove para md334, livre-se do md312, limpe seus discos md-assinaturas e adicione os dois discos então livres para seus dois raid1s degradados (e volte para a redundância total).

Não tenho certeza se você pode empilhar dispositivos MD, mas não vejo razão para que isso não seja possível. Durante o pvmove você não terá redundância.

Atualização 2011-08-17: Acabei de testar o procedimento com o CentOS 5.6 - funciona. Aqui estão os resultados:

cat /proc/mdstat

Personalities : [raid1] [raid0]

md10 : active raid0 md3[1] md1[0] 1792 blocks 64k chunks

md3 : active raid1 loop0[1] loop1[0] 960 blocks [2/2] [UU]

md1 : active raid1 loop2[1] loop3[0] 960 blocks [2/2] [UU]

Para simular sua configuração eu primeiro configuro o / dev / md0 com um espelho que consiste em loop0 e loop2. Eu configurei um VG com md0 como disco. Então eu criei um LV dentro desse VG, criei um sistema de arquivos no LV e o montei, escrevi alguns arquivos para ele.

Então eu configurei / dev / md1 e md3 como dispositivos raid1 degradados que consistem em loop1 resp. loop3. Depois disso, criei um dispositivo raid10, construindo um raid0 fora de md1 e md3.

Eu adicionei md10 ao VG. Então pvmove md0 para md10. Removido o md0 do VG. Parou md0, limpou loop0 e loop2. Redimensionou o raid1 degradado para que eles pudessem usar dois dispositivos. Hot loop0 adicionado para md3 e loop2 para md1.

O sistema de arquivos ainda estava montado durante todo o processo.

    
por 14.08.2011 / 22:12