在ChinaUnix的fastdfs论坛上整理的关于FastDfs问题及回答

 

问题的回答基本都是fastdfs作者本人余庆,在chinaunix上的名字是happy_fish100

问的问题有的是时间比较早的,不一定适合后来的版本,需要的时候还是根据自己的版本实践下

 

,问一下tracker   storage  client之间的通讯是基于socket的吧,没有用rpc吧。对这个不太了解,问一下,这个用socket好些还是rpc好些,gfs用的是什么呢。

使用rpc需要遵循RPC协议标准,使用socket可以自己定义通信协议,这样效率和灵活性都更好。

 

单个tracker的性能怎样,支持多少并发,如何做到的?

单台tracker的性能特别高。因为tracker处理查询时,直接访问内存中的索引数据,不存在任何性能瓶颈。
单台服务器支持的QPS超过5000没有任何问题。

 

一个组只有一台服务器的存储容量,其他的都是冗余 ?

是的。一个组的容量为该组内服务器中的最小容量。
所以,每个组的服务器配置应尽量一致。
为了达到备份和负载均衡的目的,建议每组配置两台存储服务器。

 

是否支持服务器跨地域分布?指定文件跨地域备份?

可以的吧。
将不同地域的服务器放到同一个组中即可。

FastDFS完全支持跨机房部署!
只要你机房之间网络是可以正常连接,就没问题。

 

因为机房之间的网络通常不稳定,经常出现网络波动,例如网络中断10分钟甚至1个小时,这个时候,FastDFS还能够正常工作吗?

没有问题的。FastDFS文件同步采用异步的增量方式。
网络恢复后,可以继续进行文件同步。

 

track服务器内存需要多大?

tracker不耗内存,有1GB内存足矣。

 

我现在已经有很多很多文件了,将近500W的文件数,该怎么使用FastDFS来管事呢,难道需要再重新使用fdfs_upload_file重传一遍吗?重传过后的文件名怎么办?因为这些文件名都是在数据库里有的,重传的话,文件名就变掉了。

可以使用my-fastfds-client,这个client library支持应用端指定文件ID。

 

 

余大:请问ngx_fastdfs_module是否有缓存机制?
现有情况配置情况如下:
软件配置情况:
FastDFS_v4.00
nginx-1.2.4
fastdfs-nginx-module_v1.10
硬件设备
trackerserver 192.168.1.104
StorageServer1 192.168.1.104 group1
storageServer2 192.168.1.105 gropu2
配置情况:
trackerstorage 等配置都正常使用fdfs_upload_file上传和fdfs_download_file下载
两台Storage 下的nginx.conf相同配置:
       location /group1/M00 {
           alias /opt/fdfs_storage/data;
           ngx_fastdfs_module;
       }
       location /group2/M00 {
           alias /opt/fdfs_storage/data;
           ngx_fastdfs_module;
       }
用fdfs_upload_file上传了两个文件:
group1/M00/00/00/wKgByFCTLAiAZnSyAAAmnVGv1x8479.log
group2/M00/00/00/wKgBaVCTLESAEomGAAAAAAAAAAA720.log
WEB 测试:
http://192.168.1.104/group1/M00/ ... yAAAmnVGv1x8479.log    OK
http://192.168.1.104/group2/M00/ ... GAAAAAAAAAAA720.log  经过跳转转成
http://192.168.1.105/group2/M00/ ... 720.log??redirect=1 OK
在此完美实际了分布式应用访问.

问题来了:
因为修改了storage server 2的IP地址192.168.1.105-->192.168.1.120.
为了防止问题安全起见,重启了Storage1,Storage2,nginx1,nginx2,tracker
WEB测试:
http://192.168.1.104/group1/M00/ ... yAAAmnVGv1x8479.log    OK
http://192.168.1.104/group2/M00/ ... GAAAAAAAAAAA720.log  经过跳转转成
http://192.168.1.105/group2/M00/ ... 720.log??redirect=1 出错
192.168.1.105换成了192.168.1.120,但跳转时还是跳到原105这个不存在的IP地址上.
请问怎么解决阿,是BUG吗?

 

楼上的问题,是不是可以这样理解,一个文件以前上传到了IP105的服务器,这台服务器的IP地址就不能修改?
因为文件名和IP地址绑定了?

 

当然可以修改。但修改IP可能会存在隐患,因此不要轻易更改stroage server IP地址。

 

继续补充

问:
貌似nginx装了fdfs模块后后不用手动在nginx设置upstream了吧?
答:
upstream是tracker上的nginx需要设置,storage上的不需要。

问:
第一个是我原本想每个storage上都开nginx,每个nginx都只处理(对自己组)的访问请求;
现在想想一次部署10个节点还行,部署更多节点就太麻烦了;正继续斟酌,该是每台机器都有nginx,还是将nginx集中起来。
第二个是nginx的缓存问题,我在考虑,如果一定要用缓存,是用nginx自己的缓存模块,还是直接步上squid?然后squid去完成对第一步的nginx调度。

答:
我记得余大的建议是每台都配置nginx比较好,不过的确是很费事儿……调查了一下,nginx自己的cache性能还是很不错的,应该足够用了。

问:
mod_fastdfs.conf中的tracker_server配置项有什么作用?
答:
向tracker server获取两个参数而已,这两个参数是:
storage_sync_file_max_delay:文件同步的最大延迟,缺省为1天
storage_sync_file_max_time:同步单个文件需要的最大时间,缺省为5分钟。


自己问的:
在fastdfs中,连接池是自己写的,两个tracker中,如果一个某一个挂掉了,那么大家都是怎么处理,使之可以得到活着的tracker呢??
如果另一个tracker又活过来之后,怎么平衡连接池里的tracker呢??

client.conf这个配置文件主要作用是什么??
对客户端链接做配置,主要是配置trackserver的地址,发现它用的。storage不用配置

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值