Копирование данных через нестабильный канал.
Модераторы: SLEDopit, Модераторы разделов
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Копирование данных через нестабильный канал.
Всем доброго времени суток!
Опишу ситуацию. Есть 2 сетки объединенные по vpn (стандартное pptp с использованием pppd и pptp-linux). В обеих сетках шлюзами в инет стоят машины с Debian Etch. Соответственно туннель прокинут между этими машинами. Но т к в одной из сеток соединение нестабильно (спасибо Корбине), то интернет там переодически пропадает(иногда на 2-3 мин, иногда подольше) и туннель тоже рвется. Я написал скрипт который его регулярно поднимает - но какое-то время связи все равно нету. Скорость соединения с инетом в обеих сетках примерно 2 мбита (скорость по каналу примерно 1 мбит).
Сама задача - Необходимо копировать из одной сетки в другую (читай с одного шлюза на другой, силами/софтом шлюзов) архив бэкапов размером в 20 ГБ(!!!). Время копирования не сильно интересует - если оно будет меньше недели то в приниципе приемлемо (т е 4 бэкапа в месяц устроят). Интересует сама возможность такого копирования - если связь порвется то архив нужно будет копировать заново(это я про стандартные средства) - а если учесть какой он здоровый то возможно и ни разу не скопировать его до конца.
Теперь вопрос:
Чем уважаемые форумчане посоветуют копировать такой объем с возможностью докачки (а лучше просто ожидания восстановления соединения). Пока думаю над поднятием ftp и копированием средствами wget - но может кто-нить предоставит идею получше?
Спасибо за внимание.
Опишу ситуацию. Есть 2 сетки объединенные по vpn (стандартное pptp с использованием pppd и pptp-linux). В обеих сетках шлюзами в инет стоят машины с Debian Etch. Соответственно туннель прокинут между этими машинами. Но т к в одной из сеток соединение нестабильно (спасибо Корбине), то интернет там переодически пропадает(иногда на 2-3 мин, иногда подольше) и туннель тоже рвется. Я написал скрипт который его регулярно поднимает - но какое-то время связи все равно нету. Скорость соединения с инетом в обеих сетках примерно 2 мбита (скорость по каналу примерно 1 мбит).
Сама задача - Необходимо копировать из одной сетки в другую (читай с одного шлюза на другой, силами/софтом шлюзов) архив бэкапов размером в 20 ГБ(!!!). Время копирования не сильно интересует - если оно будет меньше недели то в приниципе приемлемо (т е 4 бэкапа в месяц устроят). Интересует сама возможность такого копирования - если связь порвется то архив нужно будет копировать заново(это я про стандартные средства) - а если учесть какой он здоровый то возможно и ни разу не скопировать его до конца.
Теперь вопрос:
Чем уважаемые форумчане посоветуют копировать такой объем с возможностью докачки (а лучше просто ожидания восстановления соединения). Пока думаю над поднятием ftp и копированием средствами wget - но может кто-нить предоставит идею получше?
Спасибо за внимание.
-
mandreika
- Сообщения: 217
- ОС: Debian 3,4,5,6
Re: Копирование данных через нестабильный канал.
может что-то аля торрента замутить?
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Копирование данных через нестабильный канал.
Действительно, торрент заодно и целостность переданного проверит, и при повреждении докачает только повреждённые куски.
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: Копирование данных через нестабильный канал.
Спасибо за ответы!
Действительно - я уже сам задумался над созданием чего-то типа p2p. Но вот насчет торрента не уверен. Мне казалось что для торрент трекера нужно что-то типа сайта(т е он так или иначе завязан на LAMP). Соответственно мне все эти навороты не нужны - мне нужен только транспорт. Может быть DC++ подойдет? кто-нить знает обеспечит он нужную функциональность?
Действительно - я уже сам задумался над созданием чего-то типа p2p. Но вот насчет торрента не уверен. Мне казалось что для торрент трекера нужно что-то типа сайта(т е он так или иначе завязан на LAMP). Соответственно мне все эти навороты не нужны - мне нужен только транспорт. Может быть DC++ подойдет? кто-нить знает обеспечит он нужную функциональность?
-
INF[SZ]
- Сообщения: 395
- ОС: Centos
Re: Копирование данных через нестабильный канал.
Может быть синхронизировать данные чем-то типа rsync
Я не понял Вашего вопроса, но я Вам на него отвечу.
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Копирование данных через нестабильный канал.
Для торрента нужен только трекер. Это может быть opentracker, либо идущий в комплекте с официальным клиентом трекер. Никакого LAMP.
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Копирование данных через нестабильный канал.
либо идущий в комплекте с официальным клиентом трекер.
Чего ж только с официальным? К примеру, Azureus (Vuze) тоже умеет работать трекером.
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: Копирование данных через нестабильный канал.
Нашел вот такое - XBTT
Вроде ему никакой web морды не нужно. Только как тогда в него файл то помещать - напрямую в mysql что-ли? Сижу разбираюсь.
Вроде ему никакой web морды не нужно. Только как тогда в него файл то помещать - напрямую в mysql что-ли? Сижу разбираюсь.
-
Rommel.ua
- Сообщения: 65
Re: Копирование данных через нестабильный канал.
Торрент в режиме без треккера
Создаете торрент-файл на сервере с данными (с помощью любого торрент-клиента), передаете его на комп-клиент, открываете там тем же ktorrent'ом и вперед..
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: Копирование данных через нестабильный канал.
Я слабовато разбираюсь в протоколе торрента (в tcp/ip гораздо лучше
Небольшая заметка - на серверах нету Х. Так что будет что-то типа Transmission или иное консольное.
-
antares0
- Сообщения: 92
Re: Копирование данных через нестабильный канал.
Alex2ndr писал(а): ↑23.12.2009 16:45
Я слабовато разбираюсь в протоколе торрента (в tcp/ip гораздо лучше :) ). Не могли бы вы подсказать как это будет работать? кто будет раздавать мой файл для клиента на 2-м сервере? торрент-клиент на 1-м сервере? Может есть какая-то документация? (пока читаю спеки протокола - но это надолго)
Небольшая заметка - на серверах нету Х. Так что будет что-то типа Transmission или иное консольное.
А помоему все-таки rsync. Я такое делал на связке vps - очень хреновый gprs. Хотя конечно маштабы в 100 Мб. Торрент помоему эффективен только если отдающих сильно больше одного.
-
ivze
- Сообщения: 39
- ОС: Ubuntu
Re: Копирование данных через нестабильный канал.
А чем вас не устраивает веб-сервер в пункте отправления + "wget --tries=0 --continue http://....../bigfile.tar.gz" для скачивания?
При таких параметрах оно будет пытаться докачать неограниченное число раз.
При таких параметрах оно будет пытаться докачать неограниченное число раз.
-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Копирование данных через нестабильный канал.
Тем, что можно получить битые данные где-то в середине 20-ти гигабайт, и потом не знать где именно.
Есть спец.средства для "лечения" битых файлов, но торрент гораздо удобнее, т.к. два в одном - и передача, и покусочная проверка целостности.
Alex2ndr
Жаль что вы проигнорировали моё сообщение про Azureus/Vuze, а я так старался, печатал его, кнопки нажимал на клавиатуре...
-
Frank
- Сообщения: 1059
- ОС: Ubuntu, Debian
Re: Копирование данных через нестабильный канал.
Для XBTT можно разрешить анонимные файлы, и создать торрент с URL сервер/announce в качестве трекера. Дальше запускаем по торрент клиенту - на сервере и на получателе, и ждём телемаркета. Если хотите, я вам предоставлю свой анонимный XBTT 

