fastDFS and mogileFS

来源:互联网 发布:推塔游戏不用网络 编辑:程序博客网 时间:2024/06/06 03:40

FastDFS设计时借鉴了MogileFS的一些思路。FastDFS是一个完善的分布式文件存储系统,通过客户端API对文件进行读写。可以说,MogileFS的所有功能特性FastDFS都具备,MogileFS网址:http://www.danga.com/mogilefs/。

 

mogilefs 安装:http://durrett.net/mogilefs_setup.html

FastDFS详情请参阅:http://www.csource.org/

fastdfs  下载:http://code.google.com/p/fastdfs/downloads/list




另外,相对于MogileFS,FastDFS具有如下特点和优势:
1. FastDFS完善程度较高,不需要二次开发即可直接使用;
2. 和MogileFS相比,FastDFS裁减了跟踪用的数据库,只有两个角色:tracker和storage。FastDFS的架构既简化了系统,同时也消除了性能瓶颈;
3. 在系统中增加任何角色的服务器都很容易:增加tracker服务器时,只需要修改storage和client的配置文件(增加一行tracker配置);增加storage服务器时,通常不需要修改任何配置文件,系统会自动将该卷中已有文件复制到该服务器;
4. FastDFS比MogileFS更高效。表现在如下几个方面:
    1)参见上面的第2点,FastDFS和MogileFS相比,没有文件索引数据库,FastDFS整体性能更高;
    2)从采用的开发语言上看,FastDFS比MogileFS更底层、更高效。FastDFS用C语言编写,代码量不到3万行,没有依赖其他开源软件程序包,安装和部署特别简洁;而MogileFS用perl编写;
    3)FastDFS直接使用socket通信方式,相对于MogileFS的HTTP方式,效率更高。并且FastDFS使用sendfile传输文件,采用了内存零拷贝,系统开销更小,文件传输效率更高。
5. FastDFS有着详细的设计和使用文档,而MogileFS的文档相对比较缺乏。
6. FastDFS的日志记录非常详细,系统运行时发生的任何错误信息都会记录到日志文件中,当出现问题时方便管理员定位错误所在。
7. FastDFS还对文件附加属性(即meta data,如文件大小、图片宽度、高度等)进行存取,应用不需要使用数据库来存储这些信息。
8. FastDFS从V1.14开始支持相同文件内容只保存一份,这样可以节省存储空间,提高文件访问性能。
9. FastDFS从V1.18开始支持下载文件时,允许指定文件偏移量和大小(字节数)。

fastDFS配置

最近的项目中一个早期规划的版面大部分基于文字的,图片不多,所以前期没有做图片分离,随着公测,以及页面效果的体验。
决定要用大量图片来做视觉冲击。所以必须架设分布式文件系统来实现图片分离。之前用过mogilefs,感觉还是不错,就是配置起来还是繁琐,
并且是基于mysql做节点日志控制的,所以比较麻烦点。
之所以采用FastDFS,使用它协议比较简单。php操作也比较方便,当然更重要的是性能也不错。

简单配置
/*————–安装—————————*/
wget http://fastdfs.googlecode.com/files/FastDFS_v1.22.tar.gz
tar zvxf FastDFS_v1.22.tar.gz
cd FastDFS
./make.sh
./make.sh install

/*————–配置—————————*/
服务器设定

tracker: 192.168.1.1
storage: 192.168.1.2

/*————–添加配置文件—————————*/
mkdir /usr/local/fasrdfs/
vim /usr/local/fasrdfs/tracker_config
vim /usr/local/fasrdfs/storage_config

/*——tracker_config——–tracker(跟踪器)服务器——————-*/

bind_addr=
port=22122
network_timeout=20
base_path= /www/dlsite/uploads/events/
max_connections=256
store_lookup=0
store_group=group2
store_server=1
reserved_storage_space = 4GB
log_level=info
run_by_group=
run_by_user=
allow_hosts=*

/*——storage_config——–存储节点(storage)服务器—————–*/

disabled=false
group_name=group1
bind_addr=12
port=23000
network_timeout=20
heart_beat_interval=30
stat_report_interval=600
base_path=/www/dlsite/uploads/events/
sync_wait_msec=200
max_connections=256
tracker_server=192.168.1.2:22122
log_level=info
run_by_group=
run_by_user=
allow_hosts=*

/*——————-启动————————————*/
/usr/local/bin/fdfs_trackerd /usr/local/fastdfs/tracker_config
/usr/local/bin/fdfs_storaged /usr/local/fastdfs/storage_config

/*————–向存储节点(storage)发送数据—————————*/

/usr/local/bin/fdfs_test /usr/local/fastdfs/storage_config upload 数据文件
/*————–查看进程—————————*/
ps aux | grep fdfs

 

原创粉丝点击