V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
shipinyun2016
V2EX  ›  云计算

网易视频云:百度网盘背后的存储系统 atlas

  •  1
     
  •   shipinyun2016 · 2016-07-11 11:11:18 +08:00 · 3533 次点击
    这是一个创建于 2854 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的 PaaS 服务。在线教育、远程医疗、娱乐秀场、在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台。现在,网易视频云与大家分享一下百度网盘背后的存储系统 atlas.

    百度网盘免费提供 2TB 存储, 它的存储量一定是惊人的, 支持它的存储系统 atlas 也是相当不错的。 atlas 是一个 KV 存储, 支持 GET/PUT/DELETE 三个接口, 看起来接口简单, 但要做好这么一个大规模系统非常不易, 我们来看看 atlas 到底长啥样。

    1

    atlas 基于如图所示 arm 存储机, 2U 放 6 个机器, 每个机器 4 核、 4GB 内存、 4 个 3T 硬盘, 2U 总共 72TB 存储, 相比普通机架服务器,存储密度提升 1 倍。 arm 存储机的内存量过小, 而文件系统产生的元数据过大, 考虑性能原因不能把文件存储成文件。 甚至也不能采用 haystack 存储方式, haystack 元数据虽然小, 但也超过 ARM 存储机的内存量。

    2

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

    1

    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 垃圾回收的成本较高, 删除较多的应用场景下效率可能会有问题

    更多技术分享,请关注网易视频云官方网站( http://vcloud.163.com/)

    或者网易视频云官方微信( vcloud163 )进行交流与咨询

    15 条回复    2016-07-18 16:07:05 +08:00
    zhangfan
        1
    zhangfan  
       2016-07-11 11:17:20 +08:00
    哇噢,想看看 360 网盘的技术分享。
    menc
        2
    menc  
       2016-07-11 11:38:52 +08:00
    为什么百度网盘用了网易的存储服务?
    menc
        3
    menc  
       2016-07-11 11:39:23 +08:00
    为什么网易宣传自己的数据存储服务,图片存在新浪的图床?
    gzlock
        4
    gzlock  
       2016-07-11 11:43:10 +08:00 via Android
    @menc 网易视频云与大家分享一下百度网盘背后的存储系统 atlas.
    建议找你的语文老师要回学费
    Ya
        5
    Ya  
       2016-07-11 11:51:38 +08:00
    为什么新浪微博不防盗链,新浪博客却防盗链。
    pxlxh
        6
    pxlxh  
       2016-07-11 11:54:20 +08:00
    有没有大神来解答下上面这些迷之疑问系列
    mikicomo
        7
    mikicomo  
       2016-07-11 12:02:24 +08:00
    @pxlxh
    第一问,答:
    第二问,答:大概是知道 v2 发新浪图床的链接可以不用 markdown 格式吧
    第三问,答:
    xi2008wang
        8
    xi2008wang  
       2016-07-11 12:46:44 +08:00
    一会网易,一会百度,一会新浪,信息量很大啊
    ChiangDi
        9
    ChiangDi  
       2016-07-11 12:49:03 +08:00
    你网易是如何知道百度网盘的内幕的
    homfen
        10
    homfen  
       2016-07-11 13:03:21 +08:00
    跟你“网易视频云”有毛关系
    notgod
        11
    notgod  
       2016-07-11 13:09:12 +08:00
    改为
    网易视频云与大家分享一下”百度网盘“背后的” 360 云盘“存储和“乐视云盘”的文件系统 atlas.

    是不是很有喜感
    不过话说谁知道这个内容 到底和“网易视频云”有什么关系
    haocity
        12
    haocity  
       2016-07-11 13:18:41 +08:00 via Android
    没看懂 但是好厉害的样子
    McContax
        13
    McContax  
       2016-07-11 13:24:55 +08:00 via Android
    抠门了吧,新浪都防盗链了
    hpayton
        14
    hpayton  
       2016-07-13 15:21:33 +08:00
    现在的广告门槛越来越低了啊
    mkeith
        15
    mkeith  
       2016-07-18 16:07:05 +08:00
    就是来打广告吧,自己的干货发完了 COPY 人家的来发.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   821 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:51 · PVG 06:51 · LAX 15:51 · JFK 18:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.