Собрал NAS сервер на Raspberry Pi
Решил стряхнуть пыль со своего Raspberry Pi 4 и приспособить его для домашнего NAS. Связка umbrelos+nextcloud
👉🏻Tg: tehnomaniak07
Решил стряхнуть пыль со своего Raspberry Pi 4 и приспособить его для домашнего NAS. Связка umbrelos+nextcloud
👉🏻Tg: tehnomaniak07
Доброго дня. Возник вопрос и понадобилась помощь, может кто сталкивался с таким.
Скопилось несколько HDD на 250, 500, 1000. валяются без дела. какие то живые, какие то не совсем. продавать- да кому они нужны. выбрасывать не вариант. хранить в пыли, тоже не очень.
И стало интересно, можно ли из них собрать raid 5 или 6. с возможностью замены умирающих дисков. Везде пишут что тома буду по объёму самого маленького. Ещё вариант создание виртуальных дисков, например подгонять все до терабайта и из них уже создавать рэйд.
Посоветуйте, как правильнее их использовать и организовать хранилище.
Дошли наконец-то руки сделать персональный сервер бэкапов, который будет стоять не у меня дома. С этой мыслью я уже несколько лет хожу, делал несколько подходов, но вот наконец-то звёзды сошлись — у меня и железка под него образовалась, и дисков в достаточном количестве, и ОС наконец-то более-менее подобрал.
В качестве железа выбрал старенький HP Microserver Gen7. Продавать большого смысла не видел, куда-то в продакшн ставить тоже — он почти на любой чих под 100% загружается, если какие-то сервисы вешать или просто в несколько потоков файлы по гигабитной сети копировать. А вот с простым хранением файлов он ещё справится.
Это не пошаговая инструкция, это небольшой отчёт на тему «как можно сделать», может кто для себя идеи почерпнёт.
Если же закрыть глаза на процессор, то в остальном из микросервера получается вполне достойный NAS — четыре-пять слотов под 3.5″ диски, плюс можно внутри корпуса кинуть SSD, благо имеется пять SATA-портов и внешний e-SATA, который я завёл внутрь.
Первый раз я более-менее серьёзно пытался подойти к задаче в начале года, поставил было на него TrueNAS Scale. Но по дискам у меня тогда была сборная солянка от 3 до 6 терабайт, да ещё самые большие диски были SMR. А TrueNAS — это zfs. А zfs — это враг черепичных дисков (ну или черепичные диски — враг SMR). Плюс, даже если считать, что диски все CMR, собирать массивы на zfs из разных дисков нерационально. Либо большие потери, либо придётся кроить и попадать на потерю ёмкости или головную боль при возможной замене дисков.
Потому TrueNAS снёс, сервер отложил. В начале лета снова вернулся, решив поставить на него Open Media Vault 7.
Объединил диски при помощи mergerfs, а избыточность захотел получить при помощи snapraid. Некоторое время поигрался со всем этим и понял, что сегодняшний OMV мне нравится ещё меньше, чем TrueNAS. От системы плагинов уже почти ушли, а к нормальной поддержке докера всё ещё не пришли. Да и веб-интерфейс его мне никогда особо не нравился. Хотя чего у OMV не отнять — это того, что он на любой табуретке запускается, к ресурсам совершенно не требователен. Но, в остальном, у меня создаётся ощущение, что разработчики сами пока не знают, что хотят получить в итоге. Потому для меня OMV — это дистрибутив для простейшей файлопомойки на слабом железе для тех случаев, когда хочется иметь хоть какой-то веб-интерфейс и не хочется использовать zfs. Если же железо позволяет — лучше смотреть на другие варианты.
Но тут у меня наконец-то образовалась пачка одинаковых по объёму дисков, да ещё и не черепичных. Потому решил дать TrueNAS второй шанс. Тем более, что в свежей бете (Electric Eel) они наконец-то прикрутили более-менее нормальную поддержку докера, переходя на него c kubrnetes.
Что совпало со смертью каталога приложений TrueCharts, который до этого был основным источником контейнеров для TrueNAS Scale.
Для меня, как человека, который и с докером-то пару-тройку лет назад только общаться начал, а про kubernetes слышал только что «это какие-то контейнеры для энтерпрайза», такое стечение обстоятельство только на пользу.
Железо у меня в итоге получилось такое:
HP Microserver Gen7, с процессором AMD Turion(tm) II Neo N40L — 1,5GHz, 2 ядра (по производительности это примерно Rasperry Pi4).
16 GB оперативной памяти (обычной, не ECC)
4 диска по 6TB, один диск на 4TB и SSD на 500GB.
Дополнительно поставил USB-контроллер и вторую сетевую карту (пока гигабит, потом на 2.5 заменю).
Про установку писать не буду, там всё несложно — загрузился с CD, поставил ОС, зашел через веб-интерфейс — пользуешься. Разве что по мелочи:
Загрузочным диском я выбрал USB-флэшку Sandisk Extreme на 32 гигабайта. Вообще, это не особо приветствуется, как я понял. Но Sandisk Extreme — очень выносливые флэшки, в отличие от всяких там Ultra. А флэшку на 32 гигабайта мне использовать особо некуда было, объём маловат. Так что пригодилась. Благо у сервера есть внутренний USB-разъём и снаружи ничего не торчит.
Когда установщик спрашивал про EFI, я решил было, что у меня система старая и пусть лучше Legacy-загрузчик сделает. Как выяснилось, это было ошибкой — установка прерывалась с сообщением «не могу найти sda3». Некоторое время повозился с конфигами (ошибка не особо редкая, рекомендовали вставить в скрипт установки sleep 20), но в итоге всё решилось просто ответом «Да» на вопрос про EFI.
Изначально я ставил стабильную версию, 24.04. После установки как раз и узнал про то, что каталог приложений TrueCharts помер, а сам TrueNAS Scale движется в сторону докера. Потому просто обновил систему через встроенный апдейтер до 24.10, даже переустанавливать не пришлось.
Четыре шеститерабайтника я собрал в массив raidz2, решил, что это будет надёжней, чем подобие raid10, пусть и менее производительно. Правда, после первой же перезагрузки я получил разваленный массив.
Не знаю, что тут конкретно виновато — я не туда нажимал или бета‑версия нахимичила. По ощущениям, Truenas собрал массив из четырёх дисков «виртуально» — после сборки массива он писал «доступно пять дисков вне пула». При этом один диск он в массив таки включил и что‑то на него писал и читал. Но только до перезагрузки. После перезагрузки же в массиве остался только один диск, справка писала «изя всё» и предлагала только восстановление из бэкапа. Потому, когда собрал новый массив, несколько раз перезагрузился для проверки. Новый массив больше не разваливался.
SSD используется для установки приложений.
А оставшийся диск на 4ТБ — под что-то типа архива и бэкапов бэкапов. Да, он будет работать без резервирования, но даже если помрёт, то на нём будут только копии копий находиться и вообще не особо важные данные вида «не хочется потерять, но не настолько важные, чтобы пихать их на основной массив».
Основная задача — оффсайтовый бэкап для домашнего сервера. Не всего подряд, само собой — дома у меня занято 30 терабайт, но того, что действительно жалко потерять, там порядка 3–4 терабайт. Пока эти бэкапы делаются в вандрайв (с шифрованием), но там подписка через год заканчивается и особого желания её продлять у меня нет — терабайтных облачных хранилищ у меня и так достаточно, офис 2010 или 2013, на которые у меня есть лицензии, для моих нужд ничем не хуже, чем офис365.
Вторичная — резервный сервер для некоторых сервисов, которые крутятся на домашнем сервере. К примеру, бывает полезно иметь второй инстанс сервиса, если к основному нет доступа. Пусть даже и БД этого инстанса не очень актуальна. Примеры — RSS-читалка (freshrss), vaultwarden (менеджер паролей), мониторинг аптайма (uptime kuma) и прочие мелочи, которые не требуют много процессорной мощности.
Поскольку версия truenas пока ещё в бете, библиотека приложений тут достаточно ограничена, хотя и пополняется потихоньку — несколько дней назад было 96 приложений в каталоге, сейчас уже 102. А свои приложения так сразу непонятно, как добавлять. Раньше была кнопка «добавить контейнер», сегодня же её не видно. Конечно, можно зайти в консоль и оттуда вводить команды докера, но не затем я уходил с OMV, чтобы с консолью возиться.
В репозитории имеются portainer и dockge. Portainer лично мне кажется слишком уж замороченным для простой задачи «поставить контейнер». Он слишком много умеет и глаза от этого разбегаются. Потому я его максимум ставил для того, чтобы мониторить работу контейнеров. А конфиги писал и ставил всё из консоли.
А вот dockge прост и лаконичен, если речь идёт просто об запуске контейнера. Вставляешь в поле текст yml-файла, запускаешь. Либо скармливаешь ему команду вида docker run — он её преобразует в конфиг, читаешь — редактируешь по потребности — запускаешь.
Та же командная строка, просто в браузере. На страничке можно контейнер остановить, запустить, обновить, в шелл контейнера зайти, логи почитать…
При этом dockge видит «чужие» контейнеры (которые truenas ставил), но рулит только своими. Это мне кажется удобным компромиссом — что можно ставишь из админки truenas, что нельзя — через dockge. Когда это что-то добавится в truenas — ну или когда там вернут полноценную работу с контейнерами — можно будет аккуратно мигрировать.
Я не стал выставлять сервер в мир, он смотрит только в провайдерскую сеть и имеет приватный IP, что в данном случае меня вполне устраивает — дома есть подключение к тому же провайдеру, потому можно не задумываться о пробросах портов и т.п.
С другой стороны — к некоторым сервисам хочется иметь доступ извне, если уж делать тут резервный инстанс. Можно было бы сделать проброс портов с моего vps, допустим, но в данном случае мне проще было воспользоваться туннелями Cloudflare (cloudflared). Да, это опять привязка к третьей стороне, от которой я как бы ухожу, но, в данном случае, она не критичная. Если вдруг cloudflare отвалится, никто не мешает вернуться к вариантам с VPN, пробросом портов или просто купить реальный IP.
Технически это всё выглядит следующим способом:
В админке Cloudflare в разделе Zero Tier создаёте туннель, он вам говорит ID туннеля.
На своём сервере (или вообще на любом компьютере) ставите демон cloudflared и в настройках ему указываете ID туннеля. И дальше со стороны Cloudflare указываете поддомен, через который хотите обращаться к сервису и локальный IP:порт этого сервиса.
Единственное ограничение — доменом должен рулить cloudflare. Не обязательно его там покупать (хотя я купил специально под это дело отдельный домен), но DNS должен быть прописан тамошний.
Тут два туннеля — на админку и на контейнер с librespeed.
Скорость, по ощущениям, режется втрое, но тут мне сложно сказать, кто виноват — туннель такой медленный или микросервер не тянет. Впрочем, на меня одного для доступам к мелким сервисами типа пинговалки или vaultwarden’a такого туннеля вполне хватит.
Если измерять скорость через вышеупомянутый librespeed, то при прямом подключении внутри провайдерской сети — практически заявленные 100 мегабит.
А вот через туннель 40 мегабит — это максимум, который удалось получить. Чаще же в районе 25-30 болтается. Впрочем, это для меня вполне терпимо, если не качать большие объёмы данных. А их я пока что качаю через локальную сеть провайдера.
Если cloudflare сломают или захочется большей скорости — тогда уже и буду решать вопрос, благо способов много, этот просто был самый простой.
Можно пользоваться чем нравится, я пока что остановился на двух методах.
Самое большое и важное, что мне надо сохранять — это фотографии за много лет, которых уже порядка двух с половиной терабайт. Раньше они у меня через syncthing копировались на домашний сервер, а оттуда при помощи duplicati заливались в onedrive. Так что просто добавить ещё один инстанс syncthing’a смотрелось вполне логично. Ну и дальнейшую работу, наверное, большей частью буду в рамках syncthing’a организовывать. Хотя можно и любые другие протоколы использовать при необходимости.
Syncthing есть в каталоге приложений, ставится без вопросов. Само собой, надо в контейнер папку подмонтировать, куда бэкапы складывать. Сперва я посмотрел, как оно работает через глобальное обнаружение и посредников — вышло не очень. Максимум видел порядка 50 мегабит скорость, а так вообще колебалась в районе 10-20 мегабит. Два-три терабайта так качать совсем не хотелось.
Потому настроил прямое соединение с домашним компьютером, выставив наружу порт syncthing’a на домашнем роутере. Так добился полной скорости — 100 мегабит, больше провайдер не предоставляет. Загрузка процессора при синхронизации колеблется в районе 50–70%, но особых лагов в админке не ощущается.
Второй способ — копирование данных с линуксовых серверов через rsync. Тут всё просто, был бы доступ к серверу по ssh. В настройках TrueNAS есть rsync tasks, просто добавляешь туда что, откуда и куда копировать, настраиваешь расписание — и вперёд.
Версионность — через снапшоты zfs. На каждую папку с бэкапами я создаю отдельный датасет, потому могу снапшоты настраивать достаточно гибко, где каждый час, а где — каждую неделю.
Из аппаратного:
Постараюсь заменить память на ECC. Раньше я к этом относился "хорошо, но не обязательно, а вот после приколов с домашним сервером стал относиться более серьёзно. Но новую память по 7000 за модуль брать жаба не даёт, а али завалено регистровой памятью, которую микросервер не понимает. Так что придётся искать ECC UDIMM на барахолках, что дело не быстрое.
Заменю гигабитную сетевушку на 2.5 гигабита. Это для «внутренней» связи — на работе кроме микросервера у меня стоит небольшой вебсервер, который я перепрофилирую в ноду proxmox — с него тоже надо будет делать бэкапы, так что пусть они делаются на большей скорости. Ну и свой рабочий компьютер тоже добавлю сетевушку на 2.5 и воткну в тот же свитч.
Может быть, сниму контроллер usb-3 и поставлю вместо него переходник на nvme-диск — под кэш для массива.
По самому микросерверу — я не могу его рекомендовать, если вы собираете сервер совсем с нуля. В gen7 из полезного — только корпус на 4-5 дисков. Но нормально он себя ведёт только в связке с родной материнкой, если же её захочется обновить — то усилий по допиливанию корпуса под mini-ITX будет затрачено довольно много. По мне так проще потратиться на какой-нибудь китайский корпус и там уже собрать систему на нормальном железе. Или взять готовый NAS на x86 и поставить на него интересную вас ОС. Я микросервером воспользовался только по той причине, что он у меня имелся и по производительности более-менее устраивал. Иначе бы взял Jonsbo N2, очень симпатичный корпус, хоть и не очень бюджетный. Или N1.
Из программного:
Дождусь релиза TrueNAS 24.10. Прикручу бэкапы со своих облаков, которыми пока пользуюсь (вандрайв, мэйл, яндекс). Настрою бэкап почты с тех же gmail’ов и яндексов. Ну и настрою обратный бэкап на домашний сервер. Бэкапов много не бывает.
В остальном я не вижу каких-то серьёзных путей для развития. Основное всё сделано, а дальше уже только использование по назначению остаётся. Все эксперименты и тяжелые задачи пойдут на второй сервер (который с proxmox’ом). Но это отдельная история, отдельной статьи не заслуживающая. Материалов на тему «как я поставил proxmox» в сети навалом в любых видах.
Привет всем Пикабутянам! В общем ситуация такая: хочу сделать торрент качалку на отдельный диск. Имеется ssd с устанавленной OVM, docker, compose, qbittorent и hdd 2tb для загрузок. Если добавляю торрент и сохранены пути по умолчанию то все работает, если в торрент клиенте (и не только) меняю путь на свой hdd, где расшарена папка downloads и также указана в файле конфигурации клиента, даны разрешения на папку, то все равно ошибка загрузки файла (permission denied). Поиск проблемы в гугле не помогает, все инструкции подразумевают установку и загрузку на один носитель. Ошибка также повторяется и с другими торент-клиентами (transmission и т.д.). Подскажите как правильно подсунуть отдельный диск под загрузку торрентов? Или может ссылку на инструкцию для чайников.
Сделанный раннее из подручных средств кожух для охлаждения десятигигабитной сетевой карты работал, но выглядел неказисто, и я решил во время промежуточного апгрейда своего файлохранилища заменить его на более цивильный, учитывая некоторый опыт в разработке моделей под 3D-печать. Также были учтены пара моментов, которые вскрылись при надевании первой, бумажной версии кожуха, в частности - пара групп пинов в районе крепления планки, для вмещения которых пришлось немного доработать модель.
Модель, как обычно, сделал в Инвенторе, а, пока ожидал заверешния печати - отрендерил её.
Печатал, на этот раз, у найденного по Авито человека с хорошим принтером и большим опытом. Результат весьма порадовал, обе детали кожуха без проблем сели на плату и состыковались между собой.
Чуть сложнее было засунуть вентилятор - при моделировании я не учёл степени усадки пластика, пришлось немного поработать дремелем и напильником. После этого вентилятор встал на своё место, достаточно туго для того, чтобы надёжно зафиксироваться.
Помимо кожуха обновлена была и материнская плата.
Чтобы снизить обороты вентилятора и уменьшить его шум, я запитал его от 5-вольтовой линии, скинув напряжение до 4.3в диодом в прямом включении, а чтобы это выглядело получше и работало понадёжнее - собрал крошечный переходник с мини-молекса (как для флоппи-дисководов) на трёхпиновый разъём вентилятора, в который и впаял этот диод, после чего затянул его в термоусадку.
В таком виде сервер успешно трудится уже пару месяцев. В планах - установить вторую дисковую корзину (для SFF-дисков), набить её SSD и подключить к SAS HBA уже её (сейчас HBA висит без дела, так как хватает SATA-портов на матплате), а также - установить PCI-E SSD, на который установить уже ESXi, а операционки перенести на виртуалки, заодно выделив для задач, собственно, NAS'а и роутинга более подходящие ОС (пока остановился на TrueNAS Scale и pfsense соответственно) и перевести все файлохранилища на ZFS. Также думаю увеличить объём памяти до 64 гигабайт и поменять её на ECC-шную, а, если сумею найти - то поменять процессор на Ксеон L-версии, с пониженным энергопотреблением.
Прошу помочь.
Есть камера Hiwatch IPC-T040 и nas My Cloud ex2 Ultra, хочу чтобы камера записывала видео на диски хранилища. Всё в одной сети.
Нашел инструкцию в сети, но там говорят про раздел "Хранение", которого у меня нет.
В общей инструкции
Но в камере нет разъема для карты
Настройка FTP тоже отсутствует в разделе "Сеть"
Куда ещё тыкнуться, чтобы заработала запись на NAS?
Всем привет! Как то давно клиент купил synology (модель не помню, было давно, но явно отличается от моей) и попросил меня настроить на нем резервное копирование с сервера. Схема была выбрана "от обратного". То есть, не сервер заливал в хранилище копии, а наоборот, сам synology архивировал на себя общую папку при помощи пакета Active Backup. (установленного на synology). Само устройство мне приглянулось функционалом, количество пакетов, стабильностью работы, широкими настройками. Ну вот встал вопрос у другого клиента о покупке хранилища для РК. Важно было именно то, что бы копии забирал сам Synology, а не сервер писал на него. По моему совету приобрели DS223. Вот тут я и лоханулся при выборе модели. Вроде все устраивает, и на сайте написано что Active Backup поддерживает DS22x... Ну соответственно я и подумал что он поддерживает всю серию DS22..... Оказалось что нет. В магазине приложений synology отсутствует Active Backup. Скачивал разные версии пакета и пытался установить вручную - не ставится (пишет что мое устройство не поддерживает данный пакет). Версия ОС на синолоджи последняя. Из предложенного софта для РК ни чего не подходит по функционалу, да и выбор там не большой. Одни льют только в облако, другие требуют кучу регистраций и оплаты, третьи делают снимки только между synology, и тд, и тп... прошерстил кучу форумов, но ни чего дельного не нашел, а может плохо искал (если что тыкните в ссылку, и кидайте тапками:))). Важна именно такая схема РК, что бы synology сам забирал данные с серверов. Может кто нибудь подскажет нужный пакет (может не с официальных репозиториев), или какой то скрипт для шедулера например. Сам я не программист, ограничиваюсь настройками через интерфейсы (но скрипт подправить немного могу. Были бы только комментарии к строкам). Одна задача стоит и очень важна. Поменять synology на другой не получится, нужно накрутить именно на этом. За реальную помощь - с меня на пиво :)
Добрый день! Подскажите какое лучшее бу хранилище NAS выбрать для дома? Есть несколько 2 HDD по 3 тб, задача стоит в том, чтобы подключить nas к роутеру TP-link (он позволяет подключить диск) и один диск использовать для домашнего архива с возможностью подключению к нему через телефоны семьи и просмотру удаленно архива. Так же нужно чтобы на второй диск копировался первый на автомате, после добавления новых файлов. Хотелось бы дешево, но при этом чтобы хватило лет 5 хотя бы. Большой скорости не нужно, так как вряд ли будет одновременно просматривать архив больше чем на 1 устройстве. Заранее спасибо за помощь!