estender um espelho LVM com um disco extra não espelhado

1

Eu tenho um espelho LVM feito de 6 discos de 1Tb. Eu fiz um espelho RAID 1 com 3 + 3 discos. O volume lógico e a partição nele têm, portanto, 3 TB de espaço utilizável. Ficando sem espaço em disco, estou tentando cozinhar uma solução temporária com um disco extra de 4Tb que adicionei ao slot mais recente disponível neste computador.

Eu gostaria de estender meu sistema de arquivos atual com estes 4Tb extras para um total de 3 + 4 = 7 Tb. Portanto, uma parte do volume lógico teria um espelho RAID 1 e a outra parte um único disco (como eu disse, é uma solução temporária).

Não consigo reformatar meu array RAID1 existente nem mover os dados, pois estou ficando sem espaço em todos os lugares.

eu fiz:

vgextend vg0 /dev/sdg1

em que vg0 é meu grupo de volumes com os 6 discos e sdg1 é o novo disco de 4 TB. Então eu fiz:

lvextend -l +100%FREE /dev/vg0/data

onde /dev/vg0/data é meu volume lógico.

No entanto, o volume lógico não pode ser estendido e o lvextend me diz:

Found fewer allocatable extents for logical volume data than requested: using 715395 extents (reduced by 953862).

No final, o grupo de volumes tem um tamanho de aprox. 10Tb que está correto, mas o volume lógico fica em 3 Tb.

O volume lógico atual é o seguinte:

    Using logical volume(s) on command line.
  --- Logical volume ---
  LV Path                /dev/vg0/data
  LV Name                data
  VG Name                vg0
  LV UUID                xcd11P-sL1W-M9vK-XftB-OeAA-b0Ec-AM2btA
  LV Write Access        read/write
  LV Creation host, time xxxxxxx, 2015-08-27 18:24:58 +0100
  LV Status              available
  # open                 1
  LV Size                2.73 TiB
  Current LE             715395
  Mirrored volumes       6
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1536
  Block device           253:12

E a configuração desejada será a seguinte, onde eu certamente perderia parcialmente a redundância de uma configuração completa do RAID 1. Mas é uma solução temporária. E, claro, no futuro, o ZFS ou o btrfs seria uma solução melhor:

Alguma ideia de como resolver este problema específico (se existir uma solução)?

    
por David Bellot 16.05.2016 / 15:56

1 resposta

1

A adição de uma única unidade de 4 TB ao array com vários espelhos destrói qualquer capacidade de confiar na redundância que o RAID deve fornecer. Seria seguro se você pudesse adicionar uma segunda unidade de 4 TB, mas (como você não tem portas de unidade de reposição) você não pode fazer isso sem remover um dos discos existentes.

Se eu fosse você, removeria um dos discos de espelho, adicionaria uma segunda unidade de 4TB e criaria um novo grupo de volumes com unidades de 2x4TB em um espelho RAID1.

NOTA: Isso deixará um dos seus pares de RAID-1 de 1TB sem o seu espelho, portanto você estará em risco de perda de dados até que o rsync seja concluído. Se você tiver ALGUMAS portas extras, até mesmo e-sata ou USB, coloque a unidade de 1 TB que você removeu nessa porta até que o rsync termine.

Em seguida, rsync ALL dos dados do grupo de volumes antigo (a maior parte do rsync pode ser feito enquanto o sistema está em uso, mas você terá que fazer um rsync final no modo de usuário único ou a partir de um resgate CD / USB. Na verdade, você pode executar o rsync repetidamente enquanto o sistema estiver em uso, até que você possa agendar algum tempo de inatividade para o rsync final e o próximo estágio).

Quando você tiver rsync -ed os dados, desligue o sistema e remova as unidades antigas de 1TB ou, melhor ainda, reutilize 4 delas para adicionar outros 2 espelhos RAID-1 ao seu novo grupo de volume (2x1TB cada). Isso resultará em um grupo de volume de 6 TB (4 TB + 1 TB + 1 TB).

6 TB é menor do que os 7 TB que você estava planejando, mas pelo menos você realmente tem Redundância (o R em RAID) para todos os seus dados.

Alternativamente, apenas substitua um dos pares de RAID-1 de 1TB por 2 x 4TB (um de cada vez, é claro) - mesmo resultado final, sem o rsyncing. A idéia de rsync é provavelmente mais útil se você decidir seguir a sugestão de btrfs ou zfs abaixo.

Mais tarde, você pode substituir 1 ou os dois (restantes) espelhos de 1 TB com mais espelhos de 4 TB.

Uma alternativa que vale a pena considerar é criar o espelho de 4 TB usando ZFS ou btrfs em vez de LVM. Isso lhe dará os benefícios de um sistema de arquivos copy-on-write de correção de erros com compactação, snapshots, rollbacks, fácil criação de sub-volume, cotas e reservas "soft" (em vez da pré-alocação de espaço "hard" LVM dá a você), zfs / btrfs send & receber para backup (para outro pool ou servidor zfs / btrfs) e muito mais.

Tanto o ZFS quanto o btrfs facilitariam a substituição de unidades de 1 TB por unidades maiores. Basta trocar as unidades antigas pela nova uma de cada vez e dizer ao btrfs / zfs para substituir a unidade ausente pela nova.

BTW, se você estiver usando o LVM para fornecer partições de LV para VMs em vez de (ou bem) sistemas de arquivos montados, o btrfs não é uma opção (a menos que você queira mudar para qcow2 ou raw ou outra imagem de disco arquivos). O ZFS é, como você pode criar ZVOL s, bem como Sistemas de arquivos ZFS .

    
por 16.05.2016 / 16:33

Tags