LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3972|回复: 0

存储技术oss 架构

[复制链接]
发表于 2024-1-5 16:08:09 | 显示全部楼层 |阅读模式
系统架构

对象存储OSS是构建在阿里云飞天平台上的一种存储解决方案。其基础是飞天平台的分布式文件系统、分布式任务调度等基础设施。这些基础设施提供了OSS以及其他阿里云服务所需的分布式调度、高速网络、分布式存储等重要特性。


OSS的架构如下图所示。



OSS的架构分为三层:协议接入层、分区层、持久存储层。

协议接入层

WS:WebServer 网页服务器,使用的是开源的tengine组件,对外提供HTTP和HTTPS服务。
PM:ProtcolModule 协议模块将HTTP请求转换为后端KV或者其他模块的操作。并负责接收用户使用RESTful协议发来的请求,进行安全认证。如果认证通过,用户的请求将被转发到Key-Value引擎继续处理;如果认证失败,直接返回错误信息给用户。


分区层

分区层,负责数据结构化处理,即按照Key来查找或存储数据,并支持大规模并发的请求。当协调服务集群变更导致服务被迫改变运行物理位置时,可以快速协调找到接入点。同时负责对象文件索引管理、对象文件转换成底层持久数据文件。
分布式协调服务,主要负责命名服务可看做nameservice及分布式锁服务。
KV分为KVMaster和KVServer。KVMaster主要负责管理和调度分区,KVServer负责分区的索引及数据存储。

持久层

持久存储层,即大规模分布式文件系统。元数据存储在Master上,Master之间采用分布式消息一致性协议(Paxos)保证元数据的一致性。从而实现高效的文件分布式存储和访问,保证数据在系统中有3个备份以及在软硬件错误发生以后的故障恢复。



数据流转流程

本文介绍用户从访问OSS到获取相应数据的流转流程。

OSS数据流程: ⽤⼾ → RESTful API → 负载均衡-Web服务器→ 协议模块 →KV Engine→ 分布式存储 ,详情如下:

1. 用户使用不同的客户端,例如浏览器或者SDK,发出符合对象存储 API规范的请求,到对象存储的Endpoint,对象存储的Endpoint会被解析到负载均衡的LVS VIP上,VIP的后端绑定着真实的WebServer(WS)。请求最终会落到其中的某一台WS上。

2. 请求到到对象存储的Web服务器后,协议模块(PM)会将用户请求进行解析。 首先会进行权限验证,权限验证不通过会直接返回用户相应的错误码。

3. 如果Object读写的请求被协议模块验证通过后,会被解析成对KV Engine的读写操作,进入分区层。

4. 分区层负责数据结构化处理,即按照Key来查找或存储数据,并支持大规模并发的请求。 当协调服务集群变更导致服务被迫改变运行物理位置时,可以快速协调找到接入点。

5. 分区层的KV Engine存入的数据最终会被写入到持久存储层。

6. 持久存储层,即大规模分布式文件系统。元数据存储在Master上,Master之间采用 分布式消息一致性协议(Paxos)保证元数据的一致性。从而实现高效的文件分布式存储和访问,保证数据在系统中有3个备份以及在软硬件错误发生以后的故障恢复。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表