分享一下百度网盘背后的存储系统atlas

百度网盘免费提供2TB存储, 它的存储量一定是惊人的, 支持它的存储系统atlas也是相当不错的。 atlas是一个KV存储, 支持GET/PUT/DELETE三个接口, 看起来接口简单, 但要做好这么一个大规模系统非常不易, 我们来看看atlas到底长啥样。 
图片描述
atlas基于如图所示arm存储机, 2U放6个机器, 每个机器4核、4GB内存、4个3T硬盘, 2U总共72TB存储, 相比普通机架服务器,存储密度提升1倍。arm存储机的内存量过小, 而文件系统产生的元数据过大, 考虑性能原因不能把文件存储成文件。 甚至也不能采用haystack存储方式, haystack元数据虽然小, 但也超过ARM存储机的内存量。 
图片描述

atlas架构如上图所示, altas采用分布式元数据管理机制, 根据哈希策略将对象元数据切片成N个slice, 这些slice交由PIS(Patch and Index Server)集群管理, 每个PIS节点负责管理多个slice。 slice到PIS的映射表通过元数据服务器管理(图中未画出), 映射表较小,能被客户端全量缓存。 
图片描述

PIS的结构如上图所示, replication模块以主从复制方式保证slice三副本一致性。 写请求发往主节点, 主节点生成唯一请求ID之后将ID和请求转发给从节点, 从节点接收到请求之后, 追加到patch模块维护的log文件。 请求ID的作用是串行化写, 即从节点按照ID排序串行化执行请求。 主节点至少收到一个从节点的响应后, 将KV写入本地, 并告诉客户端写成功。 (如何保证一致性?)。 patch文件长度达到64MB时, PIS新开一个patch文件处理写请求, 调用RBSClient将满64MB的块写入到RBS系统中, 并将对象元数据(即对象的key,以及对象的存储位置:RBS块,偏移,长度)记录到Index中。 
RBS(RAID-like Block System), 是一个64MB大块存储系统, 支持随机读取, 整块写入和删除, 不支持随机写。 PartServer负责数据存储, RBS Master负责记录块的位置信息, 并负责集群管理和数据恢复工作, 而RBSClient是提供给应用的开发包。 RBS采用纠删码技术保障数据可靠性, 写入数据时, RBSClient将64MB大块切分为8个8MB part,用RS纠删码生成另外4个8MB 校验part, 保存这12个part到PartServer。 
对象读取流程。 对象数据是先进patch后转移到RBS, 所以读也是要先读patch, patch命中则直接返回, 若不命中则查index得到对象位置信息, 再根据位置信息从RBS读取数据。 
删除和垃圾回收。 如果对象在patch中则直接删除,反之若对象在RBS中,则从index中删除对象元数据, 删除对象空间不会马上回收, 而是留在RBS中形成垃圾数据。 垃圾回收的思路是使用map-reduce扫描所有index数据, 计算RBS块的空间率, 针对空闲率大于一定阈值的块, 读取有效数据,写回到RBS, 更新index, 最后删除块。 
atlas是优秀的KV存储系统, 非常适合于网盘类应用。其最大的特色是软硬件协同设计, 基于arm存储和纠删码极大降低了存储成本。 atlas垃圾回收的成本较高, 删除较多的应用场景下效率可能会有问题

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您的要求,我将为您描述一种可能存在于百度网盘存储文件系统中的顺序图。以下是该顺序图的描述: 1. 用户登录顺序图 用户打开百度网盘的登录页面,输入用户名和密码,然后点击登录按钮。系统验证用户信息,如果验证通过,则返回登录成功信息,并跳转到用户界面;否则返回登录失败信息。 2. 文件上传顺序图 用户在用户界面中选择要上传的文件,然后点击上传按钮。系统显示上传进度条,并将文件上传到存储系统中。上传完成后,系统返回上传成功信息。 3. 文件下载顺序图 用户在用户界面中选择要下载的文件,然后点击下载按钮。系统显示下载进度条,并从存储系统中获取文件数据,将文件下载到用户本地。下载完成后,系统返回下载成功信息。 4. 文件夹创建顺序图 用户在用户界面中选择要创建文件夹的位置,然后点击创建文件夹按钮。系统弹出文件夹创建窗口,用户输入文件夹名称并确认。系统将文件夹信息添加到存储系统中,并返回文件夹创建成功信息。 5. 访问权限设置顺序图 用户在用户界面中选择要设置访问权限的文件或文件夹,然后点击设置权限按钮。系统弹出访问权限设置窗口,用户选择要授予的权限并确认。系统将访问权限信息添加到存储系统中,并返回权限设置成功信息。 以上是可能存在于百度网盘存储文件系统中的一些顺序图描述。当然,具体的顺序图实现可能会因系统设计和技术实现方式的不同而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值