Proxmox mit Ceph und ceph-csi sinnevoll?

Okay das ist jetzt wirklich komisch aber ich glaube kubestr ist kein gutes tool.

Ich hab mir einen Dev-Container mit fio genommen:
https://github.com/deB4SH/cluster-debug-image

Und folgenden Debug pod deployed:

YAML:
kind: Deployment
apiVersion: apps/v1
metadata:
  name: debug
  labels:
    app: debug

spec:
  replicas: 1
  selector:
    matchLabels:
      app: debug
  template:
    metadata:
      labels:
        app: debug
    spec:
      containers:
        - name: debug
          image: ghcr.io/deb4sh/cluster-debug-image:sha-f134eab
          # Just sleep forever
          command: [ "sleep" ]
          args: [ "infinity" ]
          volumeMounts:
            - mountPath: /data
              name: debug-ceph-fs
      volumes:
        - name: debug-ceph-fs
          persistentVolumeClaim:
            claimName: debug-ceph-fs
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: debug-ceph-fs
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 8Gi
  storageClassName: ceph-fs

Dort dann das gleiche fio command wie auf proxmox laufen lassen: "fio --name=read_iops --size=2G --bs=4k --rw=randread --verify=0 --direct=1 --ioengine=libaio --iodepth=64"

Und folgendes Result bekommen:
Code:
read: 
    IOPS=10.1k, BW=39.4MiB/s
    iops: min= 3814, max=15040, avg=10070.17
    bw(KiB/s): min=15256, max=60160, avg=40280.70

Wo Ich sagen muss, klar durch die abstraktion in der VM und alles isses für mich klar das weniger IOPS zustande kommen. Aber das Ergebnis is definitiv besser als alles was kubestr ausspuckt.
 
Also was Ich an deiner stelle tun würde wäre folgendes:

- Den debug container benutzen und damit mal fio laufen lassen
- Du hast definitiv ein problem mit deinen NICs daher auch die routes im Github Issue posten und gleichzeitig https://github.com/smira taggen ob er denn einen weg kennt wie du in talos gut tcp dumpen kannst um zu sehen ob die connections über die richtige route gehen

Und vielleicht auch nochmal die VM config aus Proxmox hier posten wenns geht. Am besten direkt die .conf datei unter "/etc/pve/qemu-server"
 
Code:
fio --name=read_iops --size=2G --bs=4k --rw=randread --verify=0 --direct=1 --ioengine=libaio --iodepth=64
read_iops: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.33
Starting 1 process
read_iops: Laying out IO file (1 file / 2048MiB)
Jobs: 1 (f=1): [r(1)][100.0%][r=472MiB/s][r=121k IOPS][eta 00m:00s]
read_iops: (groupid=0, jobs=1): err= 0: pid=18: Fri Jan 10 13:16:12 2025
  read: IOPS=119k, BW=463MiB/s (485MB/s)(2048MiB/4424msec)
    slat (usec): min=3, max=115, avg= 6.99, stdev= 3.34
    clat (usec): min=42, max=858, avg=532.64, stdev=50.28
     lat (usec): min=46, max=865, avg=539.63, stdev=50.94
    clat percentiles (usec):
     |  1.00th=[  302],  5.00th=[  445], 10.00th=[  506], 20.00th=[  519],
     | 30.00th=[  529], 40.00th=[  537], 50.00th=[  537], 60.00th=[  545],
     | 70.00th=[  553], 80.00th=[  562], 90.00th=[  570], 95.00th=[  578],
     | 99.00th=[  611], 99.50th=[  676], 99.90th=[  709], 99.95th=[  717],
     | 99.99th=[  742]
   bw (  KiB/s): min=464144, max=492376, per=100.00%, avg=474777.62, stdev=10138.43, samples=8
   iops        : min=116036, max=123094, avg=118694.38, stdev=2534.63, samples=8
  lat (usec)   : 50=0.01%, 100=0.01%, 250=0.29%, 500=8.60%, 750=91.10%
  lat (usec)   : 1000=0.01%
  cpu          : usr=13.68%, sys=86.00%, ctx=326, majf=0, minf=73
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
     issued rwts: total=524288,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=64

Run status group 0 (all jobs):
   READ: bw=463MiB/s (485MB/s), 463MiB/s-463MiB/s (485MB/s-485MB/s), io=2048MiB (2147MB), run=4424-4424msec

aber:

Code:
root@debug-bbd8f64bb-7q4mm:/# traceroute 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1), 64 hops max
  1   10.144.190.35  0.003ms  0.002ms  0.001ms
  2   192.168.1.1  0.120ms  0.064ms  0.060ms
root@debug-bbd8f64bb-7q4mm:/# tracepath 192.168.1.1
 1?: [LOCALHOST]                      pmtu 1500
 1:  10-144-190-35.hubble-peer.kube-system.svc.cluster.local   0.091ms
 1:  10-144-190-35.hubble-peer.kube-system.svc.cluster.local   0.040ms
 2:  192.168.1.1                                           0.217ms reached
     Resume: pmtu 1500 hops 2 back 2
 
Naja da sehen die IOPS ja schon mal definitiv besser aus.

Bezüglich dem routing in Talos kann Ich dir leider nicht weiterhelfen, dafür kenn Ich mich in Talos zu wenig aus.
Was ich auch noch mitbekommen habe ist das die Drives welche man für Ceph benutzt auch nochmal ausschlaggebend für die Performance sind. Das könnte man sich als letzte möglichkeit auch noch ansehen.

Wie oben schon beschrieben würd Ich die Routing table die du im Forum gepostet hast auch auf github beretistellen und die Talos leute direkt fragen inwiefern du die config anpassen musst.

Hier endet leider meine Möglichkeit dir weiterzuhelfen aber dennoch viel Glück das du auf eine Lösung kommst und wenn du es geschafft hast bitte auch hier posten damit die Infos nicht verloren gehen.