public inbox for cip-dev@lists.cip-project.org
 help / color / mirror / Atom feed
* [isar-cip-core][RFC][PATCH 00/10] Provide A/B snapshot support for persistent /var
@ 2025-01-30  9:39 Jan Kiszka
  2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 01/10] initramfs-crypt-hook: Add support for btrfs Jan Kiszka
                   ` (11 more replies)
  0 siblings, 12 replies; 17+ messages in thread
From: Jan Kiszka @ 2025-01-30  9:39 UTC (permalink / raw)
  To: cip-dev; +Cc: Christian Storm, Quirin Gylstorff, Felix Moessbauer

This is a first attempt to provide a pattern and reusable recipes for
saving and rolling back the persistent data during A/B updates. The
obvious approach is using a filesystem that supports snapshots and
linking those to the rootfs revision that is being booted. As first
implementation, we are using btrfs. While the current implementation is
built around btrfs, the concept should not. It may even work with
device mapper snapshots.

That said, the devil is always in the details. And even this "simple",
btrfs-only implementation took some rounds to find a logic that neither
piles up obsolete snapshots or deletes them prematurely. Still, careful
review is highly welcome, specifically of patch 3.

As we are currently having split /var and /home partitions, this does
not cover anything in home directories. However, this will automatically
change when [1] is addressed.

Jan

[1] https://gitlab.com/cip-project/cip-core/isar-cip-core/-/issues/123

Jan Kiszka (10):
  initramfs-crypt-hook: Add support for btrfs
  initramfs-crypt-hook: Bump revision
  initramfs: Add hook for managing /var in A/B fashion
  initramfs-overlay-hook: Optimize variable initialization
  initramfs-overlay-hook: Tune the parameter documentation
  initramfs-overlay-hook: Add awareness for abvar hook
  initramfs-overlay-hook: Bump revision
  swupdate: Make var filesystem type configurable for update images
  swupdate: Activate abvar initramfs hook when VAR_FS_TYPE is set to
    btrfs
  Enable A/B snapshot for /var on x86 and qemu-arm64

 classes/swupdate.bbclass                      |  1 +
 conf/machine/qemu-amd64.conf                  |  5 +-
 conf/machine/qemu-arm64.conf                  |  5 +-
 conf/machine/x86-uefi.conf                    |  5 +-
 kas/opt/ebg-swu.yml                           |  6 +-
 kas/opt/swupdate.yml                          |  1 +
 .../cip-core-initramfs/cip-core-initramfs.bb  |  3 +-
 .../files/local-bottom.tmpl                   | 86 +++++++++++++++++++
 .../initramfs-abvar-hook_0.1.bb               | 31 +++++++
 .../files/local-top-complete                  |  7 ++
 ...ook_0.5.bb => initramfs-crypt-hook_0.6.bb} |  6 ++
 .../files/local-bottom.tmpl                   | 10 ++-
 ...k_0.2.bb => initramfs-overlay-hook_0.3.bb} |  8 +-
 wic/bbb-efibootguard.wks.in                   |  2 +-
 wic/hihope-rzg2m-efibootguard.wks.in          |  2 +-
 wic/qemu-arm64-efibootguard-secureboot.wks.in |  2 +-
 wic/qemu-arm64-efibootguard.wks.in            |  2 +-
 wic/qemu-riscv64-efibootguard.wks.in          |  2 +-
 wic/x86-uefi-efibootguard-secureboot.wks.in   |  2 +-
 wic/x86-uefi-efibootguard.wks.in              |  2 +-
 20 files changed, 168 insertions(+), 20 deletions(-)
 create mode 100644 recipes-initramfs/initramfs-abvar-hook/files/local-bottom.tmpl
 create mode 100644 recipes-initramfs/initramfs-abvar-hook/initramfs-abvar-hook_0.1.bb
 rename recipes-initramfs/initramfs-crypt-hook/{initramfs-crypt-hook_0.5.bb => initramfs-crypt-hook_0.6.bb} (93%)
 rename recipes-initramfs/initramfs-overlay-hook/{initramfs-overlay-hook_0.2.bb => initramfs-overlay-hook_0.3.bb} (87%)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2025-02-03 17:29 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-30  9:39 [isar-cip-core][RFC][PATCH 00/10] Provide A/B snapshot support for persistent /var Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 01/10] initramfs-crypt-hook: Add support for btrfs Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 02/10] initramfs-crypt-hook: Bump revision Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 03/10] initramfs: Add hook for managing /var in A/B fashion Jan Kiszka
2025-01-30 16:10   ` Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 04/10] initramfs-overlay-hook: Optimize variable initialization Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 05/10] initramfs-overlay-hook: Tune the parameter documentation Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 06/10] initramfs-overlay-hook: Add awareness for abvar hook Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 07/10] initramfs-overlay-hook: Bump revision Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 08/10] swupdate: Make var filesystem type configurable for update images Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 09/10] swupdate: Activate abvar initramfs hook when VAR_FS_TYPE is set to btrfs Jan Kiszka
2025-01-30  9:39 ` [isar-cip-core][RFC][PATCH 10/10] Enable A/B snapshot for /var on x86 and qemu-arm64 Jan Kiszka
2025-01-30 14:06   ` MOESSBAUER, Felix
2025-01-30 15:38     ` Jan Kiszka
2025-01-30 16:11 ` [isar-cip-core][RFC][PATCH 00/10] Provide A/B snapshot support for persistent /var Jan Kiszka
2025-02-03 17:17 ` Jan Kiszka
2025-02-03 17:29   ` Jan Kiszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox