Simples: você está procurando por mhddfs .
Ele finge ser um sistema de arquivos grande, grava nos discos na ordem em que foram mencionados e, eventualmente, move arquivos grandes para um dispositivo diferente, se o primeiro estiver cheio demais. Na verdade, ele também pode usar subpastas nos discos, permitindo a mesma funcionalidade.
Os discos individuais devem ser montados primeiro e permanecer acessíveis. Ele não altera os sistemas de arquivos e não se importa com o sistema de arquivos existente (desde que o espaço livre seja relatado corretamente pelo sistema de arquivos). Caso um disco seja perdido, você precisará remontar seus mhddfs novamente (em tempo real) e os dados nesse disco serão removidos.
Uso:
mhddfs /dir1,/dir2[,/path/to/dir3] /path/to/mount [-o options]
ou em /etc/fstab
mhddfs#/path/to/dir1,/path/to/dir2 /mnt/point fuse defaults 0 0
Complexo e poderoso: Você quer o unionfs .
Embora o mhddfs seja agradável e extremamente simples, tive problemas com as permissões de arquivo ao conceder acesso a outras pessoas via SSH. Não encontrei nenhuma solução, mas encontrei o unionfs.
O Unionfs também permite que você monte várias pastas em diferentes sistemas de arquivos em um, mas é mágico nas permissões. Você pode mesclar várias pastas somente leitura e uma gravável juntas, para que apareça como uma. As pessoas com quem você compartilhou sua pasta mesclada podem gravar em uma pasta somente leitura - como parece a elas - mas os arquivos acabam na única pasta gravável. Os CDs de inicialização do Linux funcionam assim, o disco gravável é um ramdisk. As pessoas podem até excluir arquivos em pastas somente leitura, o que realmente não exclui o arquivo, mas cria um arquivo de lista de permissões oculto em seu diretório de gravação. Se você pegar todas as opções, poderá basicamente usar seu sistema de arquivos como um SVN pobre .
Se você usar demais as opções do tipo SVN, poderá perder os dados existentes duas vezes (improvável no seu cenário, mas possível), enquanto a pasta gravável é preenchida com pequenos arquivos ocultos da lista de permissões. Fora isso, mantém seus discos limpos e utilizáveis individualmente. O que acontece se um arquivo for muito grande para um disco, ainda não sei.
Uso:
unionfs-fuse -o cow,max_files=32768 \
-o allow_other,use_ino,suid,dev,nonempty \
/path/to/dir1=rw:/path/to/dir2=ro:/dir3
/u/union/etc
onde =rw
torna a pasta lida e gravável e =ro
somente leitura, mesmo que as permissões indiquem o contrário. Nisso etc/fstab
é
unionfs-fuse#/path/to/dir1=rw:/path/to/dir2=ro:dir3 /path/to/mount fuse cow,allow_other 0 0