LINUX.ORG.RU

Сообщения max_lapshin

 

k8s local storage provisioner

Форум — Development

В кубернетесе есть возможность сделать PersistentVolume с StorageClass: local-storage и подмонтировать его в под.

Для такого типа из коробки нет автоматического провижнера (что понятно, ведь нельзя угадать, что там человек напокупал в сервера), но есть rancher local-path-provisioner, который выглядит временным костылем, ведь данные эфемерны и не зафиксируются на локальном диске.

Я хочу использовать именно локальную запись на локальные диски, потому что весь менеджмент данных, копирование, резервирование и т.п. делается именно в моём софте, мне никакой S3 и прочие лонгхорны тут не нужны, без них справляемся. У меня даже софт запускается как DaemonSet

Соответственно я хочу сделать такую схему, чтобы на каждой ноде крутилась одна копия моей программы (делаю через DaemonSet) и ей был смонтирован каталог с локального диска.

Вопрос: правильно ли я понимаю, что при таких хотелках я обречен на то, чтобы описывать явно для каждой ноды PersistentVolume руками и тем самым описывать доступные ресурсы в ямлях кубернетеса?

Как это правильнее совмещать с хельмом? Описать сначала мои Volume и потом поставить хельм чарт, который должен быть написан так, чтобы волшебным образом состыковаться с локально описанным PV?

 , , persistent volume

max_lapshin
()

урезанный Systemd в докере для CI

Форум — Development

В CI надо проверить, что apt install flussonic && systemctl start flussonic отработал исправно.

Но спасибо поттерингу и его удивительному умению находить общий язык с людьми, это сделать нельзя.

Есть ли какой-то рабочий пример урезанной имплементации systemd в докере? Мне вот чисто для enable/disable/start и всё

 ,

max_lapshin
()

SBOM CycloneDX (SPDX)

Форум — Development

Мы пишем наш видеостриминговый софт (flussonic) и продаем его on-premises, т.е. его ставят себе на свои сервера.

Безымянный банк просит прислать им описание нашей поставки софта (SBOM) в CycloneDX формате. Идея для меня новая, но выглядит вообще довольно вменяемо и интересно.

Вопрос 1: это вообще нужно, или это просто прикольная идея?

На практике это работает?

Вопрос 2: какая нормальная практика доставки этого описания до цифрового КПП? Файл в пакете, урл на запущенном софте?

 cyclonedx, sbom, поибэ

max_lapshin
()

Как правильно заливать из k8s в приложение список подов определенного сервиса?

Форум — Development

Есть первая софтина (видеостриминговый сервер), запускаемая как DaemonSet. Есть вторая софтина (балансировщик), которая должна распределить видеопотоки по стриминговым серверам.

Для этого она должна получить список запущенных серверов (причем как запущенных прям сейчас, так и запланированных к запуску, чтобы разделять временную аварию и постоянное выбывание из строя сервера).

Какой правильный паттерн попадания списка подов этого DaemonSet в балансировщик?

Раз в минуту курлом стягивать по апи набор сервисов и пушить в балансировщик?

 ,

max_lapshin
()

RedHat сокращает людей

Форум — Talks

https://www.phoronix.com/news/Red-Hat-Layoffs

«hundreds of jobs» being cut

Вопрос общественности: а как там будет systemd жить? https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1384350-red-hat-begins-cutting-hundreds-of-jobs#post1384370

Переезжаем обратно на sysvinit?

При том, что редхатом с 1997-го не пользовался, новость неприятная.

Детали на Phoronix

Перемещено hobbit из redhat

 , , безработица,

max_lapshin
()

Замена systemd для докера, не требующая привиллегий

Форум — Development

Нужно тестировать пакеты, которые используют довольно базовый набор systemd свойств типа зависимости юнитов друг от друга.

Для этого правильно и разумно сделать что-то типа:

docker run --rm ubuntu-systemd test.sh

где в test.sh будет:

#!/bin/bash

apt install -y mypackage
service mypackage start
run-tests.sh

