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.