1.下载镜像
docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
2.运行FastDFS
docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=nginx的访问IP -e WEB_PORTnginx 访问端口 -v /var/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
参数详解:
--restart=always: 异常时重启
--net=host: 宿主机网络
-v /var/fastdfs:/var/local/fdfs: 文件路径挂载宿主机地址
3.配置文件参数调整
3.1 storage.conf
序号 | 参数名 | 描述 |
1 | group_name=group1 | storage server所属的group名 |
2 | base_path=/home/fastdfs/storage | 工作文件夹,日志也存在此(这里不是上传的文件存放的地址) |
3 | store_path0=/home/fastdfs | 工作路径列表,如果store_path0不设置,那么使用base_path存储 设置的路径一定是存在的文件夹 需要配置store_path_count个 store_path0=/home/fastdfs #store_path1=/home/fastdfs2 |
4 | tracker_server=192.168.1.2:22122 | tracer server列表,多个tracer server的话,分行列出 |
5 | work_threads=4 | 工作线程数,小于max_connections 默认4个,通常设置为CPU核数,效率最高 |
6 | log_level=info | 日志级别 emerg for emergency alert crit for critical error warn for warning notice info debug |
7 | log_file_keep_days = 0 | 日志文件保存日期 0表示永久保存,不删除 |
8 | accept_threads=1 | 接收数据的线程数 默认1个 |
9 | disk_rw_separated = true | 磁盘读写是否分离,默认为true |
10 | disk_reader_threads = 1 | 磁盘读取的线程数(每个工作文件夹) 默认为1 对于磁盘读写不分离的模式,这个参数可以设置为0 |
11 | disk_writer_threads = 1 | 磁盘写的线程数(每个工作文件夹) 默认为1 对于磁盘读写不分离的模式,这个参数可以设置为0 |
12 | subdir_count_per_path=256 | FastDFS是通过二级目录来存储文件的,该配置是每级目录的文件夹数据 如果设置为256,那么会生成256*256=65535个文件夹 默认大小256,可以设置区间1-256 |
13 | allow_hosts=* | 可以连接到本机的主机ip范围,*代表允许所有服务器 支持这样的表达式:10.0.1.[1-15,20] or host[01-08,20-25].domain.com |
14 | upload_priority=0 | 和 tracker.conf 中store_server= 2时的配置相对应,本storage server作为目标服务器,上传文件的优先级,可以为负数。值越小,优先级越高。 tracker.conf 中store_server参数的描述: 上传文件选择服务器的规则: 0:轮询(默认) 1:按照IP排序,排在第一的server 2:按照优先级排序,最小的server |
15 | file_signature_method=hash | 文件签名形式,hash或md5,用来做文件排重,默认为hash |
16 | key_namespace=FastDFS | 存储文件索引的命名空间(在check_file_duplicate=1是生效) |
17 | keep_alive=0 | 是否和FastDHT之间使用长连接 默认值为0 0代表短链接,1代表长连接 |
18 | check_file_duplicate=0 | 是否检查重复文件,如果设置成true,使用FastDHT来存储文件索引 默认值是 0 1 or yes: 需要检查 0 or no: 不需要检查 |
3.2 tracker.conf
序号 | 参数名 | 描述 |
1 | store_lookup=2 | 文件上传选取group的规则: 0:轮询 1:指定服务器组 2:负载均衡,文件上传到可用空间最大的group |
2 | store_group=group1 | 当store_lookup设置为1时,指定上传的group |
3 | store_server=0 | 上传文件选择服务器的规则 0:轮询(默认) 1:按照IP排序,排在第一的server 2:按照优先级排序,最小的server |
4 | store_path=0 | 上传文件选择路劲的规则 0:轮询(默认) 2:负载均衡,选择可用空间最大的文件夹 |
5 | download_server=0 | 下载文件选择服务器的规则 0:轮询(默认) 1:上传到那台服务器,就从哪台服务器下载 |
6 | reserved_storage_space = 10% | 为系统或其他应用程序保留存储空间 如果本机的剩余存储空间小于保留空间,那么本group不再允许上传文件 默认单位是byte G or g for gigabyte(GB) M or m for megabyte(MB) K or k for kilobyte(KB) no unit for byte(B) XX.XX% as ratio such as reserved_storage_space = 10% |
7 | storage_ip_changed_auto_adjust = true | 当集群中的storage server的ip变化的时候,集群是否自动调整 默认值为true |
8 | log_file_keep_days = 0 | 日志文件保存日期 默认为0 0表示永久保存,不删除 |