欢迎来到天天文库
浏览记录
ID:50160642
大小:1.43 MB
页数:35页
时间:2020-03-08
《QConShanghai2013-[刘海锋]-[京东文件系统简介].pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、QCon北京2014大会4月17—19日@InfoQinfoqchina特别感谢QCon上海合作伙伴QConShanghai2013京东文件系统简介刘海锋CopyrightofJD.com1.为什么自主研发2.实现技术与经验3.正在进行的工作问题与挑战•商品订单–365*数亿*~10KB•商品图片–几十亿*(20~200KB)•库房记录–365*十亿*(KB~MB)各种方案•关系数据库–OracleExadata,…–Pains–没法扩容、定期删除•开源存储系统–HDFS、FastDFS、…–Pains–难以选型、定制、维护自主研发•核心软件系统可以自主研发–Ifyoubelieveyo
2、ucan•注意事项–紧扣业务需求•高度定制–分期开展•第一期不做大而全•缩短开发周期,提高ROI系统定位•V1:ScalableSystemKey-FileStore–特别针对海量小文件–强可靠、强一致、高可用–Key由系统本身生成•可满足很多业务需求–Really?•V2:supportuser-definedkeysandmore1.为什么自主研发2.实现技术与经验3.正在进行的工作编程语言的选择•Go写系统框架,C写单机存储引擎–各取所长•WhyGo?–良好性能,高开发效率•适合小团队开发总体架构•客户端–Java,C/C++,nginx-based,Go,..•ClusterC
3、oordinator–ZooKeeper•Datanode–3datanodesformareplicagroup•1leader+2followers•一致、持久的存储单元–通常每磁盘部署一个实例JavaclientClustercoordinatormonitordatanodecheckerreplicagroup集群视图•replica-groupId->memberaddresses&weights–Weight标识可读可写状态/jfs-root/datanodes/replicagroup-1/10.111.11.1:20130;010.111.15.2:20130;010.
4、111.11.3:20130;-1…replicagroup-5/10.111.12.1:20130;175810.111.12.2:20130;010.111.13.1:20130;0…•客户端实现读写路由等关键逻辑JFSKey举例•jfs/t5/8/10240/10000/A5B8FC33-Y–ReplicaGroup-5–Internalkey-8/10240/10000•ChunkId/Offset/Size–CRC-A5B8FC33–Y-已压缩JFS复制协议•Paxos算法的变体–固定成员角色–oneprimary+2followers•不做majority-basedlead
5、erelection–Full-quorumreplication•二元状态机-ReplGroupReadyorReplGroupSplitfollowerclientprimaryfollower单机存储引擎•一组Append-Only文件,无内存索引–chunkId/offset/sizeasinternalkey•便于Crash-Recovery操作–就是做文件同步•如何做Garbage-Collection?–利用lseek()compact故障处理与恢复•两种类型–Fail-RestartFollower–Fail-ReplacePrimary•统一处理(corrupted)–
6、ChunkfilesynchronizationFollower(restarted)Primary(new)FollowerAPrimaryFollowerB可靠性与一致性•强一致–各个成员均写入才返回写成功–同一复制组保持数据一致•每个数据文件的每个字节•强可靠–集群宕机、磁盘损坏–文件误删除或截断•若某个或某两个数据文件被误删,系统自动恢复可用性定义•给定一个复制组–若某成员在线则读可用–仅当全体成员在线才可写•整个系统的写可用性–至少一个复制组可写•除非IDC断网断电,JFS集群总是可写可读–因为总是部署很多复制组在不同网段离线模块•Monitor–各个datanode的运行时m
7、etrics•Checker–各个复制组的一致性核对monitor–磁盘故障的主动检测checkerdatanode持续优化•流水线写–支持大文件•透明压缩–针对文本对象,节省带宽与机器资源–客户端压缩vs服务端压缩•多数据中心–异步复制,客户端就近读取•通过ErasureCoding降低存储成本–利用访问时效性性能数字应用举例•商品订单–每年500TB•库房流水记录–每年超过1PB•商品图片–近百TB,持续增长•消息队列服务–开发
此文档下载收益归作者所有