本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除:文件共享问题
您可以在下面找到有关您遇到文件共享意外问题时要采取的措施的信息。
主题
您的文件共享陷入 CREATING 状态
当您创建文件共享时,状态为 CREATING。创建文件共享之后,状态变为 AVAILABLE。如果文件共享陷入 CREATING 状态,请执行以下操作:
打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/
。 -
确保您将文件共享映射到的 S3 存储桶确实存在。如果此存储桶不存在,则创建存储桶。创建存储桶之后,文件共享状态变为 AVAILABLE。有关如何创建 S3 存储桶的信息,请参阅《Amazon Simple Storage Service 用户指南》中的创建存储桶。
-
确保您的存储桶名称符合 Amazon S3 中的存储桶命名规则。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的存储桶命名规则。
注意
S3 文件网关不支持存储桶名称中带有句点(
.)的 Amazon S3 存储桶。 -
确保用于访问 S3 存储桶的 IAM 角色具有正确的权限,并验证 S3 存储桶是否在 IAM 策略中被列为资源。有关更多信息,请参阅 授予对 Amazon S3 存储桶的访问权限。
无法创建文件共享
-
如果由于文件共享陷入 CREATING 状态而无法创建文件共享,请验证文件共享映射的 S3 存储桶是否存在。有关如何执行此操作的信息,请参阅上述的 您的文件共享陷入 CREATING 状态。
-
如果 S3 存储桶存在,请确认 AWS Security Token Service 该存储桶已在您创建文件共享的区域中激活。如果安全令牌未激活,则应将其激活。有关如何使用激活令牌的信息 AWS Security Token Service,请参阅 IAM 用户指南中的在AWS 区域中激活和停用 AWS STS。
SMB 文件共享不允许使用多个不同的访问方法
SMB 文件共享具有以下限制:
-
当同一客户端尝试安装 Active Directory 和来宾访问 SMB 文件共享时,将显示以下错误消息:
Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again. -
一个 Windows 用户不能保持与两个来宾访问 SMB 文件共享的连接,并且在新的来宾访问连接建立后可能会断开连接。
-
Windows 客户端无法同时安装由同一网关导出的来宾访问和 Active Directory SMB 文件共享。
多个文件共享无法写入到映射的 S3 存储桶
我们不建议将 S3 存储桶配置为允许多个文件共享写入到一个 S3 存储桶。此方法可能导致无法预测的结果。
相反,我们建议您只允许一个文件共享写入到每个 S3 存储桶。您可以创建存储桶策略,仅允许与文件共享相关联的角色写入到存储桶。有关更多信息,请参阅文件网关的最佳实践。
使用审核日志时的已删除日志组通知
如果日志组不存在,则用户可以点击该消息下方的日志组链接,前往创建一个新的日志组,或使用现有的日志组,作为审核日志的目标
无法将文件上传到您的 S3 存储桶
如果无法将文件上传到 S3 存储桶,请执行以下操作:
-
确保您已为 Amazon S3 文件网关授予必要的访问权限,以将文件上传到 S3 存储桶。有关更多信息,请参阅 授予对 Amazon S3 存储桶的访问权限。
-
确保创建存储桶的角色有权写入到 S3 存储桶。有关更多信息,请参阅文件网关的最佳实践。
-
如果您的文件网关使用 SSE-KMS 或 DSSE-KMS 进行加密,请确保与文件共享关联的 IAM 角色包括 kms: encrypt、kms: decrypt、kms: *、kms: 和 kms: 权限。ReEncrypt GenerateDataKey DescribeKey有关更多信息,请参阅为 Storage Gateway 使用基于身份的策略(IAM 策略)。
无法更改默认加密以使用 SSE-KMS 来加密存储在我的 S3 存储桶中的对象
如果您更改默认加密并将 SSE-KMS(使用 AWS KMS托管密钥进行服务器端加密)设为 S3 存储桶的默认加密方式,则 Amazon S3 文件网关在存储桶中存储的对象不会使用 SSE-KMS 进行加密。默认情况下,S3 文件网关在将数据写入 S3 存储桶时使用 Amazon S3 托管的服务器端加密(SSE-S3)。更改默认值不会自动更改您的加密。
要将加密更改为使用带有您自己的密 AWS KMS 钥的 SSE-KMS,您必须打开 SSE-KMS 加密。为此,您需要在创建文件共享时提供 KMS 密钥的 Amazon 资源名称 (ARN)。您也可以通过使用 UpdateNFSFileShare 或 UpdateSMBFileShare API 操作来更新文件共享的 KMS 设置。更新后,此更新应用于存储在 S3 存储桶中的对象。有关更多信息,请参阅 使用数据加密 AWS KMS。
在开启对象版本控制的情况下直接在 S3 存储桶中进行更改可能会影响在文件共享中看到的内容
如果您的 S3 存储桶中有其他客户端向其写入的对象,则您对 S3 存储桶的视图可能 up-to-date不是由 S3 存储桶对象版本控制产生的。您应始终先刷新缓存,然后再查看感兴趣的文件。
对象版本控制 是一项可选的 S3 存储桶功能,通过存储同名对象的多个副本来帮助保护数据。每个副本都具有单独的 ID 值,例如 file1.jpg: ID="xxx" 和 file1.jpg: ID="yyy"。同名对象数及其生命周期由 Amazon S3 生命周期策略控制。有关这些 Amazon S3 概念的更多详细信息,请参阅《Amazon S3 开发人员指南》中的使用版本控制和对象生命周期管理。
在删除受版本控制的对象时,会使用删除标记来标记该对象,但保留该对象。只有 S3 存储桶拥有者才能永久删除启用了版本控制的对象。
在 S3 文件网关中,所显示的文件是获取对象或刷新缓存时 S3 存储桶中的对象的最新版本。S3 文件网关会忽略任何较旧版本或标记为删除的任何对象。在读取文件时,您从最新版本读取数据。当您在文件共享中写入文件时,S3 文件网关会利用您的更改,为同名对象创建一个新版本,并且该版本将成为最新版本。
如果在您的应用程序之外向 S3 存储桶添加了新版本,则您的 S3 文件网关将继续从较早版本读取,并且您所做的更新将基于较早版本。要读取对象的最新版本,请使用 RefreshCacheAPI 操作或从控制台刷新,如中所述刷新 Amazon S3 存储桶对象缓存。
重要
我们不建议从文件共享之外将对象或文件写入 S3 文件网关 S3 存储桶。
在开启版本控制的情况下写入 S3 存储桶时,Amazon S3 文件网关可能会创建多个版本的 Amazon S3 对象
启用对象版本控制后,每次从 NFS 或 SMB 客户端更新文件时,您可能会在 Amazon S3 中创建多个版本的对象。以下场景会导致在 S3 存储桶中创建多个版本的对象:
-
将一个文件上传到 Amazon S3 后,当 NFS 或 SMB 客户端在 Amazon S3 文件网关中对其进行修改时,S3 文件网关会上传新的或修改过的数据,而不是上传整个文件。文件修改会导致创建 Amazon S3 对象的新版本。
-
当 NFS 或 SMB 客户端将文件写入 S3 文件网关时,S3 文件网关会将文件的数据上传到 Amazon S3,然后上传其元数据(所有权、时间戳等)。上传文件数据会创建 Amazon S3 对象,上传文件的元数据会更新 Amazon S3 对象的元数据。此过程会创建对象的另一个版本,从而生成一个对象的两个版本。
-
当 S3 文件网关上传较大的文件时,可能需要在客户端完成对文件网关的写入之前上传较小的文件块。造成这种现象的一些原因包括:为了释放缓存空间,或对某个文件进行高频写入。这可能会导致 S3 存储桶中的对象有多个版本。
在设置生命周期策略将对象移动到不同存储类别之前,您应监控您的 S3 存储桶,以确定对象存在多少个版本。您应为旧版本配置生命周期过期时间,以最大限度地减少 S3 存储桶中对象的版本数。在 S3 存储桶之间使用同区域复制(SRR)或跨区域复制(CRR)将增加使用的存储空间。有关复制的更多信息,请参阅复制。
重要
在您弄清楚开启对象版本控制后会占用多少存储空间之前,不要配置 S3 存储桶之间的复制。
使用受版本控制的 S3 存储桶会大大增加 Amazon S3 中的存储量,因为对文件进行的每项修改都会创建 S3 对象的一个新版本。默认情况下,Amazon S3 会继续存储所有这些版本,除非您专门创建策略来覆盖此行为并限制保留的版本数。如果您注意到开启对象版本控制后存储使用量异常大,请检查您是否正确设置了存储策略。浏览器请求的 HTTP 503-slow down 响应数的增加也可能是由于对象版本控制问题。
如果您在安装 S3 文件网关后开启了对象版本控制,则将保留所有唯一对象(ID=”NULL”),且您可以在文件系统中查看所有对象。将为对象的新版本分配唯一 ID(保留较旧版本)。基于对象的时间戳,仅最新版本的对象可在 NFS 文件系统中查看。
在开启对象版本控制后,您的 S3 存储桶将无法返回到不受版本控制的状态。但是,您可以暂停版本控制。在暂停版本控制时,会为新对象分配一个 ID。如果存在具有 ID=”NULL” 值的同名对象,则将覆盖较旧版本。但是,将保留包含非 NULL ID 的任何版本。时间戳将新对象标识为最新对象,并且这是显示在 NFS 文件系统中的对象。
对 S3 存储桶的更改未反映在 Storage Gateway 中
当您使用文件共享在本地向缓存写入文件时,Storage Gateway 会自动更新文件共享缓存。但是,当您将文件直接上传到 Amazon S3 时,Storage Gateway 不会自动更新缓存。执行此操作时,必须执行 RefreshCache 操作才能查看文件共享上的更改。如果您有多个文件共享,则必须对每个文件共享运行 RefreshCache 操作。
您可以使用 Storage Gateway 控制台和 AWS Command Line Interface (AWS CLI)刷新缓存:
-
要使用 Storage Gateway 控制台刷新缓存,请参阅“刷新 Amazon S3 存储桶中的对象”。
-
要使用 AWS CLI刷新缓存,请执行以下操作:
-
运行命令
aws storagegateway list-file-shares -
将文件共享的 Amazon 资源编号(ARN)复制到您要刷新的缓存。
-
使用您的 ARN 作为
--file-share-arn的值来运行refresh-cache命令:aws storagegateway refresh-cache --file-share-arn arn:aws:storagegateway:eu-west-1:12345678910:share/share-FFDEE12
-
要自动执行RefreshCache操作,请参阅如何在 Storage Gateway 上自动执行 RefreshCache 操作?
ACL 权限未按预期运行
如果访问控制列表 (ACL) 权限未按预期与 SMB 文件共享一起运行,则您可以执行测试。
为此,请首先测试 Microsoft Windows 文件服务器或本地 Windows 文件共享上的权限。然后,将行为与您网关的文件共享进行比较。
执行递归操作后,网关性能下降
在某些情况下,您可能会执行递归操作(例如重命名目录或开启 ACL 的继承),并强制沿树向下执行递归操作。如果您这样做,S3 文件网关通过递归方式将该操作应用于文件共享中的所有对象。
例如,假设您将继承应用于 S3 存储桶中的现有对象。您的 S3 文件网关通过递归方式将继承应用于存储桶中的所有对象。此类操作可能会导致网关性能下降。