聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 社区fastdfs图片存储引擎介绍和安装篇

社区fastdfs图片存储引擎介绍和安装篇

时间:    下载该word文档
社区fastdfs图片存储引擎使用文档
--------介绍和安装篇
一.介绍
FastDFS是一个开源的轻量级分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点storage跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件metadata就是文件的相关属性,以键值对(keyvaluepair)方式表示,如:width=1024其中的keywidthvalue1024文件metadata是文件属性列表,可以包含多个键值对。FastDFS系统结构如下图所示:


1fastdfs架构图
相关术语介绍:
TrackerServer:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。记录storageserver的状态,是连接ClientStorageserver的枢纽。

StorageServer:存储服务器,文件和metadata都保存到存储服务器上
group:组,也可称为卷。同组内服务器上的文件是完全相同
文件标识:包括两部分:组名和文件名(包含路径)metadata文件相关属性,键值对KeyValuePair方式,如:width=1024,heigth=768
跟踪器和存储节点都可以由一台多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。
当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。
官网地址如下:
googlecode地址:http://code.google.com/p/fastdfs/googlecode下载地址:
http://code.google.com/p/fastdfs/downloads/list二.使用原理
1.下面看看使用fastdfs进行上传文件处理的交互过程:

2FastDFSfileupload处理过程1.client询问tracker上传到的storage,不需要附加参数;2.tracker返回一台可用的storage
3.client直接和storage通讯完成文件上传。
2.下面再看看取文件的交互过程:


3FastDFSfiledownload
1.client询问tracker下载文件的storage参数为文件标识(卷名和文件名);
2.tracker返回一台可用的storage3.client直接和storage通讯完成文件下载。
需要说明的是,client为使用FastDFS服务的调用方,client应该是一台服务器,它对trackerstorage的调用均为服务器间的调用。3.同步机制
1同一组内的storageserver之间是对等的,文件上传、删除等操作可以在任意一台storageserver上进行;
2文件同步只在同组内的storageserver之间进行,采用push方式,即源服务器同步给目标服务器;
3源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;

4上述第二条规则有个例外,就是新增加一台storageserver时,由已有的一台storageserver将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。4.通信协议
1协议包由两部分组成:headerbody2header10字节,格式如下:a8bytesbodylengthb1bytecommandc1bytestatus
3body数据包格式由取决于具体的命令,body可以为空5.目录结构-trackerserver${base_path}|__data
||__storage_groups.dat:存储分组信息||__storage_servers.dat:存储服务器列表|__logs
|__trackerd.logtrackerserver日志文件6.目录结构-storageserver${base_path}|__data
||__.data_init_flag:当前storageserver初始化信息||__storage_stat.dat:当前storageserver统计信息

||__sync:存放数据同步相关文件
|||__binlog.index:当前的binlog文件索引号|||__binlog.###:存放更新操作记录(日志)|||__${ip_addr}_${port}.mark:存放同步的完成情况||
||__一级目录:256个存放数据文件的目录,如:00,1F||__二级目录:256个存放数据文件的目录|__logs
|__storaged.logstorageserver日志文件三.V1.0V2.0版本的区别
1.目前现网使用的版本为1.93但官网推荐使用2.0以上的版本,因为稳定和性能都有很大的提升,也推荐使用http的方式取文件,因应用不支持,所以暂时还是使用1.93版本。V2.0网络通信采用libevent,支持大并发访问,整体性能更好。2.看一下官方对2.0的改进
1网络IO处理线程+磁盘IO处理线程
2采用libevent取代传统的网络通信模型,支持大并发访问,支持的连接数可以到10K
3磁盘IO由专门的线程处理,系统负载和连接数之间不存在线性关系,系统负载基本上不受连接数影响3.下面看看两个版本的处理模型:FastDFS1.xIO模型


4
FastDFS2.0IO模型


5
四.安装
FastDFS内部绑定了libevent作为http服务器,在V2.X版本必须安装libevent本文安装的是V2.6版本,因此必须安装libeventlibevent的版本要求为1.4.x,建议使用最新的stable版本,如1.4.14b。注意,千万不要使用libevent2.0及以上版本,如果已经安装了libevent,请确认安装路径是/usr因为FastDFS在编译源程序时,需要到此目录下查找一些依赖文件,否则编译FastDFS

会出错,安装libevent这里就不说了。如果不会,可以参考memcached的安装文档。1
下载FastDFS源程序,下载地址
http://code.google.com/p/fastdfs/downloads/list,这里下载的是FastDFS_v2.06.tar.gz23
tarvxzfFastDFS_v2.02.tar.gz由于要使用内置的http服务,因此编
%FastDFS%/make.sh文件
WITH_HTTPD=1取消注释,打开内置http服务#WITH_LINUX_SERVICE=1安装成linuxservice使用,根据习惯选择。4
./make.sh
注意这里需要libevent的源码,所以如果是rpm安装的libevent还需要再安装libevent-devel的包。5
./make.shinstall
如果运行如上命令后,在命令行信息最后看到类似#ln-fs/usr/local/lib/libfastcommon.so.1/usr/local/lib/libfastcommon.so#ln-fs/usr/local/lib/libfdfsclient.so.1/usr/local/lib/libfdfsclient.sosh./fdfs_link_library.sh恭喜你,已经安装成功了!

如果想要更高的性能可以不使用内置的http服务,而使用apachenginxhttp服务器,这样性能就更高,FastDFS针对apachenginx开发了扩展模块,都已经发布,可以到官网去下载FastDFSnginxmoduleV1.02FastDFSapachemoduleV1.02

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服