Hi Himanshu Singh,
Thanks for reaching out to Microsoft Q&A.
The error you're experiencing is most likely due to the expiration of the SAS token used for mounting the Azure Blob Storage container with blobfuse2. Since the issue appeared after about two weeks, it aligns with common default expiry times for SAS tokens. By renewing the SAS token and ensuring it has a suitable validity period and permissions, you should be able to resolve the mounting issues.
Is There a Limit on the Number of Read-Write Mounts for a Single Container Using Blobfuse2?
No, Azure Blob Storage does not impose a hard limit on the number of read-write mounts or connections to a single container using blobfuse2.
- The error indicates that the
globalmount
directory does not exist at the time of the bind mount. - In Kubernetes CSI drivers, a volume is first mounted to a global mount path. Subsequent bind mounts are made from this global path to individual pod volume paths.
- If the initial mount fails, the global mount path will not exist, causing the bind mount to fail.
Possible Reasons for the Global Mount Path Not Existing:
- Expired SAS Token: If the SAS token used for authentication has expired, blobfuse2 cannot mount the container, resulting in the absence of the global mount path.
- Blobfuse2 Process Failure: The blobfuse2 process may have crashed or terminated unexpectedly on the affected nodes.
- Network Issues: Connectivity problems between the servers and Azure Blob Storage could prevent successful mounting.
- Resource Limits on the Node: Although unlikely, if the node has hit a limit on the number of file descriptors or mounts, new mounts might fail.
Why the Issue Occurred After 2 Weeks:
- SAS Token Expiry: By default, SAS tokens can have a predefined expiry time. If all tokens were generated with a 2-week validity period, they would all start failing around the same time.
- Credential Rotation: If credentials were rotated or revoked, this could disrupt existing mounts.
Explanation:
Azure Blob Storage Scalability: Azure Blob Storage is designed to handle a large number of concurrent connections and operations. It supports thousands of simultaneous clients without performance degradation.
Blobfuse2 Limitations: Blobfuse2 itself does not impose a limit on the number of mounts or clients. It relies on FUSE and the underlying operating system, which also do not have strict limits on the number of mounts.
Potential Throttling: While there is no hard limit, Azure may throttle requests if the account exceeds certain thresholds (e.g., ingress/egress bandwidth, transactions per second). However, this would typically result in throttling errors, not mount failures.
Possible workarounds:
Check Expiry: Ensure that the SAS token used has not expired. If it has, generate a new SAS token with an appropriate expiry time or consider using a storage account key for long-term access.
Token Scope: Make sure the SAS token has the necessary permissions (read, write, list) for the container.
Please 'Upvote'(Thumbs-up) and 'Accept' as an answer if the reply was helpful. This will benefit other community members who face the same issue.