FastDFS分布式文件系统集群

环境

ip fastdfs-role
192.168.1.115 Tracker +Storage
192.168.1.104 Tracker +Storage
192.168.1.106 Tracker +Storage

FastDFS安装配置

安装开发环境

# yum groupinstall "Development Tools" "Server platform Development" -y

安装libfastcommon

# git clone https://github.com/happyfish100/libfastcommon.git
# cd libfastcommon/
# ./make.sh
# ./make.sh install

安装Fastdfs

# git clone https://github.com/happyfish100/fastdfs.git
# cd fastdfs/
# ./make.sh
# ./make.sh install

3台机器都按这种方式安装好

配置Tracker

# cd /etc/fdfs/
# cp tracker.conf.sample tracker.conf
# vim tracker.conf
base_path=/data/fdfs/tracker
# mkdir -pv /data/fdfs/tracker
# /etc/init.d/fdfs_trackerd start  启动服务

配置Storage

# cd /etc/fdfs/
# cp storage.conf.sample storage.conf
# vim storage.conf
group_name=G1  #指定组名
base_path=/data/fdfs/storage # 用于存储数据
store_path_count=1 # 设置设备数量
store_path0=/data/fdfs/storage/m0 #指定存储路径0
  # 注意:同一组内存储路径不能冲突,例如:下一个节点的存储路径就是m2,m3....等
tracker_server=192.168.1.115:22122 #指定tracker
tracker_server=192.168.1.104:22122
tracker_server=192.168.1.106:22122

# mkdir -pv /data/fdfs/storage/m0
# /etc/init.d/fdfs_storaged start

配置client

# cp client.conf.sample client.conf
# vim client.conf
base_path=/data/fdfs/client
tracker_server=192.168.1.115:22122
tracker_server=192.168.1.104:22122
tracker_server=192.168.1.106:22122

# mkdir /data/fdfs/client

将3个配置文件分别拷贝到另外两台机器

# scp client.conf storage.conf tracker.conf 192.168.1.106:/etc/fdfs/
# scp client.conf storage.conf tracker.conf 192.168.1.115:/etc/fdfs/
# /etc/init.d/fdfs_trackerd restart
# /etc/init.d/fdfs_storaged restart

测试FastDFS

上传文件

  • fdfs_upload_file [storage_ip:port] [store_path_index]

    # fdfs_upload_file /etc/fdfs/client.conf /etc/issue
    G1/M00/00/00/wKgBaFe0S2eAZx-wAAAAF30Ccq87825622
    报错:
    [2016-08-17 18:06:28] ERROR - file: connection_pool.c, line: 130, connect to 192.168.1.115:22122 fail, errno: 113, error info: No route to host
    防火墙的原因 iptables -F

    查看文件

  • fdfs_file_info
    # fdfs_file_info /etc/fdfs/client.conf G1/M00/00/00/wKgBaFe0S2eAZx-wAAAAF30Ccq87825622
    source storage id: 0
    source ip address: 192.168.1.104
    file create timestamp: 2016-08-17 19:32:55
    file size: 23
    file crc32: 2097312431 (0x7D0272AF)

    下载文件

  • fdfs_download_file [local_filename] [ ]
    # fdfs_download_file /etc/fdfs/client.conf G1/M00/00/00/wKgBaFe0S2eAZx-wAAAAF30Ccq87825622

    查看存储节点状态

    # fdfs_monitor /etc/fdfs/client.conf

    配置nginx为storage server提供http访问接口

    下载fastdfs-nginx-module

    # git clone https://github.com/happyfish100/fastdfs-nginx-module.git

    下载nginx源码,并编译支持fastdfs

    # yum install openssl-devel pcre-devel -y &>/dev/null
    # wget http://nginx.org/download/nginx-1.10.1.tar.gz &>/dev/null
    # tar -xf nginx-1.10.1.tar.gz
    # useradd -s /sbin/nologin -M nginx
    # cd nginx-1.10.1
    ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/run/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre --add-module=../fastdfs-nginx-module/src
    # make -j 8
    # make install

    复制配置文件

    #  cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf  /etc/fdfs/
    #  cp /root/fastdfs/conf/{http.conf,mime.types}  /etc/fdfs/

    配置fastdfs-nginx-module配置文件

