infra-stack: Schutz gegen veralteten ZFS-Seiten-Cache nach HA-Umzug, Betriebsabschnitt 7
ci / test (push) Successful in 28s

Bei der HA-Probe startete dockerd auf pve48 nicht (bbolt „invalid freelist page“): Nach zfs receive
liefert der Zielknoten für früher gemappte Dateien alten Inhalt aus dem Seiten-Cache. Ein oneshot-Dienst
im LXC verwirft vor containerd/docker den Cache aller Dateien (posix_fadvise DONTNEED).
BETRIEB.md Abschnitt 7: URLs, Geheimnisse (ohne Werte), file_sd auffrischen, Wiederherstellung.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Robert Rapp
2026-10-12 20:49:49 +02:00
co-authored by Claude Opus 5.5
parent ddd7ad033d
commit 456fce2386
4 changed files with 159 additions and 0 deletions
@@ -90,6 +90,27 @@
- name: file_sd-Ziele
ansible.builtin.include_tasks: targets.yml
# HA-Umzug: Nach zfs receive liefert der Zielknoten für früher gemappte Dateien veralteten Seiten-Cache
# (12.10.2026 belegt). Vor jedem Docker-Start den Cache dieses Containers verwerfen. BETRIEB.md Abschnitt 7.
- name: Schutz gegen veralteten Seiten-Cache – Skript
ansible.builtin.copy:
src: knaster-drop-stale-cache.py
dest: /usr/local/sbin/knaster-drop-stale-cache
mode: "0755"
- name: Schutz gegen veralteten Seiten-Cache – systemd-Dienst vor containerd/docker
ansible.builtin.copy:
src: knaster-drop-stale-cache.service
dest: /etc/systemd/system/knaster-drop-stale-cache.service
mode: "0644"
register: dropcache_unit
- name: Schutz gegen veralteten Seiten-Cache – aktivieren
ansible.builtin.systemd:
name: knaster-drop-stale-cache.service
enabled: true
daemon_reload: "{{ dropcache_unit.changed }}"
- name: Stack bauen und starten
ansible.builtin.command: >
docker compose -p {{ infra_compose_project }} --env-file {{ infra_state_dir }}/.env