Skip to content

feat(storagecluster): add checksum validation fields - #434

Merged
boddumanohar merged 1 commit into
mainfrom
feat/checksum-validation
Sep 10, 2026
Merged

boddumanohar merged 1 commit into
mainfrom
feat/checksum-validation

Conversation

@boddumanohar

@boddumanohar boddumanohar commented Aug 17, 2026

Copy link
Copy Markdown
Member

fixes: #433

Exposes sbcli's inline CRC checksum validation (silent-data-error protection, design ref TD.100226.1) as cluster-level StorageCluster spec fields.

apiVersion: storage.simplyblock.io/v1alpha1
kind: StorageCluster
spec:
  enableChecksumValidation: true
  enableAtomic4kWrites: true  # only on 512B devices that are 4K-atomic, e.g., AWS NVMe
  • enableChecksumValidation enables checksum validation on every I/O. This alone is enough; on drives with a native 4K logical block size it is the normal case.
  • enableAtomic4kWrites sets the backend's cv_ignore_block_size, letting checksum validation run on devices that report a 512B logical block size but guarantee 4K write atomicity. It requires enableChecksumValidation; with checksums off, the backend never sends the parameter at all.
  • Both fields are immutable once set, matching the backend: the checksum method is baked into each device's bdev_alceml_create call at cluster-create time and never re-applied.

The operator maps these Kubernetes-facing fields into ClusterAddParams for POST /api/v2/clusters/ as inline_checksum and atomic_4k, matching the merged sbcli API fields.

Accepted combinations

enableChecksumValidation enableAtomic4kWrites Result
unset unset checksums off
false false checksums off
true false checksums on, the normal case
true true checksums on + 4K-atomic escape hatch
false/unset true rejected

@boddumanohar boddumanohar added this to the 26.4 milestone Aug 17, 2026
@boddumanohar
boddumanohar force-pushed the feat/checksum-validation branch from 6d10050 to 5f86e19 Compare August 17, 2026 18:31
@boddumanohar
boddumanohar force-pushed the feat/checksum-validation branch from e06fbe4 to d9dfde1 Compare August 21, 2026 12:00
@noctarius
noctarius force-pushed the main branch 2 times, most recently from 60dceb7 to fbaabe4 Compare September 9, 2026 10:21
@boddumanohar
boddumanohar force-pushed the feat/checksum-validation branch from d9dfde1 to d5e2c40 Compare September 10, 2026 07:19
@boddumanohar
boddumanohar marked this pull request as ready for review September 10, 2026 07:20
@boddumanohar
boddumanohar force-pushed the feat/checksum-validation branch 3 times, most recently from 8a6bc2d to b5b16e3 Compare September 10, 2026 09:38
@boddumanohar
boddumanohar requested review from geoffrey1330 and noctarius and removed request for noctarius September 10, 2026 09:48
Expose spec.enableChecksumValidation and spec.enableAtomic4kWrites on StorageCluster and pass them through to the backend as inline_checksum and atomic_4k during cluster creation.

Validate that enableAtomic4kWrites requires enableChecksumValidation, keep both fields immutable after cluster creation, and regenerate CRDs, Helm chart CRD, embedded upgrade CRD, deepcopy code, and the installer.
@boddumanohar
boddumanohar force-pushed the feat/checksum-validation branch from e37a329 to 90c4d4f Compare September 10, 2026 11:17
@boddumanohar boddumanohar changed the title feat(storagecluster): add spec.checkSumValidation for inline CRC checksum validation feat(storagecluster): add checksum validation fields Sep 10, 2026
@boddumanohar
boddumanohar merged commit 9cca764 into main Sep 10, 2026
22 checks passed
@boddumanohar
boddumanohar deleted the feat/checksum-validation branch September 10, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support enabling/disabling inline checksum validation (CRC) on StorageCluster

3 participants