-
rm_
- Сообщения: 3340
- Статус: It's the GNU Age
- ОС: Debian
Re: Копирование данных через нестабильный канал.
Если хотите, я вам предоставлю свой анонимный XBTT
Если уж есть Интернет, то можно пользоваться публичными трекерами http://www.openbittorrent.com , http://www.publicbt.com .
Но лучше не надо, гораздо прямее выглядит уже описанное решение с трекером в клиенте на одной из сторон.
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Копирование данных через нестабильный канал.
ммм. а нужен трекер то вообще?
многие клиенты поддерживают ручное указание сидов.
создаем торрент, в другом клиенте его открываем, указываем руками сид.
мне кажется так должно работать.
многие клиенты поддерживают ручное указание сидов.
создаем торрент, в другом клиенте его открываем, указываем руками сид.
мне кажется так должно работать.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: Копирование данных через нестабильный канал.
Мне казалось что rsync будет нормально работать с большим количеством мелких файлов, нежели с одним но здоровенным. Я почитал про него - но никаких способов докачки/перезакачки убитого файла не нашел. Также не нашел ничего про обрывы связи. Конечно бэкап состоит из архива, в котором большое количество мелких файлов - но подготовка этих архивов не моя зона ответственности( т е в той сетке свой админ). Я беру готовые бэкапы документов с сервера. Можно конечно распаковывать, передавать и паковать обратно - но не уверен что это лучше. Есть у вас какие-то наброски и тд, что можно почитать, ознакомиться с идеей и механизмом реализации (может вы по этому поводу статью писали)?
Извиняюсь, если задел вас. Просто я считаю что Azureus/Vuze не умеет работать консольным клиентом - а как я уже говорил на моих серверах нету Х. Я ошибаюсь(т е его возможно запустить в голой консоли)?
Управлять я этим хозяйством тоже хочу не ручками а посредством скриптов - пока не знаю как с этим в rtorrent или Transmission.
Спасибо за предложение, но не хочу выводить всю эту процедуру за пределы своего шифрованного туннеля. Лучше уж я свой трекер подниму.
Ленивая Бестолочь писал(а): ↑24.12.2009 00:05ммм. а нужен трекер то вообще?
многие клиенты поддерживают ручное указание сидов.
создаем торрент, в другом клиенте его открываем, указываем руками сид.
мне кажется так должно работать.
Вот я тоже надеюсь что не нужен. Сейчас изучаю спецификацию торрент файла и разбираюсь с rtorrent (мне лень пересобирать Transmission - какой-то обормот собрал для etch в общий пакет консольный и gtk варианты)
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: Копирование данных через нестабильный канал.
Ленивая Бестолочь писал(а): ↑24.12.2009 00:05ммм. а нужен трекер то вообще?
многие клиенты поддерживают ручное указание сидов.
создаем торрент, в другом клиенте его открываем, указываем руками сид.
мне кажется так должно работать.
так действительно работает - вот инструкция для utorrent - http://ilya-314.livejournal.com/107167.html
теперь бы то же самое, но для консольного клиента. Ищу дальше...
-
Rommel.ua
- Сообщения: 65
Re: Копирование данных через нестабильный канал.
Я пробовал в ktorrente и в utorrent (виндовый, но отлично пашет под вайном).
На одном компе (сервер) запустил торрент-клиент и создал торрент-файл для моих данных, в настройках которого указал режим только DHT, и указал АЙ-ПИ адрес и входящий порт торрента моего компа-сервера. Перекинул по аське торрент-файл на комп-клиент, и открыл его там тем же ktorrent'ом. Если нет косяков с файрволлами на обоих компах, то тянет за милую душу
На одном компе (сервер) запустил торрент-клиент и создал торрент-файл для моих данных, в настройках которого указал режим только DHT, и указал АЙ-ПИ адрес и входящий порт торрента моего компа-сервера. Перекинул по аське торрент-файл на комп-клиент, и открыл его там тем же ktorrent'ом. Если нет косяков с файрволлами на обоих компах, то тянет за милую душу
-
minder
- Сообщения: 331
- ОС: AIX, Solaris,RHEL,SLES,Gentoo
Re: Копирование данных через нестабильный канал.
Alex2ndr писал(а): ↑23.12.2009 11:49Всем доброго времени суток!
Опишу ситуацию. Есть 2 сетки объединенные по vpn (стандартное pptp с использованием pppd и pptp-linux). В обеих сетках шлюзами в инет стоят машины с Debian Etch. Соответственно туннель прокинут между этими машинами. Но т к в одной из сеток соединение нестабильно (спасибо Корбине), то интернет там переодически пропадает(иногда на 2-3 мин, иногда подольше) и туннель тоже рвется. Я написал скрипт который его регулярно поднимает - но какое-то время связи все равно нету. Скорость соединения с инетом в обеих сетках примерно 2 мбита (скорость по каналу примерно 1 мбит).
Сама задача - Необходимо копировать из одной сетки в другую (читай с одного шлюза на другой, силами/софтом шлюзов) архив бэкапов размером в 20 ГБ(!!!). Время копирования не сильно интересует - если оно будет меньше недели то в приниципе приемлемо (т е 4 бэкапа в месяц устроят). Интересует сама возможность такого копирования - если связь порвется то архив нужно будет копировать заново(это я про стандартные средства) - а если учесть какой он здоровый то возможно и ни разу не скопировать его до конца.
Теперь вопрос:
Чем уважаемые форумчане посоветуют копировать такой объем с возможностью докачки (а лучше просто ожидания восстановления соединения). Пока думаю над поднятием ftp и копированием средствами wget - но может кто-нить предоставит идею получше?
Спасибо за внимание.
Обычный ftp-сервер и клиент с докачкой. Для контроля целостности можно воспользоваться файлом metalink (http://ru.wikipedia.org/wiki/Metalink).
в качестве клиента подойдет aria2. На ftp выкладываются 2 файла: сам архив и файл .metalink на него, для контроля целостности и докачки нужных кусков.
Спасибо сказали:
-
skor
- Сообщения: 419
- ОС: RTFM-OS v127.0.0.1
Re: Копирование данных через нестабильный канал.
В тексте на вики не нашел про то что будут докачиваться именно куски. По спецификации там вроде как контрольная сумма на весь файл. А качаться файл может кусками из разных мест. Но проверка вроде все равно будет только на полном файле.
Но т.к. создание файла под контролем, то для передачи ничто не мешает один крупный файл (архив) разбивать на несколько файлов поменьше (стандартным split) и уже отдельный мелкий файл будет перекачан, если что-то не так.
-
Alex2ndr
- Сообщения: 443
- ОС: Debian Lenny
Re: Копирование данных через нестабильный канал.
minder писал(а): ↑24.12.2009 16:31Обычный ftp-сервер и клиент с докачкой. Для контроля целостности можно воспользоваться файлом metalink (http://ru.wikipedia.org/wiki/Metalink).
в качестве клиента подойдет aria2. На ftp выкладываются 2 файла: сам архив и файл .metalink на него, для контроля целостности и докачки нужных кусков.
Думал над этим. Про metalink не знал - Спасибо! Хотел использовать wget а для проверки целостности md5. Это самый подходящий вариант, после варианта с торрентом(торрент предпочтительнее как-раз кусочной скачкой/докачкой, можно без split обойтись).
-
minder
- Сообщения: 331
- ОС: AIX, Solaris,RHEL,SLES,Gentoo
Re: Копирование данных через нестабильный канал.
skor писал(а): ↑25.12.2009 03:06В тексте на вики не нашел про то что будут докачиваться именно куски. По спецификации там вроде как контрольная сумма на весь файл. А качаться файл может кусками из разных мест. Но проверка вроде все равно будет только на полном файле.
Но т.к. создание файла под контролем, то для передачи ничто не мешает один крупный файл (архив) разбивать на несколько файлов поменьше (стандартным split) и уже отдельный мелкий файл будет перекачан, если что-то не так.
Это уже предусмотрено в metalink - при его создании, можно указать на сколько частей разделить файл и, соответственно, какой объем у каждой части будет. Можно указать, что один кусок, а можно много... Хэши создаются на каждый из кусочков.
-
skor
- Сообщения: 419
- ОС: RTFM-OS v127.0.0.1
Re: Копирование данных через нестабильный канал.
Да, действительно есть. Невнимательно читал.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Копирование данных через нестабильный канал.
Alex2ndr писал(а): ↑23.12.2009 11:49Соответственно туннель прокинут между этими машинами. Но т к в одной из сеток соединение нестабильно (спасибо Корбине), то интернет там переодически пропадает(иногда на 2-3 мин, иногда подольше) и туннель тоже рвется. Я написал скрипт который его регулярно поднимает - но какое-то время связи все равно нету. Скорость соединения с инетом в обеих сетках примерно 2 мбита (скорость по каналу примерно 1 мбит).
Сама задача - Необходимо копировать из одной сетки в другую (читай с одного шлюза на другой, силами/софтом шлюзов) архив бэкапов размером в 20 ГБ(!!!).
tar|bzip2|gpg|split|par2
на принимающей стороне
par2|cat|gpg|bzip2|tar
Это я так делаю, в вашем случае я-бы так и хранил бекап - как пришёл.