我想将home
目录中的一个大文件 (300GB) 拆分dev/sdb1
为两个 (或更多) 不同的部分,并将它们移动到两个不同的磁盘驱动器中。但是,我希望我的系统将该文件视为一个文件。
具体来说,我想将文件拆分成两个 150GB 的部分(或三个 100GB 的部分,等等),然后将这些部分移动到我拥有的不同 SSD 中。但是,这个文件是作为研究项目的输入,我希望系统将其视为一个文件。此外,我需要在另一个文件(.prototxt
我在其中指定程序的所有输入的文件)中指定它的路径,这就是为什么我希望有一个路径,系统可以在该路径下识别该(拆分的)文件。不幸的是,SSD 不够大,无法容纳整个文件。
此外,当我运行时,df -h
SSD 显示为:
Filesystem Mounted on
cluster-name-1-int:/var/tmp/local /import/cluster-name-1-int
cluster-name-2-int:/var/tmp/local /import/cluster-name-2-int
我的系统处于集群中,但我认为这不会有任何区别,因为我可以从机器访问cluster-name-1
其他机器上的 SSD。最后,我没有 root 访问权限,所以请告诉我您的解决方案是否需要 root 权限,以便我知道并找到实现该解决方案的方法。
编辑:我提供了尽可能多的我认为有用的信息。使用任何你认为可能有助于解决问题的信息,欢迎任何建议。
答案1
如果您能够添加 SSD 格式并安装它,则 RAID 应该没有问题。
可能需要一次 root 访问权限才能安装并为 RAID 分配权限,但之后就不需要了。
硬件 RAID 5 或 6 将比软件 RAID 运行得更好,因为 RAID 卡具有自己的内存和 CPU,而您的 CPU 不执行任何工作。
使用 8mb 的 raid 术语,条带大小可最大程度地提高 SSD 的速度。如果没有 8mb,请使用最大可用大小。
RAID 控制器有自己的 BIOS 供您创建 RAID,因此不需要本地根访问权限。
如果您将 SSD 放入 RAID 5,则所有数据将自动分配到每个驱动器上。数据在后台被分成块。如果您有 3 个驱动器 RAID 5,则基本上 1/3 的数据在每个驱动器上。在 Linux 中,整个 RAID 将有 1 个挂载点。文件仍然只有 1 个文件,但它将获得速度优势(3 个驱动器的 3 倍读取速度,假设您的控制器可以处理这么快的速度。)。使用合适的 RAID 卡。
另一个注意事项:SSD 需要大小相同,否则会浪费一些空间。如果您有 3 个驱动器 128gb、128gb、64gb,那么 RAID 将看到 64x3。您可以稍后升级 64gb 并将整个阵列扩展为 128x3。您会丢失 1 个磁盘以进行奇偶校验数据,但如果任何 1 个磁盘发生故障,其他 2 个将自动重建它。
硬件 RAID 是最好的,但是也有软件 RAID,只不过写入操作会占用大量 CPU。
- Linux 具有内置软件 RAID 5 功能。
- Linux 还具有 ZFS 文件系统,该系统允许您以各种方式汇集文件,包括但不限于 RAID 5。它的缺点是它占用大量内存和一些 CPU。 http://www.thegeekstuff.com/2015/07/zfs-on-linux-zpool/
zpool 创建-f mypool raidz sdb sdc sdd sde sdf