• 1. ImDFS存储解决方案Jie jiang
  • 2. ImDFS简介ImDFS系统架构ImDFS特性ImDFS扩容和容错ImDFS和其它文件系统对比目 录
  • 3. ImDFS简介ImDFS是一个类似google GFS轻量级的开源分布式文件系统,采用纯C语言开发,简洁高效,支持Linux、FreeBSD等UNIX系统。 ImDFS主要解决了对海量小文件的存储和高并发访问的问题,文件存取时实现了负载均衡和互备 ImDFS实现了软件方式的RAID,可以使用廉价的PC硬盘进行存储 支持存储服务器在线扩容 支持分布式文件系统的备份恢复机制 ImDFS特别适合大中型网站使用,用来存储小资源文件(如:图片、音频、视频、文档等等)
  • 4. 系统架构-架构图
  • 5. 系统架构—文件访问流畅ImDFS检索文件无索引服务器,通过文件ID即可知道文件存放的具体位置,并发访问速度快高效。 上传文件时,文件ID由storage server生成并返回给client 文件ID包含了组名和文件名,storage server可以直接根据该文件名定位到文件 一个文件ID示例: volume1/M00/00/00/BRnOxBAAAAAAAAA12.jpg volume1为storage server的组名; M00为磁盘 ; 00为目录 BRnOxBAAAAAAAAA12.jpg 为文件名 ImDFS可以根据文件名反解出文件创建时间和上传的storage server IP地址
  • 6. 系统架构-上传文件流程图 1. client询问tracker上传到的storage,不需要附加参数; 2. tracker返回一台可用的storage; 3. client直接和storage通讯完成文件上传。
  • 7. 系统架构-下载文件流程图 1. client询问tracker下载文件的storage,参数为文件标识(组名和文件名); 2. tracker返回一台可用的storage; 3. client直接和storage通讯完成文件下载。
  • 8. 系统架构-相关术语 Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storage server的状态,是连接Client和Storage server的枢纽,tracker server可以配置成多台,可以避免tracker server单点故障。 Storage Server:存储服务器,文件和meta data都保存到存储服务器上 volume:存储组,同组内服务器上的文件是完全相同的,文件在组里的所有storage server是互备关系,一个组有两台storage server,即可做到互备。一个组当然也可以有3台甚至更多,这个设计跟hadoop设计相同 文件标识:包括两部分:组名和文件名(包含路径) meta data:文件相关属性,键值对(Key Value Pair)方式,可以设定图像属性,如:width=1024,heigth=768
  • 9. ImDFS特性文件不分块存储,上传的文件和OS文件系统中的文件一一对应 支持相同内容的文件只保存一份,节约磁盘空间 下载文件支持HTTP协议,可以使用内置Web Server,也可以和其他Web Server配合使用 支持在线扩容 支持主从文件 存储服务器上可以保存文件属性(meta-data) 网络通信采用libevent,支持大并发访问,整体性能更好 磁盘IO由专门的线程处理,系统负载和连接数之间不存在线性关系,系统负载基本上不受连接数影响
  • 10. 存储组自动异常修复采用binlog文件记录文件上传、删除等操作,根据binlog进行文件同步 binlog中只记录文件名,不记录文件内容 记录已同步的位置到.mark文件中 同组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行 storage生成的文件名中,包含源头storage IP地址和文件创建时间戳 源头storage定时向tracker报告同步情况,包括向目标服务器同步到的文件时间戳 tracker收到storage的同步报告后,找出该组内每台storage被同步到的时间戳(取最小值),作为storage属性保存到内存中
  • 11. 存储服务器在线扩容同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行; 文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器,并支持断点续传; 源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了; 上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
  • 12. ImDFS性能优越
  • 13. ImDFS和其它文件系统对比指标ImDFSNFS集中存储设备 如NetApp、NAS线性扩容性高差差文件高并发访问性能高差一般文件访问方式专有APIPOSIX支持POSIX硬件成本较低中等高相同内容文件只保存一份支持不支持不支持
  • 14. ImDFS和mogileFS对比指标ImDFSmogileFS系统简洁性简洁 只有两个角色:tracker和storage一般 有三个角色:tracker、storage和存储文件信息的mysql db系统性能很高(没有使用数据库,文件同步直接点对点,不经过tracker中转)高(使用mysql来存储文件索引等信息,文件同步通过tracker调度和中转)系统稳定性高(C语言开发,可以支持高并发和高负载)一般(Perl语言开发,高并发和高负载支持一般)RAID方式分组(组内冗余),灵活性较大动态冗余,灵活性一般通信协议专有协议 下载文件支持HTTPHTTP技术文档较详细较少文件附加属性(meta data)支持不支持相同内容文件只保存一份支持不支持下载文件时支持文件偏移量支持不支持
  • 15. Thank You !