中文(中国)
系统架构—文件访问流畅
IS/DFS-Image分布式文件存储查询系统检索文件不需要索引服务器,通过文件ID即可知道文件存放的具体位置,并发访问速度快高效。
上传文件时,文件ID由存储服务器生成并返回给客户端,文件ID包含了存储服务器组名和文件名,存储服务器可以直接根据该文件ID反解析出文件创建时间和上传的存储服务器IP地址从而定位到文件存放位置。
系统架构-相关术语
Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录存储服务器的状态,是连接客户端和存储服务器的枢纽,tracker server可以配置成多台,可以避免tracker server单点故障。
Storage Server:存储服务器,文件和metadata都保存到存储服务器上。
Storage group:存储组,同组内服务器上的文件是完全相同的,文件在组里的所有storage server是互备关系,一个组有两台storage server,即可做到互备。一个组当然也可以有3台甚至更多,这个设计跟hadoop设计相同。
文件ID:包括两部分:组名和文件名(包含路径)
metadata:文件相关属性,键值对(Key Value Pair)方式,可以设定图像属性。
ImDFS特性
u 文件不分块存储,上传的文件和OS文件系统中的文件一一对应。
u 支持相同内容的文件只保存一份,节约磁盘空间。
u 下载文件支持HTTP协议,可以使用ImDFS内置Web Server或其他Web Server进行下载
u 支持在线扩容
u 存储服务器上可以保存文件属性(meta-data)
u 网络通信采用libevent,支持大并发访问,整体性能更好
u 磁盘IO由专门的线程处理,系统负载和连接数之间不存在线性关系,系统负载基本上不受连接数影响
存储组自动异常修复
采用binlog文件记录文件上传、删除等操作,根据binlog进行文件同步。binlog中只记录文件名,不记录文件内容。存储服务器生成的文件名中,包含源头存储服务器IP地址和文件创建时间戳。源头存储服务器定时向跟踪服务器报告同步情况,包括向目标服务器同步到的文件时间戳。跟踪服务器收到存储服务器的同步报告后,找出该组内每台存储服务器被同步到的时间戳(取最小值),作为存储服务器属性保存到跟踪服务器内存中。
存储服务器在线扩容
同一组内的存储服务器之间是对等的,文件上传、删除等操作可以在任意一台存储服务器上进行。文件同步只在同组内的存储服务器之间进行,采用推送方式,即源头存储服务器同步给目标存储服务器,并支持断点续传。源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了。当新增加一台存储服务器时,在不停止任何服务的情况下,由已有的一台存储服务器将已有的所有数据同步给该新增服务器,从而实现在线扩容。
异地容灾
同一个存储组内存储服务器可以部署在异地机房以实现异地容灾。IS/DFS-Image分布式文件存储查询系统能够在异地多数据中心部署,不同数据中心的存储节点可以组成一个存储组来使用,并且多数据中心的存储节点之间能够进行文件互备。
负载均衡
IS/DFS-Image分布式文件存储查询系统内部存储服务器和跟踪服务器可以自动实现负载均衡,同时也可以结合HTTP和反向代理服务器实现负载均衡下载文件。

