网易云对象存储关键技术解析_第1页
网易云对象存储关键技术解析_第2页
网易云对象存储关键技术解析_第3页
网易云对象存储关键技术解析_第4页
网易云对象存储关键技术解析_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网易云对象存储关键技术解析网易云对象存储是什么NetEase Object Storage(NOS)一个海量Key-Value系统Key:最大支持1K字节Value:最大支持1TB二进制文件,比如图片、视频等静态文件Attribute:最多10个键值对容器(Bucket):命名空间易信有道云 笔记云阅读云课堂视频中 心云音乐NOS约会Bucket: read163 Object: book.epubBucket: music163 Object: song.mp3Author: 张三Publisher: 人民出版社 Date: 2014-08-01AttributeSingler: 李四 Le

2、ngth: 240 second Release: 2014-08-02一些数据上线时间:2012.10产品数量:30+桶的数量:100+对象数量:700,000,000逻辑存储:300T常规日增:1T常规流量:3Gbps不只是Key-Value (1)功能 特性对象操作上传下载删除 cp 、mv、dedup获 取历史对象存储桶操作0桶、删桶 桶属性增删改 列出桶内对象大对象分块上传初始化 分块上传完成上传动作图片操作图片元数据图片缩略裁剪水印 质量参数类型转换富媒体音视频操作音视频元数据 视频帧截图 音频流式转码不只是Key-Value (2)非功能 特性安全高可用高可靠高性能可扩展运维关键

3、技术元数据存储组件:DDB数据存储组件:DFS列出桶内对象:ListObject基于NOS的用户态文件系统:NOSFS富媒体服务框架:Tobie多租户流量隔离:LimitServerNOS基础架构NginxNginxKeepalivedDNSServiceMasterDBNodeAdminDDB ClusterDBIDataMetaRead/WriteMasterData NodeAdminDFS ClusterFSIHTTP Restful ServiceRead/WriteDataMetaProxy ClusterstatelessDDB介绍分布式数据库系统(Distributed Dat

4、aBase, 简称 DDB)是网易杭研台技术中心研发的 分布式关系数据库平台主要目标是解决以下问题海量结构化数据存储高并发高吞吐数据访问DDB分区策略均衡字段:用于计算哈希值的字段两级映射:结合哈希的高效性和路由表的可管理性H哈希函数(固定)均衡字段哈希桶:黄色表示负载信息MySQLMySQL路由表(可调整)哈希表DDB桶迁移基于复制的高性能数据迁移方法:在目的节点建立待迁移桶的数据复制,迁移完成后修改路由表特点:在线复制,性能不错路由表版本号为路由表设置递增的版本号,迁移时增加源节点的路由表版本号客户端请求源节点,发现路由表版本不匹配,同步路由表后正确路由至目的节点7587497负载信息My

5、SQL1MySQL2路由表(可调整)哈希表负载 7+8+7+7=29负载 5+4+9=18桶迁移后7587497负载信息MySQL1MySQL2路由表(可调整)哈希表负载 7+8=15负载 5+4+9=18MySQL3负载 7+7=14DFS介绍分布式文件系统(Distributed FileSystem, 简称 DFB)是网易杭研台技术中心研发的 分布式非结构化数据存储平台主要目标是解决以下问题海量非结构化数据存储高并发高吞吐数据访问DFS访问健64位整形docid作为访问健对外:扁平的名字空间对内:分层文件索引2410101010/prefix/bucketlevel 1level 2le

6、vel 3fnitoaitoaitoaitoaitoabucket:数据迁移基本单元64 bit Integer:dociddocid:访问健Eg: 2199023255553 = /prefix/2/0/0/0/1DFS分区策略虚拟节点一致性哈希,问题:扩容数据迁移对于PB级大数据量系统,措施:无迁移扩容DFS方案:分区(Bucket)预留 + 系统生成访问健(Docid)预先规划Bucket(224),不立即启用访问键(Docid)由系统分配而不是应用程序指定增加一个物理节点时启用一批分区(Bucket)给该物理节点系统生成访问健(Docid)时,使用新分配的分区(Bucket)适用范围访

7、问键(Docid)由系统分配负载在初始分配完成后基本不变DataNode OldBucket 1,2,3DataNode NewBucket 4Client30%Write Weight70%Write WeightAdd New DataNode特点1:轻量级Master 特点2:缓存路由表 特点3:并发写特点4:docid预分配123134DataNode1DataNode3124DataNode2DFS系统构架Route TableMetadata opsClientReadBucket opsReplicationWriteClientMaster1DN1DN2DN32DN1DN2DN

8、33DN1DN34DN2DN32Replication列出桶内对象-1功能描述根据简单的检索条件,返回对象列表的子集,接口:ListObject相关参数Prefix:对象Key的前缀,可以使用前缀对桶内对象分组;Delimiter:检索分隔符,用于做类似groupby的操作;Max-keys:符合条件的对象Key列表数量;Marker:字典序起始标记,只返回该标记后的对象Key;列出桶内对象-2music/japan/3.mp3 music/japan/4.mp3 video/china/5.mp4 video/china/6.mp4 video/japan/7.mp4 video/japan

