本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除:文件共享问题
您可以在下面找到有关您遇到文件共享意外问题时要采取的措施的信息。
主题
文件共享处于 “创建”、“更新” 或 “删除” 状态
文件共享状态汇总了文件共享的运行状况。如果您的 S3 文件网关文件共享处于CREATINGUPDATING、或DELETING状态,请使用以下故障排除步骤来识别和解决问题。
注意
当您创建文件共享时,存储网关不会验证您指定的 IAM 角色和 Amazon S3 存储桶是否已经存在。这是故意的,因为新创建的 IAM 角色可能需要一段时间才能让存储网关代入。因此,指定不存在的CreateNFSFileShare角色或存储桶的或CreateSMBFileShare请求仍然成功并返回文件共享 ARN,但文件共享保持CREATING状态而不是更改为。AVAILABLE在继续进行故障排除之前,请确认 IAM 角色和您指定的 Amazon S3 存储桶都存在。
确认 IAM 角色权限和信任关系
与您的文件共享关联的 Amazon Identity and Access Management (IAM) 角色必须存在,并且必须具有足够的权限才能访问 Amazon S3 存储桶。此外,该角色的信任策略必须向存储网关服务授予代入该角色的权限。
要验证 IAM 角色权限,请执行以下操作:
-
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择角色。
-
确认您为文件共享指定的 IAM 角色出现在角色列表中。如果角色不存在,请创建该角色,然后再次创建文件共享。有关更多信息,请参阅 授予对 Amazon S3 存储桶的访问权限。
-
选择与您的文件共享关联的 IAM 角色。
-
选择信任关系选项卡。
-
确认存储网关已列为可信实体。如果 Storage Gateway 不是可信实体,请选择 “编辑信任关系”,然后添加以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "storagegateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
验证 IAM 角色是否具有正确的权限,以及 Amazon S3 存储桶在 IAM 策略中是否列为资源。有关更多信息,请参阅 授予对 Amazon S3 存储桶的访问权限。
注意
为避免出现跨服务混乱的副手预防问题,请使用包含条件上下文密钥的信任关系策略。有关更多信息,请参阅 防止跨服务混淆代理。
Verify Amazon STS 已在您所在的地区激活
如果在您所在的 Amazon 地区停用 Amazon Security Token Service (Amazon STS),文件共享可能会停留在CREATING或UPDATING状态。
进行验证 Amazon STS 状态:
-
在处打开 Amazon Identity and Access Management 控制台https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 Account settings(账户设置)。
-
在 “安全令牌服务 (STS)” 部分中,确认要创建文件共享的 Amazon 区域的状态为 “有效”。
-
如果状态为 “不活跃”,请选择 “激活” 以 Amazon STS 在该区域启用。
验证 S3 存储桶存在并遵守命名规则
您的文件共享需要一个遵循亚马逊 S3 命名惯例的现有 Amazon S3 存储桶。当您创建文件共享时,Storage Gateway 不会验证该存储分区是否存在,因此指向已删除或从未创建的存储分区的文件共享将保持该CREATING状态。
要验证您的 S3 存储桶,请:
-
打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/
。 -
确认映射到您的文件共享的 Amazon S3 存储桶存在。如果存储桶不存在,请创建它。创建存储桶后,文件共享状态应更改为
AVAILABLE。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的创建存储桶。 -
验证您的存储桶名称是否符合《亚马逊简单存储服务用户指南》中的存储桶命名规则。
注意
S3 文件网关不支持存储桶名称中带有句点 (
.) 的 Amazon S3 存储桶。
强制删除处于删除状态的文件共享
当您删除文件共享时,网关会将该共享从关联的 Amazon S3 存储桶中移除。但是,在删除完成之前,当前正在上传的数据会继续上传。在此过程中,文件共享显示DELETING状态。
重要
检查网关CachePercentDirty的亚马逊 CloudWatch 指标,以确定有多少数据有待上传。有关存储网关指标的更多信息,请参阅监控您的 S3 文件网关FSx。
如果您不想等待所有正在进行的上传完成,则可以强制删除文件共享。
要强制删除文件共享,请执行以下操作:
-
在以下位置打开存储网关控制台https://console.aws.amazon.com/storagegateway/
。 -
在导航窗格中,选择文件共享。
-
选择要删除的文件共享。
-
选择 “详细信息” 选项卡,然后查看 “正在删除此文件共享” 消息。
-
验证消息中文件共享的 ID,然后选中确认框。
注意
您无法撤消强制删除操作。
-
选择 “立即强制删除” 。
或者,您可以使用将参数 Amazon CLI 设置为的删除文件共享--force-delete true
重要
在强制删除文件共享之前,请确认您的网关未处于OFFLINE状态。如果网关处于脱机状态,请先解决离线问题。有关更多信息,请参阅 故障排除:Storage Gateway 控制台中网关离线。
如果网关虚拟机 (VM) 已删除,则必须从 Storage Gateway 控制台中删除该网关以移除所有关联的文件共享,包括处于该DELETING状态的文件共享。有关更多信息,请参阅 删除网关和移除关联的资源。
对网络连接问题进行故障排除
网络问题可能会阻止您的文件共享从CREATINGUPDATING、或DELETING状态过渡。常见的网络问题包括:
-
您的网关处于脱机状态或网关虚拟机已删除。
-
存储网关和 Amazon S3 服务终端节点之间的网络访问被阻止。
-
网关用来与亚马逊 S3 通信的 Amazon S3 亚马逊 VPC 终端节点已删除。
-
所需的网络端口未打开或网络路由配置不正确。
从网关本地控制台测试 S3 连接
要测试 S3 连接,请执行以下操作:
-
登录到网关的本地控制台。有关更多信息,请参阅 登录到文件网关本地控制台。
-
在存储网关-配置主菜单中,输入与测试 S3 连接对应的数字。
-
选择 Amazon S3 终端节点类型:
-
对于流经互联网网关、NAT 网关、传输网关或亚马逊 S3 网关亚马逊 VPC 终端节点的 Amazon S3 流量,请选择公共。
-
对于流经亚马逊 S3 接口亚马逊 VPC 终端节点的 Amazon S3 流量,选择 VPC (PrivateLink) 。
-
对于 FIPS 终端节点,选择 FIPS 选项。
-
-
输入 Amazon S3 存储桶区域。
-
如果使用亚马逊 VPC 终端节点,请输入 Amazon S3 亚马逊 VPC 终端节点 DNS 名称(例如,
vpce-0329c2790456f2d01-0at85l34)。
网关自动执行连接测试,以验证网络连接和 SSL 连接。如果测试失败:
-
网络测试失败 -通常由防火墙规则、安全组配置或不正确的网络路由引起。确认所需端口已打开且网络路由配置正确。
-
SSL 测试失败 -表示您的网关虚拟机和 Amazon S3 服务终端节点之间正在进行 SSL 检查或深度数据包检查。对存储网关流量禁用 SSL 和深度数据包检查。
验证代理配置
如果您的网关使用代理服务器,请确认该代理未阻塞网络通信。
要检查代理配置,请执行以下操作:
-
在存储网关-配置主菜单中,输入与HTTP/SOCKS 代理配置对应的数字。
-
选择该选项以查看当前的网络代理配置。
-
如果配置了代理,请验证 Amazon S3 流量是否可以通过端口 3128(或您配置的监听器端口)从存储网关流向代理服务器,然后通过端口 443 流向 Amazon S3 终端节点。
-
确认代理或防火墙允许流量进出 Storage Gateway 所需的网络端口和服务端点。有关更多信息,请参阅所需的网络端口。
如果问题仍然存在,您可以暂时删除代理配置,以确定问题是否是由代理造成的。
验证安全组和网络路由
-
对于亚马逊 EC2 上的网关 -确认安全组已向 Amazon S3 终端节点开放端口 443。验证 Amazon EC2 子网的路由表是否正确地将 Amazon S3 流量路由到亚马逊 S3 终端节点。有关更多信息,请参阅所需的网络端口。
-
对于本地网关 -确认防火墙规则允许所需的端口,并且本地路由表正确地将 Amazon S3 流量路由到 Amazon S3 终端节点。有关更多信息,请参阅所需的网络端口。
-
VPC 终端节点 -确认网关使用的 Amazon S3 Amazon VPC 终端节点尚未删除。如果删除亚马逊 VPC 终端节点且该网关没有公有 IP 地址,则该网关无法与 Amazon S3 通信。
无法创建文件共享
-
如果由于文件共享陷入 CREATING 状态而无法创建文件共享,请验证文件共享映射的 S3 存储桶是否存在。有关如何执行此操作的信息,请参阅上述的 文件共享处于 “创建”、“更新” 或 “删除” 状态。
-
如果 S3 存储桶存在,请验证 Amazon Security Token Service 该存储桶已在您创建文件共享的区域中激活。如果安全令牌未激活,则应将其激活。有关如何使用激活令牌的信息 Amazon Security Token Service,请参阅 IAM 用户指南中的在 Amazon 区域中激活和停用 Amazon 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、KM S: D ecrypt 、kms: ReEncrypt * 、kms: 和 km s: 权限。GenerateDataKey DescribeKey 有关更多信息,请参阅使用存储网关的 Identity-Based 策略(IAM 策略)。
无法更改用于 SSE-KMS 加密存储在我的 S3 存储桶中的对象的默认加密
如果您更改默认加密并将 SSE-KMS (使用 Amazon KMS托管密钥的服务器端加密)设为 S3 存储桶的默认加密,则不会使用 Amazon S3 文件网关存储在该存储桶中的对象进行加密。 SSE-KMS默认情况下,S3 文件网关在向 S3 存储桶写入数据时使用由 Amazon S3 (SSE-S3) 管理的服务器端加密。更改默认值不会自动更改您的加密。
要将加密更改为 SSE-KMS 使用自己的 Amazon KMS 密钥,必须开启 SSE-KMS 加密。为此,您需要在创建文件共享时提供 KMS 密钥的 Amazon 资源名称 (ARN)。您也可以通过使用 UpdateNFSFileShare 或 UpdateSMBFileShare API 操作来更新文件共享的 KMS 设置。更新后,此更新应用于存储在 S3 存储桶中的对象。有关更多信息,请参阅 使用数据加密 Amazon KMS。
在开启对象版本控制的情况下直接在 S3 存储桶中进行更改可能会影响在文件共享中看到的内容
如果 S3 存储桶包含由另一个客户端写入到存储桶的对象,则由于 S3 存储桶启用了对象版本控制,您看到的 S3 存储桶内容可能不是最新的。您应始终先刷新缓存,然后再查看感兴趣的文件。
对象版本控制 是一项可选的 S3 存储桶功能,通过存储同名对象的多个副本来帮助保护数据。每个副本都具有单独的 ID 值,例如 file1.jpg: ID="xxx" 和 file1.jpg: ID="yyy"。同名对象数及其生命周期由 Amazon S3 生命周期策略控制。有关这些 Amazon S3 概念的更多详细信息,请参阅《Amazon S3 开发人员指南》中的使用版本控制和对象生命周期管理。
在删除受版本控制的对象时,会使用删除标记来标记该对象,但保留该对象。只有 S3 存储桶拥有者才能永久删除启用了版本控制的对象。
在 S3 文件网关中,所显示的文件是获取对象或刷新缓存时 S3 存储桶中的对象的最新版本。S3 文件网关会忽略任何较旧版本或标记为删除的任何对象。在读取文件时,您从最新版本读取数据。当您在文件共享中写入文件时,S3 文件网关会利用您的更改,为同名对象创建一个新版本,并且该版本将成为最新版本。
如果在您的应用程序之外向 S3 存储桶添加了新版本,则您的 S3 文件网关将继续从较早版本读取,并且您所做的更新将基于较早版本。要读取对象的最新版本,请使用 RefreshCache API 操作或按中所述从控制台刷新刷新 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 存储桶之间使用 Same-Region 复制 (SRR) 或 Cross-Region 复制 (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 控制台和 Amazon Command Line Interface (Amazon CLI)刷新缓存:
-
要使用 Storage Gateway 控制台刷新缓存,请参阅“刷新 Amazon S3 存储桶中的对象”。
-
要使用 Amazon 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 文件网关通过递归方式将继承应用于存储桶中的所有对象。此类操作可能会导致网关性能下降。