Дистанционни обновления и поддръжка
на вградени Linux системи с Mender
Атанас Бунчев
atanas.bunchev@konsulko.com
atanas.bunchev@gmail.com
TuxCon 2023
TuxCon 2023, Атанас Бунчев
Съдържание

Обновления на вградени системи

The Yocto Project

Дистанционни обновления с Mender

Дистанционна поддръжка
TuxCon 2023, Атанас Бунчев
Обновления на вградени системи

Ограничения – налично пространство, скорост на мрежата

Основни изисквания:
 Надеждност – Какво става при неуспешно обновление?
 Сигурност – Дали обновлението е автентично?
 Други – частични обновления, съхранение на данни

Стратегии – A/B обновления, бинарна делта, контейнери

Обновления на множество устройства
TuxCon 2023, Атанас Бунчев
A/B обновления

Два идентични rootfs дяла – A и B

Системата стартирана от A инсталира обновление в B

При рестартиране Bootloader-ът избира активния дял
TuxCon 2023, Атанас Бунчев
Други стратегии за обновления

Делта обновления – пренася се само информация за
разликата при обновление вместо целия дял

Контейнери – подходящи за по-силни устройства,
позволяват приложенията да се обновяват индивидуално

Често се създава отделен дял за съхранение на данни и
конфигурация, независим от софтуера на устройството

Комбинация от няколко стратегии
TuxCon 2023, Атанас Бунчев
Популярни Open Source решения

Mender

RAUC

SWUpdate

swupd

UpdateHub

balena

snap

pantacor

libostree (OSTree)

Aktualizr

Aktualizr-lite

Torizon

FullMetalUpdate

Rpm-ostree

Други
TuxCon 2023, Атанас Бунчев
Популярни системи с отворен код за изграждане
на специализирани Linux дистрибуции

Yocto Project / OpenEmbedded

Buildroot

PTXdist

OpenWRT

Други
TuxCon 2023, Атанас Бунчев
The Yocto Project / OpenEmbedded

Съвместен проект на Linux Foundation

Предоставя гъвкави и удобни инструменти за изготвяне на
специализирани Linux дистрибуции
 bitbake – построява отделни пакети или цялостна система
използвайки мета данни

Poky – референтна дистрибуция изградена само от мета
данни, която може да се използва като основа за бързо
изграждане на дистрибуция за специфична машина
TuxCon 2023, Атанас Бунчев
The Yocto Project / OpenEmbedded – Мета данни

Мета данните съдържат информация за всеки пакет -
списък със необходими зависимости, източници на сорс
код, конфигурация, инструкции за компилация и
инсталация.

Логически се разделят в „слоеве“, което предоставя
изключително гъвкав механизъм за изолация,
модификация и преизползване на различните
функционалности.
TuxCon 2023, Атанас Бунчев
Mender
https://mender.io/

Open Source софтуер за обновления, но също така
предлага платени планове с допълнителни функции и
Hosting услуги

A/B обновления като основна функционалност, но с
възможност за делта обновления като допълнителна услуга

Възможно е да се използва open source версия на сървъра
на частна/лична машина
TuxCon 2023, Атанас Бунчев
Mender - Архитектура

Изграждаща система създава пакет (Mender Artifact)

Устройствата периодично проверяват за обновления

Сървърът предоставя подходящ пакет с обновление
TuxCon 2023, Атанас Бунчев
Mender – интеграция с Yocto

meta-mender – слоеве за интеграция с Yocto/OE
https://github.com/mendersoftware/meta-mender

meta-mender-community – обществено
поддържана колекция слоеве за интеграция на
Mender с Yocto/OE за различни устройства
https://github.com/mendersoftware/meta-mender-community
TuxCon 2023, Атанас Бунчев
Mender Client

Може да се стартира като daemon на вграденото
устройство, който периодично проверява
сървъра за обновления.

Може да се извиква от друго приложение, за да
провери за обновление или да инсталира такова.
 Например при обновление по USB
TuxCon 2023, Атанас Бунчев
Mender – Дялове
Стандартна система с Mender съдържа:

дял за Bootloader

два идентични
системни дяла

дял за данни
TuxCon 2023, Атанас Бунчев
Mender – Обновление на системата
TuxCon 2023, Атанас Бунчев
Mender – Избор на Bootloader

Mender може да се използва с
GRUB или U-Boot.

