什么是最好的scheme来将12TB的数据复制到Linux上的4个3TB硬盘上?

我有一个充满数据的12TB机箱(ext3)。 我想制作一个副本,跨越单个3TB磁盘,每个磁盘都可以自行读取(没有RAID或绑定)。 理想情况下,我希望这个过程吐出哪些文件在哪个磁盘上的索引,但这不是必须的。 最终结果必须是原始目录结构中磁盘上的可读文件,而不是归档文件。 跨卷分割目录(复制目录结构)是好的。

3TB磁盘并不是全部同时安装(也不能够),所以我需要一些能让我暂停复制来切换磁盘的东西。 我强烈希望有一个解决scheme,不需要我确定哪个文件放在哪个磁盘上,或者跟踪哪些文件被复制。

有没有现成的软件包可以做到这一点?

我不知道现有的软件包会这样做,但这是一个完全没有经过testing的无错误检查脚本,可能会工作:

#!/bin/sh SRC=/foo DST=/bar IDX=/tmp/CONTENTS DISK_ID=`uuidgen` echo "$DISK_ID" > $DST/disk_id cd $SRC find . -type f | while read FILE; do FILE_SIZE=`stat -c '%a' "$FILE"` FREE_DST=`stat -c '%a' "$DST"` if [ $FREE_DST -lt $FILE_SIZE ]; then while [ $FREE_DST -lt $FILE_SIZE ]; do read -p "Please mount a new disk at $DST and hit enter:" FREE_DST=`stat -c '%a' "$DST"` done DISK_ID=`uuidgen` echo "$DISK_ID" > $DST/disk_id fi DST_DIR=`dirname "$FILE"` DST_DIR="$DST/$DST_DIR" [ -d "$DST_DIR" ] || mkdir -p "$DST_DIR" cp -p "$FILE" "$DST_DIR" echo "$DISK_ID $FILE" >> $IDX done 

它可能超出了你正在寻找的范围,但免费版本的Unraid会做到这一点。 您可以将3个驱动器分配为无奇偶校验驱动器的数据。 设置高水“填满”,并设置分割水平,以满足您的需求。

rsync任何人? 创build几个文件夹,每个驱动器一个,移动数据,将占用一个驱动器,然后只是用rsync检查,而不是实际移动数据。

检查手册页