base_path=/data/fdfs/storage #存储节点的目录位置
tracker_server=192.168.1.115:22122
tracker_server=192.168.1.104:22122
tracker_server=192.168.1.106:22122   #指定定tracker-server
storage_server_port=23000
group_name=G1  #指定组名
url_have_group_name = true  #访问路径中是否包括组名
store_path_count=1 #配置路径个数
store_path0=/data/fdfs/storage/m0  #指定要查看的路径
[group1]
group_name=G1
storage_server_port=23000
store_path_count=1
store_path0=/data/fdfs/storage/m0
# scp /etc/fdfs/mod_fastdfs.conf 192.168.1.106:/etc/fdfs
# scp /etc/fdfs/mod_fastdfs.conf 192.168.1.115:/etc/fdfs

配置nginx

# vim /etc/nginx/nginx.conf
 location ~ /G[0-9]+/M00/ {
        root /data/fdfs/storage/m0/data/;
        ngx_fastdfs_module;
        }
# /usr/local/nginx/sbin/nginx

为存储文件路径穿件链接至M00

# ln -sv /data/fdfs/storage/m0/data  /data/fdfs/storage/m0/data/M00

启动nginx和重启storage并上传文件测试

# /usr/local/nginx/sbin/nginx
# fdfs_upload_file /etc/fdfs/client.conf /usr/share/wallpapers/CentOS7/contents/images/2560x1600.jpg
G1/M00/00/00/wKgBc1e0UamAEKGjAA6q2wjnW8s725.jpg

访问查看

http://192.168.1.106/G1/M00/00/00/wKgBaFe0UhKAbRbCAA6q2wjnW8s458.jpg
http://192.168.1.104/G1/M00/00/00/wKgBaFe0UhKAbRbCAA6q2wjnW8s458.jpg
http://192.168.1.115/G1/M00/00/00/wKgBaFe0UhKAbRbCAA6q2wjnW8s458.jpg

错误排查

返回28错误码

考虑是磁盘空间不足,无法上传新文件

