FastDFS概念
FastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等
分布式文件系统和传统方式存储区别
FastDFS环境部署
学习:::将文件的第一列删除:cat fastdfs | awk '{$1=null;print $0}'
fastdfs环境准备
所有安装包/usr/local/src数据存储位置/home/dfs/
yum install gcc libevent libevent-devel -y ###编译环境
cd /usr/local/src/
git clone https://github.com/happyfish100/libfastcommon.git --depth 1 ###FastDFS分离出的一些公用函数包
cd libfastcommon/
./make.sh &&./make.sh install ###编译安装
cd ..
clone https://github.com/happyfish100/fastdfs.git --depth 1 ###FastDFS本体
cd fastdfs/
./make.sh && ./make.sh install ##编译安装
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf ##客户端文件,测试用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ ##供nginx访问使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/
cd ..
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1 ###FastDFS和nginx的关联模块
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
cd ..
cd src/
wget http://nginx.org/download/nginx-1.15.4.tar.gz ##下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz ###解压
cd nginx-1.15.4/
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src ##添加fastdfs-nginx-module模块
make && make install
单机部署
tracker配置
vim /etc/fdfs/tracker.conf
port=22122
# tracker服务器端口(默认22122,一般不修改)
base_path=/home/dfs # 存储日志和数据的根目录
storage配置
vim /etc/fdfs/storage.conf
port=23000
# storage服务端口(默认23000,一般不修改)
base_path=/home/dfs # 数据和日志文件存储根目录
store_path0=/home/dfs # 第一个存储目录
tracker_server=10.152.25.11:22122
# tracker服务器IP和端口
启动tracker和storage
fdfs_storaged /etc/fdfs/storage.conf #启动storage
fdfs_trackerd /etc/fdfs/tracker.conf #启动tracker
测试上传下载删除
# cd ~
# vim test.txt
Test!!!!!!!!!!!!!!
# ps -fe | grep fdfs
root
15016
14457
0
18:48
pts/1
00:00:00
grep --color=auto fdfs
root
27875
1
0
14:00
?
00:00:05
fdfs_storaged /etc/fdfs/storage.conf
root
28018
1
0
14:01
?
00:00:03
fdfs_trackerd /etc/fdfs/tracker.conf
# fdfs_test /etc/fdfs/client.conf upload ~/test.txt #上传
tracker_query_storage_store_list_without_group:
server
1. group_name=, ip_addr=10.152.25.11, port=23000
group_name=group1, ip_addr=10.152.25.11, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/CpgZC17wjZmAaVuCAAAAE41An-E762.txt
source ip address:
10.152.25.11
file timestamp=2020-06-22
18:53:13
file size=19
file crc32=2369822689
example file url: http://10.152.25.11:8888/group1/M00/00/00/CpgZC17wjZmAaVuCAAAAE41An-E762.txt
storage_upload_slave_by_filename
group_name=group1, remote_filename=M00/00/00/CpgZC17wjZmAaVuCAAAAE41An-E762_big.txt
source ip address:
10.152.25.11
file timestamp=2020-06-22
18:53:13
file size=19
file crc32=2369822689
example file url: http://10.152.25.11:8888/group1/M00/00/00/CpgZC17wjZmAaVuCAAAAE41An-E762_big.txt
# fdfs_test /etc/fdfs/client.conf download group1 M00/00/00/CpgZC17wjZmAaVuCAAAAE41An-E762.txt ##下载;下载必须有组,当上传时可以看到所属组,还可以看到filename的地址。
# ll
total
16
-rw-r--r--
1
root root
19
Jun
22
18:53
CpgZC17wjZmAaVuCAAAAE41An-E762_big.txt #备份
-rw-r--r--
1
root root
49
Jun
22
18:53
CpgZC17wjZmAaVuCAAAAE41An-E762_big.txt-m
-rw-r--r--
1
root root
19
Jun
22
18:53
CpgZC17wjZmAaVuCAAAAE41An-E762.txt #原件
-rw-r--r--
1
root root
49
Jun
22
18:53
CpgZC17wjZmAaVuCAAAAE41An-E762.txt-m
# pwd
/home/dfs/data/00/00
# fdfs_test /etc/fdfs/client.conf delete group1 M00/00/00/CpgZC17wjZmAaVuCAAAAE41An-E762_big.txt #删除备份
storage=10.152.25.11:23000
delete file success
You have
new
mail in /var/spool/mail/root
# ll
total
8
-rw-r--r--
1
root root
19
Jun
22
18:53
CpgZC17wjZmAaVuCAAAAE41An-E762.txt
-rw-r--r--
1
root root
49
Jun
22
18:53
CpgZC17wjZmAaVuCAAAAE41An-E762.txt-m