解决文件操作错误 - Amazon Elastic File System
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

解决文件操作错误

当您访问 Amazon EFS 文件系统时,对文件系统中的文件的某些限制可能适用。超出这些限制会导致文件操作错误。有关 Amazon EFS 中基于客户端和文件的限制的更多信息,请参阅 NFS 客户端的配额。您可以在下文中查找一些常见文件操作错误及与每个错误相关的限制。

命令失败,并显示“Disk quota exceeded”错误

Amazon EFS 当前不支持用户磁盘配额。如果超出了以下任何限制,则可能会出现该错误:

  • 一个实例同一时刻最多可以有 128 个活动用户账户打开文件。

  • 一个实例同一时刻最多可打开 32,768 个文件。

  • 实例上的每个唯一挂载可以在 256 个唯一文件/进程对中最多获取总共 8192 个锁。例如,单个进程可以在 256 个单独的文件上获取一个或多个锁,或者说 8 个进程中的每个进程均可以在 32 个文件上获取一个或多个锁。

措施

如果遇到该问题,可通过确定超出了上述哪个限制,然后进行更改以满足该限制,加以解决。

命令失败,并显示“I/O error”

遇到下列问题之一时会发生此错误:

  • 每个实例同一时刻最多有 128 个活动用户账户打开文件。

    措施

    如果遇到该问题,您可以满足在实例上支持的打开文件数限制以解决该问题。为此,请减少在实例上同时打开 Amazon EFS 文件系统中的文件的活动用户数。

  • 已删除加密您的文件系统的 AWS KMS 密钥。

    措施

    如果遇到此问题,则您不能再解密用该密钥加密的数据,这意味着该数据将无法恢复。

命令失败,并显示“File name is too long”错误

当文件名或其符号链接 (symlink) 太长时,会出现该错误。文件名具有以下限制:

  • 名称的长度最多为 255 个字节。

  • 符号链接的大小最多为 4080 个字节。

措施

如果遇到该问题,可通过减小您的文件名或符号链接的长度以满足支持的限制,加以解决。

命令失败,“File not found” (未找到文件) 错误

出现此错误的原因是某些旧的 32 位版本 Oracle E-Business 套件使用 32 位文件 I/O 接口,而 EFS 使用 64 位 inode 数。可能失败的系统调用包括 `stat ()` 和 `readdir ()`。

措施

如果遇到此错误,可以使用 nfs.enable_ino64=0 kernel 启动选项解决问题。此选项将 64 位 EFS inode 数压缩为 32 位。对于不同的 Linux 发行版,内核启动选项的处理方式不同。在 Amazon Linux 上,向 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT 变量添加 nfs.enable_ino64=0 kernel 即可启用该选项。有关如何启用内核启动选项的信息,请参阅特定于您的发行版的具体文档。

命令失败,并显示“Too many links”错误

当文件的硬链接太多时,会出现该错误。一个文件中最多可有 177 个硬链接。

措施

如果遇到该问题,可通过减少文件硬链接的数量以满足支持的限制,加以解决。

命令失败,并显示“File too large”错误

当文件太大时,会出现该错误。单个文件的大小最多为 52,673,613,135,872 个字节 (47.9 TiB)。

措施

如果遇到该问题,可通过减小文件的大小以满足支持的限制,加以解决。