Назад | Перейти на главную страницу

Какую программу лучше всего использовать для копирования 12 ТБ данных на 4 жестких диска по 3 ТБ в Linux?

У меня есть корпус на 12 ТБ, заполненный данными (ext3). Я хотел бы сделать его копию на отдельных дисках емкостью 3 ТБ, каждый из которых доступен для чтения сам по себе (без RAID или связывания). В идеале я бы хотел, чтобы этот процесс выдавал некоторый индекс того, какие файлы на каком диске находятся, но это не обязательно. Конечным результатом должны быть читаемые файлы на диске в исходной структуре каталогов, а не архивный файл. Разделение каталогов (дублирование структуры каталогов) по томам - это нормально.

Не все диски емкостью 3 ТБ монтируются одновременно (и не могут быть подключены), поэтому мне нужно что-то, что позволит мне приостановить копирование для переключения дисков. Я настоятельно предпочитаю решение, которое не требует от меня выяснения, какие файлы находятся на каком диске, или отслеживания того, что было скопировано.

Есть ли существующий пакет, который это сделает?

Я не знаю существующего пакета, который сделает это, но вот полностью непроверенный скрипт без проверки ошибок, который может работать:

#!/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

rsync кто-нибудь? создайте несколько папок, по одной для каждого диска, переместите данные, которые будут занимать один диск, затем просто выполните проверку с помощью rsync, а не перемещайте данные.

проверить страницу руководства

Вероятно, это выходит за рамки того, что вы ищете, но бесплатная версия Unraid могла бы это сделать. Вы можете просто назначить 3 диска как данные без четности. Установите половодье на «наполнение» и настройте уровни разделения в соответствии с вашими потребностями.