mdadm com sobreposição de lvm - remova um disco rígido

5

Essa é uma pergunta hipotética, estou apenas avaliando de que maneira devo configurar meus discos rígidos para meu servidor doméstico e, para isso, preciso saber:

Digamos que eu tenha um Raid5 configurado com o mdadm e coloque os dispositivos resultantes md0 e md1 no LVM para obter uma unidade grande e à prova de falhas:

Agora, a unidade cinza de 1 TB falha e, como alguns anos atrás, quando a unidade de 1 TB era a tecnologia mais recente, eu queria comprar uma unidade de 2 TB.

Qual seria a melhor maneira de trazer esse novo disco de 2 TB para o meu sistema Raid? É claro que eu poderia substituir a unidade quebrada de 1 TB por uma de 2 TB, mas então eu perderia 1 TB dessa unidade que não pode ser usada. Seria possível encolher o array md1 e colocar o novo disco no array md0?

    
por dersimn 21.09.2013 / 23:19

3 respostas

4

Com o RAID de software, você não precisa usar discos inteiros.

Se você tem 3x2TB e 3x1TB, e planeja substituir o 1 TB por 2 TB no futuro, você pode usar membros de 1 TB. Então, isso é RAID5 (ou se você preferir RAID6) acima de 6x1TB e RAID5 acima de 3x1TB. Então, o 2TB será compartilhado por ambos os RAIDs.

Quando você expulsa um 1TB e adiciona um 2TB, um RAID verá um substituto e o outro terá o 1TB restante adicionado como novo membro.

    
por 21.09.2013 / 23:45
3

Se você ainda está no estágio de design (ou seja, você não está comprometido com mdadm e / ou lvm), então eu recomendo que você considere seriamente usar um sistema de arquivos moderno como Btrfs ou ZFS .

O btrfs é integrado ao kernel linux da linha principal, e o zfs está disponível no site zfsonlinux como módulos do kernel facilmente instaláveis ou pacotes dkms para a maioria das distribuições de linux. Há também um PPA do Ubuntu para zfsonlinux.

Tanto o ZFS quanto o btrfs possuem ferramentas excelentes e fáceis de usar para gerenciar discos e grupos de discos. Eles também implementam detecção e correção de erros (praticamente essenciais para grandes unidades modernas, já que os erros são estatisticamente quase garantidos), sub-volumes, snapshots (incluindo acesso e / ou reversão de versões anteriores), e ambos têm uma utilidade muito grande. método baseado em instantâneo de envio de um backup completo ou incremental para outra máquina (zfs send / receive e btrfs send / receive). Ambos têm muitos outros recursos e benefícios, muito longos para listar aqui.

Outra grande vantagem que o ZFS e o btrfs têm sobre o lvm é que os volumes lvm lógicos são de tamanho fixo (como se fosse uma partição de disco virtual) e você precisa executar etapas especiais se precisar aumentar ou diminuir o tamanho de uma lv (por exemplo, se você cometer um erro e alocar espaço demais para / usr e não o suficiente para / var, você terá muito trabalho pela frente para corrigir isso). Com o ZFS & btrfs, um sub-volume é mais como uma alocação de quota flexível (com reserva opcional) do espaço total e alterar a alocação é um processo trivial que não requer nenhum sistema de arquivos 'malabarismo' (backup / restauração / movimentação de arquivos ). Na verdade, você não precisa nem definir uma quota por sub-volume se não quiser - todos os sub-volumes compartilharão o total de espaço disponível.

O ZFS tem o conceito de pools, que são compostos de dispositivos virtuais (vdevs), que são, por sua vez, compostos de dispositivos físicos (ou seja, discos). Usando o ZFS, suas unidades podem ser configuradas como um único pool contendo dois vdevs, um com um array RAID-5 composto de unidades 3x2TB e um composto por um array RAID-5 de unidades 3x1TB. Os vdevs são distribuídos para formar o pool. (BTW, o raid5 do ZFS e o raid6 não são, na verdade, o raid5 ou o raid6, ele funciona de maneira muito semelhante. Ele é chamado de raid-z)

Uma das boas coisas do ZFS é que você pode facilmente substituir as unidades em um vdev e quando você substitui todas as unidades em um vdev por unidades maiores, o espaço extra é automaticamente disponibilizado para armazenamento. por exemplo. Se você substituir uma ou duas das unidades 3x1TB por unidades de 2 TB, não obterá espaço extra, mas assim que você substituir a terceira unidade, obterá instantaneamente o espaço extra.

Você também pode adicionar outro vdev (ou seja, composto de uma ou mais unidades) a qualquer momento. por exemplo. você pode adicionar um par de unidades de 3 TB ou 4 TB. Você pode substituir as unidades em um vdev, mas não pode remover um vdev de um pool - se precisar fazer isso, a única maneira é fazer backup, destruir o pool e criar um novo pool do zero.

O Btrfs recentemente recebeu suporte experimental para o raid-5/6, e suportou o raid-0/1/10 por vários anos. É conceitualmente bem diferente do zfs, e há algumas coisas que ele faz melhor do que zfs (por exemplo, "reequilibrar" os dados nas unidades quando você adiciona ou altera as unidades no sistema de arquivos btrfs), mas no geral tem menos recursos que o zfs. A grande vantagem é que ele está no kernel da linha principal e, portanto, padrão - garantido para estar disponível em qualquer sistema Linux moderno.

O btrfs tem suporte específico para o uso de unidades de tamanhos diferentes, ativado usando a opção -d single de mkfs.btrfs . Veja Usando o Btrfs com vários dispositivos para detalhes.

    
por 22.09.2013 / 04:33
1

Ao substituir a unidade de 1 TB, adicione a nova unidade de 2 TB a md0, o que aumentará sua capacidade em 2 TB. Converta md1 de raid5 para raid10, o que reduzirá sua capacidade em 1 TB, dando a você o benefício total de 1 TB adicional no disco de substituição.

Como alternativa, você pode converter md1 em um raid0 e, em seguida, adicionar md1 a md0. Isso lhe dará 1 TB a mais de espaço utilizável, com um risco ligeiramente maior de falha.

    
por 22.09.2013 / 03:37

Tags