使用gcsfuse挂载GCS存储桶后,VM中root用户执行mkdir命令报Input/output error
gcsfuse挂载GCS存储桶后,VM中root用户执行mkdir命令报Input/output error
我在VM里用gcsfuse挂载了Google Cloud Storage存储桶,但以root用户身份在挂载目录下执行mkdir命令时,遇到了如下错误:
mkdir: cannot create directory ‘243’: Input/output error
不过我在GCP控制台里直接给存储桶创建文件夹结构是可以成功的,现在不确定问题出在哪,希望能得到帮助,提前感谢!
可能的排查方向和解决方法
检查gcsfuse挂载权限参数
gcsfuse默认限制root用户操作挂载目录,你可以尝试在挂载命令中添加--allow-root参数,重新挂载存储桶:# 先卸载已挂载的目录 umount /path/to/mount-point # 带--allow-root参数重新挂载 gcsfuse --allow-root your-bucket-name /path/to/mount-point之后再尝试执行
mkdir命令看是否恢复正常。验证VM服务账号的GCS权限
确保VM绑定的服务账号拥有GCS存储桶的写入权限,比如至少具备storage.objects.create和storage.objects.list权限。可以到GCP IAM页面检查该服务账号的角色,建议赋予Storage Object Creator这类最小权限角色,避免过度授权。查看gcsfuse调试日志
挂载时添加--debug_fuse参数可以输出详细的FUSE操作日志,能帮你定位具体的IO错误原因:gcsfuse --allow-root --debug_fuse your-bucket-name /path/to/mount-point重新挂载后执行
mkdir命令,从日志里找更具体的错误提示,比如网络连接问题、存储桶配置异常等。检查挂载目录的本地权限
先用ls -ld /path/to/mount-point查看挂载目录本身的权限设置,确认root用户对该目录有读写权限,如果权限配置不对,先调整目录权限后再重新挂载。
备注:内容来源于stack exchange,提问作者Prakash
相关产品推荐
相关产品推荐

