Пользователь
0,0
рейтинг
8 июля 2014 в 17:34

Администрирование → Сетевое хранилище данных «WD My Book Live» и его доработка из песочницы

Наверняка большинство из нас любит гаджеты не только за их функционал, но и за то, что их стандартные возможности можно в той или иной степени расширить. Когда есть возможность заточить устройство именно под свои актуальные нужды — ты покупаешь его, и с предвкушением засучить рукава прикидываешь спектр дальнейших доработок.

К этому разряду и относится железка, о которой тут ранее уже было написано, но без некоторых нюансов использования и потребностей пользователя. Теперь, имея субъективный опыт — хочется с ним поделиться с хабрасообществом, восполнив этот небольшой пробел. Данный пост стоит рассматривать лишь как дополнение к уже существующим обзорам и, возможно, как некоторое руководство к опциональной модернизации:

image

Причины покупки были следующие:
  • Имелось давнее желание иметь тихую железку, что способна объединить целый ворох гаджетов в вопросе файлообмена;
  • Хочется скачать какой-то большой торрент (или раздать его), но не хочется оставлять для этого включенный рабочий компьютер (можно скачать и ноутбуком — но потом надо файлы как-то переносить на рабочую машину);
  • Хочется залить фотки в папку, и при возможности — просто (и удобно) показать гостям или посмотреть самому с планшета;
  • Хочется с Android смартфона перекидывать файлы на компьютер, но без лишних тапов и облаков;
  • Хочется реализовать резервное копирование;
  • Хочется иметь доступ к файлам через глобальную сеть;
  • Хочется иметь доступ к ним через HTTP без заморочек, даже со своего хромбука;
  • Хочется с того-же хромбука иметь возможность просматривать и заливать файлы на файлошару;
  • Не хочется для этого заводить отдельную машину или переплачивать;
  • И в конце-концов хочется просто место, где можно спокойно хранить тонны своих файлов.

Хотелок — много, и что самое приятное — все, абсолютно все эти задачи выполняет один единственный девайс, о котором как раз этот рассказ.

Первое знакомство


Из коробки железка умеет создавать пользователей, разграничивать доступ к файлам, работает «на ура» с iOS, находится по сети, имеет FTP доступ, довольно успешно (но часто с заметными «тормозами») крутит фильмы на планшет и iPad через DLNA и… в принципе всё. Есть ещё довольно кривой доступ к своим файлам через интернет и клиенты для Andriod и iPhone, но так как была ощутима сырость этих решений — они сразу ушли в топку.
Что мы имеем по факту — полноценную Linux машину семейства Debian со значительным пространством на hdd, и единственным (но гигабитным) разъемом RJ-45 для подключения к сети. Встроенное ПО решает минимум задач из хотелок, поэтому если ты обладатель как минимум базовых познаний в Linux — ты поймешь что всё хотелки из списка выше реализуется буквально за вечер работы. Ну, максимум два.

Охлаждение


Первый и не очень приятный (но решаемый) момент. Охлаждение — только пассивное. Хоть она (железка) и знает что такое спящий режим, но грелась до 60 и чуть более градусов. В принципе — это не критично, но и во время тестов это была не пиковая нагрузка (заливал порядка 400 Гб), плюс жителям средних и южных широт должно быть очень хорошо знакомо что такое «жаркое» лето.
Решение — добавить активное охлаждение, запитанное на питание жесткого диска. В дополнителнение на плюс кулера «посажен» резистор (номинал лучше подбирать исходя из самого кулера), в корпусе вырезано окошко, с его стороны заклеены все отверстия вентиляции, в окошко вклеен кулер (изнутри его расположить, увы — нет места), итог можно посмотреть на фотографии ниже:


(изображение кликабельно)

На этом то, что мне показалось необходимым в доработке касательно самого устройства — закончено. Замечу — условие это вовсе не обязательное.

Торрент


Первым делом был поставлен торрент-клиент Transmission, настроены пути и скорости. Прописан путь, откуда подхватывать .torrent файлы — обо всем этом можно прочитать в топике на iXBT.

Файлообмен через браузер


