您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > QConShanghai2013-刘海锋-京东文件系统简介
京京京京东文件系统简介东文件系统简介东文件系统简介东文件系统简介刘海锋刘海锋刘海锋刘海锋QConShanghai2013CopyrightofJD.com提纲1.为什么自主研发2.实现技术与经验3.正在进行的工作问题与挑战•商品订单–365*近亿*~10KB•商品图片–几十亿*(20~200KB)•库房记录–365*几亿*(KB~MB)各种解决方案•关系数据库–OracleExadata,…–Pains–没法扩容、定期删除•开源存储系统–HDFS、FastDFS、…–Pains–难以选型、定制、维护自主研发•核心软件系统可以自主研发–Ifyoubelieveyoucan☺•注意事项–紧扣业务需求•高度定制–分期开展•第一期不做大而全•缩短开发周期,提高ROI系统定位•V1:ScalableKey-FileStore–特别针对海量小文件–强可靠性与一致性–Key由系统本身生成•可满足很多应用的需求关于编程语言•Go写系统框架,C写单机存储引擎–各取所长•WhyGo?–良好性能,高开发效率•适合小团队开发总体架构•ClusterCoordinator–ZooKeeper•Datanode–通常每磁盘部署一个实例•ReplicaGroup–3datanodes形成复制组•Pre-definedLeader+2Followers•Full-quorumreplicationClustercoordinatordatanodeJavaclientreplicagroupmonitorchecker客户端视图/jfs-root/datanodes/replicagroup-1/10.111.11.1:20130;10.111.11.2:20130;10.111.11.3:20130replicagroup-2/10.111.12.1:20130;10.111.12.2:20130;10.111.12.3:20130replicagroup-3/10.111.13.1:20130;10.111.13.2:20130;10.111.13.3:20130replicagroup-4/…replicagroup-5/…•客户端实现读写路由等关键逻辑JFSKey举例•jfs/t5/8/10240/10000/A5B8FC33-Y–ReplicaGroup-5–Internalkey-8/10240/10000•ChunkId/Offset/Size–CRC-A5B8FC33–Y-已压缩复制组状态–ReplGroupReady–ReplGroupSplit–ReplGroupInRecoveryprimaryfollowerfollowerclient单机存储引擎•Append-Only文件,无内存索引–ChunkId/Offset/Sizeasinternalkey•便于Crash-Recovery操作–就是做文件同步•如何做Garbage-Collection?–利用lseek()compactPrimaryFollowerBFollowerA可靠性与一致性•强一致–各个成员均写入才返回写成功–同一复制组保持数据一致•每个ChunkFile的每个字节•强可靠–集群宕机、磁盘损坏–文件误删除或截断•若某个或某两个数据文件被误删,系统自动恢复可用性定义•给定一个复制组–若某成员在线则读可用–仅当全体成员在线才可写•整个系统的写可用性–至少一个复制组可写–多个复制组部署至不同网段•除非IDC断网断电,JFS集群总是可写可读离线模块•Monitor–各个datanode的运行时metrics•Checker–各个复制组的一致性核对–磁盘故障的主动检测datanodemonitorchecker持续优化•流水线写–支持大文件•透明压缩–针对文本对象,节省带宽与机器资源–客户端压缩vs服务端压缩•多数据中心–异步复制,客户端就近读取•通过ErasureCoding降低存储成本–利用访问时效性性能数字应用举例•商品订单–每年500TB•库房流水记录–每年超过1PB•商品图片–近百TB,持续增长•消息队列服务–开发中相关工作•Relatedwork–Facebook’sHaystack–Taobao’sTFS–FastDFS、Weed-FS、…•Jingdongfilesystem–更重要的数据更重要的数据更重要的数据更重要的数据–强一致性–无单点故障–无内存索引–透明压缩–多数据中心支持重新审视需求•核心业务的海量小文件–交易订单、商品图片、库房记录、消息队列…•云存储服务–面向私有/公有云的对象存储服务–针对IaaS平台的持久块设备存储对象存储基本架构ServiceGatewayLoadBalancerDatastoragesubsystemMetadatasubsystemConsistencyMaintainerAccountManagerobjectstorageevolutioninsideJD.com•之前版本–HDFS作为数据存储子系统•Pains:85%容量是小于1MB的对象–MySQLsharding负责元数据管理•Pains:manualpartitioning•现在版本–JFS替换HDFS负责小文件存储•下一版本–JFSastheONLYbackendJFS-v2:ScalableDirectories•作为对象存储服务的完整后端–Bucket-Directory•JFSDirectory特性–单级目录,自定义文件名与属性–单个目录内文件数不限–支持目录内prefix/range查询、有序遍历JFSasthecompletebackend(tinyfiles,bigfiles,directories)ServiceGatewayLoadBalancerConsistencyMaintainerAccountManagerJFS-v3:Block-deviceFiles•预分配、定长、独占写•在此基础上提供持久块存储服务JFSasthebackendPhysicalHostVMVMVMVolumeManager愿景•统一的存储后端,提供不同产品抽象JingdongFilesystemBlockdeviceinterfacePrivateClientLibrariesPublicobjectRESTfulAPI总结•JingdongFilesystem–自主研发,分期推进,逐步扩展–首先针对核心业务的海量在线数据•商品订单、库房记录、图片…–将作为统一云存储服务的基础平台•objects,queues,tables,blockdevices
本文标题:QConShanghai2013-刘海锋-京东文件系统简介
链接地址:https://www.777doc.com/doc-3287162 .html