Bootloader-ът трябва да провери дали
системата стартира успешно след
обновление. При неуспешно стартиране се
стартира дяла с по-старата система.
TuxCon 2023, Атанас Бунчев
Mender – Делта обновления
(Включени в пакетите Mender Enterprise и Mender Professional)
TuxCon 2023, Атанас Бунчев
Mender – Модули за обновления
(Частични обновления / обновления на отделни приложения)
TuxCon 2023, Атанас Бунчев
Mender Hub
https://hub.mender.io/
Публична работилница / форум за всичко свързано с Mender:

Специфични проблеми и решения

Предоставени от потребители Update Modules

Информация за поддръжка на конкретен хардуер

Инструкции и статии за работа с Mender

Други
TuxCon 2023, Атанас Бунчев
Mender Add-ons
Добавки, които предоставят допълнителна
функционалност към Mender:

Configure – позволява настройка на устройство от уеб
интерфейса на сървъра (Mender UI)

Monitor – следи за неизправности на всяко устройство
в реално време (изисква Professional / Enterprise план)

Troubleshoot
TuxCon 2023, Атанас Бунчев
Дистанционно острстаняване на грешки
Mender Add-ons – Troubleshoot

File Transfer – Трансфер на единични файлове

Port Forward – Пренасочва порт от устройство до работна
машина с инсталиран mender-cli

Remote Terminal – Предоставя достъп до виртуална конзола
на вграденото устройство
Тези функции използват комуникация установена от вграденото устройство
към сървъра.
Самото устройство не приема мрежови връзки с цел по-добра сигурност.
TuxCon 2023, Атанас Бунчев
Благодаря Ви!
Полезни връзки:

https://www.yoctoproject.org/

https://docs.mender.io/

Mender Add-ons: Remote troubleshooting devices in the field
https://www.konsulko.com/mender-add-ons-remote-troubleshooting-devices-in-the-field

Безжично обновяване на софтуера на устройства за вграждане
с Linux (Леон Анави)
https://www.youtube.com/watch?v=uNqFstuSCPo

