分布式存储-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的主要内容,如果未能解决你的问题,请参考以下文章

FastDFS分布式存储实战

(转) 分布式文件存储FastDFS初识FastDFS

FastdFS实现分布式存储

FastdFS实现分布式存储

FastdFS实现分布式存储

FastdFS实现分布式存储