@dimone73

Копирование одного диска на несколько, как ускорить?

Копирую жесткие диски. Не RAID. Обычно пользуюсь командой dd (да, возможно это не самый оптимальный способ). Как бы ускорить это дело? Хотелось бы с одного сразу например на 3 диска. Представляю, что наверное как-то можно распараллелить запись. Сначала dd if=/dev/sda а потом как-то же возможно (ну не по конвейеру) на несколько of=/dev/....
Может кто делал подобное?
Встречались примитивные примеры через 'Process Substitution' и tee для перенаправления из cat file одновременно в grep foo и sed 's/bar/baz/' команда:
cat file | tee >(grep foo) >(xz -z > file.xz) | sed 's/bar/baz/'
Может как-то подобным образом и с dd поступить.
  • Вопрос задан
  • 278 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
попробуйте для начала dd if=/dev/sda | tee /dev/sdb /dev/sdc /dev/sdd > /dev/sdc
сходу проверить негде, но не вижу причин почему бы это не работало.

можно так
dd if=/dev/sda | tee >(dd of=/dev/sdb) >(dd of=/dev/sdc) >(dd of=/dev/sdd) > /dev/null

чтобы был доступ к привычным опциям dd
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Лучшее решение, к которому мы пришли - размечать диски parted, форматировать нужные разделы, заливать tar.gz-архив, ставить загрузчик EFI. Ускорение в 10-20 раз.
Еще, как вариант - ужать файловую систему до размера данных и делать resizefs на весь раздел.
Рещается простым скриптом со всеми нужными командами.
Копируем за раз по 10-12 дисков.
Кстати, через resizefs обычно делаются флешки для всяких rasberry/orange
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Успех мероприятия зависит от пропускной способности канала. Например если все 4 участника этой гонки - магнитные диски и включены в SATA3 порты - то копирование будет в первую очередь ограничиаться шлейфом SATA3 (до 6Gbit) и даже если 3 других в сумме дают более быстрый трафик то мы будем исходить их скорости самого медленного верблюда в караване.

Иногда помогает легкое поджатие информации. В BigData например используют кодеки snappy/LZ0.
Хотя я никогда не видел snappy реализованного в виде консольной утилиты.
Ответ написан
ValeriuCutebov
@ValeriuCutebov
Если вы хотите скопировать один диск на несколько дисков, то вместо команды dd можно использовать cat. Например, чтобы скопировать содержимое /dev/sda на /dev/sdb, /dev/sdc и /dev/sdd, вы можете использовать следующую команду:
cat /dev/sda | tee /dev/sdb /dev/sdc /dev/sdd > /dev/null

Эта команда использует tee для записи содержимого /dev/sda на все три диска одновременно. Затем tee перенаправляет оригинальный вывод cat на /dev/null, чтобы избежать дополнительной записи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы