Настройка домашнего роутера + NAS на unRAID (часть 2)

В первой части я довольно кратко рассказал о самой сборке, которая позволяет сделать компьютер, на котором можно запустить unRAID для создания NAS и MikroTik RouterOS в виртуальной машине KVM в качестве замены обычном роутеру.


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


Для начальной установки придется подключить к серверу монитор, клавиатуру и мышь.


Установка unRAID


Идем на сайт и устанавливаем unRAID на USB-флешку (которую я забыл добавить в таблицу). Рекомендации по флешкам стандартные: нормальный бренд и физический размер побольше (для лучшего охлаждения). С этой флешки будет загружаться unRAID, так что ваши SSD полностью уйдут под кэш. Более подробная официальная информация тут.


Не забудьте включить в BIOS поддержку VT-d и VT-x!


Подключаем флешку к серверу и запускаем его в GUI-режиме.


Стандартное имя и пароль: root без пароля.


Версия на момент написания: 6.7.2


После запуска ОС, убедитесь, что все подключенное железо обнаружено. Система должна увидеть все ваши диски (диски отображаются на вкладке Main), два Ethernet-контроллера и Wi-Fi карту (а это удобно посмотреть в Tools -> System Devices).


Проблема с SATA-контроллерами Marvell


Из-за какого-то бага в драйвере контроллеров Marvell, они не работают после включения VT-d в unRAID версии 6.7.х.


Я выбрал самое простое решение: добавил iommu=pt к строке параметров, передаваемой ядру Linux при загрузке. Это делается на вкладке Main (далее кликаем по устройству "Flash"). Также, можно изначально изменить конфиг на флешке: boot/syslinux/syslinux.cfg




Про Intel vPro


Я не рекомендую искать железо, поддерживающее vPro/AMT.


Во-первых, для нормальной работы удаленного рабочего стола, нужно подключать HDMI-dummy или DP-dummy plug, иначе встроенная видеокарта не будет инициализироваться без подключенного монитора.


Во-вторых, качество клиентского софта от Intel крайне низкое.


В-третьих, ту же функциональность для домашнего использования вы достигните беспроводным или проводным удлинителем HDMI/DP и при этом не будете никак ограничены в выборе железа.


Настройка сети


Идем Settings -> Network Settings. Как вы уже догадались, один из интерфейсов будет смотреть в локальную сеть, второй — в интернет. Для начала, определитесь с тем, который будет подключен к вашей локальной сети. На моей матплате на разъемах есть наклейки с MAC-адресами, именно так я и понял, кто есть кто.


В двух словах что нужно сделать: назначить каждый интерфейс членом двух отдельных L2-мостов и установить статический IP-адрес на том, который подключен к локальной сети. На смотрящем в интернет интерфейсе IP-адрес не нужен, им будет заниматься RouterOS.


Вот, что должно у вас получиться:




  • 192.168.1.2 — адрес, по которому будет доступен unRAID
  • 192.168.0.1 — адрес RouterOS
  • 192.168.1.3 — адрес DNS-сервера pi.hole

Можно оставить назначение адреса для eth0 по DHCP, но тогда при любых проблемах в RouterOS мы не сможем получить доступ к unRAID и нужно будет подключать монитор и клавиатуру к серверу.


После настройки сети, можно перейти на удаленную настройку, вручную установив IP-адрес у LAN-клиента.


Настройка хранилища


Для запуска виртуальной машины, понадобится хранилище, так что пришло время его настроить. Не буду подробно описывать, так как это довольно просто: вам нужно присвоить роли жестким дискам — одному Disk 1, другому — Parity.


В первой части я написал, что достаточно одного SSD, но на самом деле это не так: лучше взять два одинаковых и создать из них cache-pool, так данные на них будут защищены на случай выхода одного из строя. Также, в unRAID нет механизма резервного копирования данных с кэша. Более подробно все описано тут.


Получиться должно так (извините, я еще не купил второй SSD):




Также, сразу можно настроить расписание проверки четности и переноса данных из кэша. Делается это на странице Settings -> Scheduler.


Четность достаточно проверять раз в два месяца, а переносить данные из кэша — ежедневно ночью.


Сразу можно настроить ресурсы, доступные по сети во вкладке Shares:




Из-за того, что у меня всего один диск для кэша, domains — unprotected. У вас все должно быть зеленое.


Устанавливаем RouterOS


Для начала нужно скачать установочный iso-образ отсюда (выберете x86 Stable CD Image) и положить его в \\Tower\isos.


Теперь пришло время создать виртуальную машину.


Включите поддержку в Settings -> VM Manager. После этого появится новая вкладка — VMs, перейдите в нее.