9、/8.mp4.|- music- japan|- china|- 1.mp3|- 2.mp3|- 3.mp3- 4.mp3- video|- china|- 5.mp4|- 6.mp4- japan|- 7.mp4- 8.mp4文件系统video/preifx=“” delimiter=“/”music/china/ japan/对象存储music/china/1.mp3 music/china/2.mp3映射到文件系统preifx=“music/”1.mp3 2.mp3preifx=“music/china”china/ japan/preifx=“video/”3.mp3 4.mp3pre

10、ifx=“music/japan”5.mp4 6.mp4preifx=“video/china”7.mp4 8.mp4preifx=“video/japan”桶music163有8个对象现实意义命名空间从扁平变丰富对象存储和文件存储对接的桥梁NginxNginxKeepalivedDNSServiceMasterDBNodeAdminDDB ClusterDBIDataMetaRead/WriteMasterData NodeAdminDFS ClusterFSIHTTP Restful ServiceRead/WriteDataMetaProxy ClusterstatelessNOSFSM

11、edia ClusterstatelessTobieGM/FFmpegMedia RequestMount NOS Bucket to Local FileSysten富媒体 服务架构NOSFS-1相关描述基于FUSE的用户态文件系统通过NOSFS将NOS桶挂载成本地文件系统应用场景:富媒体服务、数据备份等性能优化读性能较差:预读数据缓存、元数据缓存限制和坑不支持随机写,不支持文件夹移动锁父目录问题:通过虚拟目录绕开List性能问题:通过编码对象路径绕开NOSFS-2glibcls /mnt/nos/music163/music/VFSFUSENFSEXT3glibclibfuse./nosf

12、s/mnt/nosNOSmusic/aa_test.mp3music/china/1.mp3music/china/2.mp34music/china/n.mp3music/dd_test.mp3music/japan/1.mp3music/japan/2.mp39music/japan/k.mp3music/yy_test.mp3HTTPUserspaceKernelnostest1:/mnt/nos/music163/music$ lschinajapanaa_test.mp3 dd_test.mp3 yy_test.mp3OutPut富媒体服务-1实现功能图片操作:缩略、裁剪、水印等;音

13、频操作:流式转码、元数据等;视频操作:帧截图、元数据等;其他功能:管道链式处理;相关技术服务接口:Libevent HTTP媒体类库:ffmpeg & GraphicsMagick父子进程:媒体库内存泄露问题、健壮性过载保护:请求队列C+内嵌Lua:比同类产品快23倍C+:网络接口,媒体库调用【高性能】Lua:参数解析,调用链生成【灵活性】富媒体服务-2HTTP Restful Service接口层MasterWorker并发层ffmpegGraphics Magic逻辑层LUA script处理层Processor数据层NOSFS基千 Libevent 实现 HTTP 服务端可配 Worke

14、r 数量可配处理若干请求后 Worker 退出C+ API调用保证高性能Processor 粘合处理逻辑接收请求字符串 返回处理序列mount 到 NOS 桶本地请求转化为 NOS 接口请求WorkerWorker富媒体服务-3Lua扩展示例按总像素缩略:用户指定总像素,如:pixel=160000裁剪缩略图片:对缩略后的图片进行裁剪以满足尺寸要求人脸智能识别:Lua调用人脸识别程序获取图片中人脸位置图片黑边检测:Lua调用黑边检测程序获取黑边位置LUA scriptAction1: Resize, 200, 150 Processorthumbnail=200 x200&quality=60

15、&type=pngGraphics MagicAPI Invoke/mybucket/photo.jpg?imageView&thumbnail=200 x200& quality=60& type=pngInputAction2: Quality, 60 Action3: Type, pngOutput流量隔离-1资源共享和隔离需求并存处理方式:运维手段而不是常规手段;处理流程:收到流量统计报警后紧急限流;资源类型存储:底层对象存储;计算:富媒体处理请求;流量:入口流量和请求;应用场景网络攻击:恶意用户发起大量请求,占用大量网络连接和流量;突发流量:产品突然火了,或者内网用户下载操作系统镜像

16、;流量隔离-2相关功能整桶限速整桶限并发连接整桶限TPS单连接限速核心模块:Nginx Lualimit_rate:设置下载速度shared_dict:共享内存字典access_by_lua:请求开始时被调用body_filter_by_lua:每读128K被调用log_by_lua:请求结束时被调用实时统计监控智能流控全局限速流量隔离-3桶连接数限制access_by_lua被调用时,相关桶连接数加一;log_by_lua被调用时,相关桶连接数减一;桶TPS限制充值模式,每隔5秒充值;access_by_lua被调用时,相关桶TPS余额减一;桶流量限制access_by_lua被调用时,limit_rate赋予初始流量限制;body_filter_by_lua被调用时,根据采样情况动态调整limit_rate;log_by_lua被调用时,回收当前流量limit_rate;流量隔离-4NginxNginx ClusterNginxNginxData FlowData FlowProxy ClusterstatelessAdminControl FlowLimit music1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论