CentOS7 安装 fastDFS 教程
在一台主机上部署 fastDFS 文件系统的 tracker 服务器和 storage 服务器,提供了搭建 fastDFS 系统的示例。PS:tracker storage client nginx 都安装在同⼀个台机器上。
一、安装环境
本文的安装环境是 VMware,Centos7 版本如下所示,执行命令可查看。
cat /etc/centos-release
安装前墙裂推荐拍摄快照,以备出错时还原!
二、准备工作
2.1 下载依赖包
wget用于获取网络资源,git用于克隆 FastDFS 仓库,gcc 、g++和 perl 用于编译源码。
yum install wget git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel net-tools -y
2.2 关闭安全防护
执行如下命令,关闭 seLinux 。
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
查看是否关闭成功。
cat /etc/selinux/config
关闭后需要重启才能生效,但此处先不重启,等准备工作完成后再重启。
2.3 关闭防火墙
执行以下命令查看防火墙是否开启。
service firewalld status
如图即为防火墙开启。
关闭防火墙。
service firewalld stop
关闭防火墙开机自启动。
systemctl disable firewalld
2.4 安装 iptables
查看本机是否有 iptables。
service iptables status
没有则执行如下命令安装。
yum install -y iptables-services
安装成功后执行如下命令,启动 iptables 并设置其开机自启动。
systemctl enable iptables #开机自启动
systemctl start iptables #启动
systemctl status iptables #查看状态,active 即为成功
2.5 重启虚拟机以修改生效
执行如下命令重启。
reboot
三、安装 fastDFS
3.1 下载 fastDFS
先切换到 fastDFS 要下载的目录位置,此处选择 /usr/local/src
cd /usr/local/src
下载 fastDFS 可以通过之前下载过的依赖包 git 下载,直接克隆仓库。可以得到两个文件 fastdfs libfastcommon
gitee 源(推荐),下载速度较快,成功下载则进入下一步:
git clone https://gitee.com/fastdfs100/libfastcommon.git
git clone https://gitee.com/fastdfs100/fastdfs.git
github 源:
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
git clone https://github.com/happyfish100/fastdfs.git --depth 1
如果 git 下载的速度很慢 ,可以 lrzsz 工具(如果你是用 SecruitCRT 操作虚拟机的话,用本机下载然后 rz 上传文件到 Centos7 )
rz #选择fastdfs.tar.gz文件上传
tar zxvf fastdfs.tar.gz #解压文件
mv fastdfs libfastcommon /usr/local/src/ #复制这两个文件到要下载的目录
或者是直接通过 vm-tools(如果你是在 VMware 操作虚拟机安装 fastDFS )直接复制粘贴到 Centos7 。
3.2 安装 libfastcommon
进入 libfastcommon 目录,切换版本为 V1.0.43,编译安装源码,执行如下命令。不能出现 ERROR 错误,出现则代表编译失败
cd /usr/local/src/libfastcommon/
git checkout V1.0.43
./make.sh clean && ./make.sh && sudo ./make.sh install
3.3 安装 FastDFS
进入 fastdfs 目录,切换到版本 V6.06,编译安装源码,执行如下命令。
cd /usr/local/src/fastdfs/
git checkout V6.06
./make.sh clean && ./make.sh && ./make.sh install
四、修改配置文件
4.1 修改 tracker.conf 配置文件并启动 tracker
创建 fastdfs 及其 tracker 的目录
mkdir -p /home/fastdfs/tracker
将配置文件示例复制一份到 /etc/fdfs 目录下,执行命令如下。
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
修改配置文件 /etc/fdfs/tracker.conf,替换配置文件中的路径, 执行命令如下所示。
sed -i 's?base_path = /home/yuqing/fastdfs?base_path = /home/fastdfs/tracker?g' /etc/fdfs/tracker.conf
可以通过一下命令查看是否修改成功
sudo vi /etc/fdfs/tracker.conf
启动 tracker ,以后想要停止 tracker ,可以使用 /etc/init.d/fdfs_trackerd stop 命令。
/etc/init.d/fdfs_trackerd start #如果卡住,可以按 Ctrl +C 退出,再查看进程是否启动,则用 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
查看进程中是否启动成功,如下图所示即为成功
ps -ef |grep fdfs
设置 tracker 开机自启动,防止断电,或者重启后不提供服务
chkconfig fdfs_trackerd on #开机自启动
chkconfig --add fdfs_trackerd
chkconfig fdfs_trackerd --list
#fdfs_trackerd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ,有此信息说明设置成功
执行如下命令查看 netstat,可以看到 fdfs_trackerd 服务正在监听端口 22122,并且状态为LISTEN,表示该服务正在运行并等待连接
netstat -ntlp | grep fdfs
4.2 修改 storage.conf 配置文件并启动 storage
创建 storage 的目录
mkdir -p /home/fastdfs/storage
将配置文件示例复制一份到 /etc/fdfs 目录下,执行命令如下。
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
修改配置文件 /etc/fdfs/tracker.conf,替换配置文件中的路径, 执行命令如下所示。
sed -i 's?base_path = /home/yuqing/fastdfs?base_path = /home/fastdfs/storage?g' /etc/fdfs/storage.conf
sed -i 's?store_path0 = /home/yuqing/fastdfs?store_path0 = /home/fastdfs/storage?g' /etc/fdfs/storage.conf
修改配置文件中的 tracker_server 为自己虚拟机的 ip 地址。
vi /etc/fdfs/storage.conf
找到文件内容如下,将其中两条 tracker_server 的记录注释掉,再添加一条自己 ip 的记录(ip addr 命令),由于是一台 tracker 提供服务,所以只添加一条,如果是集群,则根据实际情况修改。
# tracker_server can ocur more than once for multi tracker servers.
# the value format of tracker_server is "HOST:PORT",
# the HOST can be hostname or ip address,
# and the HOST can be dual IPs or hostnames seperated by comma,
# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
# or two different types of inner (intranet) IPs.
# for example: 192.168.2.100,122.244.141.46:22122
# another eg.: 192.168.1.10,172.17.4.21:22122
tracker_server = 192.168.112.23:22122
#tracker_server = 192.168.209.121:22122
#tracker_server = 192.168.209.122:22122
修改后启动 storage 服务器。
/etc/init.d/fdfs_storaged start #如果卡住,则用 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
查看进程是否启动成功。
添加该服务至开机自启动。
chkconfig fdfs_storaged on
chkconfig --add fdfs_storaged
chkconfig fdfs_storaged --list
#fdfs_storaged 0:off 1:off 2:on 3:on 4:on 5:on 6:off 成功标志
4.3 修改 iptables 配置增加服务端口
执行如下命令,查看 iptables 的状态。
cat /etc/sysconfig/iptables
可以看到当前配置下, TCP 只开放了端口22,还需要把 tracker 对外服务的 22122 端口以及 storage 对外服务的 23000端口也开放,执行如下命令可修改。
sed -i "10 a -A INPUT -p tcp -m state --state NEW -m tcp --dport 22122 -j ACCEPT" /etc/sysconfig/iptables
sed -i "10 a -A INPUT -p tcp -m state --state NEW -m tcp --dport 23000 -j ACCEPT" /etc/sysconfig/iptables
再次查看 iptables 可以看到 22122 和 23000 端口也已开放。然后重启 iptables 以生效。
service iptables restart
最后查看当前服务器的状态。
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
看到 storage 服务器处于激活状态即可。
4.4 修改 client.conf 配置文件
将 client 配置文件示例复制一份到 /etc/fdfs 目录下,执行命令如下。
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
修改文件中的默认路径。
sed -i 's?base_path = /home/yuqing/fastdfs?base_path = /home/fastdfs/tracker?g' /etc/fdfs/client.conf
修改客户端中 tracker_server 的路径。
vi /etc/fdfs/client.conf
# tracker_server can ocur more than once for multi tracker servers.
# the value format of tracker_server is "HOST:PORT",
# the HOST can be hostname or ip address,
# and the HOST can be dual IPs or hostnames seperated by comma,
# the dual IPS must be an inner (intranet) IP and an outer (extranet) IP,
# or two different types of inner (intranet) IPs.
# for example: 192.168.2.100,122.244.141.46:22122
# another eg.: 192.168.1.10,172.17.4.21:22122
tracker_server = 192.168.112.23:22122
#tracker_server = 192.168.209.121:22122
#tracker_server = 192.168.209.122:22122
五、上传文件测试
验证是否可以上传文件,比如上传文件 /usr/local/src/fastdfs/COPYING-3_0.txt,执行如下命令。
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs/COPYING-3_0.txt
上传成功显示如下,返回上传文件的位置。
根据返回信息可知文件的上传到的位置,后面安装 Nginx 模块后可以通过这个 file_id 静态访问到资源。
cd /home/fastdfs/storage/data/00/00
ls
至此,FastDFS 服务部署成功。
要想实现浏览器访问服务器以获取文件资源,请移步这篇文章——在 storage 服务器上配置 FastDFS-Nginx-Module
参考文章: