我有2个1TB磁盘不在任何RAIDconfiguration。 我想要根据磁盘的容量将需要存储的文件放在其中一个磁盘上,在访问文件时,我想我需要通过包含文件映射的数据库来查找文件,或者使用散列。 有没有提供这个的Linux实用程序,或者我应该创build一个PHP脚本?
谢谢
考虑到1TB磁盘的价格有多便宜,换一个,创build一个RAID5 ..冗余和存储。
Greyhole将分布在多个驱动器上的文件。 它还将允许您指定冗余,以便某些文件具有存储在多个驱动器上的冗余副本。 它针对的是家庭服务器或工作站,而不是生产企业解决scheme。
三年后,但仍然有关。 我也有同样的问题,FakeRaid根本就没有问题。 使用AUFS。 它将在一个驱动器下join驱动器。 mfs设置将把最新的文件放在驱动器上的空闲空间最多。 还有rr是循环和pmfs,它们将文件放到已经有文件夹的驱动器上,并具有最多的空闲空间。 我个人使用pmfs。 我的设置是这样工作的。
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
我添加了init.d脚本(由于驱动器挂载时间太慢,无法跟上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
这使得我在/ mnt下有10个坐骑。 我喜欢这种方式,因为我使用的SnapRAID,你将不得不下载和编译(有指导)。 我在Samba服务器上使用它,所以其他人看到的只是Archive文件夹。 一定要使其他目录,你会得到一个安装错误。
这听起来像你所关心的是能够利用所有2TB的存储,而无需手动将文件放在一个驱动器或另一个。 无论是LVM还是RAID0都可以为您解决这个问题,从而增加失败的风险。 对于LVM,您将使每个1TB驱动器成为一个LVM物理卷,并将它们都放在一个卷组中。 之后,您可以创build高达2TB大小的逻辑卷。 对于RAID0,您只需创buildRAID设备。
# 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
我不知道如何将单独的文件系统透明地合并到单个存储池中。 这种分片并不less见,通常在应用程序而不是存储层上实现。 Engineyard有一篇描述文件系统分片策略和stream程的论文 。
正确的方法是使用LVM。
就我个人而言,我只是将大部分媒体集合放在一个磁盘上,其他的东西放在另一个磁盘上。
如果你打算在多个服务器上扩展到10个硬盘,可以考虑使用clustred文件系统,比如http://en.wikipedia.org/wiki/GlusterFS