Diagnosing data volumes using events and conditions

Use the oc describe command to analyze and help resolve issues with data volumes.

About conditions and events

Diagnose data volume issues by examining the output of the Conditions and Events sections generated by the command:

  1. $ oc describe dv <DataVolume>

There are three Types in the Conditions section that display:

  • Bound

  • Running

  • Ready

The Events section provides the following additional information:

  • Type of event

  • Reason for logging

  • Source of the event

  • Message containing additional diagnostic information.

The output from oc describe does not always contains Events.

An event is generated when either Status, Reason, or Message changes. Both conditions and events react to changes in the state of the data volume.

For example, if you misspell the URL during an import operation, the import generates a 404 message. That message change generates an event with a reason. The output in the Conditions section is updated as well.

Analyzing data volumes using conditions and events

By inspecting the Conditions and Events sections generated by the describe command, you determine the state of the data volume in relation to persistent volume claims (PVCs), and whether or not an operation is actively running or completed. You might also receive messages that offer specific details about the status of the data volume, and how it came to be in its current state.

There are many different combinations of conditions. Each must be evaluated in its unique context.

Examples of various combinations follow.

  • Bound – A successfully bound PVC displays in this example.

    Note that the Type is Bound, so the Status is True. If the PVC is not bound, the Status is False.

    When the PVC is bound, an event is generated stating that the PVC is bound. In this case, the Reason is Bound and Status is True. The Message indicates which PVC owns the data volume.

    Message, in the Events section, provides further details including how long the PVC has been bound (Age) and by what resource (From), in this case datavolume-controller:

    Example output

    1. Status:
    2. Conditions:
    3. Last Heart Beat Time: 2020-07-15T03:58:24Z
    4. Last Transition Time: 2020-07-15T03:58:24Z
    5. Message: PVC win10-rootdisk Bound
    6. Reason: Bound
    7. Status: True
    8. Type: Bound
    9. Events:
    10. Type Reason Age From Message
    11. ---- ------ ---- ---- -------
    12. Normal Bound 24s datavolume-controller PVC example-dv Bound
  • Running – In this case, note that Type is Running and Status is False, indicating that an event has occurred that caused an attempted operation to fail, changing the Status from True to False.

    However, note that Reason is Completed and the Message field indicates Import Complete.

    In the Events section, the Reason and Message contain additional troubleshooting information about the failed operation. In this example, the Message displays an inability to connect due to a 404, listed in the Events section’s first Warning.

    From this information, you conclude that an import operation was running, creating contention for other operations that are attempting to access the data volume:

    Example output

    1. Status:
    2. Conditions:
    3. Last Heart Beat Time: 2020-07-15T04:31:39Z
    4. Last Transition Time: 2020-07-15T04:31:39Z
    5. Message: Import Complete
    6. Reason: Completed
    7. Status: False
    8. Type: Running
    9. Events:
    10. Type Reason Age From Message
    11. ---- ------ ---- ---- -------
    12. Warning Error 12s (x2 over 14s) datavolume-controller Unable to connect
    13. to http data source: expected status code 200, got 404. Status: 404 Not Found
  • Ready – If Type is Ready and Status is True, then the data volume is ready to be used, as in the following example. If the data volume is not ready to be used, the Status is False:

    Example output

    1. Status:
    2. Conditions:
    3. Last Heart Beat Time: 2020-07-15T04:31:39Z
    4. Last Transition Time: 2020-07-15T04:31:39Z
    5. Status: True
    6. Type: Ready