Интересно, а сколько хранилища у Макса? Ну вот сейчас всем можно создавать каналы. Если каждый из 40 млн пользователей (они говорят что столько у них) зальёт пару своих любимых сериалов в канал. Каждый гиг по 10-15. Как думаете, есть у них эксабайт хранилища?
Зовут меня Sheridan и я алкоголик гентушник. 0x14 лет уже в emerge медитирую. А кнопки нажимаю и того больше.
Захотелось мне домой NAS. Хорошая штука, удобная. Да только вот ничего меня из того, что есть, не устраивало. А потом я узнал про распределённые ФС. А потом узнал про ceph (кстати, советую почитать это - неплохо для понимания что такое ceph). И захотел себе этот самый ceph домой. Не спрашивайте - зачем. Потому что могу :)
Долго ли коротко я эту хотелку в себе носил, да только вот недавно обломились мне несколько корпусов серверных. И железо дома накопилось разное. Решил, что пора действовать. Ну, железо в кучу собрать да от пыли почистить недолго, а вот ceph развернуть там-же - жалко диски то. Это ж целых как минимум два диска надо в btrfs raid положить, чтобы / там себя чувствовало нормально и у меня голова не болела на тему "А что если диск всё? Переустанавливать?".
И вспомнил я тут про SmartOS. А что, удобно! Грузимся с флешки а все диски гипервизору отдаём и радуемся. Поискал такое про ceph и не нашёл. Штош, думаю, зря я с железа компрессором пыль сдувал? Надо писать.
Ну, и, собственно, вот: CephOS. Уже 0.0.6beta, почти релиз. Обкатываю как раз на железе, ищу слабые стороны.
Без ai тут не обошлось, да. Чукча не художник, чукча девопс :)
Взял я в руки дебьяновый live-build и полез в него встраивать ceph. И скриптами обмазывать. И метриками обкладывать. Куда-ж без метрик то?
И вот что в итоге получилось:
Live дистрибутив, предназначенный для поднятия кластера ceph
Дистрибутив умеет в persistence (настройки/изменения в / будут храниться на другом разделе/устройстве)
Про ceph можно ничего не знать
Можно просто выключить ноду и хранилище не пострадает
Можно добавить дисков, хостов и хранилище просто увеличится.
Можно удалять из хранилища диски и хосты
Метрики, метрики, мои любимые метрики :) От node_exporter до smatrctl_exporter. К тому же есть специальный helper-генератор конфига для prometheus, чтобы не приходилось врукопашную все эти хосты подключать.
Для более лёгкого подключения есть специальный скрипт, который складывает всё нужное в архив. Этот архив потом нужно забрать на хост клиента, разложить оттуда всё по местам, выбрать и установить нужный вариант монтирования. Ну, в смысле можно руками, можно в fstab, а можно и systemd юнитами монтировать.
Можно управлять сжатием CephFS
Ну и никто не отнимает стандартный ceph cli, ежели надо чтото сделать, что скриптами ещё не обмазано. Или написать ишью в github проекта - вполне возможно, что обмажу :)
Debian bookworm, Ceph squid
Да, флешки менее надёжны, чем hdd. Но флешки категорически дешевле. Да, флешки медленнее hdd. Но это не сильно то и надо в контексте CephOS. Вдобавок live-build поддерживает persistent разделы - то есть можно условный /var/lib/ceph положить на отдельный ssd и оно ещё до загрузки основной системы примонтируется куда надо. Флешка ушла к тёмным магистрам? Ну и дырку на ней в небе, мы с другой загрузимся и заново подключим ноду к хранилищу. Удобно!
Ориентирован CephOS на soho сегмент, где особо не нужны высокие скорости и сверхвысокая надёжность. То есть можно поднять вообще на хламе. То есть не надо это сравнивать с промышленными Ceph кластерами на десятки хостов (хотя ничего не мешает и на CephOS это поднять). А для дома, я считаю, самое то, если завалялось штуки три комплекта старого железа :)
Как? Скачиваем cephos_installer_0.0.6beta.run, записываем несколько флешек, втыкаем флешки в хосты, выполняем на хостах несколько команд, генерируем и забираем архив со всем необходимым для монтирования, монтируем, пользуемся. Всё :)
А ежели поподробнее интересно, то вот тут моя шпаргалка по подъёмы CephOS в виртуалках и на железном полигоне
И мне нужна ваша помощь.
Если у кого есть возможность - протестируйте пожалуйста. Баги/вопросы/пожелания/проклятия в ишью забрасывайте. А если вы с ceph работаете, то я бы очень хотел от вас советов полезных. Мои то два глаза ещё зоркие вроде, но это глаза автора. А нужны глаза пользователей :)
Поставил перед собой задачу: сделать по-настоящему быстрое файлохранилище для временных файлов при обучении нейросетей: как сами модели (промежуточные чек-поинты), так и данные для обучения. При этом мне нужны как NFS (для пингвинов с видеокартами), так и SMB (закидывать данные для обучения с основного компа и смотреть как там идут дела - подгружать промежуточные чек-поинты и смотреть, что обучение движется в нужном направлении).
Построение быстрой сети - это отдельная тема. Кстати, не так дорого: на буржуйских маркетплейсах есть куча предложений по адекватной (~$150) цене с Mellanox CX414, 416 и иже с ними (40Гбит карты), которые простой перепрошивкой можно убедить в том, что на самом деле они 100Гбит/с.
После перепрошивки эта карта спокойно работает на 100Гбит/сек вопреки сказанному на наклейке.
Некоторое время я с вожделением смотрел на QNAP TBS-h574TX. Но во-первых дороговато, а во-вторых традиционная сеть у него 10Гбит, при том, что для поставленной задачи имеющиеся там два Thunderbolt порта совсем не нужны. Ну и вообще мне не понятно: у этой модели сетевые способности явно сильно хуже, чем то, что способны выдать поставленные в нее накопители.
Пришлось идти своим путем. Была взята плата MSI Pro B860M-A: у нее при mATX форм-факторе есть 3 слота под M2 SSD и 4 PCI-E слота: один х16 под видео, два х1 и один х4. В качестве процессора я поставил Core Ultra 235. Совсем как Эллочка-Людоедочка конкурировала с миллионершей, я заселил плату пятью SSD Kingston 4TB NV3. Три штуки зашли в предусмотренные производителем разъемы, еще два я поставил в имеющиеся PCI-E x1 слоты через китайский переходник. Теперь по объему я совсем-совсем способен конкурировать с QNAP h574!
Вместо видео в слоте х16 поселилась сетевая карта, перепрошитая на 100Гбит/с.
А оставшийся слот х4 и место в корпусе под CD-ROM заняло бодрое комбо от китайских товарищей: оказывается, китайская промышленность производит "заглушку" в отсек 5.25" с шестью местами под SATA SSD 2.5"! На случай если мне понадобится побольше места, слот PCI-E x4 занял SATA адаптер на 6 портов подключенный к панели на 6 SSD.
В результате система выглядит так:
1/4
Для загрузки этой радости я подключил SATA SSD на 250Гб к порту на самой плате. И радостно установил TrueNAS.
Пять дисков объединены в RAIDZ1. Из них трое получают полные PCIE x4 и способны выдать свои примерно 4ГБ/сек (вроде Kingston NV3 способен примерно на это), а два диска ограничены пропускной способностью шины и упираются в лимит 2ГБ/сек. Тем не менее, тесты производительности радуют: 6.7ГБ/сек на запись и 9.3ГБ/сек на чтение:
Сеть тоже работает как задумано. Сервер подключен к 100Гбит порту на Mikrotik CRS510, клиент был подключен к тому же свичу через Breakout Cable: 100Гбит делятся на два "хвоста" по 50Гбит, каждый для отдельного компа.
озадачился этим некоторое время назад, как переехали, до это пользовал HMS(home media server) но не устраивало, что надо системник держать всегда врубленным, сейчас же когда контент таскают 4 телевизора , ноут , моноблок и стационарный ПК, давно стало не вариантом. еще по "православным" ценам был приобретен Asustor 5304T куда встали 2 WD red nas edition под фото в первом рейде, и 2 toshiba MG08 по 16 tb, за год это все забилось, докупилась полка расширения AS6004U , внутри 4 штуки Seagate SkyHawk AI по 16tb место еще есть зато прекрасно себя там ощущает Plex, в гардеробе на антресоли в коридоре прекрасно себя ощущают не греются и за закрытой дверью очень тихо
Решил завести свой домашний сервачок: на ноутах и компе накопилось много файлов/фоток, старые харды начали сбоить, возник риск потери семейного архива.
Нашёл на авито сб/у серверный корпус тауэр, и б/у серверную мат.плату с двумя Ксеонами 2420v2 и 96ГБ оперативки, всë в сумме вышло на 12 тыр. В ДНС купил SSD на один ТБ, и два харда WD Red на 8 ТБ для рейда - всё новое, иначе старьё опять начнёт сыпаться.
Накатил Proxmox, объединил харды в рейд 1 (зеркало), для надёжности. К сожалению, не смог настроить аппаратный рейд через LSI MegaRAID, ОС не запускалась, сделал программный через LVM.
Внутри Proxmox создал виртуалку с FreeNAS, пробросил в неё виртуальный накопитель и настроил отдельные шары по SMB, для фильмов, фото и прочих данных.
Хотел развернуть Plex Media Server в LXC-контейнере, но шара не пробрасывалась. Забил и поднял Plex в отдельной виртуалке поверх дебиана.
Загрузил на шару обучающие видео со своих разных семинаров - крутота! Работает :) теперь с телевизора можно смотреть свои видосы и фильмы.
Пока на этом остановился, поскольку внезапно обнаружил, что старый хард с семейным фотоархивом на компе застучал... Не успел... Попробую восстановить данные и перекинуть их на файлообменник.
В дальнейших планах: установить Immich, попробовать Jellyfin (говорят, удобнее, чем Plex), привязать домен и настроить реверс-прокси. А также попробовать HomeAssistant, и, может, с self-hosted нейросетями поиграть.
Могу расписать подробнее, что и как настроил. Позже распишу, что успел настроить ещё.
UPD:
Получилось восстановить данные и перекинуть всю инфу. Следующее на очереди - организация удаленного доступа к серверу.
Установил truenas scale последней версии,создал пулы, создал djail , создал пользователя, запустил smb, все папки расширены и из под винды виды. Установил qbitorrent, он у меня устанавливается на отдельный пул для установок программ, если при установке qbitorenta пути к папкам не меняю, то закачка идёт по умолчанию в пул в котором установлен qbitorrent, но мне так не нужно. Меняю пути к папкам при установке на заранее созданные в другом пуле, закачек торрентов не происходит. Извините за может не правильные термины. Очень нужна помощь в том как правильно, и где указать пути, и может быть какие то разрешения для того чтобы в загрузки qbitorent ставить нужную папку в нужном пуле. Заранее благодарен