aikrr

aikrr

Существо виртуальное
Пикабушник
Дата рождения: 11 ноября
в топе авторов на 163 месте
37К рейтинг 87 подписчиков 3 подписки 70 постов 45 в горячем
134

Мой сервер бэкапов

Дошли наконец-то руки сделать персональный сервер бэкапов, который будет стоять не у меня дома. С этой мыслью я уже несколько лет хожу, делал несколько подходов, но вот наконец-то звёзды сошлись — у меня и железка под него образовалась, и дисков в достаточном количестве, и ОС наконец-то более-менее подобрал.

В качестве железа выбрал старенький HP Microserver Gen7. Продавать большого смысла не видел, куда-то в продакшн ставить тоже — он почти на любой чих под 100% загружается, если какие-то сервисы вешать или просто в несколько потоков файлы по гигабитной сети копировать. А вот с простым хранением файлов он ещё справится.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Коробочка сверху по производительности - как два десятка gen7

Это не пошаговая инструкция, это небольшой отчёт на тему «как можно сделать», может кто для себя идеи почерпнёт.

Если же закрыть глаза на процессор, то в остальном из микросервера получается вполне достойный NAS — четыре-пять слотов под 3.5″ диски, плюс можно внутри корпуса кинуть SSD, благо имеется пять SATA-портов и внешний e-SATA, который я завёл внутрь.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

SSD просто валяется сзади, но это не страшно, ничего ему от этого не будет

Первый раз я более-менее серьёзно пытался подойти к задаче в начале года, поставил было на него TrueNAS Scale. Но по дискам у меня тогда была сборная солянка от 3 до 6 терабайт, да ещё самые большие диски были SMR. А TrueNAS — это zfs. А zfs — это враг черепичных дисков (ну или черепичные диски — враг SMR). Плюс, даже если считать, что диски все CMR, собирать массивы на zfs из разных дисков нерационально. Либо большие потери, либо придётся кроить и попадать на потерю ёмкости или головную боль при возможной замене дисков.

Потому TrueNAS снёс, сервер отложил. В начале лета снова вернулся, решив поставить на него Open Media Vault 7.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Объединил диски при помощи 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 заменю).

ОС — TrueNAS SCALE 24.10

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Обязательно должен быть dashboard, можно даже два

Про установку писать не буду, там всё несложно — загрузился с CD, поставил ОС, зашел через веб-интерфейс — пользуешься. Разве что по мелочи:

  1. Загрузочным диском я выбрал USB-флэшку Sandisk Extreme на 32 гигабайта. Вообще, это не особо приветствуется, как я понял. Но Sandisk Extreme — очень выносливые флэшки, в отличие от всяких там Ultra. А флэшку на 32 гигабайта мне использовать особо некуда было, объём маловат. Так что пригодилась. Благо у сервера есть внутренний USB-разъём и снаружи ничего не торчит.

  2. Когда установщик спрашивал про EFI, я решил было, что у меня система старая и пусть лучше Legacy-загрузчик сделает. Как выяснилось, это было ошибкой — установка прерывалась с сообщением «не могу найти sda3». Некоторое время повозился с конфигами (ошибка не особо редкая, рекомендовали вставить в скрипт установки sleep 20), но в итоге всё решилось просто ответом «Да» на вопрос про EFI.

  3. Изначально я ставил стабильную версию, 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, чтобы с консолью возиться.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

В репозитории имеются portainer и dockge. Portainer лично мне кажется слишком уж замороченным для простой задачи «поставить контейнер». Он слишком много умеет и глаза от этого разбегаются. Потому я его максимум ставил для того, чтобы мониторить работу контейнеров. А конфиги писал и ставил всё из консоли.

А вот dockge прост и лаконичен, если речь идёт просто об запуске контейнера. Вставляешь в поле текст yml-файла, запускаешь. Либо скармливаешь ему команду вида docker run — он её преобразует в конфиг, читаешь — редактируешь по потребности — запускаешь.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Запуск librespeed

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

При этом dockge видит «чужие» контейнеры (которые truenas ставил), но рулит только своими. Это мне кажется удобным компромиссом — что можно ставишь из админки truenas, что нельзя — через dockge. Когда это что-то добавится в truenas — ну или когда там вернут полноценную работу с контейнерами — можно будет аккуратно мигрировать.

Доступ к серверу «из мира»

Я не стал выставлять сервер в мир, он смотрит только в провайдерскую сеть и имеет приватный IP, что в данном случае меня вполне устраивает — дома есть подключение к тому же провайдеру, потому можно не задумываться о пробросах портов и т.п.

