Передача большого количества маленьких файлов

Я должен выполнить миграцию двух серверов с большими вложениями SAN в нашу новую среду VMWare.

РЕДАКТИРОВАТЬ: я должен предоставить некоторые дополнительные сведения, поскольку у меня есть хорошие ответы относительно решения VMWare.

Итак, я не могу подключить предыдущий EMC LUN в новой системе из-за некоторых технологических ограничений на сервере.

Я не могу использовать VMWare Converter для клонирования недостающих томов на моей новой виртуальной машине, поскольку VMWare Converter не может видеть псевдо-устройства EMC PowerPath и что предыдущий администратор использовал эти псевдо-устройства для создания томов LVM2 и / или ASM поверх них.

Эти два физических сервера подключены к старой сети EMC² CX-340 SAN и обрабатывают 5 ТБ данных.

Эти 5 ТБ данных представляют собой небольшие PDF-файлы, и мне нужно перенести их на новый компьютер через нашу локальную сеть 1 Гбит / с.

Я пытался использовать rsync, но это действительно медленно и сильно влияет на производительность ОЗУ и процессора.

Я пробовал использовать NC с TAR, но скорость передачи довольно медленная, так как у меня средняя пропускная способность около 50 МБ / с на канале 1 Гбит / с с почти нулевым трафиком.

Не могли бы вы дать мне какой-нибудь совет или поделиться опытом с этим видом миграции и как вам удается правильно завершить его в течение разумного периода времени?

4 ответа

Если вам действительно нужен быстрый способ передачи файлов, и обе системы основаны на Linux, вы можете попробовать UDR.

Это действительно форма rsync-over-UDP (использующая среду UDT с открытым исходным кодом) и особенно удобна для перемещения большого количества файлов или передачи по каналам с высокой пропускной способностью или с высокой задержкой. Кроме того, шифрование по умолчанию отключено, поэтому попадание в ОЗУ / ЦП ниже, чем при традиционном rsync. SSH тоже не задействован.

Я могу легко получить скорость передачи данных более 1 Гбит / с с помощью 10 миллионов небольших файлов TIFF в дереве каталогов.

Ваш синтаксис будет немного изменен с rsync. Все флаги rsync должны появиться до спецификации источника / назначения:

udr rsync -avP --stats --delete /data/ server2:/data/

Легко построить... Вам понадобится g++ а также openssl-devel:

git clone https://github.com/LabAdvComp/UDR.git
cd UDR/
make
cp src/udr /usr/local/bin/

Сделайте это с источником и местом назначения.


См.: Возможность оптимизации WAN для трафика SSH.

При использовании в режиме демона без шифрования rsync может эффективно передавать большое количество небольших файлов. Попробуйте еще раз, используя его в режиме демона.

Разве вы не задумывались о том, чтобы предоставлять SAN LUN напрямую новым виртуальным машинам - это обычно работает просто отлично и может быть быстрее, чем копирование файлов в VMDK - хотя это может "заблокировать" виртуальные машины на их начальном хосте. Но вы можете использовать это, чтобы начать работу, а затем перенести файлы в VMDK в своем собственном темпе - с помощью rsync - и затем обрезать ссылку на исходные LUN.

Если целевые виртуальные машины еще не созданы, вы можете попробовать использовать бесплатный VMware Converter для копирования данных.

Фактически, даже если они собраны, вы можете клонировать диски на фиктивную виртуальную машину, а затем подключить их к существующей виртуальной машине после завершения клонирования.

В любом случае конвертер использует два метода для клонирования файлов от источника к месту назначения, полную информацию о которых можно найти здесь.

Если целевые диски настроены на размер меньше исходного, они будут клонировать отдельные файлы в новую виртуальную машину.

Однако, если целевые диски настроены равными или большими, он клонирует блоки. Это сделало бы количество файлов на диске в значительной степени неактуальным, и оно должно работать относительно быстро.

Я сомневаюсь, что вы заполните канал 1 Гбит / с, но вы должны получить более 50 Мбит / с.

Просто помните, что вы все еще хотите переместить 5 ТБ, так что это займет некоторое время.

Другие вопросы по тегам