分布式存储-FastDFS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式存储-FastDFS相关的知识,希望对你有一定的参考价值。
FastDFS基础:是一款开源分布式文件系统。用纯C语言实现
功能包括:文件存储,文件同步,文件访问(上传,下载)
解决了大容量存储和负载均衡的问题
服务端有两个角色:
跟踪器 做调度工作、启负载均衡作用 (192.168.4.70)
存储节点 存储、同步和提供存取接口,对文件的数据进行管理(192.168.4.71|72)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
一、装包
fastdfs-nginx-module_v1.16.tar.gz
FastDFS_v4.06.tar.gz
libevent-devel-1.4.13-4.el6.x86_6
libevent-doc-1.4.13-4.el6.noarch.
libevent-headers-1.4.13-4.el6.noa
nginx-1.7.10.tar.gz
1、配置主控服务器70
[[email protected] ~]# yum -y install gcc gcc-c++
[[email protected] ~]# yum -y install libevent
[[email protected] ~]# yum -y install libevent-*
libevent-headers-1.4.13-4.el6.noarch
libevent-devel-1.4.13-4.el6.x86_64
libevent-doc-1.4.13-4.el6.noarch
[[email protected] ~]# tar -zxf FastDFS_v4.06.tar.gz 解压源码包
[[email protected] ~]# cd FastDFS
[[email protected] FastDFS]# ./make.sh
[[email protected] FastDFS]# ./make.sh install
[[email protected] FastDFS]# ls /usr/local/bin/ 存放命令的文件
[[email protected] FastDFS]# ls /etc/fdfs/ 配置文件
二、
1、修改配置文件
[[email protected] FastDFS]# vim /etc/fdfs/tracker.conf
22 base_path=/data/fastdfs 指定日志文件目录
36 store_lookup=0 轮询
182 use_storage_id = true
186 storage_ids_filename = storage_ids.conf id号在这个文件指
[[email protected] FastDFS]# mkdir -p /data/fastdfs
2、 创建 storage_ids.conf
[[email protected] FastDFS]# cp conf/storage_ids.conf /etc/fdfs/
[[email protected] FastDFS]# vim /etc/fdfs/storage_ids.conf 存储组和ip地址
# <id> <group_name> <ip_or_hostname>
100001 group1 192.168.4.71
100002 group1 192.168.4.72
3、配置节点服务器(70、71)
安装依赖包、FastDFS
[[email protected] ~]# yum -y install gcc gcc-c++ libevent
[[email protected] ~]# yum -y install libevent-*
[[email protected] FastDFS]# ./make.sh
[[email protected] FastDFS]# ./make.sh install
[[email protected] FastDFS]# vim /etc/fdfs/storage.conf
group_name=group1 指定的组
37 base_path=/data/fastdfs 日志、数据文件存放目录
96 store_path_count=1 存储数据路径个数
85 sync_start_time=00:00 推送起始时间
89 sync_end_time=23:59 推送结束时间
100 store_path0=/data/fastdfs 存放数据目录
109 tracker_server=192.168.4.70:22122 主控服务器ip和端口号
140 file_distribute_path_mode=0 数据存储数据路径
145 file_distribute_rotate_count=100 当第一个文件达到100然后往下一个路径存
节点服务器72
[[email protected] ~]# yum -y install gcc gcc-c++ libevent libevent-*
[[email protected] ~]# mkdir -p /data/fastdfs
[[email protected] ~]# mount /dev/vdb1 /data/fastdfs
[[email protected] ~]# df -h
[[email protected] ~]# tar -zxf FastDFS_v4.06.tar.gz
[[email protected] FastDFS]# cd FastDFS
[[email protected] FastDFS]# ./make.sh && ./make.sh install
修改配置文件
[[email protected] FastDFS]# vim /etc/fdfs/storage.conf
group_name=group1 指定的组
37 base_path=/data/fastdfs 日志、数据文件存放目录
96 store_path_count=1 存储数据路径个数
85 sync_start_time=00:00 推送起始时间
89 sync_end_time=23:59 推送结束时间
100 store_path0=/data/fastdfs 存放数据目录
109 tracker_server=192.168.4.70:22122 主控服务器ip和端口号
140 file_distribute_path_mode=0 数据存储数据路径
145 file_distribute_rotate_count=100 当第一个文件达到100然后往下一个路径存
三、启动服务
3.1 先启主控主机,后启存储节点
[[email protected] FastDFS]# cp init.d/fdfs_trackerd /etc/init.d/ 创建启动脚本
[[email protected] FastDFS]# chmod +x /etc/init.d/fdfs_trackerd
[[email protected] FastDFS]# chkconfig --add fdfs_trackerd 添加系统命令
[[email protected] FastDFS]# service fdfs_trackerd start 启动服务
[[email protected] /]# netstat -pantu | grep :22122 查看端口号
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 3243/fdfs_trackerd
tcp 0 0 192.168.4.70:22122 192.168.4.71:53060 ESTABLISHED 3243/fdfs_trackerd
tcp 0 0 192.168.4.70:22122 192.168.4.72:40489 ESTABLISHED 3243/fdfs_trackerd
【节点服务器 71】
[[email protected] FastDFS]# cp init.d/fdfs_storaged /etc/init.d/
[[email protected] FastDFS]# chmod +x /etc/init.d/fdfs_storaged
[[email protected] FastDFS]# /etc/init.d/fdfs_storaged start 生成文件
[[email protected] FastDFS]# netstat -pantu | grep :23000
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 3198/fdfs_storaged
tcp 0 0 192.168.4.71:49208 192.168.4.72:23000 ESTABLISHED 3198/fdfs_storaged
tcp 0 0 192.168.4.71:23000 192.168.4.72:60515
【节点服务器 72】
[[email protected] FastDFS]# cp init.d/fdfs_storaged /etc/init.d/
[[email protected] FastDFS]# chmod +x /etc/init.d/fdfs_storaged
[[email protected] FastDFS]# /etc/init.d/fdfs_storaged start
[[email protected] FastDFS]# netstat -pantu | grep 23000
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 4364/fdfs_storaged
tcp 0 0 192.168.4.72:60515 192.168.4.71:23000 ESTABLISHED 4364/fdfs_storaged
tcp 0 0 192.168.4.72:23000 192.168.4.71:49208 ESTABLISHED 4364/fdfs_storaged
四、客户端访问 主控服务器 验证配置
1、提供访问命令:上传文件的命令,下载文件的命令
[[email protected] 桌面]# mkdir /root/bin
[[email protected] /]# scp /usr/local/bin/fdfs_test 192.168.4.254:/root/bin/ 测试的命令
[[email protected] /]# scp /usr/local/bin/fdfs_upload_file 192.168.4.254:/root/bin/
[[email protected] /]# scp /usr/local/bin/fdfs_download_file 192.168.4.254:/root/bin/
[[email protected] /]# scp /usr/local/bin/fdfs_delete_file 192.168.4.254:/root/bin/
fdfs_test 测试
fdfs_upload_file 上传
fdfs_download_file 下载
fdfs_delete_file 删除
[[email protected] 桌面]# ls /root/bin/
fdfs_delete_file fdfs_download_file fdfs_test fdfs_upload_file
2、连接主控节点主机的配置文件 client.conf
[[email protected] 桌面]# mkdir /etc/fdfs
[[email protected] ~]# scp /etc/fdfs/client.conf 192.168.4.254:/etc/fdfs/
[[email protected] 桌面]# vim /etc/fdfs/client.conf
10 base_path=/data/fastdfs
14 tracker_server=192.168.4.70:22122
[[email protected] 桌面]# mkdir -p /data/fastdfs
3、上传文件
#fdfs_test /etc/fdfs/client.conf upload install.log
[[email protected] 桌面]# head -3 /etc/passwd > /root/user.txt
[[email protected] 桌面]# fdfs_test /etc/fdfs/client.conf upload /root/user.txt
显示放在72主机上的名字
group_name=group1, ip_addr=192.168.4.72, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt
file timestamp=2018-01-16 06:31:02
file size=105
file crc32=3908252234
file url:
http://192.168.4.70:8080/group1/M00/00/00/wKgESFpdK6aATl9在节点服务器上查看
[[email protected] 00]# cat /data/fastdfs/data/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[[email protected] FastDFS]# cat /data/fastdfs/data/00/00/wKgESFpdK6aATl9fAAAAaejzMko523.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
上传图片
[[email protected] 桌面]# fdfs_upload_file /etc/fdfs/client.conf /root/tedu.jpg
group1/M00/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
查看
[[email protected] FastDFS]#ls /data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
/data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
[[email protected] FastDFS]#ls /data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
/data/fastdfs/data/00/00/wKgER1pdLwOAdJYjAACwEV-ILDc279.jpg
以上是关于分布式存储-FastDFS的主要内容,如果未能解决你的问题,请参考以下文章