Pull to refresh

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

Reading time6 min
Views22K

В первой части я довольно кратко рассказал о самой сборке, которая позволяет сделать компьютер, на котором можно запустить 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, конечно, можно советовать абсолютно всем :)


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

Tags:
Hubs:
+2
Comments19

Articles