|
| 1 | +// Do not edit this module. It is generated with a script. |
| 2 | +// Do not reuse this module. The anchor IDs do not contain a context statement. |
| 3 | +// Module included in the following assemblies: |
| 4 | +// |
| 5 | +// * virt/monitoring/virt-runbooks.adoc |
| 6 | + |
| 7 | +:_content-type: REFERENCE |
| 8 | +[id="virt-runbook-VirtualMachineCRCErrors"] |
| 9 | += VirtualMachineCRCErrors |
| 10 | + |
| 11 | +[discrete] |
| 12 | +[id="meaning-virtualmachinecrcerrors"] |
| 13 | +== Meaning |
| 14 | + |
| 15 | +This alert fires when the storage class is incorrectly configured. |
| 16 | +A system-wide, shared dummy page causes CRC errors when data is |
| 17 | +written and read across different processes or threads. |
| 18 | + |
| 19 | +[discrete] |
| 20 | +[id="impact-virtualmachinecrcerrors"] |
| 21 | +== Impact |
| 22 | + |
| 23 | +A large number of CRC errors might cause the cluster to display |
| 24 | +severe performance degradation. |
| 25 | + |
| 26 | +[discrete] |
| 27 | +[id="diagnosis-virtualmachinecrcerrors"] |
| 28 | +== Diagnosis |
| 29 | + |
| 30 | +. Get the volume name from a virtual machine: |
| 31 | ++ |
| 32 | +[source,terminal] |
| 33 | +---- |
| 34 | +$ oc get vm <vm_name> -o jsonpath='{.spec.template.spec.volumes}' |
| 35 | +---- |
| 36 | + |
| 37 | +. Get the storage class name from the volume: |
| 38 | ++ |
| 39 | +[source,terminal] |
| 40 | +---- |
| 41 | +$ oc get pvc <volume> -o jsonpath='{.spec.storageClassName}' |
| 42 | +---- |
| 43 | + |
| 44 | +. Get the storage class configuration: |
| 45 | ++ |
| 46 | +[source,terminal] |
| 47 | +---- |
| 48 | +$ oc get sc <storage_class> -o yaml |
| 49 | +---- |
| 50 | + |
| 51 | +. Check the storage class configuration for the `krbd:rxbounce` map option. |
| 52 | + |
| 53 | +[discrete] |
| 54 | +[id="mitigation-virtualmachinecrcerrors"] |
| 55 | +== Mitigation |
| 56 | + |
| 57 | +Add the `krbd:rxbounce` map option to the storage class configuration: |
| 58 | + |
| 59 | +[source,terminal] |
| 60 | +---- |
| 61 | +apiVersion: storage.k8s.io/v1 |
| 62 | +kind: StorageClass |
| 63 | +metadata: |
| 64 | + name: example-storage-class |
| 65 | +parameters: |
| 66 | + # ... |
| 67 | + mounter: rbd |
| 68 | + mapOptions: "krbd:rxbounce" |
| 69 | +provisioner: openshift-storage.rbd.csi.ceph.com |
| 70 | +# ... |
| 71 | +---- |
| 72 | + |
| 73 | +The `krbd:rxbounce` option creates a bounce buffer to receive data. The default |
| 74 | +behavior is for the destination buffer to receive data directly. A bounce buffer |
| 75 | +is required if the destination buffer is unstable. |
| 76 | + |
| 77 | +If you cannot resolve the issue, log in to the |
| 78 | +link:https://access.redhat.com[Customer Portal] and open a support case, |
| 79 | +attaching the artifacts gathered during the diagnosis procedure. |
0 commit comments