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


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