Нажмите Add VM, далее — Linux.


  • Выделите всего одно ядро
  • Памяти достаточно выделить 128 или 256 мегабайт
  • Machine — i440fx-3.1
  • BIOS — SeaBIOS
  • В пункте OS Install ISO выберете скачанный образ (/mnt/user/isos/mikrotik-6.46.iso)
  • Primary vDisk Size — 256M
  • Primary vDisk Bus — SATA
  • Network Bridge — br0
  • Добавьте второй сетевой интерфейс и выберете br1
  • Если в Other PCI Devices не отображается ваша Wi-Fi карта, ничего страшного — пропишем ручками в конфиге, если отображается — поставьте галочку
  • Пока уберите галочку Start VM after creation и нажмите Create

Запомните, какие MAC-адреса какие интерфейсы получат, для того, чтобы в дальнейшем сопоставлять их в RouterOS.


По какой-то причине у меня не всегда работало нормально автоматическое назначение портов для разных VM, поэтому откройте получившийся XML-конфиг и поправьте строчку с настройкой VNC на что-то подобное:


<graphics type='vnc' port='5900' autoport='no' websocket='5700' listen='0.0.0.0' keymap='en-us'>
 <listen type='address' address='0.0.0.0'/>
</graphics>

Если у вас, как у меня, не появлялся Wi-Fi адаптер в Other PCI Devices, впишите его вручную. Для этого нужно узнать его адрес на шине PCI. Проще всего это сделать в Tools -> System Devices, там будет строчка:


IOMMU group 23: [168c:003c] 0b:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter

Что в моем случае превращается в:



(извините, парсер MD у хабра почему-то глючит на этом отрывке, пришлось вставить картинкой)


Можно запускать VM и подключаться к ней по VNC. Установка RouterOS очень проста! После приглашения к выбору пакетов, проще всего выбрать все клавишей a и закончить установку клавишей i, отказавшись от сохранения старой конфигурации и согласившись с форматированием диска.




После перезагрузки вводим в качестве логина admin, пароль — пустой.


Наберите /interface print и убедитесь, что система видит все три ваших сетевых интерфейса (я делал скриншот с уже настроенной системы, где имена отличаются от дефолтных):




На этом этапе можно скачать winbox, подключиться к RouterOS по MAC адресу и дальнейшую настройку выполнять через GUI.


Считаю, что детальная настройка RouterOS выходит за рамки этой статьи, тем более что в интернете мануалов очень много, так что предлагаю вам для начала сделать стандартный Quick Setup:




Можно подключить кабель с интернетом к свободному порту и переключить LAN-клиента на автоматическое получение IP-адреса, а также проверить работоспособность Wi-Fi. Убедившись, что все работает, можно покупать и вводить лицензионный ключ RouterOS.


Добавление VM с Linux


Для работы в более привычном окружении, создадим еще одну виртуальную машину, на которой запустим ваш любимый %distro_name%


Все так же скачайте ISO-образ и положите его в isos


Заходите в уже привычную вкладку VMs, далее Add VM, абсолютное большинство настроек теперь можно оставить дефолтными.


  • BIOS — SeaBIOS
  • В пункте OS Install ISO выберете скачанный образ
  • Primary vDisk Size — что-то в районе 10-20 ГБ
  • Unraid Share — путь к каталогу, который хотите сделать доступным для VM, в моем случае /mnt/user/shared/
  • Unraid Mount tag shared
  • Network Bridge — br0
  • Пока уберите галочку Start VM after creation и нажмите Create

Все так же в конфиге правим настройку VNC сервера:


<graphics type='vnc' port='5901' autoport='no' websocket='5701' listen='0.0.0.0' keymap='en-us'>
 <listen type='address' address='0.0.0.0'/>
</graphics>

Установите систему, она должна получить IP по DHCP и иметь доступ к интернету.


Чтобы сделать доступным каталог ФС на хосте, добавьте в /etc/fstab следующую строку:


shared  /mnt/shared     9p      trans=virtio,version=9p2000.L 0 0

Теперь вы можете использовать привычные сервисы на привычной Linux-машине, которая будет легко переносима на другое железо!


Если все нормально работает и корректно включается-выключается, то можно покупать и вводить ключ для unRAID. Не забывайте, что он привязывается к GUID флеш-накопителя (хотя, его можно переносить). Также, без лицензии не будет работать автоматический запуск VM.


Финал


Спасибо, что дочитали до конца!


Старался не писать много, но все равно статься на мой взгляд получилась довольно длинной. Остальные фичи unRAID довольно просты в настройке на мой взгляд, тем более, что все настраивается мышкой.


Хорошие идеи, что можно установить на VM есть здесь. Думаю, что у каждого свои потребности и вывести какой-то универсальный список нельзя. Хотя, pi.hole, конечно, можно советовать абсолютно всем :)


