From f07f05f9bb2335937291e220ca8b92c1f50e5992 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Wed, 11 Mar 2026 23:23:37 +0000 Subject: [PATCH] migrate Nextcloud data volume from NFS to iSCSI for fsync support SQLite on NFS caused persistent 500 errors on WebDAV PROPFIND due to missing fsync guarantees and database locking under concurrent access. iSCSI (ext4) provides proper fsync and block-level I/O. - Replace nfs_volume module with iscsi-truenas PVC (20Gi) - Update Helm chart to use nextcloud-data-iscsi claim - Excluded 12.5GB nextcloud.log and corrupted DB from migration Co-Authored-By: Claude Opus 4.6 (1M context) --- stacks/nextcloud/chart_values.yaml | 4 ++-- stacks/nextcloud/main.tf | 21 ++++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/stacks/nextcloud/chart_values.yaml b/stacks/nextcloud/chart_values.yaml index 0c6c78b2..ff6d4183 100644 --- a/stacks/nextcloud/chart_values.yaml +++ b/stacks/nextcloud/chart_values.yaml @@ -58,10 +58,10 @@ externalDatabase: persistence: enabled: true - existingClaim: nextcloud-data + existingClaim: nextcloud-data-iscsi accessMode: ReadWriteOnce - size: 100Gi + size: 20Gi startupProbe: enabled: true diff --git a/stacks/nextcloud/main.tf b/stacks/nextcloud/main.tf index cf5604e7..a85ca60c 100644 --- a/stacks/nextcloud/main.tf +++ b/stacks/nextcloud/main.tf @@ -122,13 +122,20 @@ resource "kubernetes_config_map" "apache_tuning" { # } # } -module "nfs_nextcloud_data" { - source = "../../modules/kubernetes/nfs_volume" - name = "nextcloud-data" - namespace = kubernetes_namespace.nextcloud.metadata[0].name - nfs_server = var.nfs_server - nfs_path = "/mnt/main/nextcloud" - storage = "100Gi" +resource "kubernetes_persistent_volume_claim" "nextcloud_data_iscsi" { + metadata { + name = "nextcloud-data-iscsi" + namespace = kubernetes_namespace.nextcloud.metadata[0].name + } + spec { + access_modes = ["ReadWriteOnce"] + storage_class_name = "iscsi-truenas" + resources { + requests = { + storage = "20Gi" + } + } + } } module "nfs_nextcloud_backup" {