工具篇-------分布式文件系统FastDFS环境安装(CentOS)
分布式文件系统可以解决以下四大问题:
1、代码服务器存储被快速占满; 2、分布式系统无法读取文件问题; 3、文件共享和备份; 4、文件统一管理等。
当然目前的分布式文件系统工具比较多(比如:mogileFS,fastDFS,mooseFS,glusterFS,ceph,lustre,NFS等),本文主要介绍如何安装与使用FastDFS分布式文件系统,有兴趣的小伙伴可以研究以下其他工具。。。
第一章:FastDFS的介绍
Fast文件系统主要由跟踪服务器(Tracker Server),存储服务器(Storage Server)和客户端(Client)三部分组成
- Tracker Server: 负责管理、调度和均衡所有的存储服务器和存储服务器组。
- Storage Server:提供容量和备份服务(简单来说就是用来存储文件的服务器);以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份;每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
- Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
第二章:FastDFS的安装
注:安装的时候可能会因为一些类似perl,gcc等工具未安装报错 ./make.sh: line 184: perl: command not found。请自行安装相关工具,然后继续下一步。。。
一、安装依赖包libfastcommon
1、下载:libfastcommon下载;
2、上传下载的zip包到安装服务器;
3、解压并安装;
## 解压代码包
unzip libfastcommon-master.zip
## 进入解压目录
cd libfastcommon-master
##编译
./make.sh
## 安装
./make.sh install
二、安装FastDFS
1、下载:FastDFS下载(下载你想要的版本,我用的最新的);
2、上传下载的tar包到安装服务器;
3、解压并安装(tar包的解压方式与zip包不一样);
## 解压代码包
tar zxvf FastDFS_v5.08.tar.gz
## 进入解压目录
cd FastDFS
##编译
./make.sh
## 安装
./make.sh install
三、配置跟踪服务器(Tracker Server)
注意:配置的base_path地址不存在时需要手动创建,否则会报错
##进入配置文件目录
cd /etc/fdfs/
##修改配置文件名
mv tracker.conf.sample tracker.conf
##修改配置文件
vi tracker.conf
##修改base_path地址:例如 base_path=/opt/fastdfs
##启动tracker
fdfs_trackerd /etc/fdfs/tracker.conf
##查看启动结果
netstat -unltp|grep fdfs
##设置开机自启动
vim /etc/rc.local
## 添加命令fdfs_trackerd /etc/fdfs/tracker.conf 到rc.local文件中
四、配置存储服务器(Storage Server)
注意:配置的base_path地址不存在时需要手动创建,否则会报错; Tracker Server地址必须配置
##进入配置文件目录
cd /etc/fdfs/
##修改配置文件名
mv storage.conf.sample storage.conf
##修改配置文件
vi storage.conf
##修改base_path(日志地址)地址:例如 base_path=/opt/fastdfs
##修改store_path(存储地址)地址:例如 store_path=/opt/fastdfs/storage_data
##tracker_server=127.0.0.1:22122
##group_name=group1用于配置集群
##启动storage
fdfs_storaged /etc/fdfs/storage.conf
##查看启动结果
netstat -unltp|grep fdfs
##设置开机自启动
vim /etc/rc.local
## 添加命令fdfs_storaged /etc/fdfs/storage.conf 到rc.local文件中
启动完成时候使用 fdfs_monitor /etc/fdfs/storage.conf 命令查看存储服务器集群详情,查看是否已经注册到Tracker Server上:
四、配置客户端(Client)
vi /etc/fdfs/client.conf
## tracker_server=127.0.0.1:22122
## http.tracker_server_port=80
## base_path=/home/fastdfs
至此,FastDFS安装完成。。。
测试:
fdfs_test /etc/fdfs/client.conf upload /opt/aaaa.txt
上传成功!!!!
注意:上面的安装好之后就已经实现了分布式文件服务器的功能,下面的第三章只是为了更加方便的用浏览器可以查看上传的文件。
第三章 FastDFS与Nginx集成
一、准备工作
安装一些编译代码所需要的软件
yum install -y gcc(安装libfastcommon时已经安装过)
yum install -y gcc-c++(安装libfastcommon时已经安装过)
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
二、安装和配置Nginx和fastdfs-nginx-module
1、下载 fastdfs-nginx-module和Nginx
## 下载 fastdfs-nginx-module与Nginx
## 网上搜下fastdfs-nginx-module_v1.16.tar.gz, 一大把。 完了上传到服务器
wget http://nginx.org/download/nginx-1.10.1.tar.gz
2、解压 fastdfs-nginx-module和Nginx
## 解压 fastdfs-nginx-module与Nginx
tar zxvf fastdfs-nginx-module_v1.16.tar.gz
tar zxvf nginx-1.10.1.tar.gz
3、修改fastdfs-nginx-module配置文件
vi /opt/practice/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf
## base_path=/home/fastdfs
## tracker_server=127.0.0.1:22122
## store_path0=/home/fastdfs
## storage_server_port=23001
vi /opt/practice/fastdfs/fastdfs-nginx-module/src/config
## CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
4、添加fastdfs模块到Nginx
## 进入Nginx目录
cd nginx-1.10.1
## 为Nginx添加fastdfs模块
./configure --prefix=/usr/local/nginx --add-module=/opt/practice/fastdfs/fastdfs-nginx-module/src/
添加成功标志:
5、编译和安装Nginx
cd nginx-1.10.1
make && make install
编译成功标识:
查看安装结果
/usr/local/nginx/sbin/nginx -V
fastdfs-nginx-module 安装成功。。
6、配置Nginx
vi /usr/local/nginx/conf/nginx.conf
添加:
location /group1/M00 {
root /home/fastdfs/data;
ngx_fastdfs_module;
}
7、拷贝配置文件到 /etc/fdfs/
## 拷贝FastDFS的配置文件
cd /opt/practice/fastdfs/FastDFS/conf/
scp anti-steal.jpg http.conf mime.types /etc/fdfs/
## 拷贝fastdfs-nginx-module的配置文件
scp /opt/practice/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
8、启动Nginx
## 建立软连接
ln -s /home/fastdfs/data /home/fastdfs/data/M00
## 启动Nginx
/usr/local/nginx/sbin/nginx
## 关闭防火墙(开放80端口也行)
service iptables stop
启动成功:
9 测试
fdfs_test /etc/fdfs/client.conf upload /opt/test.jpg
源文件:
查看上传结果:
OK,大功告成!!!!