Т.е. тут важно протестировать, что вся цепочка: deb, postinst, systemd units работает исправно

systemd агрессивно требует каких-то хитростей типа privilleged и т.п.

Это точно нужно? Может быть есть какой-то урезанный вариант, который не будет уметь некоторых нужных и полезных в продакшне вещей, но запустит цепочку процессов?

 ,

max_lapshin
()

Свой софт на игровой консоли типа ANBERNIC RG503

Форум — Linux-hardware

Хочу экран с джойстиками и поставить туда свой софт. Выглядит, что консольки типа ANBERNIC RG503 очень интересные и там внутри рокчип, так что есть шанс.

Неохота платить 11 тыс рублей за то, чтобы просто узнать, что она не вскрывается. Можно на неё впихнуться?

 , ,

max_lapshin
()

Портирование PX4 на полетный контроллер mamba H743

Форум — Job

Есть прошивка для полетного контроллера PX4 https://px4.io/ecosystem/compatible-hardware/

Она похожа на ardupilot, но более ориентированная на программистов.

Есть контроллер mamba h743 v2: https://www.drone-fpv-racer.com/en/mamba-mk4-h743-v2-flight-controller-by-diatone-10508.html

по мощности он точно должен справиться, по контактам тоже должно быть всё ок.

Надо портировать, неплохая возможность за деньги пописать опенсорс.

В PX4 есть mamba f405, но это как можно догадаться, на предыдущем поколении STM32: https://github.com/PX4/PX4-Autopilot/tree/main/boards/diatone/mamba-f405-mk2

Есть похожие полетники от матека: https://github.com/PX4/PX4-Autopilot/tree/main/boards/matek/h743-mini которые уже на h743.

Этот полетник поддерживается в betaflight: https://github.com/betaflight/betaflight/blob/master/src/config/MAMBAH743/config.h но бетафлайт он не для тех, кто делает автономные системы, а для тех, кто пилотирует ручками в очках.

так же поддержка аналогичного полетника есть в ardupilot который хорош, но нужен PX4:
https://ardupilot.org/copter/docs/common-mambaH743v4.html https://github.com/ArduPilot/ardupilot/blob/2c990f9e1c97abc3860ee085082fa9934b7fb211/libraries/AP_HAL_ChibiOS/hwdef/MambaH743v4/README.md

Если в Москве, то передам образец такого контроллера в руки. Если не в Москве, то или отправлю, или дам денег на покупку такого образца.

Срач и очень ценные комментарии тех, кто не читает ссылки но имеет мнение давайте сюда, предложения по сути можно сюда или на почту: max@maxidoors.ru

 

max_lapshin
()

Ограничения на дистрибутивы линукса в Реестре Российского ПО

Форум — Talks

https://ru-ikt.ru/metodicheskiye_rekomendatsi/

Методические рекомендации для экспертов проверяющих софт в нашем Реестре однозначны: Centos в помойку, Debian и Gentoo рулят.

Анимешники притащили gentoo и типа прикрылись трупами двух бсдей, но это понятно: у них лицензия пермиссивная и ещё живы те, кто помнят рассказы дедов о том, как эти операционки использовались.

Но меня здорово удивило то, что centos забанили, потому что те забанили Россию.

Отдельная мулька в разделе десктопных ОС, в котором к офтопу ещё и онтоп требуется.

 , ,

max_lapshin
()

v4l2 прокси через ядро

Форум — Development

Мы в флюссонике много работаем с разными железками: это минимум 6 карт SDI захвата, несколько железных транскодеров, а IP-камер с которых мы захватываем через родной SDK больше десятка, даже не считал.

Все эти железки с точки зрения API делятся на нормальные, которые дают v4l2 API (и это преимущественно русские железки) и всякое проприетарное говно типа Decklink, Hisilicon. Есть совсем треш типа AJA SDK, который на плюсах.

Исходя из опыта работы с v4l2 и проприетарными либами, можно однозначно сказать, что никакого плюса ни decklink api, ни dectek matrix api, ни какой-либо китайский хлам, которого у нас скопилось тоннами не дает.

Нет ни одной инженерной причины для какого-либо из этих устройств делать не v4l2 api. Этого апи достаточно для передачи управления, видео и аудио туда и обратно.

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

Для H264 кодированного видео пара лишних перекопирований неприятна, но не фатальна. Для SDI копирование будет фатально, но там надо решать проблему по мере поступления.

Кто что думает о таком подходе? Какие могут быть подводные камни? Куда стоит посмотреть на что-то такое уже готовое, что я просто по невнимательности пропустил?

 

max_lapshin
()

PCIe slave-slave шлюз между двух компьютеров

Форум — Development

Привет!

Сейчас у меня есть компьютер, в котором к головному процессору цепляются ARMы по сети, т.е. в одном корпусе 8 раздельных сетей на 2 компа каждая.

Хочу поменять начинку и никак не срастается с сетью. Мне хочется взять что-то очень простое и очень готовое, чтобы оно сделало сразу две вещи:

  1. сообщило ARM-у, что у этой железки есть девайс (SD карточка, NVME диск или что-то ещё), с которого можно загрузиться, а само сходило по второму выходу к головному компьютеру и забрало оттуда что-то типа образа жесткого диска.

  2. позволило копировать данные между ARM-ом и головным компьютером в каком-нибудь простом варианте. Типа например DMA или что-то ещё.

Такой девайс, очевидно, возможен, потому что его модель — это две сетевухи с двух сторон, соединенные проводом (это как раз то, что у меня уже есть). Хочется убрать все эти сетевухи и добавить возможность загрузки через такой модуль.

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

Есть такое?

 , plx,

max_lapshin
()

nodejs mock server генерирующийся из openapi

Форум — Development

Мы перешли на OpenAPI с подходом schema-first.

Т.е. сначала текстовый контракт, потом к нему с двух сторон: фронтенд и бекенд.

Хочется попробовать сделать тестовый апи сервер, который реализует минимальную логику доступа к коллекциям. Быстро нагенерировать код, который сохраняет объекты в коллекцию в памяти и достает их оттуда.

Соответственно при старте чем-то типа openapi-sampler нагенерировать примеров.

Есть ли что-то готовое, какие-то готовые подходы?

 ,

max_lapshin
()

Хранить эфемерные статусы в постгресе, не записывая их на диск

Форум — Development

Есть вроде бы очевидная задача на поверхности: в постгресе хранятся юзеры, которые могут залогиниться.

Хочется там же в постгресе хранить их статусы: онлайн/офлайн. Писать на диск это не хочется, лишняя ненужная запись. Хранить в редисе не хочется, потому что неудобно: надо вручную делать всякие сортировки, джойны и прочее.

Выглядит логичным завести таблицу в памяти и писать в неё, к ней же джойнить.

Правильно ли я понимаю, что у постгреса пока нет ничего для этого решения, которое вроде кажется разумным?

 

max_lapshin
()

