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.
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
| Layunin | ngUri ng Partisyon | |
|---|---|---|
| p1 | FAT32 | /boot_A (kernel, cmdline, bootloader) |
| p2 | ext4 | rootfs A |
| p3 | FAT32 | /boot_B (kernel, cmdline, bootloader para sa sistema ng pagsagip) |
| p4 | ext4 | rootfs_B |
| p5 | ext4 | Data / Pagsasaayos |
Praktikal na Halimbawa
Ang pag-setup na ito ay ipinapakita sa dalawang rpi-image-genhalimbawa ng mga proyekto:
- https://github.com/interelectronix/rpi-image-gen-projects/blob/main/deb12-cm5-rescue/README.md
- https://github.com/interelectronix/rpi-image-gen-projects/blob/main/deb12-cm5-ix-base/README.md
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.
Mga artikulo sa seryeng ito
- Pagbuo ng isang Linux na handa na sa produksyon para sa Raspberry Pi Compute Module 5
- Mula sa Stock OS hanggang sa Platform ng Produksyon
- Pagpapasadya ng Raspberry Pi OS sa rpi-image-gen
- System Robustness - Pagdidisenyo ng isang A / B Root Filesystem Layout
- Provisioning — Pag-automate ng Unang Boot na may rpi-sb-provisioner
- OTA at Lifecycle - Mga Update ng Software na may SWUpdate
Mga Pinagmulan
- rpi-image-gen: https://github.com/raspberrypi/rpi-image-gen
- rpi-sb-provisioner: https://github.com/raspberrypi/rpi-sb-provisioner
- SWUpdate: https://github.com/sbabic/swupdate
- swugenerator: https://github.com/sbabic/swugenerator