Skip to main content

Miksi A/B-jako?

Sulautetuissa järjestelmissä epäonnistuneet päivitykset voivat tuhota laitteet. A/B-asettelu ratkaisee tämän ylläpitämällä kahta juuritiedostojärjestelmää:

  • A-korttipaikka - aktiivinen rootfs
  • Aukko B - valmiustilassa oleva rootfs-tietokanta seuraavaa päivitystä varten.

Kun päivitys onnistuu, käynnistyslatausohjelma siirtyy uuteen paikkaan. Jos käynnistys epäonnistuu, se palaa viimeiseen tunnettuun hyvään versioon.

Tämä lähestymistapa edellyttää, että korttipaikoilla A ja B on samankokoiset osiot, mikä voi joskus olla hankalaa sulautetuissa järjestelmissä, joissa resurssit ovat rajalliset.

swupdate pelastusjärjestelmän kanssa

Toinen lähestymistapa on luoda osiot pienelle pelastusjärjestelmälle ja suurempi osio normaalisti toimivalle järjestelmälle.

Esimerkki osioiden asettelusta

Tyypillinen Raspberry Pi Compute Module 5 (CM5) asettelu voi näyttää tältä:
OsioTyyppiKäyttötarkoitus
p1FAT32/boot_A (ydin, cmdline, käynnistyslaturi)
p2ext4rootfs A
p3FAT32/boot_B (ydin, cmdline, pelastusjärjestelmän käynnistysohjelma)
p4ext4rootfs_B
p5ext4data / kokoonpano
Käynnistyslatausohjelma voi käyttää lippua (esimerkiksi GPIO17=1 rpi-eepromissa) määrittääkseen, käynnistetäänkö pelastusosiosta.

Käytännön esimerkki

Tätä asetusta havainnollistetaan kahdessa rpi-image-genesimerkkiprojekteissa:

Ensimmäinen luo pelastusjärjestelmän ja toinen yhdistää pelastusjärjestelmän toiseen käynnissä olevaan järjestelmään, säätämällä osioiden merkintöjä cmdline.txt ja fstab.

Hallinnointipäivitys

Voit liittää käyttämättömän järjestelmäosion manuaalisesti päivittääksesi kokoonpanoja, sovelluksia tai järjestelmäkomponentteja.
Tuotantojärjestelmissä päivityksiä hallitaan yleensä SWUpdate, joka automatisoi tämän prosessin turvallisesti.

Integrointi SWUpdate

SWUpdate tukee natiivisti kahden juuritiedoston (A/B) päivitysstrategioita.
Osiot ja päivityslogiikka määritetään suoraan komennossa sw-description tiedostossa.

Tämä lähestymistapa takaa atomiset järjestelmäpäivitykset ja sisäänrakennetun palautuksen turvallisuuden - olennainen ominaisuus päätön- tai etälaitteissa, joissa manuaalinen palautus ei ole mahdollista.