Вторая задача, которая возникла — это реализовать файлообмен между всеми гаджетами, включая Хромбук (как известно, последний не отличается коммуникабельностью). Так как какие-либо дополнительные клиенты и приложения — не выход, было принято решение расшарить доступ по http (благо, браузер сейчас есть почти в каждом переносимом устройстве). Критерии поиска решения для выдачи содержимого директорий в удобном виде можно выделить следующие:

  • Кроссбраузерность
  • Apache2
  • PHP
  • OpenSource

И исходя из них выбор пал на h5ai — очень удобный, настраиваемый и доступный проект, справляющийся с этой задачей на твердую пятерку (более подробно с ним можете ознакомиться на странице проекта).

Но перед тем как его ставить — надо определиться — как, и куда это делать. Открыв в браузере веб-интерфейс нашей железки было замечено что с httр://%IP_ADDR%/ происходит редирект на httр://%IP_ADDR%/UI/ — этой особенностью то мы и воспользуемся. Открыв /var/www/ обнаруживаем, что в директории лежит лишь страничка «index.html» с кодом редиректа чуть глубже — на ./UI/ (где и находится всё нутро родного веб-интерфейса). Даже ничего придумывать не надо:

  1. Скачиваем h5ai версии 0.24.0 и размещаем содержимое архива по пути /var/www/ (полный путь у меня получился /var/www/_h5ai);
  2. Даем права: chmod -R 755 /var/www/_h5ai/; chmod -R 777 /var/www/_h5ai/cache/
  3. В /var/www создаем директорию «shared» и в ней создаем симлинк на директорию Public (перейдя в неё выполняем ln -s /shares/Public/) и другие директории, к которым необходимо открыть доступ;
  4. Правим файл /etc/apache2/sites-enabled/000-wdnas, дописывая в него перед секцией # block application folders from being served следующее:
    # h5ai
    <Directory /var/www/shared/>
      DirectoryIndex index.html index.php /_h5ai/server/php/index.php
    </Directory>
    
  5. Перезапускаем апач: /etc/init.d/apache2 restart;
  6. Проверяем работоспособность, открыв в браузере httр://%IP_ADDR%/shared/;

На этом можно считать что с открытием доступа к файлам по http покончено:


Мониторинг состояния и «три кнопки»


Следующим шагом был мониторинг температуры и загруженности железки. Придумывать что-то хитрое — с нотификациями и свистелками — не хотелось, да и не нужно. Как помните, у нас корень веб-интерфейса просто редиректился — значит нам ничего не мешает переписать его содержимое, добавив в него возможность наблюдать за температурой и прочими показателями + предоставить выбор в дальнейшей навигации. Для получения состояния был создан файл sysinfo.php в корне /var/www/, выводящий интересующую нас информацию (придется дополнительно поставить hddtemp — sudo apt-get install hddtemp):
sysinfo.php
<?php error_reporting(0); ?><!DOCTYPE html>
<html lang="ru-RU">
    <title>System Info</title>
    <style type="text/css">
        html, body {margin:40px;padding:0;text-align:center;font-family:Tahoma,Verdana,Arial;font-size:40px;color:#333}
    </style>
<head>
</head>
<body>
    <div id="data">
        FreeMemory: <strong><?php
            echo exec("sudo awk '/MemFree/ {printf( \"%.2f\n\", $2 / 1024 )}' /proc/meminfo");
        ?></strong>Mb <small>of <?php
            echo exec("sudo awk '/MemTotal/ {printf( \"%.2f\n\", $2 / 1024 )}' /proc/meminfo");
        ?>Mb</small>
        <br />
        CPU Usage: <strong><?php
            echo exec("cat /proc/loadavg | awk '{print $1}'");
        ?></strong>% for last minute
        <br />
        HDD Temperature: <strong><?php
            echo exec("sudo hddtemp -n /dev/sda");
        ?></strong> ºC
    </div>
</body>
</html>

После чего индексная страница была переписана под вид 3х кнопок:
  • Web Interface;
  • Torrent Client;
  • Files Storage.

И добавлен
, обновляемый при помощи JavaScript (дабы браузер не "клацал" каждый раз при обновлении) раз в N секунд, и выводящий актуальный статус:
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="ru-RU"> <title>Follow The White Rabbit</title> <style type="text/css"> html,body{text-align:center;font-family:Tahoma,Verdana,Arial;color:#666} #sysinfo{position:fixed;top:10px;width:300px;height:auto;margin-left:-150px;left:50%; font-size:11px;color:#666;-moz-opacity:0;-khtml-opacity:0;opacity:0; -webkit-transition:all 150ms ease-out;-moz-transition:all 150ms ease-out; transition:all 150ms ease-out} .trans{-moz-opacity:0.2!important;-khtml-opacity:0.2!important;opacity:0.2!important} #sysinfo:hover{-moz-opacity:1!important;-khtml-opacity:1!important;opacity:1!important} .center{position:absolute;width:530px;height:25px;top:50%;left:50%;margin-left:-265px;margin-top:30px;color:#ccc} .center a{padding:80px 20px 0;color:#222;text-decoration:none} .center a.web{ background:url(http://cdn1.iconfinder.com/data/icons/windows-8-metro-style/64/services.png) no-repeat top center;} .center a.torrent{ background:url(http://cdn1.iconfinder.com/data/icons/windows-8-metro-style/64/utorrent.png) no-repeat top center;} .center a.filez{ background:url(http://cdn1.iconfinder.com/data/icons/jolly-icons-free/64/folder_64.png) no-repeat top center;} </style> <link rel="icon" type="image/png" href="http://www.freefavicon.com/freefavicons/openclipart/loading-wheel-modern-icon-152-191739.png" /> <head> </head> <body> <div id="sysinfo"></div> <div class="center"> <a href="/UI" class="web">WD Web Interface</a> | <script type="text/javascript"> var d=document, wl=window.location, port_num = '9091', client_url = 'transmission/web/', link_label = 'Torrent Client'; d.write('<a href="'+wl.protocol+'//'+wl.hostname+':'+port_num+'/'+client_url+'" class="torrent">'+link_label+'</a>'); </script> | <a href="/shared/Public/" class="filez">Files Storage</a> </div> <iframe id="loader" name="loader" src="/sysinfo.php" style="display:none;"></iframe> <script type="text/javascript"> var readyStateCheckInterval=setInterval(function(){if(document.readyState==='complete'){ function update_data(){ var d = document, f = d.getElementById('loader'), s = d.getElementById('sysinfo'); f.src = f.src; if(!s.className.match(/(?:^|\s)MyClass(?!\S)/)) s.className+=' trans'; try { s.innerHTML = window.frames['loader'].document.getElementById('data').innerHTML; }catch(e){ s.innerHTML = '<span style="color:#e00;font-weight:bold;">Get data error</span>'; } } update_data(); setInterval(function(){ update_data(); }, 4000); clearInterval(readyStateCheckInterval); }},50); </script> </body> </html>



Дорабатываем шкуркой


Позже был установлен Wake On Lan для того, чтоб можно было откуда угодно включать машины дома (для него создан отдельный виртуалхост на отдельном порту, порт прокинут через роутер), немного доработаны некоторые настройки самбы (в частности - "force user = guest" и "force group = nogroup" для публичных шар, так как постоянно запрашивал пару логин/пароль), открыт доступ из глобальной сети (с разграничением доступа). Мелочные доработки сугубо индивидуальны в каждом случае, и их думаю - есть смысл опустить.

Эпилог


Как и было описано ранее товарищем kreexus - это "девайс-конфетка". Задачи выполняет не сложные, но выполняет их качественно. Отличный способ не только привнести в домашнюю (или малого офиса) сеть новый функционал, но и с пользой провести некоторое время за доработкой железки.

Что так же следует прочитать о "WD My Book Live"
Paramtamtam @cmepthuk
карма
27,5
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (25)

  • +1
    Хороший девайс, но у меня к сожалению за год в нем помер hdd, заменил wd green на wd red, 2-й год полет отличный. С охлаждением ничего не делал, девайсина работает 24/7/365.
    Что сделано еще (может кого вдохновит):
    Debian Wheezy, Transmission, nginx, скрипты загрузки новых серий с lostfilm, куча скриптов в crontab для очистки мусора, плановых перезагрузок и.т.п., btsync, openvpn server, icecast2.
    • 0
      Проблема была скорее в «гринах». Помню как-то даже читал предостережение не использовать их в NAS, да и на компе они дохнут довольно хорошо.
      • +3
        Отключаем парковку головок и грин работает много лет в NAS.
        • 0
          Мне повезло заиметь 2 грина из печально известной ревизии, они убили мой первый и последний NAS несколько лет назад.
        • +1
          А также неплохо снять плату с диска и почистить контакты которые идут на банку ластиком. Ибо сделаны они из говна и окисляются за полгода/год. Все из личных наблюдений.
          Пример
          image
        • +1
          Я писал как это легко и правильно сделать в Linux.

          И до сих пор не вспоминаю об этой проблеме.
        • 0
          Так точно! Мой уже 3 года пашет с грином внутри.
      • 0
        Странно, в свое время купил себе 2 терробайтовых MyBook (НЕ Live), один из них присобачил к RaspberryPi что бы хранить там всякое — уже лет эдак 4-5 все работает (До пишки он был подключен к домашнему «серверу») и ничего не ломается.
  • 0
    Мне нужен был как хард для автоматического бэкапа, свою функцию выполняет на 100%. Всё остальное не использовал и не подключал, поэтому оставил оригинальную прошивку.
    Когда экспериментировал с другими прошивками не понравилось, что оригинальная и так ест 90% ресурсов устройства. Если поверх неё что-нибудь ставить, то там уже и оперативки и проца не хватает.
  • 0
    Хотелось все таки понять, чем же урезанное, греющееся железо, в уродливом корпусе с налепленным вентилятором на боку, лучше и выгоднее обычной материнки в нормальном корпусе с нормальным охлаждением с тем же «полноценным линуксом» на борту? Решение то 100% гиковское получается, почему не реализовать его на нормальной базе комплектующих?
    • +1
      Цена, Энергопотребление, Уровень шума
      • 0
        Все три пункта не выдерживают критики.

        Цена 3Tb девайса на амазоне — 170$. Энергопотребление — 10W, уровень шума — 0 (пассивное охлаждение, которое, как оказалось в данном топике, весьма посредственно реализовано).

        Посмотрим, что же можно собрать за те же 170$.

        100$ — 3Тб винт, 50$ — комбо Mini ITX MB + VGA + проц, 20$ — 1Гб памяти. Уже набрали 170$.
        +40$ — можно взять симпатичный корпус с БП.

        Итого, переплатив меньше 50$, вы получаете полноценное решение (более мощное кстати), а установив на него ОС по вкусу и что-то вроде Plex Media Server вы получаете настоящий гиковский медиа-сервер.

        В случае же с девайсами типа WD My Book Live все сводится к каким-то полу-мерам, танцев с бубнами, ограниченными ресурсами и трудно-заменяемыми компонентами.

        Прям захотелось собрать такое самому и написать статью (хотя все то же самое реализовано на домашнем стационарном компе, пока не удается убедить себя в необходимости и удобстве доп. сетевого хранилища)…
        • 0
          игрался с tp-link 703n ( 64МБ на борту 1 вайфай порт 1 usb 2.0 порт ) вся цена обошлась в 20$ с апгрейдом памяти=)

          Был сетевой (не спешный диск)
          • 0
            Да, это вариант и мне бы интересно было бы узнать скорость этого не спешного диска… я пробовал подобный вариант и отказался от него при первом же копировании фильма.
        • 0
          Где в вашем рассчете цена блока питания? Где его уровень шума?

          Где итоговый уровень шума всего компа?

          Если берете амазоновские цены то где стоимость доставки?

          Где энерго потребление потребление?

          И интересно почему вы выбрали модель 3тб? посчитайте с моделью в 2 или 1? они на порядок более ходовые чем 3тб.

          Сборное решение оно может и лучше но оно либо по цене будет в разы дороже, либо по уровню шума. Про энергопотребление я молчу.
          • +1
            БП идет вместе с корпусом за 40$ (вот и вот).
            Про уровень шума — не хуже, чем у WD My Book с прицепленным вентилятором, это уже точно.
            Доставку я не брал для всех компонент, зачем вводить погрешности за счет расстояний доставки?

            Энерго-потребление — там тот же винт, тот же проц, должно быть таким же?

            1Tb винт — 50$, девайс — 115$, т.е. практической разницы никакой (-50$ и -55$ соотвественно).

            Сборное решение однозначно лучше, дороже процентов на 30 (но вдумайтесь — тут вообще идет речь о чем-то, что стоит в районе 200$).

            Для домохозяйки девайс однозначно лучше — купил, включил, забыл. Но в статье же идет речь о превращении девайса в гиковский медиа-центр…
    • +1
      Ну я лично вообще ничего не ждал при покупке. Думал устройство работает исключительно по smb на какой то жутко закрытой проприетарной прошивке. Мне бы этого хватило, но раз уж там вполне себе debian, почему бы не выжать из него все соки? По поводу железа, там PPC 800Mhz + 256 Ram и гигабитный ethernet. Вполне нормальное железо для домашнего хранилища. У меня без вентилятора под нагрузкой 60-70C, оперативки свободной 2-4мб, но как то не тормозит.
      • +1
        Не пробовали диск от этого аппарата смонтировать на писишке под линуксом?
        Как, вообще, у него организована работа с дисками? Какая там файловая система, например?
        Всегда тревожило, что будет, если «материнка» от такого NAS перестанет вдруг работать.
        • +1
          Ооо… Там «пестня»! Диск разбит на 3 раздела. 2 из них это mdadm raid1 — тут живет система, остальное отдано под данные. Обычный ext3 с тюнингом размера кластера. Разделы видятся, редактируются, восстанавливаются при подключении диска к большому брату. Т.е. в случае чего, легко что-то подправить или восстановить. Как, собственно, и заменить диск на диск большего объема. Ронял железку, диск сдох, заменил на wd red — год все в норме.
        • 0
          Model: ATA WDC WD20EFRX-68A (scsi)
          Disk /dev/sda: 2000GB
          Sector size (logical/physical): 512B/4096B
          Partition Table: gpt

          Number Start End Size File system Name Flags
          3 15,7MB 528MB 513MB linux-swap(v1) primary
          1 528MB 2576MB 2048MB ext3 primary raid
          2 2576MB 4624MB 2048MB ext3 primary raid
          4 4624MB 2000GB 1996GB ext4 primary

          На сколько я помню 4-й раздел вообще без плясок монтируется. С остальными если нужен доступ надо плясать.
          • 0
            У меня раздел с собственно данными (т.е. 4-й) не монтировался на десктопной убунте 12.04, почему-то ей не понравился нестандартный размер кластера файловой системы. А вообще, пользовался таким девайсом пару лет, потом созрел на покупку безкулерной MiniITX платы с intel atom на борту, вставил модулей оперативки на 6Гб и второй винт на 2Тб, все это хозяйство висит на стене ближе к окну (там прохладнее). Теперь, вдобавок к тем сервисам, что раньше предоставлял WD MyBook Live, использую LXC контейнеры для работы со всяким энтерпрайзным софтом.
  • +1
    Как же здорово что я не один такой.

    Хотя мой девайс сейчас валяется без дела уже полгода, все то времени нет то желания довести до ума, так на чистом Debian 7 под PPC и крутится (прошивку родную сносил, кросс-компилил ядро под тулчейном).

    Была мысль из него сделать еще что-то полезное, но идеи как-то закончились, а для физических модификаций руки не дошли.

    Эх, и все-таки классная же коробочка для гика.
  • +1
    Охлаждение:
    image

    Остальное — советы уровня тематических викисайтов и даже ниже
  • 0
    Есть клиент для такого добра на android. Вот. Но пока он умеет парсить только indexOf страницы от Apache. Если indexOf нет, а есть какие-то другие, то могу научить программку. Обращайтесь.
  • 0
    Занимательная статейка, особенно порадовало, что автор не обошёл вниманием опубликованный мною пост. У самого в планах на ближайший отпуск были задумки по замене стокового index.html на кастомный с набором ссылок на утилиты (девайсом ещё пользуется жена и дальше сами понимаете :-) ). Правда так, чисто для себя, даже пост пилить не думал. Да и думаю теперь точно не стоит, так как этот момент разжеван в этой статье. В принципе есть ещё пара задумок, связанных с web-интерфейсом, но о них значительно позже.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.