Unified storage: Tracker for ostree <-> composefs reflinking
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
Línea de trabajo
Empieza leyendo el pull request #2205 y las issues relacionadas #20, #1190 y containers/container-libs#144. Contrasta los flujos propuestos de composefs, ostree y containers-storage con el conjunto indicado de interfaces set-unified, fsck images, install.storage y bootc status. Se considera completado cuando el diseño haya alcanzado consenso para el tracker; aquí no se especifican los detalles de implementación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We were having a chat about large PRs (esp LLM generated), and after some (internal team) discussion I think a general best practice should really be for us to have a tracker issue where we come to consensus on design first.
Here's one for https://github.com/bootc-dev/bootc/pull/2205 that proposes the rough shape.
Related: #20, #1190,
containers/container-libs#144.
Core idea: On filesystems with reflinks, we can share disk extents between
disparate storage systems easily.
Goal 1: set-unified composefs (ostree systems only)
On ostree-backed systems, replace the pull pipeline with one that pulls into
composefs, and from there into ostree via reflinks:
composefs OCI repo →(FICLONE)→ ostree bare repo
The actual "fetch from registry" code still goes through containers-image-proxy.
bootc upgrade triggers the re-pull; a reboot activates it. Until then
bootc status shows Storage: ostree-composefs-bound.
On a native composefs system set-unified composefs is a no-op with an
explanatory message — the composefs↔ostree binding is intrinsic there.
Goal 2: set-unified full (both system types)
Uses podman pull to write directly into containers-storage, then reflinks from
there into composefs. On ostree systems a further reflink goes into the ostree repo:
containers-storage →(FICLONE)→ composefs OCI repo →(FICLONE)→ ostree bare repo
This makes the booted image immediately visible to podman run and backfills
rollback and staged images. The unified flag is written only after everything
succeeds, so a failure leaves the system unmarked rather than half-migrated.
Supporting interface
bootc internals fsck images [--repair]
Checks that every composefs-tagged image is present in containers-storage and referenced
by a live bootloader entry, emitting a structured report (human or --json). --repair
fixes gaps by re-importing from the composefs repo. This covers the "make it right" case
too; bootc image sync duplicates this and will be removed.
Install config: [install.storage] unified
[install.storage]
unified = "enabled-with-copy" # recommended: byte-copy fallback on ext4
# unified = "enabled" # hard-fail if no reflinks
# unified = "disabled" # default
Lets a bootc image opt in at build time without CLI flags.
bootc status storage field
Storage unified (enabled-with-copy) # fully active (both system types)
Storage ostree-composefs-bound # ostree only: binding set, upgrade+reboot needed
Native composefs systems show no Storage: line until set-unified full completes.
Longer-term
Once stable, the next step is to have podman's composefs backend write directly into
/sysroot/composefs, eliminating containers-storage as a separate pool and giving
flatpak, podman, and bootc a single global deduplicated object store. Out of scope here.
- Lenguaje dominante
- Rust
- Estrellas
- 2.3k
- Forks
- 230
- Merge medio
- 2 d 12 h
- PR fusionados (30 d)
- 53
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de bootc-dev/bootc
-
install: root SSH tmpfiles.d drop-in is labeled etc_runtime_t instead of etc_tPosiblemente ocupada @andrewdunndev la tomó hace 4 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
auto-updates fail with `opendir(boot): Operation not permitted` when /boot is a systemd automount that has idled outPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertotriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
bootc-dev/bootc#2402 · 9 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
install: improve error message when systemd-boot is selected without composefs backendPosiblemente ocupada @ASVLCII la tomó hace 28 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
more downstream tmt test failureAbierto
Dificultad 3/5 Medio día Aptitud para principiantes 45/100
bootc-dev/bootc#2562 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de bootc-dev/bootc
Issues similares
-
docs(openclaw): RTK_REWRITE_HOST relaxes every default ask, not only commands no rule matchedAbiertoarea:docs documentation good first issue priority:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
rtk-ai/rtk#4500 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
triage:accepted
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
open-telemetry/otel-arrow#4343 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mishraprafful/multihull#150 ·
Los mantenedores suelen responder en 1 día
-
`npx --package=vite-plus vp create` fails with exit 127 when npm is the chosen package managerAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
voidzero-dev/vite-plus#2970 ·
Los mantenedores suelen responder en 1 día
-
ai_p2 comp-parquet-reader-v3
Dificultad 2/5 Medio día Aptitud para principiantes 66/100
ClickHouse/ClickHouse#124986 ·
Los mantenedores suelen responder en 1 día