YalexeY
21.12.2009, 22:17
Я не фанатик, по тому под Ubuntu 9.10 x64 поставил uTorrent.
Эксперимент проходит почти сутки. Один популярный торрент раздаётся одновременно с помощью Transmission и uTorrent. Последний под вайном. Количество сессий для обоих клиентов указано до 100 на торрент до 1000 глобально. Ограничения по максимальной нагрузке выставлены одинаково. Выходит так, что uTorrent 1.8.5 раздал почти в два раза больше. 10 гиг по сравнению с 6.7 у Transmission 1.75 (9117)
Вроде, вывод очевиден.
У кого какие есть соображения и какой опыт по этой теме? Ссылки приветствуются.
Года полтора назад под linux использовал консольнный BitTorrent написанный на питоне + удобная вебморда. Клиент очень нравился и всем устраивал, там была возможность гибко настроить параметры раздачи.
bittrorent-python:http://www.bittorrent.com/btusers/download/directory-list/archive#section-linux
web-морда:http://www.torrentflux.com
YalexeY
22.12.2009, 00:38
Bittornado. Развитие этого проекта. Смущает необходимость присутствия апача и мускула для верной работы вебморды.
Учитывая, что системы медиасервера работают на постгрессе, получается не шуточный наворот из конкурентных задач с соответственными запросами по памяти и процессорным ресурсам.
В принципе, меня это всё не пугает. но возникает вопрос - держать это сё на одном хосте? Рассовать по виртуалкам? Или по песочницам? Безопасность и стабильность хост системы - приоритет. Ибо там данные хранятся.
Тк. на сайте torrentflux-а написано:
Цитата
Here's what you need to use TorrentFlux:
A Web Server that supports PHP (e.g. Apache)
SQL Database (MySQL, Postgres)
PHP 4.3.x or higher
Я бы поставил nginx-0.7 + PHP как fastcgi. nginx, php и торрент клиент запустил бы под разными пользователями, сконфигруировал бы php так, чтобы он имел доступ только к торрентам. Настроил бы лимиты по процессору, памяти и диску. SQL база у вас уже есть.
Дальше можно фантазировать: папку куда возможна запись для php в noexec,всю эту систему в chroot(кстати, очень интересная штука
http://olivier.sessink.nl/jailkit ), закрыть возможность запуска бинарей (кроме доверенных). ИМХО секурность накручивать можно до бесконечности.
Если есть настроенная платформа виртуализации, я бы создал виртуальную машину и сделал все в ней (быстрее, и спокойнее)
ИМХО: обычного http ssl+basic auth + лимита по процессору, памяти и диску мне бы хватило.
YalexeY
22.12.2009, 01:43
Есть ещё момент. А не будет ли тормозить движок на питоне, если дело дойдёт до нескольких сотен торентов?
На сколько я понимаю, Deluge работает тоже на питоне, но без базы и без вебсервера.
Цитата(YalexeY @ 22.12.2009, 01:43)

А не будет ли тормозить движок на питоне, если дело дойдёт до нескольких сотен торентов?
Чего ради ему тормозить-то? Скажу более, на питоне написана одна из самых авторитетных программ для нагрузочного тестирования веб-серверов - Pylot. Не только не тормозит, но и веб-сервер так вздрючить может...
А из самых популярных сейчас да, Deluge. Ну еще KTorrent.
YalexeY
22.12.2009, 11:35
Как выяснилось, Transmission шлёт аннонс только на один трекер. Соответственно, ретрекеры в пролёте. Deluge вроде, пытается слать на несколько, но как-то не стабильно. За то Deluge реально качает из DHT посто по хешу! То есть, вообще без торент файла.
Много народу хвалят RTorrent. Он может, в том числе, обрабатывать торренты от разных пользователей. К нему есть куча вебморд. Но с раздачей и с аннонсами у него тоже не всё гладко.
Ещё вопрос. Кто-то кроме Vuze работает с IPv6? Вопос не праздный. После запуска uTorrent под семёркой я увидел, что количество пиров через Teredo вполне ощутимо.
B@rm@glot
22.12.2009, 13:47
Юзаю rtorrent.
C раздачей проблем не замечено, постоянно исх. канал загружен на 100%. Именно поэтому пришлось мастрячить qos на шлюзе.
YalexeY
22.12.2009, 14:15
А обрабатывает ли он трекеры после первого, указанного в торренте? Другими словами, с ретрекером работает? Добавить/удалить трекер можно из вебморды? Из какой? Вроде, у него нет встроенной поддержки блеклиста. И, говорят, статистику по раздаче в DHT он не спешит нести на трекер. UDP трекеры держит? Приоритеты и лимиты полосы для отдельных торрентов, групп торрентов, пользователей?
B@rm@glot
22.12.2009, 18:05
Цитата(YalexeY @ 22.12.2009, 14:15)

А обрабатывает ли он трекеры после первого, указанного в торренте? Другими словами, с ретрекером работает? Добавить/удалить трекер можно из вебморды?
да. да. да.
Цитата(YalexeY @ 22.12.2009, 14:15)

Из какой?
У меня установлена rutorrеnt
Цитата(YalexeY @ 22.12.2009, 14:15)

Вроде, у него нет встроенной поддержки блеклиста. И, говорят, статистику по раздаче в DHT он не спешит нести на трекер.
этого не знаю. блеклист не проверял, ибо не нужен, dht у себя погасил, и без него на ура раздается/скачивается - на весь канал
Цитата(YalexeY @ 22.12.2009, 14:15)

Приоритеты и лимиты полосы для отдельных торрентов, групп торрентов, пользователей?
приоритеты - да, лимиты для отдельного торрента - хз, не разбирался (что значит пользователей?).
общую скорость можно ограничить через конф. файл.
Закачивать отдельно файлы из торрентов тоже можно (правда есть некоторые не очень приятные нюансы)
udp трекеры вроде держит. Но не проверял - у меня эта опция в конфе задисаблена.
У меня висит постоянно порядка 180 раздач, комп для этого выделенный - старый ноут на PIII
загрузка проца при этом - 5%
Это при том, что на этом же ноуте еще висит демон видеорегистратора, пишет при движении в кадре с камеры возле входной двери в квартиру.
Для того, чтобы можно было прикрутить вебморду, надо пересобрать rtorrent с поддержкой xml-rpc
В репозиториях ubuntu 9.04 был не последней версии и без xml-rpc
Как в 9.10 - не знаю
B@rm@glot
23.12.2009, 13:05
Да, ноут этот, естественно, не используется как рабочая станция (у него и экран разбит - ктото когдато на нем закрыл крышку не убрав с клавы флешку), он у меня заныкан в вентиляционном коробе, X на нем отрублены, туда цепляюсь исключительно по ssh. Собственно, поэтому и был выбран rtorrent - он чисто консольный, написан на си, запускается на подобие демона (точнее с помощью волшебной программы screen). Идеальный выбор для слабых компов и для безмониторных вариантов как у меня.
На мой взгляд, у rtorrent есть только один главный недостаток (главный по крайней мере для меня) - я так и не понял, можно ли при скачивании торрента, состоящего только из одного файла (фильм например), переименовывать его и при этом оставаясь на раздаче. В utorrent можно точно - я так делал неоднократно. Как в rtorrent это сделать - не нашел. Часто авторы раздач обзывают файлы по идиотски - вот пример - P2.BD.AVC.chopper887.mkv
Вот и попробуй потом разбери, че это за кино, если файлов таких в папке немерянно.
YalexeY
23.12.2009, 14:47
Ну с именами файлов то всё элементарно. Пусть хранит как угодно, пока раздаёт, но по завершении делает хардлинк. Вот этот хардлинк то мы и будем переименовывать и перемещать как нам удобно. Правда если это не локальная файловая система, могут быть нюансы.
Я поболтат с автором RuTorrent на торрентс.ру. В общем, надо пробовать. На сколько я понял, людям без комплексов вполне сойдёт и консольный интерфейс по SSH. Он вполне функционален. Есть ещё варианты локальных клиентов, которые цепляются к rTorent на сервере. Фактически, RuTorrent так и сделан, просто на яваскрипте в браузере, а не отдельной софтиной. А вот wTorrent полностью на движке веб сервера работает, а клиенту только странички шлёт.
Пока я вообще мучаю Deluge. Если не смотреть на его питоновость, то в остальном софтинка рабочая. После установки Teredo спокойно находит и IPv6 пиров. Вроде, активно поддерживается. А трафик явно лучше чем у Transmission. Кроме того, Deluge тоже модульный. Можно грузить демон на сервере и цепляться виндовой мордой.
B@rm@glot
23.12.2009, 16:01
Deluge пробовал - очень функциональный, но тяжелый, гад. При полуторе сотен раздач аццки тормозит. Напомню, комп у меня для этого дела доисторический, и памятушки там 256 всегото. А держать большой комп круглосуточно для раздач - некошерно ниразу.
Хардлинк не катит, ибо все файло ноут заливает на внешний NAS (примонтрирован как cifs), с которого фильмы дергаются как с большого компа (или с другого ноута), так и с сетевого медиатанка в большой комнате с большим теликом.
YalexeY
23.12.2009, 16:23
А если монтировать хранилище как NFS? Вроде, должны проходить хардлинки тогда. В CIFS VFS тоже. Естественно, внутри одной точки монтирования.
B@rm@glot
23.12.2009, 16:31
С NFS сложнее. У меня DNS323, поддержка NFS была введена в какой-то непоследней бета прошивке, в последней бете опять убрали. А самому поднимать через консоль очень лениво, мне не нравится сама организация стандарта. Да и медиатанк почемуто с первого раза не понял NFS шару, я тогда немного поколупался и забил... глючно все это.
А внутри одной точки монтирования - это как я эту точку распространю на всех клиентов? Я же говорю, все файлы на NAS, а забираю я с разных мест.
Единственный выход - лезть на NAS и ручками там линки создавать, но это полнейший изврат, пусть уж лучше файлы по корявому обзываются.
YalexeY
23.12.2009, 16:57
Вообще, это жёсткий офтопик уже. Принципиально "в одной точке монтирования" только для момента создания хардлинка. Потом мы имеем два независимых узла файловой системы. Просто ссылаются они на одну и ту же последовательность. Фактически, два независимых файла. Просто содержимое у них всегда будет совпадать и меняться синхронно. Ну и, естественно, место не будет занято дважды. Это всё работает и в виндах на NTFS отлично. А шарить для всех одинаково тоже не обязательно. Можно одно и тоже отшарить и NFS и CIFS.
B@rm@glot
23.12.2009, 17:31
Попробовал.
С cifs у меня точно не прокатывает. С NFS надо пробовать.
добавлено:
Хм, а ведь и правда можно так сделать. Спасибо за идею.
Попробовал на другой шаре (не на nas но тоже на линуксе - там убунту) - жесткие ссылки нормально создаются. Видимо, на NAS используется устаревшая версия самбы ну или хз что. Не работает и все. И неясно почему... Монтирую все одинаково - через /etc/fstab строчкой
Код
//192.168.1.100/Volume_2 /mnt/nas/volume2 cifs userid=user,passwd=pass,uid=alex,gid=alex,iocharset=utf8,codepage=cp866 0 0
Надо пробовать по NFS опять.
Э-э-э-э-э-э... А зачем создавать обязательно жесткие ссылки? Чем символические-то (symbolic) не канают?
B@rm@glot
24.12.2009, 11:43
Если бы только с одного компа туда лазил, проканали бы.
А так, пути разные получаются.
YalexeY
24.12.2009, 12:27
Понеслась езда по кочкам. А зачем создавать симлинки, если можно создать харды?
B@rm@glot
24.12.2009, 13:15
Если бы можно было использовать симлинк, то для меня это было бы даже удобнее, ибо при удалении родительского файла, сразу же видно было, что ссылка стала висячей. При юзаньи хардлинка получается так, что пока я не удалю файл и сам хардлинк - место на диске не освободится. То есть надо все время держать этот момент в голове - очень неудобно.
Потом еще момент - симлинк - сразу видно что это симлинк. А хардлинк выглядит как файл. И как я потом выясню, что это не файл, а хардлинк и что на него есть еще оригинальный файл?....
Хотя, по сути, хардлинк и есть дополнительное имя файла в файловой системе. В этом и неудобство в конкретной схеме.
YalexeY
24.12.2009, 13:23
Ни фига себе неудобство! На мой вкус как раз удобство! У rTorrent свои правила по раздаче. По времени, или по рейтингу. Закончит - прекратит и сотрёт файл-хардлинк. У пользователя свои желания. Посмотрел - не понравилось - стёр. Всё это происходит интуитивно и независимо. Не нужно задумываться, что удалив симлинк не плохо бы ещё грохнуть и сам файл. То чем пользуешся не пропадёт от того, что был удалён файл.
B@rm@glot
24.12.2009, 15:49
Нееее. Я такие вещи рторренту не доверяю. Мне удобнее ручками. И раздается у меня все до упора, пока я сам это не потру.
Другими словами - если, например, фильм такой, который я еще раз возможно буду пересматривать - то он у меня лежит на харде до упора. Соответственно и раздается тоже всегда. Пока я его сам не потру. Ну а ежели гуано какое-нить закачал - то я не жду того момента, чтобы именно по этой раздаче себе рейтинг поднять, либо сколько то там часов высидеть - мочу эту киноху без сожаления сразу же. И место на винте не захламляется.
У меня жена любительница ужастиков - я ей еженедельно заливаю их по несколько десятков. Дык половина после десяти минут просмотра летит в корзину, если кино дрянь (а среди ужастиков мало достойных картин, в основном параша всякая дешевая... как правило, если сразу неинтересно, то и смотреть дальше нецелесообразно). На рейтинг на трекере мне пофигу - он большой
Удаляет файлы она самостоятельно и мне будет трудно ей объяснить, что такое хардлинк и что кроме него надо еще файл у торрента убить. Она с компами не очень дружит.
С такой частой ротацией файлов я задолбаюсь все это отслеживать. Симлинки было бы проще прибить - тот же наутилус висячие симлинки подсвечивает специальным значком.
Кстати, таким образом, эти раздачи в рторренте становятся "красными" (в веб морде) и я их потом просто из этой же веб морды и убиваю (то что от них осталось). То есть не шарюсь в самой вебморде чтобы прибить раздачу, а сначала убиваю сам файл на диске.
Вопщем, хватит оффтопить. По хардлинкам все ясно. Поначалу идея заинтересовала, но после того как я вник в суть - такой вариант именно мне не подходит. На вкус и цвет как известно....
Только что обнаружил, что рторрент обновился - на сайте лежат уже ibtorrent-0.12.6.tar.gz и rtorrent-0.8.6.tar.gz
У меня соответственно 0.12.5 и 0.8.5
Пойду ка я ща скомпилю версию посвежее....
Цитата(B@rm@glot @ 24.12.2009, 13:15)

Если бы можно было использовать симлинк, то для меня это было бы даже удобнее
Можно на "ты"? А почему в данном случае ты не можешь использовать симлинки, напомни пожалуйста. Я еще раз бегло пролистал тему, но что-то так и не уяснил в чем заключаются препятствия для этого.
B@rm@glot
24.12.2009, 22:35
Нужно.
Суть такова - торренты качает отдельный комп, кладя файлы на внешний ресурс, который виден ему через smb протокол. SMB шара подмонтирована в точку /mnt/nas/........ т.к. торрент клиент не умеет напрямую класть файлы по ссылкам типа smb://....
Да и с моего основного рабочего компа удобнее смотреть на эти ресурсы, когда они видны как будто они в локальной файловой системе - не нужно лазить в сетевое окружение, прыгать по компам, папкам и т.п. Не все программы корректно понимают протокол SMB и не все умеют с ним работать.
У меня есть также сетевой медиатанк, который напротив, не умеет монтировать шары самбы в локальные точки монтирования (плеер Egreat, там тоже линукс, но сильно кастрированный, я даже не делал себе туда вход по ssh, т.к. для таких ковыряний надо ставить туда свой жесткий диск, а мне это неудобно - он у меня чисто сетевой, с пассивным охлаждением). Но этот плеер прекрасно понимает ресурсы в виде ссылки smb://.....
То есть если я начну создавать симлинки в точке /mnt/nas/..... то они не будут работать в другом месте по smb://....
В симлинке прописывается абсолютный путь, вот в чем засада.
Цитата(B@rm@glot @ 24.12.2009, 22:35)

В симлинке прописывается абсолютный путь, вот в чем засада.
Ничего подобного. Совершенно спокойно можно прописать хоть абсолютный, хоть относительный путь. За базар отвечаю. Сам так делал, делаю и буду делать.
B@rm@glot
24.12.2009, 23:04
Колись как.
Стандартным ln -s получается так, как я сказал.
Цитата(B@rm@glot @ 24.12.2009, 23:04)

Колись как.
Приведи реальный пример пожалуйста, чтобы не рассказывать про сферического коня в вакууме. Я имею ввиду "есть такая-то директория, сякая-то директория, надо создать симлинк вот здесь вот на такой-то файл". А я опишу последовательность команд.
B@rm@glot
24.12.2009, 23:16
ну допустим есть некий файл с именем hns-dod.mkv
лежит в папке smb://nas/volume_1/Video_1/Ужасы, она же /mnt/nas/volume1/Video_1/Ужасы
Надо создать симлинк с именем test.mkv в папке smb://nas/volume_1/Video_1/test (/mnt/nas/volume1/Video_1/test)
Пожалуйста.
Код
cd /mnt/nas/volume1/Video_1/test
ln -s ../Ужасы/hns-dod.mkv test.mkv
B@rm@glot
24.12.2009, 23:42
Все гениальное - в простынь!

Спасибо. Вещи очевидные, но как всегда сам не допетрил

Все работает, но только не на этом насе:
Код
alex@amuz-home ~ $ cd /mnt/nas/volume1/Video_1/test
alex@amuz-home /mnt/nas/volume1/Video_1/test $ ln -s ../Ужасы/hns-dod.mkv test.mkv
ln: создание символьной ссылки `test.mkv': No such file or directory
alex@amuz-home /mnt/nas/volume1/Video_1/test $
А вот на другом ресурсе, аналогично подмонтированном, но на котором стоит нормальный убунту 9.04 все прокатило. Ссылка создалась и доступна через разные способы подключения.
Сдается мне, что на насе стоит уж слишком древняя самба - она таких умных слов как симлинк просто не знает. Нужно либо дисаблить после загрузки ту что из коробки и стартовать свою версию, установленную из optware, либо вообще сность встоенную ось к чертям и ставить дебиан (нашел сайт посвященный устройству - там народ шаманит с ним неподеццки). Но на это надо время, а его как всегда не хватает.....
Цитата(B@rm@glot @ 24.12.2009, 23:42)

Сдается мне, что на насе стоит уж слишком древняя самба - она таких умных слов как симлинк просто не знает.
Не очень хорошо понял, при чем тут самба. Эти команды вводились в шелле (в консоли), так ведь? А симлинк де-факто - это тупо текстовый файл, в котором написано где брать "основной" файл.
Что касается NAS-а... Какой там шелл? Bash, SH, zsh, что-то другое? Вполне возможно, что может прокатить вот так:
Код
cd /mnt/nas/volume1/Video_1/test
ln -s ../Ужасы/hns-dod.mkv ./test.mkv
Или, как другой вариант, с системной локалью что-то не то. Попробуй создать симлинк на файл, в абсолютном пути которого присутсвтуют только латинские символы.
B@rm@glot
25.12.2009, 07:29
Эти команды вводились в терминале, ессно. Не на насе, а на моем компе, т.к. папки наса подмонтированы ко мне.
Я понимаю, что симлинк - это текстовый файл. Но интересно то, что если я залезу непосредственно на нас по ssh, то симлинки там создаются. А от меня - нет.
Вариант с русскими буквами - я уже пробовал ранее их исключить - не помогает.
На насе стоит по дефолту (системный) - sh, когда я логинюсь туда - подгружается bash (ставил дополнительно).
Нужно действительно попробовать настроить там NFS и попробовать через него.
Там вроде как самба по дефолту стоит из ветки аж 2.х.х (но не уверен, просто почемуто в памяти отложились именно эти цифры)
Теперь понятно.
А в конфиге самбы на NAS-е присутствует директива "follow symlinks = yes " ?
B@rm@glot
25.12.2009, 13:15
Прописал, перезапустил, не помогло.
В секции global ведь надо?
Или в каждой шаре?
Цитата(B@rm@glot @ 25.12.2009, 13:15)

Или в каждой шаре?
Да, именно в каждой шаре. По крайней мере, так сказано в документации.
B@rm@glot
25.12.2009, 15:22
Так тоже не работает.
Забей. Фиг с ними. Потом, как нибудь руки дойдут, попробую вручную поставить другую самбу. А эту, из коробки, надо будет гасить.
Кстати насчет версии самбы я ошибся
Стоит 3.0.24
Тут прочитал:
http://wiki.dns323.info/
B@rm@glot
5.04.2010, 14:38
Цитата(YalexeY @ 22.12.2009, 15:15)

Приоритеты и лимиты полосы для отдельных торрентов, групп торрентов, пользователей?
Сейчас узнал, что автор rutorrent (web морда для rtorrent) выпустил новую версию - 3.0
Много улучшений и нововведений.
В т.ч. отдельные полосы для конкретных раздач, гибкая настройка ратио, шедуллер и прочие вкусности.
Единственный нюанс - веб морда не захотела работать с rtorrent, собранному из svn
Пришлось качать стабильный вариант и пересобирать.