FastDFS安装及使用
一、FastDFS简介
1、 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
2、FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
3、存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件meta data是文件属性列表,可以包含多个键值对。
4、FastDFS系统结构如下图所示:
(请注意FastDFS目前还不能在windows系统上运行,这里可以选择使用Vmware创建ubuntu虚拟机,在Ubuntu中使用FastDFS,在Vmware上面使用Ubuntu可以参考我的另外一篇文档)
二、FastDFS安装
FasDFS安装大致可以分为三步(这里我用的是虚拟机Ubuntu,创建配置虚拟机Ubuntu时选择Ubuntu不要选择Ubuntu64,不然后面的依赖会出现问题,导致库不能正常安装)
· Tracker安装
· Storage安装
· Nginx安装
1、在Ubuntu中搭建好环境
由于FastDFS是采用C语言开发的,所以必须要有gcc环境,输入命令
sudo apt install gcc
Ubuntu中运行终端用sudo apt install +名字进行安装,可以用sudo -i以root身份运行,然后就可以直接用apt install +名字运行,也可以解决后面因为权限不够许多命令不能操作的问题。
2、安装好两个库libevent
2.1 、下载地址: https://libevent.org/ 然后找到压缩包进行下载
或者直接在终端终端输入命令(第一次运行Ubuntu可能没有wget命令,按照提示进行下载就行,后面若遇见不能运行的命令也都按照提示进行下载即可)。这里大家尽量选择2.1.8这个版本
wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
下载完成之后依次执行以下命令(小技巧:文件名字可以使用Tab键自动补全)
tar -zxvf libevent-2.1.12-stable.tar.gz //解压
mkdir /usr/lib/libevent
cd libevent-2.1.12-stable //进入解压后的文件
./configure -prefix=/usr/lib/libevent //配置
make //编译
make install //安装
执行./configure…这条语句的时候可能会有如下提示
这个表示没有成功,只需要在该语句后面加上参数 --disable-openssl即可
2.2 、安装libfastcommon库,这是FastDFS提供的,包含FastDFS需要的一些基础库
下载地址:https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz
同样可以在终端使用wget下载:
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz
(注:下载包就直接主目录下载即可,不需要特意进入某个文件夹或者新建,该包到时候会复制到我们需要用到的文件目录中解压、编译、安装,后面的包都是直接主目录下载)。
使用cp + 文件全名 + 目标*路径命令将下载的libfastcommon拷贝到usr/local/目录下,然后按顺序执行以下命令
cd /usr/local //进入复制目录下
tar -zxvf V1.0.43.tar.gz //解压文件
cd libfastcommon-1.0.43/ //进入解压的文件
./make.sh //编译
./make.sh install //安装
如果编译安装出现问题可能是包的下载未成功(后面一样,这个是因为在github下载偶尔会出问题),可以使用wget再下载一次,然后还是顺序执行上面的步骤。正确执行完所有命令之后进入
3、安装Tracker
Tracker和Storage在同一个安装包当中,所以只需要下载一次就行
下载地址:https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz或者执行命令:
wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
这里建议要使用6.43以上的版本,不然后面安装fastdfs-nginx-module时会报错。完成之后还是使用cp命令,然后依次执行下面的命令,步骤差不多就不做过多解释。
cp V6.06.tar.gz /usr/local
cd /usr/local //进入复制目录下
tar -zxvf V6.06.tar.gz //解压文件
cd fastdfs-6.06/ //进入解压的文件
./make.sh //编译
./make.sh install //安装
完成之后在进入fastdfs-6.06中的conf目录执行以下命令复制里面的文件到etc/fdfs/里面,后面会用到
cd conf/
cp ./* /etc/fdfs/
进入该目录配置tracker文件
cd /etc/fdfs/
vi tracker.conf
在编辑文件的时候可能会出一些编辑问题,可以下载终端下载vim然后进行编辑
需要修改以下地方
将这里home后面的路径改成自己已有的路径,需要使用mkdir提前建好fastdfs文件目录,然后保存退出,在当前目录下输入以下命令运行Tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
若无任何提示,则证明运行成功
4、安装Storage
之前说过Tracker和Storage在同一个包中,所以安装Tracker的时候Storage就已经安装好了,我们只需要给它进行配置就行了,执行以下代码:
cd /etc/fdfs/
vi storage.conf
同上面一样将这两个路径改成自己的,store_path会有两个路径,下面的那个路径注释了就行了。
可以在终端输入ifconfig查看虚拟机的IP,然后将这个里面方框的IP改成自己的,同样下面的那个tracker_server注释掉。
然后执行以下命令启动sStorage:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
若无任何提示表示成功运行
5、Nginx安装
· 安装Nginx
**·**在Storage中安装fastdfs-nginx-module
5.1、Nginx下载地址http://nginx.org/en/download.html
或者终端输入
wget http://nginx.org/download/nginx-1.19.10.tar.gz
下载之后需要下载好相关依赖,直接执行以下代码:
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g-dev
sudo apt-get install openssl libssl-dev
然后解压配置编译安装
tar -zxvf nginx-1.19.10.tar.gz
cd nginx-1.19.10/
./configure //配置
make
make install
5.2 、首先下载fastdfs-nginx-module
下载地址:
https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
或者终端输入:
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
然后执行以下命令:
cp V1.22.tar.gz /usr/local/
cd /usr/local/
tar -zxvf V1.22.tar.gz
cd fastdfs-nginx-module-1.22
cp src/mod_fastdfs.conf /etc/fdfs/ //复制这个conf文件到etc/fdfs/里面
vi /etc/fdfs/mod_fastdfs.conf //打开这个.conf
修改以下内容
与上面修改方法差不多,然后保存退出。执行以下命令:
cd nginx-1.19.10/ //进入nginx目录
//重新编译安装
./configure --add-module=/usr/local/fastdfs-nginx-module-1.22/src
make
make install
cd /usr/local/nginx/conf/
vi nginx.conf //配置
添加以下内容:
代码:
location ~/group([0-9]){
root /home/yang/fastdfs/data;
ngx_fastdfs_module;
}
然后启动Nginx,执行以下代码:
../sbin/nginx
出现如下代码则表示启动成功
按照此步骤就可以成功运行,若不能运行请仔细核对每一步骤,在编译安装配置时可能会出现一些警告提示,按照提示添加参数即可。具体的使用可以参照我的另一篇博客,我用IDEA的springboot框架对FastDFS进行了简单的使用。