日前在京东的技术开放日上,京东的技术专家刘海锋介绍了京东在大规模存储上的自主研发之路。其中JFS(京东文件系统)就是明显因为规模驱动而进行自主研发的。
JFS是京东从2013年7月份开始一直持续到现在的一个项目,目的是统一数据中心的存储这部分的建设。据介绍,JFS的建设主要分为六大块,即海量小文件、对象存储、块存储、新图片系统、元数据表结构存储以及Hadoop集成。
其中海量小文件应该说是京东面临的一个很重要的问题,因为众多的商品订单、商品图片、库房记录,这些都是小文件,但是数量却众多。如何对这些数据进行管理,是京东统一存储的一个重要的方面。一般市场上解决这类问题会有两种方案,即选型关系数据库和开源存储系统。然后关系数据库存在难以扩容、定期删除的问题,开源系统在选型、维护和定制各个环节都会存在挑战。
所以最后京东的方案是自主研发。“我们针对一些成熟的东西还是拿来主义,然后做一定的开源定制,并结合京东的特点做自主研发。”刘海锋认为这种模式的最大好处是灵活可控、具有长期的技术收益。
当然也会存在挑战,诸如开发周期长、稳定性需要做更多的工作,同时自主研发一般都期待的是小投入大产出。针对这类问题,京东在海量小文件系统的开发时也通通都面临到了。“最后我们的解决方案还是紧扣业务需求、高度定制和分期开展。”刘海锋总结到。
JFS除了海量小文件之外,在前文提到的其他层面也做了很多工作。比如新图片系统,这是从存储到展现重新搭建了京东图片服务,这包括了上商城主站与金融产品全部图片。在技术上,也主要是基于JFS做底层存储,以及重写在线缩放处理层。
JFS系统的研发是基于京东的大规模和一些痛点的基础上进行的。据悉目前能看到的对业务的影响也很明显,主要是形成了多个集群,如图片、订单、仓库流水、内部云存储、公有云存储等等。
刘海锋介绍目前针对JFS系统正在做的事情主要有元数据表格系统二期建设、Hadoop的集成一级多个子系统的重构。
自主研发在互联网公司做的较多,刘海锋认为这还主要是源于需求,同时京东在整个存储层面也不仅仅是在文件系统上,同时在分布式缓存和高速KV服务上也做了很多功课。整个都是为了满足京东的特殊情况而进行研发的。