111
FTP:
可设密码文件安全性高
FastDFS:
FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage
server)和客户端(client)
tracker server: 跟踪服务器,主要做调度工作,起负载均衡的作用。
在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。
相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。storage server: 存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。
Storage server直接利用OS的文件系统调用管理文件。client server: 客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。
FastDFS这样的架构十分轻量,没有Master角色,使用对等结构,组间数据是户备,很方便的加入新的组来实现平行扩展,各个节点之前的通讯协议都是TCP/IP的。
当一个文件上传成功后,客户端马上发起对该文件下载请求(或删除请求)时,tracker是如何选定一个适用的存储服务器呢?
其实每个存储服务器都需要定时将自身的信息上报给tracker,这些信息就包括了本地同步时间(即同步到的最新文件的时间戳)。
而tracker根据各个存储服务器的上报情况,就能够知道刚刚上传的文件,在该存储组中是否已完成了同步。
文件索引结构为:g1/M00/00/00/CgoYr1PoeaaAQhnkAAzrjmXcV8I399.jpg 它是客户端上传文件后存储服务器返回给客户端,用于以后访问该文件的索引信息。 文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
其中:
组名: 文件上传后所在的存储组名称,在文件上传成功后有存储服务器返回,需要客户端自行保存。 虚拟磁盘路径:
存储服务器配置的虚拟路径,与磁盘选项store_path* 对应。 数据两级目录:
存储服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。 文件名:
与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
适用于海量小文件(建议范围:4KB < file_size <500MB)
降低了系统的复杂度,处理效率更高
-
FastDFS只有三个角色;且跟踪服务器和存储服务器均不存在单点。
-
跟踪服务器被动的接收存储服务器汇报,对存储服务器进行分组管理;并为客户端选定适用的存储服务器。同一存储服务器可以同时向多台跟踪服务器汇报状态信息。
-
存储服务器组内所有存储服务器是对等关系,存储的数据一一对应且相同;所有的存储服务器均是同时在线服务,极大的提高的服务器的使用率,分担了数据访问压力。
fdfs_delete_file: 删除文件,/opt/apps/fdfs/bin/fdfs_delete_file
fdfs_download_file: 下载文件,/opt/apps/fdfs/bin/fdfs_download_file
fdfs_file_info: 获取某个文件信息,/opt/apps/fdfs/bin/fdfs_file_info
fdfs_monitor: 监控,查看storage server的状态/opt/apps/fdfs/bin/fdfs_monitor
server的状态是ACTIVE,也就是该storage server还在线上服务的情况下,是无法删除掉的。
fdfs_storaged: 用来启动或是重启或是关闭server,/opt/apps/fdfs/bin/fdfs_storaged
fdfs_trackerd: 用来启动或是重启或是关闭server,/opt/apps/fdfs/bin/fdfs_trackerd
fdfs_upload_file: 上传文件,/opt/apps/fdfs/bin/fdfs_upload_file
http://wlwang41.github.io/content/ops/fastdfs%E8%B0%83%E7%A0%94.html