Дистанционни обновления и поддръжка на вградени Linux системи с Mender - TuxCon 2023

  • 1.
    Дистанционни обновления иподдръжка на вградени Linux системи с Mender Атанас Бунчев atanas.bunchev@konsulko.com atanas.bunchev@gmail.com TuxCon 2023
  • 2.
    TuxCon 2023, АтанасБунчев Съдържание  Обновления на вградени системи  The Yocto Project  Дистанционни обновления с Mender  Дистанционна поддръжка
  • 3.
    TuxCon 2023, АтанасБунчев Обновления на вградени системи  Ограничения – налично пространство, скорост на мрежата  Основни изисквания:  Надеждност – Какво става при неуспешно обновление?  Сигурност – Дали обновлението е автентично?  Други – частични обновления, съхранение на данни  Стратегии – A/B обновления, бинарна делта, контейнери  Обновления на множество устройства
  • 4.
    TuxCon 2023, АтанасБунчев A/B обновления  Два идентични rootfs дяла – A и B  Системата стартирана от A инсталира обновление в B  При рестартиране Bootloader-ът избира активния дял
  • 5.
    TuxCon 2023, АтанасБунчев Други стратегии за обновления  Делта обновления – пренася се само информация за разликата при обновление вместо целия дял  Контейнери – подходящи за по-силни устройства, позволяват приложенията да се обновяват индивидуално  Често се създава отделен дял за съхранение на данни и конфигурация, независим от софтуера на устройството  Комбинация от няколко стратегии
  • 6.
    TuxCon 2023, АтанасБунчев Популярни Open Source решения  Mender  RAUC  SWUpdate  swupd  UpdateHub  balena  snap  pantacor  libostree (OSTree)  Aktualizr  Aktualizr-lite  Torizon  FullMetalUpdate  Rpm-ostree  Други
  • 7.
    TuxCon 2023, АтанасБунчев Популярни системи с отворен код за изграждане на специализирани Linux дистрибуции  Yocto Project / OpenEmbedded  Buildroot  PTXdist  OpenWRT  Други
  • 8.
    TuxCon 2023, АтанасБунчев The Yocto Project / OpenEmbedded  Съвместен проект на Linux Foundation  Предоставя гъвкави и удобни инструменти за изготвяне на специализирани Linux дистрибуции  bitbake – построява отделни пакети или цялостна система използвайки мета данни  Poky – референтна дистрибуция изградена само от мета данни, която може да се използва като основа за бързо изграждане на дистрибуция за специфична машина
  • 9.
    TuxCon 2023, АтанасБунчев The Yocto Project / OpenEmbedded – Мета данни  Мета данните съдържат информация за всеки пакет - списък със необходими зависимости, източници на сорс код, конфигурация, инструкции за компилация и инсталация.  Логически се разделят в „слоеве“, което предоставя изключително гъвкав механизъм за изолация, модификация и преизползване на различните функционалности.
  • 10.
    TuxCon 2023, АтанасБунчев Mender https://mender.io/  Open Source софтуер за обновления, но също така предлага платени планове с допълнителни функции и Hosting услуги  A/B обновления като основна функционалност, но с възможност за делта обновления като допълнителна услуга  Възможно е да се използва open source версия на сървъра на частна/лична машина
  • 11.
    TuxCon 2023, АтанасБунчев Mender - Архитектура  Изграждаща система създава пакет (Mender Artifact)  Устройствата периодично проверяват за обновления  Сървърът предоставя подходящ пакет с обновление
  • 12.
    TuxCon 2023, АтанасБунчев Mender – интеграция с Yocto  meta-mender – слоеве за интеграция с Yocto/OE https://github.com/mendersoftware/meta-mender  meta-mender-community – обществено поддържана колекция слоеве за интеграция на Mender с Yocto/OE за различни устройства https://github.com/mendersoftware/meta-mender-community
  • 13.
    TuxCon 2023, АтанасБунчев Mender Client  Може да се стартира като daemon на вграденото устройство, който периодично проверява сървъра за обновления.  Може да се извиква от друго приложение, за да провери за обновление или да инсталира такова.  Например при обновление по USB
  • 14.
    TuxCon 2023, АтанасБунчев Mender – Дялове Стандартна система с Mender съдържа:  дял за Bootloader  два идентични системни дяла  дял за данни
  • 15.
    TuxCon 2023, АтанасБунчев Mender – Обновление на системата
  • 16.
    TuxCon 2023, АтанасБунчев Mender – Избор на Bootloader  Mender може да се използва с GRUB или U-Boot.  Bootloader-ът трябва да провери дали системата стартира успешно след обновление. При неуспешно стартиране се стартира дяла с по-старата система.
  • 17.
    TuxCon 2023, АтанасБунчев Mender – Делта обновления (Включени в пакетите Mender Enterprise и Mender Professional)
  • 18.
    TuxCon 2023, АтанасБунчев Mender – Модули за обновления (Частични обновления / обновления на отделни приложения)
  • 19.
    TuxCon 2023, АтанасБунчев Mender Hub https://hub.mender.io/ Публична работилница / форум за всичко свързано с Mender:  Специфични проблеми и решения  Предоставени от потребители Update Modules  Информация за поддръжка на конкретен хардуер  Инструкции и статии за работа с Mender  Други
  • 20.
    TuxCon 2023, АтанасБунчев Mender Add-ons Добавки, които предоставят допълнителна функционалност към Mender:  Configure – позволява настройка на устройство от уеб интерфейса на сървъра (Mender UI)  Monitor – следи за неизправности на всяко устройство в реално време (изисква Professional / Enterprise план)  Troubleshoot
  • 21.
    TuxCon 2023, АтанасБунчев Дистанционно острстаняване на грешки Mender Add-ons – Troubleshoot  File Transfer – Трансфер на единични файлове  Port Forward – Пренасочва порт от устройство до работна машина с инсталиран mender-cli  Remote Terminal – Предоставя достъп до виртуална конзола на вграденото устройство Тези функции използват комуникация установена от вграденото устройство към сървъра. Самото устройство не приема мрежови връзки с цел по-добра сигурност.
  • 22.
    TuxCon 2023, АтанасБунчев Благодаря Ви! Полезни връзки:  https://www.yoctoproject.org/  https://docs.mender.io/  Mender Add-ons: Remote troubleshooting devices in the field https://www.konsulko.com/mender-add-ons-remote-troubleshooting-devices-in-the-field  Безжично обновяване на софтуера на устройства за вграждане с Linux (Леон Анави) https://www.youtube.com/watch?v=uNqFstuSCPo