ONTAP中的S3多协议支持
从ONTAP 9.12.1开始、您可以使运行S3协议的客户端访问为使用NFS和SMB协议的客户端提供的相同数据、而无需重新格式化。通过此功能、可以继续为NAS客户端提供NAS数据、同时向运行S3应用程序(如数据挖掘和人工智能)的S3客户端提供对象数据。
S3多协议功能可解决两种使用情形:
-
使用S3客户端访问现有NAS数据
如果您的现有数据是使用传统NAS客户端(NFS或SMB)创建的、并且位于NAS卷(FlexVol 或FlexGroup 卷)上、则现在可以使用S3客户端上的分析工具访问此数据。
-
为能够使用NAS和S3协议执行I/O的现代客户端提供后端存储
现在、您可以为Spark和Kafka等应用程序提供集成访问、这些应用程序可以使用NAS和S3协议读写相同的数据。
S3多协议支持的工作原理
通过ONTAP多协议支持、您可以将相同的数据集呈现为文件层次结构或存储分段中的对象。为此、ONTAP 会创建"S3 NAS分段"、以使S3客户端能够使用S3对象请求在NAS存储中创建、读取、删除和枚举文件。此映射符合NAS安全配置、可观察文件和目录访问权限、并根据需要写入安全审核记录。
此映射是通过将指定的NAS目录层次结构显示为S3分段来实现的。目录层次结构中的每个文件都表示为S3对象、该对象的名称与映射的目录相对、目录边界由斜杠字符("/")表示。
根据为映射到NAS目录的存储分段定义的分段策略、ONTAP定义的S3用户可以访问此存储。为此、必须在S3用户和SMB/NFS用户之间定义映射。SMB/NFS用户的凭据将用于NAS权限检查、并包含在这些访问所产生的任何审核记录中。
当文件由SMB或NFS客户端创建时、文件会立即放置在目录中、因此在写入任何数据之前、客户端可以看到该文件。S3客户端希望使用不同的语义、在写入新对象的所有数据之前、新对象不会显示在命名空间中。将S3映射到NAS存储会使用S3语义创建文件、从而使这些文件在外部不可见、直到S3创建命令完成为止。
S3 NAS存储分段的数据保护
S3 NAS的"分段"只是S3客户端的NAS数据映射、而不是标准S3分段。因此、无需使用NetApp SnapMirror S3功能保护S3 NAS分段。相反、您可以使用SnapMirror异步卷复制来保护包含S3 NAS分段的卷。不支持SnapMirror同步和SVM灾难恢复。
从ONTAP 9.14.1开始、MetroCluster IP和FC配置的镜像和未镜像聚合支持S3 NAS分段。
了解 "SnapMirror异步"。
审核S3 NAS存储分段
由于S3 NAS存储分段不是传统的S3存储分段、因此无法配置S3审核来审核其访问权限。了解更多信息 "S3审核"。
但是、可以使用传统的ONTAP 审核过程审核S3 NAS存储分段中映射的NAS文件和目录以查看访问事件。因此、S3操作可能会触发NAS审核事件、但以下情况除外:
-
如果S3策略配置(组或存储分段策略)拒绝S3客户端访问、则不会对此事件启动NAS审核。这是因为在执行SVM审核检查之前会检查S3权限。
-
如果S3 GET请求的目标文件大小为0、则会将0个内容返回到GET请求、并且不会记录读取访问权限。
-
如果S3 GET请求的目标文件位于用户无遍历权限的文件夹中、则访问尝试将失败、并且事件不会记录。
了解相关信息 "审核SVM上的NAS事件"。
对象多部分上传
从ONTAP 9.16.1开始,启用FlexGroup卷上的时,支持对象多部分上载"高级容量平衡"。
通过在NAS文件存储上进行对象多部分上传、S3协议客户端可以将大型对象作为较小的部分进行上传。对象多部分上传具有以下优势:
-
它支持并行上传对象。
-
如果上传失败或暂停、则只需要上传尚未上传的部件。无需重新启动整个对象的上传。
-
如果事先不知道对象大小(例如、当仍在写入大型对象时)、则客户端可以立即开始上传对象的部分内容、并在创建整个对象后完成上传。
多部分上传支持以下S3操作:
-
AbortMultipartUpload
-
CompleteMultipartUpload
-
CreateMultipartUpload
-
ListMultipartUpload
S3和NAS互操作性
ONTAP S3 NAS分段支持标准NAS和S3功能、但此处列出的功能除外。
S3 NAS存储分段当前不支持NAS功能
- FabricPool 容量层
-
无法将S3 NAS分段配置为FabricPool的容量层。
S3 NAS存储分段当前不支持S3功能
- AWS用户元数据
-
-
在当前版本中、作为S3用户元数据一部分收到的键值对不会与对象数据一起存储在磁盘上。
-
前缀为"x-AMZ-meta"的请求标头将被忽略。
-
- AWS标记
-
-
在PUT对象和Multipart启动请求上、会忽略前缀为"x-AMZ-Tagging"的标头。
-
更新现有文件上的标记的请求(即使用"标记查询字符串"的PUT、GET和Delete请求)将被拒绝、并显示错误。
-
- 版本控制
-
无法在存储分段映射配置中指定版本控制。
-
包含非空版本规范(versionId=xyz query-string)的请求会收到错误响应。
-
影响存储分段版本控制状态的请求将被拒绝、但出现错误。
-