С другой стороны — к некоторым сервисам хочется иметь доступ извне, если уж делать тут резервный инстанс. Можно было бы сделать проброс портов с моего vps, допустим, но в данном случае мне проще было воспользоваться туннелями Cloudflare (cloudflared). Да, это опять привязка к третьей стороне, от которой я как бы ухожу, но, в данном случае, она не критичная. Если вдруг cloudflare отвалится, никто не мешает вернуться к вариантам с VPN, пробросом портов или просто купить реальный IP.

Технически это всё выглядит следующим способом:

В админке Cloudflare в разделе Zero Tier создаёте туннель, он вам говорит ID туннеля.

На своём сервере (или вообще на любом компьютере) ставите демон cloudflared и в настройках ему указываете ID туннеля. И дальше со стороны Cloudflare указываете поддомен, через который хотите обращаться к сервису и локальный IP:порт этого сервиса.
Единственное ограничение — доменом должен рулить cloudflare. Не обязательно его там покупать (хотя я купил специально под это дело отдельный домен), но DNS должен быть прописан тамошний.

Тут два туннеля — на админку и на контейнер с librespeed.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Скорость, по ощущениям, режется втрое, но тут мне сложно сказать, кто виноват — туннель такой медленный или микросервер не тянет. Впрочем, на меня одного для доступам к мелким сервисами типа пинговалки или vaultwarden’a такого туннеля вполне хватит.

Если измерять скорость через вышеупомянутый librespeed, то при прямом подключении внутри провайдерской сети — практически заявленные 100 мегабит.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

А вот через туннель 40 мегабит — это максимум, который удалось получить. Чаще же в районе 25-30 болтается. Впрочем, это для меня вполне терпимо, если не качать большие объёмы данных. А их я пока что качаю через локальную сеть провайдера.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Если cloudflare сломают или захочется большей скорости — тогда уже и буду решать вопрос, благо способов много, этот просто был самый простой.

Бэкап как таковой

Можно пользоваться чем нравится, я пока что остановился на двух методах.

Самое большое и важное, что мне надо сохранять — это фотографии за много лет, которых уже порядка двух с половиной терабайт. Раньше они у меня через syncthing копировались на домашний сервер, а оттуда при помощи duplicati заливались в onedrive. Так что просто добавить ещё один инстанс syncthing’a смотрелось вполне логично. Ну и дальнейшую работу, наверное, большей частью буду в рамках syncthing’a организовывать. Хотя можно и любые другие протоколы использовать при необходимости.

Syncthing есть в каталоге приложений, ставится без вопросов. Само собой, надо в контейнер папку подмонтировать, куда бэкапы складывать. Сперва я посмотрел, как оно работает через глобальное обнаружение и посредников — вышло не очень. Максимум видел порядка 50 мегабит скорость, а так вообще колебалась в районе 10-20 мегабит. Два-три терабайта так качать совсем не хотелось.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Потому настроил прямое соединение с домашним компьютером, выставив наружу порт syncthing’a на домашнем роутере. Так добился полной скорости — 100 мегабит, больше провайдер не предоставляет. Загрузка процессора при синхронизации колеблется в районе 50–70%, но особых лагов в админке не ощущается.

Второй способ — копирование данных с линуксовых серверов через rsync. Тут всё просто, был бы доступ к серверу по ssh. В настройках TrueNAS есть rsync tasks, просто добавляешь туда что, откуда и куда копировать, настраиваешь расписание — и вперёд.

Мой сервер бэкапов Nas, Резервное копирование, Linux, Сервер, Длиннопост

Версионность — через снапшоты 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» в сети навалом в любых видах.

Показать полностью 11
15

Избавляемся от панели смайликов в Telegram

Если кого всплывающая при наведении курсора панель смайликов и эмодзей в клиенте под Windows бесит так же, как и меня, от отключается она по адресу "Настройки - Продвинутые настройки - Экспериментальные настройки - Show tabbed panel by click (включить)". После этого панель перестаёт всплывать при наведении мыши на иконку, а появляется только по нажатию.

Избавляемся от панели смайликов в Telegram Telegram, Стикеры Telegram
Избавляемся от панели смайликов в Telegram Telegram, Стикеры Telegram

В самом низу списка

Избавляемся от панели смайликов в Telegram Telegram, Стикеры Telegram
Показать полностью 3
7

Попытка оптимизации фототехники, было и стало

Так, на волне постов было-стало...
В мае я решил купить новую тушку взамен уставшего Olympus E-M10. Приобрёл Olympus E-M5-3. К нему захотелось объектив получше - до этого я пользовался китовым 14-150... Взял 12-100/4. К нему решил докупить недорогой телевик, потому что иногда всё же хочется дотянуться подальше, взял 45-200. А потом захотелось... Ну и покатилось.