libstdc++.so.6: version `GLIBCXX_3.4.20' not found

Форум — Development

Собираем код под убунтой 16.04, добавилась зависимость от плюсом.

Пытаются запустить под Centos 7, там не находятся нужные символы.

Вопрос: а если при компиляции/линковке вообще убрать зависимости от версии GLIBC, т.е. пусть будь что будет и при старте свяжется с той версией функции, которая есть в библиотеке, то что может плохого произойти?

Понятно, что наверное авторы библиотеки не просто так выпустили новую версию реализации функции, но уж что есть, то есть.

 ,

max_lapshin
()

sysconf(_SC_IOV_MAX) = -1 ubuntu 18.04.1

Форум — Development

Не могу понять, почему на ubuntu 20.04 этот вызов отдает честные 1024, а на 18.04 на единственной инсталяции отдает -1

Где вообще хранится база этих sysconf?

 

max_lapshin
()

overlayfs: bad index found (index=index/..., ftype=2000, origin ftype=8000).

Форум — Development

Мы делаем и продаем программно-аппаратный комплекс, т.е. железку с софтом.

Внутри стоит крайне порезанная убунта с нашим софтом. Убунта запакована в squashfs образ, который лежит на флешке.

Поверх него монтируется раздел с настройками через overlayfs.

Иногда после неприятной перезагрузки всё ломается и подмонтировать всё таким пирогом не получается.

Сообщение при этом в ядре от overlayfs:

overlayfs: bad index found (index=index/00fb1d000100000000000000000000000000000000c100000000000000, ftype=2000, origin ftype=8000).

Как мы с этим работали?

Проблема где-то в районе: https://vcs.cs.uchicago.edu/kauffman/ubuntu-mainline-crack/blob/master/fs/overlayfs/namei.c#L724

Не знаю, будет ли ещё доступен код по ссылке, так что немного покажу его:

	} else if (ovl_dentry_weird(index) || ovl_is_whiteout(index) ||
		   ((inode->i_mode ^ d_inode(origin)->i_mode) & S_IFMT)) {
		/*
		 * Index should always be of the same file type as origin
		 * except for the case of a whiteout index. A whiteout
		 * index should only exist if all lower aliases have been
		 * unlinked, which means that finding a lower origin on lookup
		 * whose index is a whiteout should be treated as an error.
		 */
		pr_warn_ratelimited("overlayfs: bad index found (index=%pd2, ftype=%x, origin ftype=%x).\n",
				    index, d_inode(index)->i_mode & S_IFMT,
				    d_inode(origin)->i_mode & S_IFMT);
		goto fail;

К сожалению, по сути единственный рабочий способ на сегодня — выполнять самостоятельный overlay-fsck из initrd на загрузке. Для этого надо кусочком кода обойти все файлы на слоеной ФС и те, которые не получится просто открыть, надо удалить из upper dir (т.е. непосредственно с rw раздела).

Ещё workdir должен быть опустошен перед собиранием пирога.

вот такая грустная история =(

 

max_lapshin
()

Как назвать работу по поддержке дистрибутива?

Форум — Development

Мы собираем и продаем свой программно-аппаратный комплекс.

Нам нём стоит тщательно собранный и настроенный линукс (ох сколько крови попил systemd + udev) по которому есть ещё масса работ.

Например: надо сделать UI к бондингу.

Как называется подобная работа? Как искать человека, который будет дальше такое развивать?

 

max_lapshin
()

Плата PCIe GPIO

Форум — Linux-hardware

Коллеги, нужно купить порядка 200 плат PCIe GPIO.

В серверной есть большая красная кнопка, по её нажатию надо срочно что-то сделать.

Какую купить плату, чтобы у неё гарантированно была first class поддержка в линуксе?

Полно всякого железа, который только под винду, такое не нужно.

 ,

max_lapshin
()

Программно забрать у systemd состояние lldp neighbours

Форум — Development

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

Я нашел только способ:

т.е. пойти и запросить эти данные, запустив команду.

К сожалению json формата не завезли.

Ещё в /run/systemd/netif/lldp можно увидеть файл с названием в виде числа. Номер растет и кажется отвечает за версию состояния.

Вопрос: как правильно забирать этот список? Дергать программу не хочется, потому что парсить её вывод достаточно нестабильно и туда любит просачиваться дополнительный вывод, который разрушит структуру ответа.

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

Как правильно?

 ,

max_lapshin
()

Как настроить множественные интерфейсы, чтобы HTTP ответ уходил туда, откуда пришел

Форум — Admin

Стоит сервер, у него 4 интерфейса, все смотрят под разными айпишниками в интернет.

Как настроить роутинг так, чтобы ответы на HTTP запросы (т.е. ответные пакеты в TCP соединении) уходили по тому же интерфейсу и через тот же шлюз, что и пришли?

Т.е. если пакет прилетел на интерфейс eth0, то ответ слать в шлюз 195.23.0.1 если на eth1, то 192.23.1.1 и т.п.

Это возможно?

 

max_lapshin
()

RSS подписка на новые темы