Я использую DD over Netcat для копирования жесткого диска из одной системы в другую, прямого клона.
Я загрузил RIP в каждой системе.
целевая система: nc -l -p 9000 | pv | dd of = / dev / hda исходная система: dd if = / dev / hda | pv | nc 9000 -q 10
Скорость передачи, похоже, колеблется в районе 10 или 11 МБ / с, при этом количество регистрируемых пакетов составляет около 18. Две системы подключены к гигабитному коммутатору. Ethtool eth0 на обоих показывает:
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes
Я думаю, что могу запутать некоторые числа для скорости передачи, но это ожидаемая скорость для передачи данных?
РЕДАКТИРОВАТЬ: Я просто попытался использовать два разных кабеля, помеченных как совместимые с 5e, и использовал перекрестный разъем для прямого соединения двух систем. Хотя ethtool по-прежнему заявляет, что установлена скорость 1000 Мбит / с, скорость передачи данных, похоже, лишь немного выше, чем раньше. Я предполагаю, что либо диски отвратительные, либо сетевые карты не работают, либо процессор должен быть узким местом.
EDIT2 Я просто попытался взять второй жесткий диск из устройства, которое нужно клонировать, и физически подключить его к главному клону. Первоначально один канал IDE перешел на HD, а другой - на CD-ROM. Я взял жесткий диск мастера и подключил его к тому же каналу, что и CD-ROM, поэтому они должны быть / dev / hda и / dev / hdb. Я взял кабель с компакт-диска и подключил его к «чистому листу», так что это должен быть / dev / hdc.
Я перезагрузился и запустил "dd if = / dev / hda | pv | dd of = / dev / hdc", и я получаю колоссальные ... 10 МБ / с. Он сильно колеблется от 8 МБ / с до 12.
Итак ... Я думаю, что жесткие диски дают хреновую производительность ... Я настолько привык к тому, что сеть является узким местом, что мне странно думать о дисках как о проблеме!
Что значит
dd if=/dev/zero of=/dev/hda
по месту назначения и
dd if=/dev/hda of=/dev/null
в источнике укажите наименьшее из двух, что даст вам лучший вариант.
Если у вас есть запасной процессор, подумайте о gzip -fast
Стоит подумать о настройке jumbo-пакетов (большой mtu)
Я ожидал бы больше 20 МБ / с, вы используете кабели cat 6 / 5e?
Я бы также запустил iostat (часть пакета sysstat) и, возможно, посмотрел, считает ли iostat, что диски загружены на 100%:
iostat -c 2 -x
Вот хорошая статья о гигабитных сетях от Tom's Hardware: Gigabit Ethernet: чувак, где моя пропускная способность?
Большая часть медлительности происходит из-за узкого места HD. Ваш средний HD протолкнет 40-50 МБ по сети на полностью простаивающем диске / системе / сети. Добавьте накладные расходы dd в простой канал netcat tcp, который никоим образом не оптимизирован для сетевого трафика, и скорости начинают сильно падать.
Большая часть замедления происходит из-за размера окна TCP. Пакет проходит и должен ждать ответа перед отправкой следующего. Обычно внутренняя сеть имеет такую низкую задержку, что этого никто никогда не замечает. Когда вы выполняете дамп не оптимизированным для сети способом, окна начинают перемещаться повсюду. Отличным примером этого является копия сетевого файла Vistas в версии до SP1, которая давала скорость передачи менее 100 КБ в секунду, когда настройка окна TCP была очень неправильной.
Также для справки, у меня здесь две коробки, которые последовательно проталкивают 60-80 мегабайт в секунду через свою сеть, чтобы облегчить другую. У них есть выделенные сетевые адаптеры, RAID 10 и несколько дисков SAS 10000 об / мин, чтобы обеспечить такую скорость.
Направляйте поток данных через сжатие / распаковку, чтобы повысить общую пропускную способность за счет использования некоторого процессора.
Я получаю 12 МБ / сек, но раньше было намного меньше - моя особая проблема была с дисками. Я использовал мерзкий дешевый «сервер хранения» Dell с ужасной картой RAID. Отказ от RAID, замена на конфигурацию JBOD имеют большое значение, даже когда я затем ставлю программный RAID5 поверх.
Я бы также подумал о том, чтобы установить на коммутаторе большие кадры, что значительно повысит вашу пропускную способность. (ifconfig eth0 mtu 9000
временно или добавить MTU 9000
в ваш файл ifcfg, чтобы установить jumbo на интерфейсы Linux).