数据传输服务dts支持哪些迁移模式,udr支持存储哪几类数据

文章目录简介相关背景Ozone S3存储实现分析Ozone S3多平台功能分析参考链接

前言

作为目标存储系统,Ozone对于用户如何使用,不可避免地会将S3存储视为业界另一个成熟的目标存储系统。 但是,本论文不打算比较两者的系统哪个更好。 从用户的角度来看,当用户已经使用S3接口方法创建对象存储时,有什么方法可以将底层存储透明地移动到Ozone? 也就是说,Ozone与S3接口对象存储是否兼容,无需在客户端进行重大更改。 Ozone在早期版本中提供了适用于S3协议的存储方案,然后完成了S3的多端口上载语义实现,整个Ozone S3的功能更加完整。 本文简要介绍了Ozone是如何在S3合身的情况下制作的。

相关背景这里的相关背景是,为了使Ozone社区与现有的S3 REST API接口兼容,Ozone计划在内部实现一个名为S3 gateway的新feature来执行此操作。 S3 REST API操作最后转换为区域内部的卷/备份/密钥存储。 有关详细信息,请参见jira:hdds-434 provide ans 3兼容性restapiforozoneobjects )

Ozone基于S3的存储实现分析Ozone要实现与现有S3 REST API兼容的实现,其接口定义必须与现有S3匹配。 目前,在Ozone内部安装了以下接口。

operationsonbucketgetbucketheadbucketdeletebucketputbucketdeletemultipleobjectsputbucketoperationonobjectsputobjectgetobjectdectdectdetdectdectdectdectdetdetectdetectetdectdetete 在rt Upload上述接口操作中,我们发现设计的对象都是bucket和bucket中的objectkey )操作,但bucket的高级别其实也有volume的概念。 那么Ozone是怎么做的呢? 是否要将调用用户名称为卷名称?

Ozone采用默认的“s3v”作为这些bucket统一所属的卷,S3接口设计的bucket更改都在此独立的卷下进行了更改。 原理图如下。

分析区域S3的多端口加载功能,或者在此重点介绍区域S3的多端口加载功能。 这里首先有疑问。 在本机的S3 Multipart Upload中,这个接口是用来做什么的? 和普通的upload的object对象有什么不同呢? 这里与我们上传的对象文件的大小密切相关。

一般来说,我们上传的文件大小一般不太大例如1GB以内)。 在大多数情况下,还不需要Multipart Upload的功能,但如果在单个put object操作中使用,则可能会在中途失败,假设上载的文件非常大,达到几十GB到几百GB的级别。 而且在效率方面,这也不是高效的方法。 此时,多重上载功能可以很好地补充这一场景。 例如,假设您可以分割较大的对象,然后一次上传一个分片对象,或者并行上传。 合并最后一个平铺的文件可以有效地完成大对象的上载操作。

与区域多重上载分片上传相关的更改是中各种密钥的转换以及最后一个部件密钥到最终密钥的合并,原理图如下:

首先,上图左上角的multipart key与要上传的文件的key名称不同,而是key全名的uploadID。 第二阶段是分片上传阶段,这里操作的key是part key信息,part key=key全名的openID,最后右图是对象key全名,这个key对象的块存储是原始的part key

以上是Ozone S3 multipart upload的简单流程图,让我们详细了解一下其中相应的实际请求流程。 其中涉及的请求步骤流程共分为以下四个步骤:

1 )初始化Initiate Multipart Upload、Multipart Upload的呼叫。 此过程向multipart key表和open key表中添加multipart key信息。 2 )部件密钥写入,片密钥上传阶段。 此过程将open key添加到open key表中。 这里的open key对应于写有切片key,1 )与插入的open key信息的含义不同。 3 )调用Commit Multipart Upload Part,commit分片上传密钥y。 此呼叫是在分块上传结束时调用的呼叫,在此步骤中删除在2 )中添加的open key。 此外,在此更新1 )中的multipart info表里的multipart key的信息。 这里添加了新的平铺文件信息,需要更新。 4-1 )完成多重加载,对整个多重加载进程的退出调用。 在此步骤中,1 )删除添加到multipart info表和open key表中的名为multipart key的记录信息。 此外,此处还将key信息添加到key table表中。 因此,这意味着key的上传完成,变为外部可见状态。 4-2 ) Abort Multipart Upload,Multipart Upload进程的失败调用。 该步骤是假设上述分块过程失败,如何进行该过程的清理。 Abort进程还会删除在1 )中添加到multipart info表和open key表中的名为multipart key的记录信息。 另外,将2 )的part key的信息追加到Deleted table中,使系统清理与这些key对应的数据。 上述流程的流程图如下所示。

以上是本文所述的有关Ozone S3接口适配器的功能介绍。 有关具体相关内容,请参照以下链接地址。

链接[1].https://参见issues.Apache.org/jira/browse/hdds-434

[2].https://issues.Apache.org/jira/browse/hdds-763

[3].https://ozone.Apache.org/docs/1.0.0 /接口/S3.html

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注