Как закачивать торренты на сетевой диск

Обновлено: 07.07.2024

У меня дома несколько компьютеров, один из которых настолько стар, что иначе как использовать его в качестве домашнего сервера мне не приходит в голову. Остальные же ноутбуки и имеют одну проблему – каждый член семьи качает из сети то, что ему придет в голову, и часто приходит в голову одно и то же. Данные не синхронизированы между нами, и это начало утомлять. Используя старенький компьютер, большой диск-хранилище, домашний wi-fi, utorrent и сервис Dropbox я построил систему, о которой хочу вам рассказать.

Схема моего решения выглядит (кликабельно) так, и вот как это все работает:

В единой wi-fi сети стандарта N, в которой все клиенты поддерживают его, так что узких мест тут нет, живет старенький Mac mini с подключенным к нему по USB хранилищем. На mini установлена програмима utorrent, которая установлена в режим сканирования заданной папки на появление в ней файла с расширением .torrent, который она тут же «съедает» и начинает закачку в заранее установленную папку на хранилище. Вот как это настроить:

Первая галочка как раз и отвечает за режим сканирования. Вторая галочка стартует немедленную загрузку без всяких вопросов. Третья отвечает за удаление .torrent-файла. Ее я не включал, так как именно наличие этого сохраненного файла гарантирует, что никто в вашей семье не стартанет загрузку подобного файла, так как наличие этого файла автоматически означает, что все уже загружено.

Папка из которой utorrent берет файлы является расшаренной через Dropbox на всех клиентов папкой. Т.е. каждый компьютер просто сохраняет .torrent-файлы локально и они сами улетают на домашний сервер стартуя загрузку новой порции медиа-данных. Решение с Dropbox было выбрано не случайно (ведь кажется, что и сетевая папка сойдет) – так вы можете стартовать закачки торрентов дома с работы, с мобильного интернета, с кафе на другом конце земли – все очень гибко.

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

Удаленный компьютер mini живет без монитора и все управление им происходит через стандартную фичу ОС – Screen Sharing:

Аналог шарингу экрана в Mac OSX есть в каждой известной мне ОС, тут Google вам в помощь. В Windows я когда-то пользовался Microsoft Mesh. Управляемый компьютер появляется у вас в отдельном окне, а пользователи Lion могут вынести его в полный экран на один из виртуальных экранов.

А вот как выглядит мой домашний сервер, дисковое хранилище и маршрутизатор.

Предложенная система не идеальна, и нам интересно ваше мнение, что можно сделать лучше в моем случае. А если поделитесь вашими решениями, то благодарных вам будут сотни, если не тысячи. Заранее спасибо!

Если в настройках DC++ или uTorrent в качестве пути для загрузок выбрать сетевую папку на сервере, какие могут быть последствия? Насколько сильно будут использоваться ресурсы компьютера? Чем плох такой вариант?

Смысл в том, что хочется смотреть фильмы с домашнего сервера, а выбирать и качать с компьютера.
В случае uTorrent спасает WebUI, но гораздо чаще я качаю с DC++, у которого клиенты все под Windows и веб-интерфейс у них оставляет желать лучшего.
VNC - неудобно.

Если кто посоветует другой способ добавить загрузки в DC++ через комп на сервер - буду рад.

Оценить 2 комментария

Что мешает переносить файлы на сервер после закачки?

uraaa

@zooks Цель - максимальное удобство. Вручную копировать файлы занимает много времени. Особенно если скачалось за рабочий день пара фильмов 1080p, весом каждый по 40Гб. При работе DC++ на клиенте, можно просто разбить по разным папкам: временную папку(текущие закачки) на клиенте, и конечную папку на сервере.
В настройках нужно просто указать временную папку для незавершенных закачек. Таким образом файл будет качаться во временную папку на клиенте, а затем когда скачался автоматически будет перемещаться в папку, которую юзер выбрал при запуске закачки. Вариант без каких либо внешних батников и т.п.
Если не изменяет память там даже перезапуск клиента или сервера не критичен будет. При перезапуске DC++ он просто будет продолжать копировать.

Ну зачем же вручную, можно сделать батник и запускать по завершению скачки. По-моему DC++ это тоже поддерживает. Качать по сети нежелательно. Исхожу чисто из практики.

По сети отсутствует доступ к диску, а значит файл пишется в память, а не во временный файл. Вот и происходит у @sonik_spb раздувание файла подкачки. А что будет при файлах в 40 ГБ?

Так что либо планировщик, либо перемещение по завершению скачки, других вариантов нет.

Никакого раздувания у меня не происходит. Обычная шара подключена как сетевой диск. Торрент скидывает туда прямо во время скачки. @sonik_spb максимальный размер скачиваемого файла помещается в оперативку при невозможности записи. Если куча маленьких, то это не так заметно. Да всё верно. Но возможность записи то есть, поэтому ничего не скапливается. @sonik_spb А в вопросе написано про blue-ray ремуксы, где файлики от 20 ГБ без разбивки, поэтому лучше запустить копирование уже после скачки - на автомате. Торент скидывает на диск блоками. Т.е. я качаю файл в 20гб не в ОЗУ разом, а маленькими кусочками на винт постоянно. И разницы куда качать по сути нет, что на свой винт, что на сетевой диск (если подключение к нему быстрое, у меня 100мбит). При работе по сети нет доступа к носителю. Передача файла идет целиком. Т.е. по сути файл будет передан по сети N число раз, где N - число его фрагментов. Когда при нормальной работе с носителем файл будет открыт для чтения и в него будут дописываться скачанные фрагменты, что не будет насилованием харда и сети. Если на домашнем сервере SSD, то он вообще накроется моментально.

Взял большой торрент, несколько образов по 4гб в раздаче. Поставил качать на сетевую папку. Что произошло:
1. торрент начал качать файлы, но не много. Выкачал пару метров и перестал. Пишет что диск перегружен на 100%.
По логам на сервере с сетевой папкой видно что он на данном этапе закачивает "пустые" файлы на место где будет торрент.
Т.е. занимает место для будущих файлов своим мусором.
Это даже кажется настраивается где-то в меню. Делает он это для того чтобы не было фрагментации файлов.
На этот момент торрент действительно зохавал ОЗУ, но всего 20метров по сравнению с простоем.
Хотя настройках кеш для него 1.8 ГБ, непонятно почему он не начал его юзать. (к теме отношение не имеет всё равно)
На этом этапе сеть до сетевой папки нагружена на 100%.
Действительно есть первый оверхед по передаче файлов (сначала мусор, потом данные на место мусора), но точно такой же оверхед есть и при локальной скачке на компьютер.
Ничего тут нового и удивительного. И не удевлюсь что это можно настроить.

2. Торрент дописал свой "мусор" и занялся конкретно скачкой. ОЗУ используется в обычном режиме, не больше не меньше (сейчас 33мб занимает).
Файлы качаются, и сразу пишутся на сетевой диск, заменяя тамошний мусор (точно так же торрент работает и в "локальном" варианте).
По логам сервера с сетевой папке видно что все файлы открыты в режиме "чтение и запись" для меня. Для других они доступны только на чтение.

Собственно качаю в данный момент 2 образа по 4,2 гб на сетевую папку без сохранение на диск и без "добавочных" оверхедов по ОЗУ. Всё так же как с локальной скачкой.

Правда есть ньюасы, но касаются они скоростей подключения.
Если скорость канала в инет окажется выше чем скорость до сетевой папки, то 100% будет оверхед по ОЗУ, но по другим опять же причинам =)

Читайте также: