FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。
(1)每次上传文件后都会返回一个地址,用户需要自己保存此地址。
(2)为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
配置环境:
CentOS 7.5 x 64
tracker server: 192.168.5.71(tracker暂时一台,后续再添加一台做nginx+keepalived高可用)
storage server: 192.168.5.72 192.168.5.73(group1)
storage server: 192.168.5.74 192.168.5.75(group2)
#hosts文件配置
cat >> /etc/hosts << EOF 192.168.5.71 storage71.blufly.com storage71 192.168.5.72 storage72.blufly.com storage72 192.168.5.73 storage73.blufly.com storage73 192.168.5.74 storage74.blufly.com storage74 192.168.5.75 storage75.blufly.com storage75 EOF
###---------------------- 安装配置tracker server ---------------------------###
yum -y install gcc-c++ libevent
#先安装libfastcommon
cd /opt git clone https://github.com/happyfish100/libfastcommon.git cd libfastcommon/ ./make.sh ./make.sh install
#安装fastdfs:
cd /opt git clone https://github.com/happyfish100/fastdfs.git cd fastdfs ./make.sh ./make.sh install
#配置文件解释:
tracker.conf //负责均衡调度服务器配置文件 client.conf //客户端上传配置文件 http.conf //http服务器配置文件 storage.conf//文件存储服务器配置文件 mime.types //文件类型配置文件
#修改tracker server的配置文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf vi /etc/fdfs/tracker.conf bind_addr= 改为 bind_addr=192.168.25.204 base_path=/home/yuqing/fastdfs 改为 base_path=/data/fastdfs http.server_port=8080 改为 http.server_port=80
#启动tracker server
mkdir -p /data/fastdfs /etc/init.d/fdfs_trackerd start [root@storage71 fastdfs]# netstat -tnlp|grep fdfs tcp 0 0 192.168.5.71:22122 0.0.0.0:* LISTEN 11631/fdfs_trackerd
#开机启动
/sbin/chkconfig --add fdfs_trackerd /sbin/chkconfig --level 2345 fdfs_trackerd on
###--------------------------- 安装配置storage server ----------------------###
yum -y install gcc-c++ libevent
#先安装libfastcommon
cd /opt git clone https://github.com/happyfish100/libfastcommon.git cd libfastcommon/ ./make.sh ./make.sh install
#安装fastdfs:
cd /opt git clone https://github.com/happyfish100/fastdfs.git cd fastdfs ./make.sh ./make.sh install
#配置storage server
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf #修改storage server的配置文件: vm /etc/fdfs/storage.conf bind_addr= 改为 bind_addr=192.168.5.72 #base_path需要和tracker部分的base_path保持一致,如果有修改过tracker的 base_path=/home/yuqing/fastdfs 改为 base_path=/data/fastdfs #修改storage的资源存放路径 store_path0=/home/yuqing/fastdfs 改为 store_path0=/data/fastdfs #如果有多个挂载磁盘则定义多个store_path,如下 #store_path1=...... #store_path2=...... 修改storage的对应的tracker_server的ip地址和端口 tracker_server=192.168.209.121:22122 改为 tracker_server=192.168.5.71:22122 #如果有多个则配置多个tracker_server #tracker_server=...... #tracker_server=...... http.server_port=8888 改为 http.server_port=80
#创建数据目录,并启动storage server
mkdir -p /data/fastdfs /etc/init.d/fdfs_storaged start [root@storage72 fastdfs]# netstat -tnlp|grep fdfs tcp 0 0 192.168.5.72:23000 0.0.0.0:* LISTEN 11624/fdfs_storaged
#开机启动
/sbin/chkconfig --add fdfs_storaged /sbin/chkconfig --level 2345 fdfs_storaged on
#查看tracker和storage的链接情况
[root@storage71 ~]# netstat -tnlpa|grep 22122 tcp 0 0 192.168.5.71:22122 0.0.0.0:* LISTEN 11631/fdfs_trackerd tcp 0 0 192.168.5.71:22122 192.168.5.72:63755 ESTABLISHED 11631/fdfs_trackerd tcp 0 0 192.168.5.71:22122 192.168.5.73:47697 ESTABLISHED 11631/fdfs_trackerd
#在tracker server上配置客户端上传文件
[root@storage71 fastdfs]# cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf vim /etc/fdfs/client.conf #base_path需要和tracker部分的base_path保持一致 base_path=/home/yuqing/fastdfs 改为 base_path=/data/fastdfs tracker_server=192.168.0.197:22122 改为 tracker_server=192.168.5.71:22122
#上传个文件,如果上传成功,会返回一个url,我们记住这个url,后面安装了nginx就可以通URL来访问上传的这个文件