FastDFS原理:FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。
1.1安装依赖应用:
yum install vim wget zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl net-tools unzip -y
1.2上传libfastcommon-master.zip至/usr/local/路径下面
解压:(##如果没有安装解压工具,可以直接yum install unzip zip –y)
unzip libfastcommon-master.zip
进入到目录查看压缩包的内容:
1.3安装libfastcommon-master
解压完成后进行编译安装。由于文件没有make.sh脚本,所以编译安装执行命令:##在当前路径下直接执行如下命令:
./make.sh ./make.sh install
当./make.sh install编译后看见如下信息,表示变异完成。
至此,libfastcommon就已经安装成功了,这里需要留一下红色方框中标志的两个路径,其中libfastcommon.so是默认安装到/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以此处需要重新设置软连接。
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
设置完后开始安装fastdfs。
1.4安装fastdfs
1.4.1解压安装包
tar -zxvf fastdfs-5.05.tar.gz
1.4.2进入到目录下进行编译
cd fastdfs-5.05 ./make.sh ./make.sh install
编译后 可以看见系统创建了标记的路径,进入查看,编译后的文件安装在了该路径下面。
将/etc/fdfs/路径下生成的三个文件拷贝生成正式的配置文件。
cd /etc/fdfs/ cp client.conf.sample client.conf cp storage.conf.sample storage.conf cp tracker.conf.sample tracker.conf
1.5配置,启动Tracker
Tracker在配置他之前,首先需要创建Tracker服务器的文件路径,即用于存储Tracker的数据文件和日志文件等。在此,我将在/opt/目录下面创建一个 fastdfs_tracker目录,用于存放Tracker服务器的相关文件:
mkdir /opt/fastdfs_tracker
1.5.1更改配置文件
重新编辑上一步准备好的/etc/fdfs目录下的tracker.conf配置文件,打开文件后依次做以下修改:
[root@localhost fdfs]# vim tracker.conf 1、disabled=false #启用配置文件(默认启用) 2、port=22122 #设置tracker的端口号,通常采用22122这个默认端口 3、base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录 4、http.server_port=6666 #设置http端口号,默认为8080
1.5.2配置启动路径:
ln -s /usr/bin/fdfs_trackerd /usr/local/bin ln -s /usr/bin/stop.sh /usr/local/bin ln -s /usr/bin/restart.sh /usr/local/bin
最后通过命令启动Tracker服务器:
service fdfs_trackerd start
将启动命令加入到开机自启动。
echo “service fdfs_trackerd start” >>/etc/rc.d/rc.local
1.6配置,启动Storage
与Tracker做相似的修改
1.6.1创建存储目录
同理,步骤基本与配置Tracker一致,首先是创建Storage服务器的文件目录,需要注意的是同Tracker相比我多建了一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件::
mkdir /opt/ fastdfs_storage mkdir /opt/fastdfs_storage_data
1.6.2修改编辑配置文件
接下来修改/etc/fdfs目录下的storage.conf配置文件,打开文件后依次做以下修改:
[root@localhost fdfs]# vim storage.conf disabled=false #启用配置文件(默认启用) group_name=group1 #组名,根据实际情况修改 port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致 base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录 store_path_count=1 #存储路径个数,需要和store_path个数匹配 store_path0=/opt/fastdfs_storage_data #实际文件存储路径 tracker_server=192.168.199.33:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功(此处的ip是为CentOS虚拟机ip),此处只装有一个server端 如果有两个,可在下面一行安装该模式,修改ip做添加。 http.server_port=8888 #设置 http 端口号
1.6.3配置启动路径
配置完成后同样要为Storage服务器的启动脚本设置软引用:
ln -s /usr/bin/fdfs_storaged /usr/local/bin
接下来启动Storage服务:(##并加入到开机自启动项)
service fdfs_storaged start
1.7修改启动脚本:
cd /etc/fdfs/ ls -l /etc/init.d/fdfs* whereis fdfs_trackerd fdfs_trackerd: /usr/bin/fdfs_trackerd sed -i 's#/usr/local/bin#/usr/bin#g' /etc/init.d/fdfs_storaged sed -i 's#/usr/local/bin#/usr/bin#g' /etc/init.d/fdfs_trackerd