Изначально было две тушки и три объектива. E-M10 с 14-150 как камера для поездок и прогулок и Lumix GM1 с 20/1.7 как карманная камера. Ну и рыбий глаз Samyang 7.5, которым, впрочем, давно уже не пользовался.

Попытка оптимизации фототехники, было и стало Фотография, Фотоаппарат, Olympus, Panasonic

На фото уже новые тушки, старые нашли новых хозяев.

К тому времени, когда остановился, на замену E-M10 был взят E-M5, вместо GM1 взял GX880, к вышеупомянутым 12-100 и 45-200 добавились компактные 12-32 и 35-100 для GX880, так же взял блинчик 14/2.5 - всё же 20/1.7 временами был длинноват, взял парочку дешевых китайских линза "на посмотреть" плюс купил наконец-то переходник с М42...

Попытка оптимизации фототехники, было и стало Фотография, Фотоаппарат, Olympus, Panasonic

Вот что бывает, когда вовремя не остановишься.

А в какой-то момент тушек на руках было четыре и объективов на два больше. Но теперь, думаю, ещё на десять лет точно забуду о покупках фототехники. Главное - чтобы ютуб больше не подсовывал никаких интересных роликов на тему. :)

Показать полностью 2
47

Ответ на пост «Вельск деревянный. Очарование тихого города»1

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

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Привокзальный котик

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Пальмы

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Превыше всего

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Бутик!

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Единственная церковь, что уцелела в городе в советское время

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Библиотечное

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Мозаичное

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Асфальт есть не везде.

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Балконы тоже

Ответ на пост «Вельск деревянный. Очарование тихого города» Путешествие по России, Вельск, Архитектура, Деревянный дом, Деревянная скульптура, Архангельская область, Города России, Фотография, Краеведение, Длиннопост, Ответ на пост

Река Вель

Показать полностью 10
474

Ответ на пост «Я пытался прочесть роман Тома Кленси "Охота за красным октябрем"»2

Основной сюжет книг Кленси - 1) США всегда правы. 2) Если США не правы - см. пункт 1. 3) ГГ ещё правее, потому может плевать на все законы - он же прав.

Двойные стандарты во все края, хитрые планы вида "захвачу Литву отрядом спецназа, приехавшем на пассажирском поезде, а сам под шумок слиняю с награбленным на Багамы", американское оружие - вундервафля, советское - лук со стрелами пружинный нож (советский спецназ радуется, когда им американцы подогнали автоматы с глушителями).

Клюква как таковая, впрочем, довольно умеренная. Но всё равно - ссылка на Северный флот командиром атомохода? В России в 2000 году нашли нефть, но не смогли сами разрабатывать и продали месторождения американцам, а на вырученные деньги купили нефть? Ну и т.п.

Вы ещё Дейла Брауна почитайте, достойный продолжатель.

15

Радуга на северах

Копаясь в древних снимках. Картинкам лет 20 и не я их делал, так что лучшего качества у меня нет. Но что-то в них есть.

Радуга на северах Фотография, Соловки, Длиннопост, Радуга

Если кто там не был - это Соловки

Радуга на северах Фотография, Соловки, Длиннопост, Радуга

Соловецкий монастырь, если точнее

Радуга на северах Фотография, Соловки, Длиннопост, Радуга

Точка съёмки - откуда-то со стороны Тамарина причала

Радуга на северах Фотография, Соловки, Длиннопост, Радуга
Показать полностью 4
191

Трамвайное

Майское трамвайное из разных городов.

Екатеринбург

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

Трамвайчики на снегу

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

Трамвайчики на снегу

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

Пересадка с нового трамвая, пришедшего из Верхней Пышмы в обычный городской трамвай.

Челябинск

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

У вокзала. Говорят, что в Челябинске хотели метро, но зачем им метро при таком-то трамвае? Красивый, зелёный...

Уфа

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

Выделёнка для трамваев

Нижнекамск

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

Около остановки "Речной порт"

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

В трамвайном парке

Трамвайное Фотография, Уфа, Нижнекамск, Екатеринбург, Челябинск, Длиннопост

Памятник первому нижнекамскому трамваю. Сам трамвай пришлось тащить из Казани.

Показать полностью 8
22

Провинциальный пейзаж

Провинциальный пейзаж Фотография, Череповец, Шексна, Фото на тапок

Вид на Череповец

Вида на Череповец с борта теплохода, подходящего со стороны Рыбинского водохранилища.

Отличная работа, все прочитано!