Skip to main content

Tại sao phân vùng A/B?

Trong các hệ thống nhúng, cập nhật không thành công có thể làm hỏng thiết bị. Bố cục A/B giải quyết vấn đề này bằng cách duy trì hai hệ thống tệp gốc:

  • Khe A — rootfs hoạt động
  • Khe B — rootf dự phòng cho bản cập nhật tiếp theo

Khi cập nhật thành công, bộ nạp khởi động sẽ chuyển sang vị trí mới. Nếu khởi động không thành công, nó sẽ quay trở lại phiên bản tốt cuối cùng đã biết.

Cách tiếp cận này giả định rằng khe A và khe B có cùng kích thước của phân vùng, điều này đôi khi có thể phức tạp trong các hệ thống nhúng, khi tài nguyên bị hạn chế.

swupdate với hệ thống cứu hộ

Một cách tiếp cận khác là tạo phân vùng cho một hệ thống cứu hộ nhỏ và một phân vùng lớn hơn cho hệ thống chạy bình thường.

Ví dụ về bố cục phân vùng

Bố cục Raspberry Pi Compute Module 5 (CM5) điển hình có thể trông như sau:
Mục đíchloạiphân vùng
trang 1FAT32/boot_A (hạt nhân, cmdline, bộ nạp khởi động)
trang 2máy lẻ 4rootfs A
trang 3FAT32/boot_B (nhân, cmdline, bộ nạp khởi động cho hệ thống cứu hộ)
trang 4máy lẻ 4rootfs_B
trang 5máy lẻ 4Dữ liệu / Cấu hình
Bộ nạp khởi động có thể sử dụng cờ (ví dụ: GPIO17=1 trong rpi-eeprom) để xác định xem có khởi động từ phân vùng cứu hộ hay không.

Ví dụ thực tế

Thiết lập này được minh họa trong hai rpi-image-gendự án ví dụ:

Cái đầu tiên tạo ra hệ thống cứu hộ và cái thứ hai kết hợp hệ thống cứu hộ với một hệ thống chạy khác, điều chỉnh nhãn phân vùng theo cmdline.txt và fstab.

Quản lý cập nhật

Bạn có thể gắn phân vùng hệ thống không hoạt động theo cách thủ công để cập nhật cấu hình, ứng dụng hoặc thành phần hệ thống.
Đối với các hệ thống sản xuất, các bản cập nhật thường được quản lý thông qua SWUpdate, tự động hóa quy trình này một cách an toàn.

Tích hợp với SWUpdate

SWUpdate hỗ trợ các chiến lược cập nhật gốc kép (A/B).
Phân vùng và logic cập nhật được xác định trực tiếp trong tệp sw-description .

Cách tiếp cận này đảm bảo cập nhật hệ thống nguyên tử với tính năng an toàn khôi phục tích hợp — một tính năng thiết yếu cho các thiết bị không có đầu hoặc từ xa, nơi không thể khôi phục thủ công.