Не каждый день, но довольно часто я сталкиваюсь с ситуацией, когда нужно перебросить большой объем данных между двумя Linux хостами. Поднять ftp/http сервер не всегда возможно да и долго, ради одноразовой операции. Про проект hscp я знал давно, но... Чужими бинарниками я не пользуюсь, а процедура сборки этого счастья вызывает, мягко говоря, сложности.
Hscp (Hybrid scp) - проект объединяет в себе достоинства scp(SSH) в плане распространенности и UDP(UDT) в плане скорости. Для полноценной работы нужен hscp установленный и на клиенте, и на сервере. При отсутствии hscp на сервере используется классический scp, т.е. хуже чем есть не станет. При наличии hscp на сервере происходит создание соединения по протоколу UDP в рамках которого производится передача данных между хостами.
О проекте:
Hscp (Hybrid scp) - проект объединяет в себе достоинства scp(SSH) в плане распространенности и UDP(UDT) в плане скорости. Для полноценной работы нужен hscp установленный и на клиенте, и на сервере. При отсутствии hscp на сервере используется классический scp, т.е. хуже чем есть не станет. При наличии hscp на сервере происходит создание соединения по протоколу UDP в рамках которого производится передача данных между хостами.
Достоинства:
- легко установить - достаточно скопировать один бинарник и один конфиг
- скорость передачи близка к максимально возможной по существующему каналу
Недостатки:
- необходимо обеспечить возможность соединения по UDP от сервера к клиенту, что может быть сложно, если нет доступа к настройке файрвола
- данные не шифруются, значит не все можно передавать с использованием hscp
Что сделано:
- создан репозитарий на GitHub: https://github.com/eostapets/hscp.git
- библиотека UDT добавлена в проект, на нее наложен патч от HSCP
- необходимые для сборки файлы из OpenSSH 6.4p1 добавлены в проект и зачищены до состояния собираемости
- добавлен каталог debian для упрощения сборки deb-пакетов для Debian-совместимых дистрибутивов
- добавлен hscp.spec для сборки rpm-пакетов(сделан для openSUSE 12.3, но легко может быть адаптирован для других дистрибутивов)
- в ходе всех правок добавлена куча Linux-specific вещей, что однозначно сломает сборку на других Unix системах :-(
Что необходимо сделать:
- очистить импортированные из OpenSSH файлы от всех неиспользуемых функций, что существенно упростит в будущем поддержку этого хозяйства
- добавить систему автоконфигурирования(вероятно это будет autotools) и починить сборку на всех доступных вариантах Unix
- портировать патч на UDT для последней версии этой библиотеки
Комментариев нет:
Отправить комментарий