fastdfs/docker/dockerfile_local-v6.0.9/qa.txt

142 lines
9.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

fastdfs源自bbs论坛的问题整理http://bbs.chinaunix.net/forum-240-1.html
##### Q0、上传文件如何选择存储地址的
tracker是各协调器 是如何查询存储地址返回给客户端的请阅读《fastdfs\1、fastdf配置文件参数解释\tracker.conf参数说明.txt》
```bash
1. client上传文件 <--指定\不指定group--> tracker选择group ---> 选择 group 中的哪台storage --->选择storage server 中的哪个目录}
2. Client拿着地址直接和对应的Storage通讯将文件上传到该Storage。
```
>[danger]备注tracker.conf中的 reserved_storage_space 参数是storage为系统、其他应用保留的空间若空间不足则上传失败。
##### Q1、fastdfs的版本号如何查看
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf 或打开tracker的基础数据存储文件storage_servers_new.dat
##### Q2、同一个集群内相互关系
- cluster里每个tracker之间是完全对等的所有的tracker都接受stroage的心跳信息生成元数据信息来提供读写服务。
> 2.03以后tracker server之间会有通信。比如解决: 新增加一台tracker server时新的tracker server会自动向老的tracker server获取系统数据文件。。
- 同组内的storage server之间都是对等关系不存在主从关系。
- 组与组之间的storage都是独立的不同组的storage server之间不会相互通信。
---
##### Q3、备份机制
FastDFS采用了分组存储一个组可以由一台或多台storage存储服务器组成同组内的storage文件都是相同的组中的多台storage服务器起到相互备份和负载均衡的作用。
---
##### Q4、storage和组的对应关系
一个storage只能属于一个group组名在storage server上配置由storage server主动向tracker server报告其组名和存储空间等信息。
---
##### Q5、storage 能连接几个tracker
在storage server上配置它要连接的tracker server可以配置1个或多个。 当storage配置连接2个以上tracker时tracker群起到负载均衡作用。
>备注storage server的信息在tracker上全部缓存到内存中的支持的分组数理论上取决于tracker server的内存大小。所以支持上千上万个组没有一点问题。
>[danger]提醒在一个集群中正确的做法是“storage应连接所有的tracker” 万一有个别storage server没有绑定所有tracker server也不会出现问题。
---
##### Q6、一台机器上运行几个storage
通常一台机器只启动一个storage节点即跑一个group根据服务器情况比如多磁盘挂载、或文件要隔离存储时可以运行多个storage但是没必要因为storage支持多目录挂载.
>[danger]注意: 同集群内同组下的storage 端口好必须相同因此单台上只能运行属于不同组的storage.
---
##### Q7、一台机器上多个磁盘时如何使用
如果我一台机器多个硬盘挂到不同的目录不要做RAID每个硬盘作为一个mount point直接挂载单盘使用即可
- 可以按一个组运行一个storage设置多个store_path索引从0开始对应不同的磁盘目录。--->推荐
- 也按多个组使用即运行多个storage每个组管理一个硬盘mount point。--->没必要这样做因为storage已经可以管理多块硬盘了
> 备注storage server支持多个路径例如磁盘存放文件为了提高IO性能不同的磁盘可能挂不同的目录
---
##### Q8、同组内的storage服务器的空间大小不一样时会出现什么问题
同一个卷的存储空间以group内容量最小的storage为准所以建议同一个GROUP中的多个storage尽量配置相同即**store_path_count个数、存放文件的目录磁盘大小要相同目录名称可以不相同**。
> 论坛帖子若同一个卷下的各storage配置不同某个服务器有空间但是不能再上传文件的现象。http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1941456&extra=page%3D1%26filter%3Ddigest%26digest%3D1
---
##### Q9、每个目录下存放的文件数有限制吗。
没有限制,能不能上传取决于剩余空间。
> 备注storage的缺省情况下**每个目录下存放100个文件然后就轮转到下一个目录 到最后一个目录data/FF/FF后会跳会第一个目录**。
- subdir_count_per_path =256storage server在初次运行时会在store_path0~n\data\目录下,自动创建 N * N 个存放文件的子目录。
- file_distribute_path_mode配置为0轮流存放方式file_distribute_rotate_count = 100当一个目录下的文件存放的文件数达到本参数值时后续上传的文件存储到下一个目录中。
##### Q10、tracker、storage和client配置文件中的http.server_port还要配置吗
不用理会这个配置项HTTP访问文件请使用外部的web server.
>[danger] 备注:
- fastdfs内置的web server从4.0.5版本就移除了因为之前自带的HTTP服务较为简单无法提供负载均衡等高性能服务而是使用外部web serverapache和nginx提供http文件访问服务。
- 为了解决文件同步延迟的问题apache或nginx上需要使用FastDFS提供的扩展模块如nginx的fastdfs-nginx-module
- 在每台storage server上部署web server直接对外提供HTTP服务
- tracker server上不需要部署web server
##### Q11、如何防盗链
通过token的方式来实现的防盗链。原贴地址http://bbs.chinaunix.net/thread-1916999-1-1.html
看一下配置文件 mod_fastdfs.conf里面包含了http.conf在http.conf中进行防盗链相关设置。
##### Q12、“海量”小文件会导致文件系统性能急剧下降请问这里的“海量”大致在什么级别
出于性能考虑我觉得单台机器存储的文件数不要超过1千万吧。
> [点击查看原贴地址](点击查看原贴地址http://bbs.chinaunix.net/thread-2328826-1-48.html "点击查看原贴地址") 3.0的计划中,提到“海量”小文件会导致文件系统性能急剧下降,乃至崩溃。请问这里的“海量”大致在什么级别,通过扩展主机(不仅仅是磁盘)是否可以解决“海量”小文件带来的性能瓶颈?
##### Q13、FastDFS扩展模块fastdfs-nginx-module支持断点续传吗
版本V1.08,增加了支持断点续传
##### Q14、配置了Nginx的FDFS扩展模块可以通过nginx访问文件mod_fastdfs.conf中的tracker_server配置项有什么作用
扩展模块在web server启动时连接tracker server以获得2个配置参数
如果连不上时或者获取失败,会使用缺省值:
+ storage_sync_file_max_delay文件同步的最大延迟缺省为1天
+ storage_sync_file_max_time同步单个文件需要的最大时间缺省为5分钟。
##### Q15、扩展模块有哪些注意事项
配置文件/etc/fdfs/mod_fastdfs.conf参数url_have_group_nameURL中是否包含了group name。这个参数必须正确设置否则文件不能被下载到
##### Q16、FastDFS是否支持文件修改呢
V3.08开始支持文件修改了。
##### Q17、如果你需要相同文件内容的文件只保存一份时怎么办
结合FastDHT使用,http://localhost:8181/docs/fastdfs/fastdfs-1dtfs5fe93h60
##### Q18、只要知道tracker的服务器IP和端口任何都可以使用api上传文件这样是否会有恶意上传的问题
可以指定访问限制tracker.confstorage.conf添加访问IP限制
```bash
# allow_hosts can ocur more than once, host can be hostname or ip address,
# "*" means match all ip addresses, can use range like this: 10.0.1.[1-15,20] or
# host[01-08,20-25].domain.com, for example:
# allow_hosts=10.0.1.[1-15,20]
# allow_hosts=host[01-08,20-25].domain.com
#allow_hosts=*
allow_hosts=222.222.222.[152-154]
allow_hosts=111.111.111.111
```
Q19、部署哪些事项要注意
0. tracker 只管理集群拓扑数据,不存储任何文件索引,对硬件配置要求较低,为了实现互备,**两台tracker就够了。若集群规模较小可复用storage机器**
1. 在tracker的配置文件tracker.conf中设置好预留合适的空间.
2. fastdfs存储文件是直接基于操作系统的文件系统的**storage的性能瓶颈通常表现在磁盘IO**。为了充分利用文件系统的cache已加快文件访问**推荐storage配置较大内存**尤其在众多热点文件的场合下大量IO吞吐也会消耗cpu
3. storage为了互相备份**一个group内有两台storage即可**
4. storage 为了充分利用磁盘推荐不做RAID直接挂载单块硬盘每块硬盘mount为一个路径作为storage的一个store_path。
5. **同组内的storage 端口号必须相同**建议挂载存储个数相同、空间大小相同同一主机上可以运行多个不同组的storage.
6. 同组内的storage 若有多个tracker应当配置上所有的tracker地址
7. fastdfs从4.0.5开始去除了http文件下载功能需要外部的web server为了解决文件同步延迟的问题apache或nginx上需要使用FastDFS提供的扩展模块如nginx的fastdfs-nginx-module
- 在每台storage server上部署web server直接对外提供HTTP服务
- tracker server上不需要部署web server
- 每个组必须有一个nginx提供http文件访问服务.
8. 海量小文件场景建议使用文件合并存储特性在tracker.conf 设置 use_trunck_file=true**如果一个group存储的文件数不超过一千万就没有必要使用这个特性**。
9. 为了避免不必要的干扰集群安全考虑,**建议使用storage server id 方式。** tracker.conf 设置 use_storage_id=true 并在storage_ids.conf填写所有storage的id、所属组名ip。这样做迁移很容易。