[[email protected] ~]# fdfs_upload_file /etc/fdfs/client.conf 1.txt
[2017-05-01 15:10:33] ERROR - file: tracker_proto.c, line: 48, server: 192.168.1.106:22122, response status 28 != 0
tracker_query_storage fail, error no: 28, error info: No space left on device
[[email protected] ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             40G  3.8G   34G  11% /
tmpfs                 3.9G     0  3.9G   0% /dev/shm
/dev/mapper/vgs_data-lvol0
                      983G  835G   99G  90% /opt

发现空间还是够的,查看预留空间值

# vim /etc/fdfs/tracker.conf
reserved_storage_space = 10%  # 预留了10%的空间,很显然现在空间只剩10%的样子

临时解决方案:
图片服务器会保留很多已经失效的图片,如果不做好图片清理回收机制,在这方面投入将是无底洞,还是得根据业务来。
如果图片必须保存后面需要磁盘扩容前期就得做好规划,比如使用lvm逻辑卷等

# vim /etc/fdfs/tracker.conf
reserved_storage_space = 5%   # 所有tracker节点都修改下,然后重启服务
# /etc/init.d/fdfs_trackerd restart
# /etc/init.d/fdfs_storaged restart
# fdfs_upload_file /etc/fdfs/client.conf 1.txt   上传测试
G1/M00/83/8D/CixLa1kG4U-ARX-uAAAAAAAAAAA379.txt

原文地址:https://www.cnblogs.com/knmax/p/9211440.html

时间: 2024-10-09 16:43:20

FastDFS分布式文件系统集群的相关文章

FastDFS分布式文件系统集群安装

文档修订记录 跟踪服务器: Tracker Server1 IP:  10.10.16.201 FASTDFS-TRACKER-01 Tracker Server2 IP:  10.10.16.202 FASTDFS-TRACKER-02 存储服务器: Storage Server1 IP:  10.10.16.203 FASTDFS-STORAGE-01 Storage Server2 IP:  10.10.16.204 FASTDFS-STORAGE-02 集群中各操作系统环境设置: (1)

Moosefs分布式文件系统集群讲解配置

1 管理服务器(master-server):负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝 2 元数据日志服务器(changelog-server): 负责备份master服务器的变化,(一般情况下可以和管理服务器放在一起)文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作 3数据存储服务器(chunk-server):负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输. 4客户端(

GFS分布式文件系统集群(实例!!!)

GFS分布式文件系统集群项目 群集环境 卷类型 卷名称 卷类型 空间大小 Brick dis-volume 分布式卷 40G node1(/b1).node2(/b1) stripe-volume 条带卷 40G node1(/c1).node2(/c1) rep-volume 复制卷 20G node3(/b1).node4(/b1) dis-stripe 分布式条带卷 40G node1(/d1).node2(/d1).node3(/d1).node4(/d1) dis-rep 分布式复制卷

GFS分布式文件系统集群(理论篇)

GlusterFS概述 GlusterFS简介 开源的分布式文件系统 由存储服务器,客户端以及NFS/Samba存储网关组成 无元数据服务器 GlusterFS的特点 扩展性和高性能 高可用性 全局统一的命名空间 弹性卷管理 基于标准协议 GlusterFS术语 Brick : 存储节点 Volume : 卷 FUSE : 内核模块,用户端的交互模块 VFS : 虚拟端口 Glusterd : 服务 模块化堆栈架构 模块化.堆栈式的架构 通过对模块的组合,实现负责的功能 GlusterFS工作模

基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南

(WJW)基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南 [X] 前提条件 服务器列表: 192.168.1.84 hbase84 #hbase-master 192.168.1.85 hbase85 #hbase-regionserver,zookeeper 192.168.1.86 hbase86 #hbase-regionserver,zookeeper 192.168.1.87 hbase87 #hbase-regionserver,z

分布式ActiveMQ集群

分布式ActiveMQ集群的部署配置细节: 官方资料:http://activemq.apache.org/clustering.html 基本上看这个就足够了,本文就不具体分析配置文件了. 1.Queue consumer clusters: 同一个queue,如果一个consumer失效,那么未被确认的消息都会被发送到这个queue的其它consumer上.如果某个consumer处理消息比较快,那么它将处理更多的消息. Queue consumer clusters 不需要特殊的配置. 2

分布式服务器集群架构方案思考

nginx-reverse-proxy-conf 研究了一套完整的分布式服务器集群架构方案. 0x01.大型网站演化 简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率. 集群主要分为:高可用集群(High Availability Cluster),负载均衡集群(Load Balance Cluster,nginx即可实现),科学计算集群(High Performance Computing Cluster). 分布式是指将不同的业务分布在

分布式ActiveMQ集群--转载

原文地址:http://shensy.iteye.com/blog/1752529 回顾总结前一段时间学习的ActiveMQ分布式集群相关的知识,分享出来希望对看到的人有所帮助. 一.分布式ActiveMQ集群的部署配置细节: 官方资料:http://activemq.apache.org/clustering.html 基本上看这个就足够了,本文就不具体分析配置文件了. 1.Queue consumer clusters: 同一个queue,如果一个consumer失效,那么未被确认的消息都会

高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

(WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 为了部署HA集群,应该准备以下事情: namenode服务器: 运行namenode的服务器应该有相同的硬件配置. journalnode服务器:运行的journalnode进程非常轻量,可以部署在其他的服务器上.注意:必须允许至少3个节点.当然可以运行更多,但是必须是奇数个,如3,5,7,9个等等.当运行N个节点时,系统可以容忍至少(N-1)/2个节点失败而不影响正常运行. 在HA集群中,standby状态的