Скажем, у меня есть массив 10 ТБ, который я хочу сделать резервную копию на другом массиве 10 ТБ, который находится за пределами сайта. У меня есть портативный накопитель на 500 ГБ, который я могу использовать для перемещения данных. Данные статичны. Как я могу скопировать его через чанк за раз в Linux? Я понимаю, что это означает около 20 поездок.
1 ответ
Есть несколько вариантов, которые будут зависеть от вашей файловой системы, размера и характера данных.
Используйте
dump
/restore
. Они надежны и позволят вам сделать резервную копию файла кусками. Хотя я не могу дать вам точную команду, которая вам понадобится, прочитайте справочные страницы по дампу и восстановлению и поищите в Интернете учебники, которые должны дать вам хорошее представление о том, как действовать дальше.Если данные массива действительно статичны и не будут меняться изо дня в день, используйте
dd
который будет байт копировать и поддерживает смещения. просто укажитеskip=offset
при чтении с устройства исходного массива иseek=offset
при записи в копию. Например:origin$ dd if=/dev/array_device of=/dev/protable_device ibs=512 skip=3 count=1 # travel home... destination$ dd if=/dev/portable_device of=/dev/array_device obs=512 seek=3 count=1
Очевидно, вы захотите копировать более 512 байт в каждой поездке, но вы поняли идею. Еще раз, справочная страница довольно хороша и будет полезна. Рекомендуется при этом выполнить монтирование массива, чтобы ничего нового не записывалось. (В качестве альтернативы можно смонтировать только для чтения).
Вы также можете передать dd в bzip2, чтобы минимизировать занимаемое пространство:
dd if=/dev/some_device | bzip2 -c >file.gz <file.gz bzip2 -d -c | dd of=/dev/some_device
Я бы порекомендовал вам записать в файл и использовать контрольные суммы для проверки целостности.
Одновременно копируйте каталоги, сохраняя контрольный список переданных директорий. Перечислив таким образом несколько ТБ сам, я думаю, что это удивительно легко.