Acessar vários discos em uma única partição virtual?

2

Eu tenho discos como abaixo no meu servidor Debian:

/dev/sda1  276M   29M  233M  11% /boot
/dev/sdb1  917G  793G   79G  92% /home
/dev/sdc1  1.8T  1.7T   79G  96% /home2
/dev/sdd1  1.8T  1.7T   79G  96% /home3

É possível acessar /dev/sdb1 /dev/sdc1 /dev/sdd1 como uma única partição para que:

a). Eu posso acessá-los de um único ponto de montagem como /bighome , enquanto arquivos são salvos automaticamente em discos de forma transparente para meus scripts?

b) Isso pode ser alcançado sem perder os dados existentes no servidor?

    
por iTech 13.10.2014 / 07:17

3 respostas

1

Sim, você pode fazer. Contradizendo a crença comum, não há necessidade de reformatar.

Existem sistemas de arquivos fazendo exatamente o que você deseja. Dois para eles eu posso lembrar: unionfs , aufs e overlayfs . O último é usado em todos os dvds ao vivo / instalados do Ubuntu.

Estes podem funcionar porque estão trabalhando no nível do sistema de arquivos e não dos dispositivos de bloco.

    
por 13.10.2014 / 11:52
1

a) Sim, é isso que o striping de Raid ou LVM faz. Tenha cuidado, no entanto, se você criar raid0 ou distribuição de LVM e um dos seus discos falhar, todos os dados nele desaparecerão. Para superar isso, você precisa de redundância; raid 6 seria ótimas opções. Mas para construir o raid5, é melhor que todos os discos sejam do mesmo tamanho ...

b) Não, até onde eu sei, não há como preservar os dados existentes durante a criação de Raid ou LVM. Você precisa fazer backup deles.

    
por 13.10.2014 / 08:47
1

Como já foi dito, existem algumas maneiras de fazer isso:

  • Um sistema de arquivos unidos, embora sejam geralmente destinados a casos de uso bastante específicos (ou seja, oferecendo uma versão gravável de um sistema de arquivos readonly ou fornecendo um cache rápido local para um sistema de arquivos remoto lento). situação

  • Distribuição de LVM

  • RAID em várias formas

Destes, o que você deve escolher é RAID, usando 5, ou o RAID10 especial de 3 unidades do linux (que é essencialmente o que os controladores RAID de hardware da IBM chamam de RAID1E) - assim, se uma unidade morre, os dados são seguros para que você possa conecte outra unidade e recrie a matriz. Com as outras opções, se uma unidade tiver problemas, você potencialmente perderá todos os dados nas três unidades. A escolha entre RAID5 e RAID10 depende do que o sistema é usado. Com o RAID5, você terá um volume de 3.6T, mas há problemas de desempenho de gravação que afetam alguns casos de uso (como o trabalho pesado no banco de dados), com RAID10 de 3 unidades que você obterá o mesmo ou às vezes melhor cargas de trabalho pesadas), mas o espaço útil será de apenas 2,7 TB.

Você poderia usar o RAID0, é claro, mas isso teria o mesmo problema "um morre, todos os dados se foram".

A migração sem perder os dados é possível (já que dois de seus drives estão começando vazios) mas não é recomendado e ainda requer algum tempo de inatividade (ou pelo menos quando os dados são somente leitura):

  1. Crie a matriz RAID em um estado degradado usando as duas unidades (isto é, sua matriz R5 de duas unidades está se comportando como se uma unidade tivesse falhado)
  2. Pare seus usuários escrevendo no volume existente (ou apenas bloqueie o acesso a ele completamente)
  3. Copie os dados para o novo array
  4. Altere os detalhes de montagem para que a nova cópia seja a cópia ativa.
    (Neste ponto, você pode reativar o acesso de gravação.)
  5. Remover o sistema de arquivos antigo
  6. Adicione o terceiro dispositivo agora vazio à matriz RAID como substituto da unidade "com falha" e a matriz será criada (isso pode levar algum tempo em unidades grandes como essa, especialmente se houver uso ativo dos dados na mesmo tempo)
  7. Quando a reconstrução da matriz estiver concluída (você pode monitorar o progresso via /proc/mdstat ), tudo estará feito, você estará usando todas as três unidades e terá proteção contra qualquer uma delas que falhe a qualquer momento.

Antes de fazer o acima, eu strongmente recomendo que seus backups sejam atualizados e testados caso algo dê errado. Sendo esse o caso, é provavelmente mais rápido & mais seguro para atualizar & Verifique seus backups, construa o array normalmente e reconstrua os dados do backup mais recente.

    
por 13.10.2014 / 14:13