У меня есть два идентичных жестких диска USB 3.0 (750 ГБ). Один из них пуст, и я хочу использовать его как зеркало первого диска (в качестве резервной копии).

Оба диска подключены к портам USB 3.0, и в тестах скорости чтения и записи довольно хорошие (макс. ~ 110 МБ / с и мин. ~ 60 МБ / с для чтения, макс. ~ 100 МБ / с и мин. ~ 55 МБ / с для записи).

Я пытался сделать это с помощью инструмента dd, вот так:

dd if=/dev/sdc | pv | dd of=/dev/sdd

Максимальная скорость не более 20 МБ / с. Можно ли как-то ускорить это?

2 ответа2

5

Добавление размера блока может ускорить процесс. Например, dd if=/dev/sdc bs=1M .

Трудно предсказать, что использовать bs, но по умолчанию кажется 512 байтов, что означает, что вы передаете 750GiB в патронах 750x1024x1024x2. Если вы используете 1M в качестве размера блока, то это уменьшает количество проверок (и системных вызовов) на 2048. Это устраняет много накладных расходов.

Собственное тестирование на дисках, подключенных к dd, SAS и SATA, показывает значительное увеличение с 512 байт до 4 КБ, но после этого значительно большее увеличение.

Во-вторых: оба диска подключены к одному контроллеру USB3? Затем вы разделяете пропускную способность контроллеров USB. Два разных USB-контроллера должны ускорить процесс. (Обратите внимание, что я написал контроллер, а не USB-порт. Один контроллер обычно контролирует несколько портов).

Обратите внимание: USB2 часто архивирует со скоростью до 30 или 35 МБ / с. Вы можете попробовать переместить один из дисков в разъем USB 2, а другой оставить в порту USB 3. Предполагая, что порт USB3 не имеет (внутренней) полосы пропускания для поддержки обоих каналов, это может удвоить вашу скорость. (В дополнение к усилению, полученному от установки размера блока).

В-третьих: использование термина «зеркало» немного сбивает с толку. В большинстве случаев «зеркало» относится к RAID-1, и в зеркале RAID-1 можно использовать два USB-диска. Таким образом, они всегда получают одинаковое содержание. Это также означает, что удаление чего-либо приведет к его удалению с обоих дисков.

0

Если вы говорите о зеркале, как в RAID-1, обратите внимание, что это не резервная копия. Зеркало позволяет пережить физический сбой одного диска, но не помогает при удалении файла.

Если вы хотите дублировать все файлы с одного диска на другой, вам следует рассмотреть возможность использования rsync. Это обеспечит копирование только файлов, а не копирование всех физических блоков. Это может быть немного быстрее, в зависимости от того, насколько заполнен ваш диск. Кроме того, он может быть НАМНОГО быстрее в последующих синхронизациях, так как будут скопированы только измененные файлы.

Если вы настаиваете на копировании физических блоков, вы можете сначала скопировать их на непосредственно подключенный диск, а затем скопировать их на второй USB-накопитель. Это предотвратит конкуренцию двух накопителей за ресурсы USB и, возможно, будет быстрее, чем ваш нынешний подход. Очевидно, что для этого требуется наличие 750 ГБ на подключенном жестком диске.

Вы можете подумать о настройке конфигурации RAID-1 с помощью mdadm. Это, вероятно, не будет быстрее, но может лучше соответствовать тому, что вы пытаетесь сделать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .