Considerando o quão barato é um disco de 1 TB, pegue outro e crie um RAID5 .. Redundância e armazenamento.
Eu tenho 2 discos de 1 TB não em qualquer configuração de RAID. Eu gostaria que os arquivos que eu precisava armazenar fossem colocados em um dos discos, dependendo da capacidade dos discos, e ao acessar o arquivo, eu suponho que precisaria encontrar o arquivo por meio de um banco de dados contendo um mapa de arquivos ou usando um hash. Existem alguns utilitários do Linux que fornecem isso ou devo apenas criar um script PHP?
Obrigado
Considerando o quão barato é um disco de 1 TB, pegue outro e crie um RAID5 .. Redundância e armazenamento.
O Greyhole distribuirá seus arquivos em várias unidades. Ele também permitirá que você especifique a redundância, para que determinados arquivos tenham cópias redundantes armazenadas em várias unidades. Ele é direcionado ao servidor doméstico ou estação de trabalho e não como uma solução corporativa de produção.
Três anos atrasado, mas ainda relevante. Eu tive o mesmo problema e o FakeRaid estava simplesmente fora de questão. Use o AUFS. Ele unirá as unidades em uma única unidade. A configuração do mfs colocará novos arquivos na unidade com o maior espaço livre. Há também rr que é round robin e pmfs, que irá colocar arquivos na unidade que já tem a pasta e tem mais espaço livre. Eu pessoalmente uso pmfs. Minha configuração funciona assim.
O fstab:
# The Archive
LABEL=Archive_000 /mnt/Archive_000 ext4 defaults 0 0
LABEL=Archive_001 /mnt/Archive_001 ext4 defaults 0 0
LABEL=Archive_002 /mnt/Archive_002 ext4 defaults 0 0
LABEL=Archive_003 /mnt/Archive_003 ext4 defaults 0 0
LABEL=Archive_004 /mnt/Archive_004 ext4 defaults 0 0
LABEL=Archive_005 /mnt/Archive_005 ext4 defaults 0 0
LABEL=Archive_006 /mnt/Archive_006 ext4 defaults 0 0
LABEL=Archive_007 /mnt/Archive_007 ext4 defaults 0 0
LABEL=Parity /mnt/Parity ext4 defaults 0 0
LABEL=Q-Parity /mnt/Q-Parity ext4 defaults 0 0
Eu adicionei o script init.d (Devido ao tempo de montagem ser muito lento para acompanhar a montagem aufs):
d0="Archive_000"
d1="Archive_001"
d2="Archive_002"
d3="Archive_003"
d4="Archive_004"
d5="Archive_005"
d6="Archive_006"
d7="Archive_007"
mount -t aufs -o noxino -o br=$d0=rw:$d1=rw:$d2=rw:$d3=rw:$d4=rw:$d5=rw:$d6=rw:$d7=rw -o create=mfs -o sum none Archive
Isso me dá 10 montagens em / mnt. Eu gosto desse jeito porque eu uso o SnapRAID que você terá que baixar e compilar (existem guias para isso). Eu uso isso em um servidor Samba, então a única coisa que todo mundo vê é apenas a pasta Arquivo. Certifique-se de fazer o diretório de outro modo você terá um erro de montagem.
Parece que tudo o que importa é poder utilizar todos os 2 TB de armazenamento sem ter que colocar manualmente os arquivos em uma unidade ou outra. O LVM ou RAID0 pode resolver este problema para você às custas do aumento do risco de falha. Para o LVM, você transformaria cada unidade de 1 TB em um volume físico LVM e os colocaria em um único grupo de volumes. Depois disso, você poderia criar volumes lógicos com até 2 TB de tamanho. Para o RAID0, você criaria o dispositivo RAID.
# pretending your unused 1TB disks are sdy and sdz
# for LVM
pvcreate /dev/sdy /dev/sdz
vgcreate myvg /dev/sdy /dev/sdz
lvcreate --name mylv --size 100%
# for RAID0
mdadm --create /dev/md0 --raid-devices 2 --level 0 /dev/sdy /dev/sdz
Não conheço uma maneira de mesclar transparentemente sistemas de arquivos separados em um único conjunto de armazenamento. Esse tipo de fragmentação não é incomum; ele é normalmente implementado no aplicativo e não na camada de armazenamento. Engineyard tem um artigo descrevendo táticas e processos de fragmentação do sistema de arquivos .
O caminho certo é usar o LVM.
Pessoalmente, coloco a maioria das minhas coleções de mídia em um disco, outras coisas no outro disco.
Se você planeja dimensionar no futuro, digamos que 10 hardrives em vários servidores considerem o uso de sistemas de arquivos como o link