一种支持多协议互通的对象多版本存储系统技术方案

技术编号:39490091 阅读:10 留言:0更新日期:2023-11-24 11:12
本发明专利技术提供了一种支持多协议互通的对象多版本存储系统,属于数据存储技术领域,本发明专利技术中对象的数据结构分为高层元数据

【技术实现步骤摘要】
一种支持多协议互通的对象多版本存储系统


[0001]本专利技术属于数据存储
,具体涉及一种支持多协议互通的对象多版本存储系统


技术介绍

[0002]对象存储是一种专门用于存储大规模非结构化数据的存储方式,并随着云计算

大数据等技术的发展,日益受到人们的关注

在不同的场景中,上层应用通常需要使用不同的存储访问协议来访问对象存储,如
S3、NFS、SMB
等,并且希望用不同的访问协议来访问同一份数据

把这种多种存储协议同时访问同一份数据的数据访问方式,称为多协议互通

对象存储系统中,如何支持多协议互通是一个技术难点

[0003]现有的多数对象存储产品通常只支持和
S3
相兼容的
RESTful API
访问方式;或者在不同的存储池上支持不同的协议

这些对象存储通常无法支持多种存储协议同时访问同一份数据

这将导致上层应用在使用过程中需要在不同的存储协议之间进行数据转换,增加了系统的复杂度和开发成本

[0004]而在支持多协议互通的对象存储系统中,一般只实现了各个协议中最基本的功能特性,比如创建对象,删除对象,读写对象内容等;而各协议中的多种其他功能特性都受到限制,受限的功能特性或者不被系统支持,或者无法支持协议间互通

在这些受限的功能特性中,多版本是最重要的功能特性之一

多版本功能特性允许用户用相同的对象键值(
key
)存储对象的多个版本,每个版本有唯一的标识符和时间戳,并且可以按需检索和访问

多版本功能可以帮助用户记录历史数据

保留重要文件的历史版本

轻松恢复误删除的文件等

[0005]在现有的少数支持协议互通的对象存储产品和技术中,往往无法支持多版本功能特性


技术实现思路

[0006]为了解决在现有的少数支持协议互通的对象存储产品和技术中,无法支持多版本功能特性的问题,本专利技术提供了一种支持多协议互通的对象多版本存储系统

[0007]为了实现上述目的,本专利技术提供如下技术方案:一种支持多协议互通的对象多版本存储系统,包括多个网关节点(
101
)和多个服务节点,多个网关节点和多个服务节点通过计算机网络设备相互连接和通信;每个所述网关节点均包括:
S3
协议网关,用于提供基于
S3 API
访问存储系统的服务端点,外部应用能够通过访问
S3
协议网关上传

下载

删除文件,以及查询系统中文件的信息;
NFS
协议网关和
SMB
协议网关,均与
FUSE
内核模块连接,用于对外部应用提供虚拟的文件夹,并把虚拟的文件夹映射到
Linux
操作系统的本地文件夹上;然后通过
Linux

FUSE
驱动机制,把所述文件夹上接收到的系统调用适配到客户端上;每个服务节点均包括:
分布式元数据服务端,与所述
S3
协议网关和
FUSE
驱动通信连接,用于以
Key

Value
对的形式保存对象的高层元数据;对象内容服务端,与所述
S3
协议网关和
FUSE
驱动通信连接,用于以
RPC
远程调用接口的方式对外提供对象的底层元数据和对象内容;块存储,与对象内容服务端通信连接,用于保存对象内容服务端中的底层元数据和对象内容

[0008]优选地,所述高层元数据保存对象的多版本信息,并以
Key

Value
对的形式保存在分布式
KV
数据库中;所述底层元数据以数据块的形式保存在块存储上,并以写时拷贝的方式更新,所述对象内容以数据块的形式保存在块存储上,并以日志结构方式更新

[0009]优选地,所述客户端是嵌入到协议网关或
FUSE
驱动程序中的程序库,为上层程序逻辑提供能够访问的
API
接口

[0010]优选地,所述客户端通过
RPC
远程调用的方法访问服务节点中的分布式元数据服务端来访问对象的高层元数据,并调用对象内容服务端来访问对象的底层元数据以及对象内容的数据块

[0011]优选地,所述客户端对外部提供的
API
接口分为目录操作和对象操作两大类,目录操作包括创建目录

删除目录

列出目录中内容及目录改名;对象操作包括创建对象

删除对象

打开对象

提交对象

读对象内容及写对象内容

[0012]优选地,所述块存储中的一个存储单位称为一个存储池,所述存储池的物理存储结构为:存储池物理上划分为多个存储池分片,每个存储池分片由一个
iNode


