-
Notifications
You must be signed in to change notification settings - Fork 795
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Failed to find device path /dev/xvdac. no device path for device \"/dev/xvdac\" volume \"vol-02d38d88d79844a04\" found #2062
Comments
for anyone looking for a workaround, manually mount the volume onto the same node and use a different devicepath, that seems to have fixed the problem |
Hi, if you can find a way to reproduce this issue please let us know, but this issue as written doesn't provide enough information to diagnose the issue. Restarting the pod using a volume does not normally prevent the volume from attaching. Note that this issue may occur if the volume is manually mounted/unmounted. The EBS CSI Driver does not support and strongly discourages manual mounting of volumes. If this issue occurs in the future, we recommend deleting (and allowing a |
|
@balusarakesh this might be a red herring, but next time you run into this issue can you confirm that the mount permissions on the We have seen similar symptoms on another customer's cluster where some other process was making it read-only, which means the device name would not show up in When running Manually running
What error message would be more helpful here? I believe |
@AndrewSirenko I'll try to check the permissions next time it happens (thanks for the commands) as you can see from the AWS screenshot, the device id does not exist on the volume for the given instance, doesn't that mean the ebs-csi-driver should pick a different device id that is available? I manually mounted the volume on the node with a different device id that was available and it worked so it seems like the aws-ebs-csi driver is picking non-existent device ids |
For context of anyone who stumbles on this issue, it is important to remember that EBS CSI Driver is split into two components, the EBS CSI Controller Pod (responsible for talking to EC2 to make sure volumes are created and attached to the right node) and the EBS CSI Node pod (running on each node, responsible for formatting and mounting already attached volume to proper node mount-point and then pod mount-point).
@balusarakesh By the time the mount operation is happening (NodeStageVolume, see csi-spec), a volume has already been attached by controller pod to an already chosen device name. If the volume is not attached at the time of the mount operation happening, or the EBS CSI Node pod checks the wrong device path, something is very wrong (because the Kubernetes state of the world and EC2 state of the world are out of sync) This device name can be seen on the See below for an example of attached volume with device
The EBS CSI Node pod does not choose the device name at the time of mounting. If the csi node service fails to find that path, as a backup the ebs csi node service tries to find the device via the volume ID under Next time you run into this issue can you:
Some customer has allegedly observed that if Hope some of ^^ was helpful. I do not know why manually mounting a volume with a dif available device id would work, unless step 2 of the above instructions has a mismatch between what EC2 DescribeVolumes says and what |
The above message is super helpful, thank you very much for taking the time and writing it. I'll leave it up to you to close or keep the issue open
|
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
Closing based off of your previous comment as it seems this issue has not re-occured. Please re-open if you run into it again. /close |
@AndrewSirenko: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
/kind bug
What happened?
Restarted the pod and now the EBS volume is not getting mounted on the node. As you can see from the screenshot that device name
/dev/xvdac
does not exist and theebs-csi-node
pod is stuck unable to mount the volume.What you expected to happen?
A pod restart should not break EBS volume mount
How to reproduce it (as minimally and precisely as possible)?
Not really sure
Anything else we need to know?:
E0612 21:49:29.699613 1 driver.go:107] "GRPC error" err="rpc error: code = Internal desc = Failed to find device path /dev/xvdac. no device path for device \"/dev/xvdac\" volume \"vol-02d38d88d79844a04\" found"
Environment
kubectl version
):v1.30.0
The text was updated successfully, but these errors were encountered: