вторник, 26 февраля 2013 г.

Настройка файлового сервера (с помощью SMB) на Mikrotik

Вводная: Требуется сделать с помощью микротика небольшой файловый сервер на основе протокола SMB http://ru.wikipedia.org/wiki/Server_Message_Block (общие папки по терминологии Microsoft Windows). То есть превратить Mikrotik в небольшой NAS.

Для тестов был взят RB751G-2Hnd и RB2011UAS-2HnD-IN. Фильтрации никакой нет.

Решение: Ссылки на официальную документацию - http://wiki.mikrotik.com/wiki/Manual:IP/SMB и http://wiki.mikrotik.com/wiki/Manual:Store
Подключаем к USB разъёму роутера требуемый носитель информации. Перезагружаем роутер (вообще не обязательно, но у меня не смог отформатировать до ребута). Открываем winbox. System -> Stores -> Вкладка Disks. Там должен появиться диск с именем usb1, с пространством по нулям и статусом "invalid". Выбираем его и нажимаем кнопку "Format Drive"
!!!_ВНИМАНИЕ_!!! - Все данные которые есть на диске будут уничтожены!
Ждём окончания форматирования - статус диска должен стать "ready" и микротик должен верно увидеть размер.

Теперь переходим к настройке SMB - IP -> SMB
Для включения отмечаем чекбокс "Enabled". Указываем имя рабочей группы, при желании комментарий. Разрешаем (или нет) доступ гостям. Указываем интерфейс с которого должен быть доступ к общей папке (all - лучше не выбирать, так как тогда весь интернет будет смотреть ваши файлы).

Теперь нажимаем кнопку "Users" и переходим к настройке пользователей. Тут всё достаточно просто - по умолчанию есть гостевой пользователь с правами только чтение. Разделение по папкам нет - то есть созданный пользователь сможет смотреть (и редактировать если не отмечен чекбокс ReadOnly) все папки.

Далее вернёмся в окно SMB Settings и нажмём "Shares". По умолчанию существует одна папка - "pub" - ЗАКРОЙТЕ К НЕЙ ДОСТУП (с помощью Disable), так как расположена она на системном диске, который флеш, с ограниченным числом циклов перезаписи.
Нажимаем плюс (добавить). Указываем имя. В качестве директории указываем /usb1 - если хотим полностью отдать весь диск под одну общую папку. Иначе создаём отдельные директории и дополняем путь. Максимальное число сессий - это количество одновременно подключенных клиентов.
Теперь перейдём к тестам. Тестировалось скидыванием 3.8 гиговой папки с видео (13 файлов примерно по 280 мегабайт)

1. Подключена обычная флешка (Transcend, 4Gb)

Определилась сразу. Отформатировалась сразу. Никаких проблем не было замечено.
Скорость в принципе такая же, как и при копировании через компьютер. Тут всё нормально и вопросов не возникает.



2. Подключен ОБЫЧНЫЙ жёсткий диск (Maxtor, 120Gb)через переходник USB-SATA.

При подключении Определился сразу, но без перезагрузки отказывался форматироваться, после ребута всё заработало в штатном режиме.

Скорость подключенных харда+переходника напрямую к ноуту скачет в пределах 9-10 мегабайт в секунду. При подключении же через микротик скорость в районе 6 мегабайт. Судя по потреблению ресурсов затык идёт в процессоре.
После того, как оттестирую на более производительном микротике, то дополню статью.

3.  Роутер RB2011UAS-2HnD-IN + жёсткий диск (Maxtor, 120Gb)через переходник USB-SATA.

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



Примечание: Как подключить флешку после микротика к компьютеру.
Микротик форматирует подключенное устройство в файловую систему ext3fs. Поэтому при подключении в линуксе проблем нет никаких. При использовании windows надо использовать любую прослойку для подключения. Я использовал DiskInternals Linux Reader 
Если использовались русские буквы, то необходимо установить кодовую страницу cp866


Итоговый конфиг: 
  [admin@MikroTik] > export compact
  /interface wireless
  set 0 wireless-protocol=any
  /interface bridge
  add l2mtu=1598 name=bridge1
  /queue type
  add kind=pcq name=pcq-upload-default pcq-classifier=src-address
  add kind=pcq name=pcq-download-default pcq-classifier=dst-address
  /interface bridge port
  add bridge=bridge1 interface=ether2
  add bridge=bridge1 interface=ether3
  add bridge=bridge1 interface=ether4
  add bridge=bridge1 interface=ether5
  add bridge=bridge1 interface=wlan1
  /ip address
  add address=10.0.1.1/24 interface=bridge1
  /ip smb
  set comment=Arxont domain=WORKGROUP enabled=yes interfaces=bridge1
  /ip smb shares
  set [ find default=yes ] disabled=yes
  add directory=/usb1 name=test