若干个
Map
卷和若干个数据卷构成;存储池分片的各个卷存储在块存储上,存储池分片记录了对象的底层元数据,所述底层元数据包括一个
iNode
块和若干个
Map
块,以及若干个数据块

[0013]优选地,在所述
NFS
协议网关和
SMB
协议网关的文件存储协议
NFS/SMB
下,多版本的语义如下:写入对象时,首先写入到内存中,当上次应用对某个对象调用
commit
时,客户端把刚才所有写入到内存中的数据持久化到卷上,并生成一个新版本,成为当前版本
isLatest=Y
,而把原来的当前版本号记录为本版本记录的
parent_ver
字段;读取对象时,缺省情况下,如果缓存命中,则读取缓存中的数据;否则读取当前版本中的数据;读取对象时,如在每个对象的绝对路径后面加上一个
/.versions
后缀,则能够获取全部版本列表,同时挑选隐藏目录下的某个特定版本访问;删除对象时,缺省情况下,增加一个新版本,置位删除标记为
isLatest=Y
,且没有文件内容;删除对象时,能够删除
.versions
中特定版本的对象或删除所有版本

[0014]优选地,在对象内容的并发控制语义上,所述客户端首先对对象的绝对路径用一致性哈希计算哈希值;然后根据哈希值把对对象内容的访问操作以
RCP
远程调用的形式发送到特定的对象内容服本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种支持多协议互通的对象多版本存储系统,其特征在于,包括多个网关节点(
101
)和多个服务节点(
102
),多个网关节点(
101
)和多个服务节点(
102
)通过计算机网络设备相互连接和通信;每个所述网关节点(
101
)均包括:
S3
协议网关,用于提供基于
S3 API
访问存储系统的服务端点,外部应用能够通过访问
S3
协议网关上传

下载

删除文件,以及查询系统中文件的信息;
NFS
协议网关和
SMB
协议网关,均与
FUSE
内核模块连接,用于对外部应用提供虚拟的文件夹,并把虚拟的文件夹映射到
Linux
操作系统的本地文件夹上;然后通过
Linux

FUSE
驱动机制,把所述文件夹上接收到的系统调用适配到客户端(
103
)上;每个服务节点(
102
)均包括:分布式元数据服务端(
104
),与所述
S3
协议网关和
FUSE
驱动通信连接,用于以
Key

Value
对的形式保存对象的高层元数据;对象内容服务端(
105
),与所述
S3
协议网关和
FUSE
驱动通信连接,用于以
RPC
远程调用接口的方式对外提供对象的底层元数据和对象内容;块存储(
106
),与对象内容服务端(
105
)通信连接,用于保存对象内容服务端(
105
)中的底层元数据和对象内容
。2.
根据权利要求1所述的支持多协议互通的对象多版本存储系统,其特征在于,所述高层元数据保存对象的多版本信息,并以
Key

Value
对的形式保存在分布式
KV
数据库中;所述底层元数据以数据块的形式保存在块存储(
106
)上,并以写时拷贝的方式更新,所述对象内容以数据块的形式保存在块存储(
106
)上,并以日志结构方式更新
。3.
根据权利要求1所述的支持多协议互通的对象多版本存储系统,其特征在于,所述客户端(
103
)是嵌入到协议网关或
FUSE
驱动程序中的程序库,为上层程序逻辑提供能够访问的
API
接口
。4.
根据权利要求3所述的支持多协议互通的对象多版本存储系统,其特征在于,所述客户端(
103
)通过
RPC
远程调用的方法访问服务节点(
102
)中的分布式元数据服务端(
104
)来访问对象的高层元数据,并调用对象内容服务端(
105
)来访问对象的底层元数据以及对象内容的数据块
。5.
根据权利要求4所述的支持多协议互通的对象多版本存储系统,其特征在于,所述客户端(
103
)对外部提供的
API
接口分为目录操作和对象操作两大类,目录操作包括创建目录

删除目录

列出目录中内容及目录改名;对象操作包括创建对象

删除对象

打开对象

提交对象

读对象内容及写对象内容
。6.
根据权利要求1所述的支持多协议互通的对象多版本存储系统,其特征在于,所述块存储(
106
)中的一个存储单位称为一个存储池,所述存储池的物理存储结构为:存储池物理上划分为多个存储池分片,每个存储池分片由一个
iNode


若干个
Map
卷和若干个数据卷构成;存储池分片的各个卷存储在块存储(
106
)上,存储池分片记录了对象的底层元数据,所述...

【专利技术属性】
技术研发人员:张颖李铁
申请(专利权)人:创云融达信息技术天津股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1