Bug 2160294

Summary: [GSS] Procedure to increase OSD pod memory limits
Product: [Red Hat Storage] Red Hat OpenShift Data Foundation Reporter: kelwhite
Component: ocs-operatorAssignee: Nitin Goyal <nigoyal>
Status: CLOSED NOTABUG QA Contact: Elad <ebenahar>
Severity: high Docs Contact:
Priority: high    
Version: 4.8CC: bkunal, lema, mduasope, muagarwa, nigoyal, nojha, odf-bz-bot, sbaldwin, smitra, tdesala, tnielsen, tpetr, uchapaga
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-10 02:43:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description kelwhite 2023-01-12 00:53:27 UTC
Description of problem (please be detailed as possible and provide log
snippests):

We need a way to increase an OSD pods memory limits. Since the osd is managed by a replica set which is managed by a deployment which is managed by the cephcluster which is managed by the storagecluster, you *should* be able to run this patch command to update the OSD pod memory limits (it works for the MDS pods!)

# oc patch StorageCluster ocs-storagecluster --type='merge' -p '{"spec":{"resources":{"osd":{"limits":{"cpu":"3","memory":"16Gi"},"requests":{"cpu":"3","memory":"16Gi"}}}}}'

Furthermore, if this is not the correct way to update the OSD pod memory limits, what is? Should this be updated via the rook-config-override CM?

Comment 3 kelwhite 2023-01-12 18:02:49 UTC
Seems the limits are defined under storageDeviceSets and not under spec: resources:

# example:
apiVersion: ocs.openshift.io/v1    
kind: StorageCluster    
metadata:    
  namespace: openshift-storage    
  name: example-storagecluster    
spec:
  manageNodes: false    
  monPVCTemplate:    
    spec:    
      storageClassName: gp2    
      accessModes:    
      - ReadWriteOnce    
      resources:    
        requests:    
          storage: 1Gi    
  resources:      
    mon:      
        resources:
            requests:
                cpu:
                memory:
            limits:
                cpu:
                memory:  
    mds:      
        resources:
            requests:
                cpu:
                memory:
            limits:
                cpu:
                memory:     
    rgw:      
        resources:
            requests:
                cpu:
                memory:
            limits:
                cpu:
                memory:     
    mgr:      
        resources:
            requests:
                cpu:
                memory:
            limits:
                cpu:
                memory:   
    noobaa-core:      
        resources:
            requests:
                cpu:
                memory:
            limits:
                cpu:
                memory:     
    noobaa-db:        
        resources:
            requests:
                cpu:
                memory:
            limits:
                cpu:
                memory:    
  storageDeviceSets:    
  - name: example-deviceset    
    count: 3    
    resources:
      requests:
        cpu:
        memory:
      limits:
        cpu:
        memory: 
    placement: {}    
    dataPVCTemplate:    
      spec:    
        storageClassName: gp2    
        accessModes:    
        - ReadWriteOnce    
        volumeMode: Block    
        resources:    
          requests:    
            storage: 100Gi    
    portable: true

Seems we just need a patch command to update the storageDeviceSets, something like the following?:

# oc patch StorageCluster ocs-storagecluster --type='merge' -p '{"spec":{"storageDeviceSets":{"resources":{"cpu":"3","memory":"16Gi"},"requests":{"cpu":"3","memory":"16Gi"}}}}}'