Skip to content

CSI changes for volume health #410

Closed
@xing-yang

Description

@xing-yang

Volume Health KEP is merged in Kubernetes. We need to have CSI changes to provide volume health check leveraging existing RPCs and adding new ones.

  • Add new GetVolume controller RPC
    External monitoring controller calls a new GetVolume RPC to check health condition of a particular volume instead of calling ListVolumes with a volume_id filter. Some CSI drivers chose not to implement ListVolumes as it is an expensive operation. Therefore it is better to introduce a new RPC GetVolume which has a new capability.

  • Extend the existing NodeGetVolumeStats RPC
    External node agent calls NodeGetVolumeStats to check mount condition and other health condition.

Two new controller capabilities are added. If a CSI driver supports GET_VOLUME capability, it MUST support calling GetVolume to provide general volume information in GetVolumeResponse. If a driver supports GET_VOLUME_HEALTH, it MUST provide additional health information in GetVolumeResponse.

A new node capability is added. If CSI driver supports the GET_VOLUME_STATS_HEALTH capability, it MUST provide health information in NodeGetVolumeStats.

For details of CSI spec changes, see the following:
https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/20190530-pv-health-monitor.md#csi-changes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions