Skip to main content

Bakit A / B partitioning?

Sa mga naka-embed na system, ang mga nabigong pag-update ay maaaring mag-brick ng mga aparato. Nalulutas ito ng isang layout ng A / B sa pamamagitan ng pagpapanatili ng dalawang root filesystem:

  • Slot A — aktibong rootfs
  • Slot B — standby rootfs para sa susunod na update

Kapag nagtagumpay ang isang pag-update, lumipat ang bootloader sa bagong slot. Kung nabigo ang boot, babalik ito sa huling kilalang magandang bersyon.

Ang diskarte na ito ay nagpapahiwatig na ang slot A at slot B ay may parehong laki ng partisyon, na kung minsan ay maaaring maging mahirap sa mga naka-embed na system, kapag ang mga mapagkukunan ay limitado.

swupdate na may sistema ng pagsagip

Ang isa pang diskarte ay, upang lumikha ng mga partisyon para sa isang maliit na sistema ng pagsagip at isang mas malaking partisyon para sa normal na tumatakbo na sistema.

Halimbawa ng Layout ng Partisyon

Ang isang tipikal na layout ng Raspberry Pi Compute Module 5 (CM5) ay maaaring magmukhang ganito: ng
LayuninUri ng Partisyon
p1FAT32/boot_A (kernel, cmdline, bootloader)
p2ext4rootfs A
p3FAT32/boot_B (kernel, cmdline, bootloader para sa sistema ng pagsagip)
p4ext4rootfs_B
p5ext4Data / Pagsasaayos
Ang bootloader ay maaaring gumamit ng isang watawat (halimbawa, GPIO17 = 1 sa rpi-eeprom) upang matukoy kung mag-boot mula sa partisyon ng pagsagip.

Praktikal na Halimbawa

Ang pag-setup na ito ay ipinapakita sa dalawang rpi-image-genhalimbawa ng mga proyekto:

Ang una ay lumilikha ng sistema ng pagsagip at ang pangalawa ay pinagsasama ang sistema ng pagsagip sa isa pang tumatakbo na sistema, na nag-aayos ng mga label ng partisyon sa cmdline.txt at fstab.

Email Address *

Maaari mong manu-manong mai-mount ang hindi aktibong partisyon ng system upang i-update ang mga pagsasaayos, application, o mga bahagi ng system.
Para sa mga sistema ng produksyon, ang mga update ay karaniwang pinamamahalaan sa pamamagitan ng SWUpdate, na nag-automate ng prosesong ito nang ligtas.

Pagsasama sa SWUpdate

SWUpdate katutubong sumusuporta sa mga diskarte sa pag-update ng dual-rootfs (A / B).
Ang mga partisyon at lohika ng pag-update ay tinukoy nang direkta sa sw-description file.

Tinitiyak ng diskarte na ito ang mga pag-update ng atomic system na may built-in na kaligtasan ng rollback - isang mahalagang tampok para sa mga headless o remote na aparato, kung saan ang manu-manong pagbawi ay hindi magagawa.