The `data` volume moved from paperless-data (RWX, ceph-filesystem) to paperless-data-block (RWO, ceph-block) on 2026-08-28. paperless-data was kept as the rollback, on the condition that search be confirmed working first — the point being to prove the Whoosh index survived the copy, not merely that paperless started. Both halves of that condition are now settled. index_optimize succeeded on every night between the repoint and 2026-09-01, and that task opens and rewrites the index rather than just reading it. Then the 3.1.2 upgrade replaced Whoosh with Tantivy outright, so the index paperless-data was preserving no longer exists in a form anything can read. Removed: the PVC, the migration record, and the comments that described the volume as in-flight. The rationale for RWO-on-RBD stays where it is useful, on the PVC and on the Deployment's volume list, since it is the reason not to move this back onto a shared filesystem later. paperless-data carries kustomize.toolkit.fluxcd.io/prune: disabled, so this commit does not delete anything by itself. The PVC, its Retain-policy PV and the backing CephFS subvolume have to be removed by hand. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
91 lines
2.8 KiB
YAML
91 lines
2.8 KiB
YAML
---
|
|
# Prune-disabled so the PVCs survive retirement of this Kustomization
|
|
# (e.g. when the seed initContainer or the Garage migration creds are
|
|
# removed once we're done with the migration phase). Velero's
|
|
# bootstrap-restore then owns their contents.
|
|
|
|
# paperless's single-writer state, on RBD rather than CephFS.
|
|
#
|
|
# WHY RWO: only ONE pod mounts it — the paperless Deployment itself. Its
|
|
# contents are all single-writer state: the Tantivy search index,
|
|
# classification_model.pickle, celerybeat-schedule.db, logs, migration_lock.
|
|
# Nothing shares it. Only `consume` and `media` genuinely need RWX, because the
|
|
# FTP scanner writes to those from a different node.
|
|
#
|
|
# WHY NOT CEPHFS: every access goes through the MDS. With zero CI running, this
|
|
# volume's client sustained 22 MDS requests/sec, and the MDS logged ~15 journal
|
|
# events/sec against only 2 directory commits per
|
|
# 180s — i.e. cap and inode churn from repeated access, not file writes. That is
|
|
# most of the constant 7-8 GB/day written to cephfs-metadata, which is a size 3
|
|
# pool, so ~21-24 GB/day actually hits the drives.
|
|
#
|
|
# cephfs-metadata deliberately STAYS at size 3 (see storageclass.yaml): losing
|
|
# the metadata pool destroys the whole filesystem, not just the objects on one
|
|
# OSD, so the 275 GiB in cephfs-data0 rides on it. Reducing the writes at source
|
|
# is the right fix; reducing the replication is not.
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: paperless-data-block
|
|
namespace: paperless
|
|
annotations:
|
|
kustomize.toolkit.fluxcd.io/prune: disabled
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
storageClassName: ceph-block
|
|
resources:
|
|
requests:
|
|
storage: 10Gi
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: paperless-media
|
|
namespace: paperless
|
|
annotations:
|
|
kustomize.toolkit.fluxcd.io/prune: disabled
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteMany
|
|
storageClassName: ceph-filesystem
|
|
resources:
|
|
requests:
|
|
storage: 100Gi
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: paperless-consume
|
|
namespace: paperless
|
|
annotations:
|
|
kustomize.toolkit.fluxcd.io/prune: disabled
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteMany
|
|
storageClassName: ceph-filesystem
|
|
resources:
|
|
requests:
|
|
storage: 10Gi
|
|
---
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: paperless-redis
|
|
namespace: paperless
|
|
labels:
|
|
# Redis cache is ephemeral; skip Velero. Also avoids the Velero
|
|
# CSI snapshot-exposer "cannot mount /dev/rbdN read-only" failure
|
|
# against this RWO ceph-block PVC while the redis pod has it
|
|
# mounted RW on the same node.
|
|
velero.io/exclude-from-backup: "true"
|
|
annotations:
|
|
kustomize.toolkit.fluxcd.io/prune: disabled
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
storageClassName: ceph-block
|
|
resources:
|
|
requests:
|
|
storage: 1Gi
|