Надеюсь, меня хватит на продолжение!

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 19

    0
    RouterOS не идеал. Посмотрите в сторону pfSense. Тоже не торт, но… вдруг обнаружите плюшки.
      0
      Да, судя по всему, хороший софт, но как-то мне не удалось ни разу с ним столкнуться.
      И мой опыт подсказывает, что это — проблема.
      Понимаете, знания о RouterOS хотя бы как-то релевантны окружающему миру. Роутеры MirkoTik очень распространены и умение их настраивать может помочь вам в жизни (в тех ужасных ситуациях, когда все же приходится быть computer janitor).
      А вот умение настраивать pfSense — будет «мертвым» умением, единственным плюсом которого будут только 45 единожды сэкономленных долларов.

      Причем, если не нужен Wi-Fi, RouterOS бесплатна (Demo license достаточно в большинстве случаев) и я видел много раз как организации использовали бесплатную версию на своем х86 роутере.
        0
        RouterOS в демо режиме была с ограничениями по скорости в 1,5 МБит.
        Вообще — если по честному, то для каждого времени свой набор. Вечного ничего нет. Даже лицензии заканчиваются или Soft безнадежно устаревает. А это не повод цепляться за однажды оплаченную лицензию. Железо отработав свои сроки эксплуатации должно уходить. Пытаться сгородить все в одном — к худу.
        Ваш бутерброд очень похоже, что на современном уровне можно было бы собрать на ProxMox + pfSense +… Но вот роли принятия канала, я бы поручил отдельной железке. Уж очень много уязвимостей в ядре самого RouterOS.
          0
          RouterOS в демо режиме была с ограничениями по скорости в 1,5 МБит.

          Путаете с CHR. В демо ROS не было ограничений на скорость.
          Вообще — если по честному, то для каждого времени свой набор. Вечного ничего нет. Даже лицензии заканчиваются или Soft безнадежно устаревает. А это не повод цепляться за однажды оплаченную лицензию. Железо отработав свои сроки эксплуатации должно уходить. Пытаться сгородить все в одном — к худу.

          А солнце встает — на востоке! Ура!

          Ваш бутерброд очень похоже, что на современном уровне можно было бы собрать на ProxMox + pfSense +…

          Слишком просто. Я бы собрал на голом freebsd. Еще можно было бы собрать на Windows, OS/2 Warp, MacOS Server и просто на андроиде.

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

          Зачем?

          Уж очень много уязвимостей в ядре самого RouterOS.

          Кхм, ядро RouterOS — это linux.
          Прям открытых публичных уязвимостей? Если дам ip адрес своего роутера — взломаете?
            0
            Когда-то было на QuartDesq DesqView и DOS. Но тогда еще массового интернета не было. Так только UUCP и DialUP. Потом был и Warp после OS/2 2.1. И BSD во всех ипостасях. И AIX. И IRIX. И Solaris. В прошлом году выкинул PizzaBox. Умерла батарейка, а возиться уже не хотелось. Ломать других — это к молодежи. Весь интернет пестрит уязвимостями нулевого дня. Нет ничего не ломаемого. Все, что один раз собрано и не сопровождается — будет сломано. А проприетарные, приобретенные продукты, будут гвоздями тормозящими обновления, так ка у них есть циклы тестирования.
              –1
              Коллега, это очень мило и даже романтично.
              Но сейчас не конец девяностых (
              Хорошие разработчики пилят кровавый энтерпрайз, мутят свой стартап или давно построили дом на берегу озера, где нет интернета. Из-за огромного спроса на хороших разработчиков, в опенсорсе никого не осталось. Это раньше можно было от безделия написать линукс.

              С наступающим, счастья в 2020.
      0
      Практически по цене RouterOS(Лицензия RouterOS 4 уровня $45) можно купить аппаратный гигабитный роутер(MikroTik hEX RB750Gr3 3400 р или MikroTik hEX S RB760iGS 3900 р) с той-же лицензией на борту, а по цене лицензии и WiFi модуля роутер c WiFi на борту «Wi-Fi роутер MikroTik hAP AC 7000 р».
      Но обычно нужен 100 Мбит роутер, гигабитный свич, 1 — 2 точки доступа и NAS отдельно там где его не слышно.
        +1
        Да! Причем на hap ac есть еще 2,4 ГГц Wi-Fi (для тех, кому он зачем-то нужен в 2020)!
        Именно он у меня и был, до того как я затеял эту эпопею, хороший роутер, но мы все это обсудили в первой части.

        Но обычно нужен 100 Мбит роутер

        У меня интернет 200 мегабит сейчас, завтра подключу 500, спасибо.
          +1
          Куча современной техники всё ещё не умеет жить в 5ГГц, если мы не говорим про телефоны и планшеты. Например — те же умные пылесосы.
          0
          Когда я встал перед таким выбором, я склонился к покупке MikroTik CHR (30$), потому что лишняя коробочка это а) другая точка отказа б) занимает место в) еще одна розетка и блок питания. А так у тебя одна коробка, один сервер и всё крутится в одном месте.
          0

          Честно сказать, это можно было реализовать и на бесплатном софте. Openmedavault + KVM.

            +1

            Router OS и unRAID платные какой смысл в этом, openmediavault + KVM + pfsense тоже самое только бесплатно.

              0
              Откройте FAQ в первой части статьи, там есть ответ: habr.com/ru/post/477810

              openmediavault — это отдельный гуй для самбы, mdadm, smartctl итд, ставящийся на обычный дебиан, который обновляется отдельными пакетами.
              А это значит, что с каждым обновлением каждого пакета в системе у вас будет что-то отваливаться, пока прекрасные разработчики openmediavault, которые не смогли устроиться в нормальную компанию и писать нормальный коммерческий софт, не добавят пару if-else своем говнокоде.
              Подробнее можете почитать, например, здесь: github.com/openmediavault/openmediavault/issues/143

              Причем проблема даже не в самих разработчиках, а в том что они изначально выбрали неверную архитектуру своего ПО. Невозможно в принципе написать гуй для тысячи утилит, который бы поддерживал весь набор их версий с 1999 по 2019 в любой комбинации. Хотя они совершили эту ошибку опять же из-за своей низкой квалификации.

              И вы предлагаете мне сэкономить три тысячи рублей ради радости использования очередного webmin из 90х? Давайте как-нибудь сами.
                0
                Подробнее можете почитать, например, здесь: github.com/openmediavault/openmediavault/issues/143

                Или вы ошиблись ссылкой, или одно из двух.
                Потому что в этом issue отписывались два человека, один из которых не мог сказать, чем он создал массив дисков и в какой версии. При этом он упорно игнорирует данный вопрос, т.е., вероятно, вмешивался руками и не хочет говорить (по опыту общения с подобными пользователями).
                Второй — создал массив в другой системе и подключил его к OMV.
                Ни одно из этого не является, собственно, ошибкой разработчиков OMV.
                  0
                  Нет, не ошибся, да и там полно подобных issues: github.com/openmediavault/openmediavault/issues/435

                  По моей первой ссылке совершенно типичное опенсорсное обсуждение: потерпевший обновился, у него все поломалось, разраб, выслушав доводы стороны, выдает хрестоматийное "а у меня все работает, проблема на вашей стороне":
                  I tried to reproduce this issue with OMV4, but wasn't able to see your problems. Everything works. What OMV version are you using?


                  Если для вас это норма, это не значит что норма.
                +1
                Одна из киллерфич UnRAID для меня это прозрачная возможность использовать диски произвольного объема. Единственное ограничение — диски с данными не должны превышать по объему диск с четностью.
                0
                Должно было быть ответом к habr.com/ru/post/478924/#comment_20980826, но не получилось.

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

                Не важно, будет это открытый свободный проект, открытый с платной поддержкой или закрытый и платный. В подобных ситуациях не помогут нигде. Более того, в той же windows, за каждую копию которой берут немалые деньги, есть куча проблем, тянущихся с бородатых времён. Последний баг, на который я натыкался, с подобной историей — в реализации dns сервера с использованием корневых узлов, без форвадера. И он есть ещё с 2003 версии. Можно найти на форуме обращения по всем промежуточным версиям. Но исправления нет. Ошибка легко воспроизводима. Были ошибки в десятке, которые исправляли по нескольку лет. Была ошибка в 2012 r2 и реализации iscsi, когда сервер просто намертво вис через сутки (воспроизводится легко, причина вполне понятна, но чинили три месяца).
                  –1
                  А теперь выделите жирным последнюю часть цитаты

                  А теперь внимательно прочитайте самое первое сообщение в issue. Понятно, что психически здоровый человек не будет писать одно и то же по десять раз. Проще снести это говно и купить unRAID.

                  А расскажите, в чем ваша мотивация защищать софт, который мало того что архитектурно — днище, так ещё и пишется низкоквалифицированными разработчиками, у которых не хватает способностей понять, что то, что они делают — неверно принципиально?
                  0
                  Народ, ну не пишите вы пожалуйста про лицензии стоимостью 40-45$ для CHR и x86. Спокойно гуглится и покупается за 30$. Лично покупал, всё в порядке.

                  Only users with full accounts can post comments. Log in, please.