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卷上启用了、则S3 NAS分段支持对象多部分上传"高级容量平衡"。
通过在NAS文件存储上进行对象多部分上传、S3协议客户端可以将大型对象作为较小的部分进行上传。对象多部分上传具有以下优势:
-
它支持并行上传对象。
-
如果上传失败或暂停、则只需要上传尚未上传的部件。无需重新启动整个对象的上传。
-
如果事先不知道对象大小(例如、当仍在写入大型对象时)、则客户端可以立即开始上传对象的部分内容、并在创建整个对象后完成上传。
|
S3 NAS分段中的多部分对象必须按1 MB大小对齐。例如、一个部件可以是4 MB、4 GB或类似大小。部件不能使用子MB大小、例如4.5 MB或4000.5MB。 |
多部分上传支持以下S3操作:
-
AbortMultipartUpload
-
CompleteMultipartUpload
-
CreateMultipartUpload
-
ListMultipartUpload
-
上传部件
|
S3 NAS分段不支持按部件号获取("partnumber=xx")。而是返回完整对象。 |
S3和NAS互操作性
ONTAP S3 NAS分段支持标准NAS和S3功能、但此处列出的功能除外。
S3 NAS存储分段当前不支持NAS功能
- FabricPool 容量层
-
无法将S3 NAS分段配置为FabricPool的容量层。
S3 NAS存储分段当前不支持S3操作和功能
- 操作
-
-
ByPassGovernance保留
-
CopyObject
-
GetBucketObjectLockConfiguration
-
GetBucketVersioning
-
GetObject保留
-
PutBucketVersioning
-
PutObjectLockConfiguration
-
PutObject保留
-
ListBucketVersioning
-
ListObjectVersies
-
|
在S3 NAS存储分段中使用S3时、尤其不支持这些S3操作。使用本机S3分段时,这些操作为"正常支持"。 |
- AWS用户元数据
-
-
对于9.15.1 9.151及更早版本、作为S3用户元数据的一部分收到的密钥值对不会与对象数据一起存储在磁盘上。
-
对于9.15.1 9.151及更早版本、将忽略前缀为"x-AMZ-meta "的请求标头。
-
- AWS标记
-
-
对于Put对象和多部分启动请求上的9.15.1 9.151及更早版本、将忽略前缀为"x-AMZ-tag (x-AMZ-tag)"的标头。
-
对于9.15.1 9.151及更早版本,更新现有文件上标记的请求(带有?taging query-string的Put、GET和Delete请求)将被拒绝,并显示错误。
-
- 版本控制
-
无法在存储分段映射配置中指定版本控制。
-
包含非空版本规范(versionId=xyz query-string)的请求会收到错误响应。
-
影响存储分段版本控制状态的请求将被拒绝、但出现错误。
-