Сегодняшняя статья будет посвящена использованию BealgeBone Black в качестве платформы для круглосуточной скачивания и раздачи торрентов, а также в качестве местного хранилища файлов подключаемого с помощью NFS.
Вместо введения
Т.к. плата длительное время у меня не использовалась, то я решил что лучше всего её использовать для того чтобы она выступала в качестве локальной "файлопомойки" и в нагрузку скачивала и раздавала торренты.
В ходе экспериментов было выяснено следующее:
Вместо введения
Т.к. плата длительное время у меня не использовалась, то я решил что лучше всего её использовать для того чтобы она выступала в качестве локальной "файлопомойки" и в нагрузку скачивала и раздавала торренты.
В ходе экспериментов было выяснено следующее:
- Торрент клиент должен был быть достаточно лёгким чтобы не нагружать процессор при нулевой активности.
- Также данный клиент должен иметь хорошо документированное RPC-API для управления, т.к. плата не имеет настроенного графического окружения пользователя и управляется в основном через сетевые соединения (ssh).
- Способ для сетевого доступа к файлам должен быть максимально прозрачным для обоих сторон.
- Также данный способ не должен нагружать процессор как во время простоя, так и во время активного соединения.
Торрент клиент
Изначально применялся Deluge в режиме демона (deluge-daemon). Однако в виду того что он был написан на языке Python и был достаточно тяжеловесным (см. п. 1), а также не имел нормального API для построения надстроек и управления (см. п. 2), то я решил использовать другой клиент.
В ходе поисков а также учитывая предыдущий опыт, выбор пал на Transmission. Этот клиент имеет как графический, так и консольный интерфейс, плюс ко всему существует возможность управления через JSON-RPC на основе которой и построен входящий в базовый комплект web интерфейс управления:
Итогом тестирования в течении 31 календарного дня полного uptime для клиента (фиксируется внутри клиента) стали следующие данные:
Что говорит о том что вне всякого сомнения можно использовать Transmission в качестве торрент клиента для систем на базе процессоров с архитектурой ARM.
Для удалённого управления с любого устройства необходимо в конфигурационном файле демона (/var/lib/transmission/config/settings.json) изменить строчку "rpc-whitelist-enabled": true, на "rpc-whitelist-enabled": false, и перезапустить сервис, что отменяет фильтрацию для удалённых клиентов.
Внимание, Transmission очень прожорлив в плане памяти, как своей так и сетевыйх кэшей ядра, поэтому внимательно читайте настройки. В частности при количестве пиров больше чем 1024 у меня ядру уже не хватало памяти на все процессы, о чём оно активно сообщало в dmesg:
[50886.087659] kswapd0: page allocation failure: order:0, mode:0x20
или вот:
[46448.787367] swapper/0: page allocation failure: order:1, mode:0x204020
Поэтому настраивайте ваш клиент исходя из имеющихся ресурсов (также следует учитывать сторонние программы и модули запущенные у вас на плате).
Внимание, Transmission очень прожорлив в плане памяти, как своей так и сетевыйх кэшей ядра, поэтому внимательно читайте настройки. В частности при количестве пиров больше чем 1024 у меня ядру уже не хватало памяти на все процессы, о чём оно активно сообщало в dmesg:
[50886.087659] kswapd0: page allocation failure: order:0, mode:0x20
или вот:
[46448.787367] swapper/0: page allocation failure: order:1, mode:0x204020
Поэтому настраивайте ваш клиент исходя из имеющихся ресурсов (также следует учитывать сторонние программы и модули запущенные у вас на плате).
Локальное хранилище файлов
С этим подразделом тоже возникли определённые трудности, так например FTP не обеспечивал необходимой гибкости и требовал сложной настройки, SFTP при изначальном отсутствии настроек сильно нагружал процессор и медленно копировал файлы.
Поэтому по совету участников с конференции gentoo.ru, было принято решение использовать NFS. Установка сетевой файловой системы целиком описана в этом топике на gentoo.org. От себя добавлю что будет полезным почитать также следующие ссылки:
- http://wiki.gentoo.org/wiki/NFSv4 - настройка NFS в системе Gentoo Linux
- http://nfs.sourceforge.net/nfs-howto/ar01s03.html#config_server_setup - настройка серверной части NFS
- http://nfs.sourceforge.net/ - главный сайт NFS, на нём в частности есть хороший HOWTO по общим проблемам которые у вас могут возникнуть при настройке
Не забываем перезагружать систему после настроек ядра.
Для BeagleBone Black я указал следующие настройки в /etc/exports:
# /etc/exports: NFS file systems being exported. See exports(5).
/mnt/usb {{ ip_target_address }}(rw)
Для рабочей машины с которой осуществляется доступ достаточно просто смонтировать нашу FS:
jane ~ # mount {{ ip_host_address}}:/mnt/usb/ /mnt/usb
Комментариев нет:
Отправить комментарий