ceph / ceph/ceph-csi

Implement `VOLUME_CONDITION` capability

Open
#2,794 8 comments 0 reactions 1 assignee Claimed by @pkalever View on GitHub
keepalive
Dominant language
Go
Stars
1.6k
Forks
617
Avg merge
5d 10h
Merged PRs (30d)
43

Description

# Describe the feature you'd like to have #

Healer Controller checks if a volume is still mounted and usable. To check whether a volume is usable, the CSI driver shall check if filesystem is corrupted, whether there are bad blocks, etc. in this RPC.

Instead of adding a new RPC, we can leverage the existing NodeGetVolumeStats RPC.

In the NodeGetVolumeStatsRequest, there are volume_id, volume_path, and staging_target_path. CSI driver can figure out whether a volume is still mounted based on these parameters.

A new message volume_condition will be added to NodeGetVolumeStatsResponse. A new Node capability `VOLUME_CONDITION` will be added to indicate whether a CSI driver has implemented this function. In a volume_condition message, there is a boolean parameter abnormal indicating whether the volume is normal or not and a message that describes the details of the volume condition.

# What new functionality do you want?

Provide a way to check the volume health status

# What is the value to the end-user? (why is it a priority?) #

The healer controller can leverage this to auto-fix the volume without user intervention.

# Additional context #

Read more at https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1432-volume-health-monitor#add-node-volume-health-function

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.