一、简介

FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成

fastfds有两个角色:跟踪服务和存储服务

跟踪服务控制:主要做调度工作,在访问上起负载均衡的作用。

存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据

不同组的Storage server之间不会相互通信,同组内的Storage server之间会相互连接进行文件同步。

上传:

下载:

二、安装

https://github.com/happyfish100

1、安装libfastcommon

unzip libfastcommon-master.zip
cd libfastcommon-master
yum install gcc
./make.sh && ./make.sh install

2、安装 FastDFS

unzip  fastdfs-master.zip 
cd fastdfs-master
./make.sh && ./make.sh install

3、配置 Tracker 服务

mkdir -pv /data/fdfs_tracker
1、修改配置文件
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
vim tracker.conf
base_path=/data/fdfs_tracker
2、启动服务
/etc/init.d/fdfs_trackerd start
netstat -lnt | grep 22122

4、配置 Storage 服务

mkdir -pv /data/fdfs_storage/base
mkdir -pv /data/fdfs_storage/store
1、修改配置文件
cd /etc/fdfs
cp storage.conf.samplestorage.conf
vim storage.conf
base_path=/data/fdfs_storage/base #运行数据文件和日志目录
store_path0=/data/fdfs_storage/store #实际文件存储路径
tracker_server=192.168.4.16:22122
tracker_server=192.168.4.17:22122 2、启动服务
/etc/init.d/fdfs_storaged start
netstat -lnt| grep 23000

5、服务监听测试

测试storage服务器是否登记到tracker服务器

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

6、客户端配置

cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf
base_path=/tmp
tracker_server=192.168.4.16:22122
tracker_server=192.168.4.17:22122

上传文件:

fdfs_upload_file /etc/fdfs/client.conf /etc/hosts

下载文件:

fdfs_download_file etc/fdfs/client.conf  group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404

查看文件信息

fdfs_file_info /etc/fdfs/client.conf  group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404

删除文件

fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404

追加上传:

echo abc > f1.txt
echo def > f2.txt
fdfs_upload_appender /etc/fdfs/client.conf f1.txt
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txt 内容和f1.txt一致
fdfs_append_file /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txtf2.txt 追加上传
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txt 内容f1+f2

删除某个storagegroup

1、停止服务
/etc/init.d/fdfs_storaged stop
2、删除节点
fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.4.17

php客户端:

1、安装模块
yum install php php-devel php-fpm php-mbstring php-common
cd fastdfs-master/php_client/
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config
make && make install
2、测试
cat fastdfs_client.ini >> /etc/php.ini #追加到php.ini
/usr/bin/php fastdfs_test.php
/usr/bin/php -i | grep configure #查看php编译参数
/usr/bin/php -i | grep php.ini #查看ini文件路径

Java客户端:

java -version  检查Java环境
下载 https://github.com/happyfish100/fastdfs-client-java
yum install ant
cd fastdfs-client-java/src
ant
生成 /root/fastdfs-client-java/src/build/fastdfs_client.jar

上传:

java -cp fastdfs_client.jar org.csource.fastdfs.test.TestClient /etc/fdfs/client.conf /etc/resolv.conf  

监控fastdfs的状态

java -cp fastdfs_client.jar  org.csource.fastdfs.test.Monitor /etc/fdfs/client.conf

nginx模块客户端:

https://github.com/happyfish100/fastdfs-nginx-module

1、下载并解压
unzip fastdfs-nginx-module-master.zip
2、重新编译nginx,添加模块
cd nginx
./configure --prefix=/app/nginx -add-module=/root/fastdfs-nginx-module/src/
make (只make不make install,make install后会覆盖之前的安装)
cp objs/nginx /app/nginx/sbin/nginx
3、修改配置
cd /root/fastdfs-nginx-module/src/
cp mod_fastdfs.conf /etc/fdfs/
cd /root/fastdfs/conf/
cp anti-steal.jpg http.conf mime.types /etc/fdfs/
touch /var/log/mod_fastdfs.log
chown nginx.nginx /var/log/mod_fastdfs.log
vim /etc/nginx/nginx.conf
location /group1/M00 { root /data/fdfs_storage/store; ngx_fastdfs_module; }
vim /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.4.16:22122
tracker_server=192.168.4.17:22122
url_have_group_name=true
store_path0=/data/fastdfs/storage # 要和/etc/fdfs/storage.conf里的一致
log_filename=/var/log/mod_fastdfs.log
response_mode=proxy
nginx -t
nginx -s stop && nginx

上传测试:

fdfs_upload_file /etc/fdfs/client.conf DSC_0171.JPG

浏览器访问:http://192.168.4.16/group1/M00/00/00/wKgXhVh545iAP6ETADyH-kmtQ2U888.JPG

注:生产中每个storage server上都要装fastdfs-nginx-module

学习FastDfs(一)的更多相关文章

  1. 学习FastDfs(四)

    1.简介 FastDFS 是一个开源的高性能分布式文件系统(DFS). 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡.主要解决了海量数据存储问题,特别适合以中小文件(建议范围: ...

  2. 学习FastDfs(三)

    FASTDFS是什么 FastDFS是由国人余庆所开发,其项目地址:https://github.com/happyfish100 FastDFS是一个轻量级的开源分布式文件系统,主要解决了大容量的文 ...

  3. 学习FastDfs(二)

    分布式文件系统(DFS) 指文件系统管理的物理存储资源不一定直接连接在本地节点上 而是通过计算机网络与节点相连 分布式文件系统的设计基于客户机/服务器模式 一个典型的网络可能包括多个多个用户访问的服务 ...

  4. linux搭建简易版本的FastDFS服务器

    开发环境:centos7环境 搭建FastDFS集群搭建非常复杂,对于初期学习FastDFS来说,搭建个单机版的作为入门更为实际一些. 首先感谢“在京奋斗者“”博主的详细搭建过程,附上博客地址http ...

  5. FastDFS-单机版安装

    转载自: 搭建单机版的FastDFS服务器 * 为了便于理解,其中顺序有改变. 1.第八步创建软链接,可以等到第九步结束后进行.如果提前在第八步创建软链接,因为还没有安装 libfdfsclient. ...

  6. U-Learning 后端开发日志(建设中...)

    目录 U-Learning--基于泛在学习的教学系统 项目背景 技术栈 框架 中间件 插件 里程碑 CentOS 7搭建JAVA开发环境 接口参数校验(不使用hibernate-validator,规 ...

  7. fastdfs集群安装过程_学习笔记

    最终效果 初始化为6个节点 在/usr/local/software 目录下上传需要用到tar包,分别在各个节点上传 使用scp 将本地software目录复制到其他节点上 73.74为 tracke ...

  8. Dubbo入门到精通学习笔记(八):ActiveMQ的安装与使用(单节点)、Redis的安装与使用(单节点)、FastDFS分布式文件系统的安装与使用(单节点)

    文章目录 ActiveMQ的安装与使用(单节点) 安装(单节点) 使用 目录结构 edu-common-parent edu-demo-mqproducer edu-demo-mqconsumer 测 ...

  9. FastDFS源码学习(一)FastDFS介绍及源码编译安装

    FastDFS是淘宝的余庆主导开发的一个分布式文件系统,采用C语言开发,性能较优.在淘宝网.京东商城.支付宝和某些网盘等系统均有使用,使用场景十分广泛. 下图来源:https://blog.csdn. ...

随机推荐

  1. 深度测评,商业智能BI、报表工具谁更好用?

    在很多人入门数据分析师或者投身大数据行业的时候,必然会听到的两个词就是"报表工具"和"BI商业智能"."BI"一词已被更广泛地知晓,但提起B ...

  2. 【windows 操作系统】并发

    并发 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行.其中两种并发关系分别是同步和互斥 微观角度 所有的并发处理都有排队等候,唤醒,执行等 ...

  3. 【C# IO 操作】C#修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

    代码实现 在C盘添加一个文件夹,并在文件夹内部,新建一个文本文件,如图所示: 该文件夹下,新建一个文本文件,如图所示: 为文件添加完全控制权限: /// <summary> /// 为文件 ...

  4. Git——版本控制器概述

    一.版本控制 版本控制(Revision contontrol)是一种在开发过程中用于管理修改历史,方便查看更改历史记录,备份以便恢复以前版本的软件工程的技术. 1.实现跨区域多人协同开发 2.追踪和 ...

  5. JZ-039-平衡二叉树

    平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 题目链接: 平衡二叉树 代码 /** * 标题:平衡二叉树 * 题目 ...

  6. Eureka单机&集群配置

    目录 Eureka是什么 自我保护机制 版本选择 服务搭建 创建项目 导入GAV坐标 application启动类添加注解 配置yml 启动项目 集群配置 修改上面的yml 打jar包到另外一台电脑O ...

  7. SQL从零到迅速精通【实用函数(3)】

    1.LOWER()函数 使用LOWER函数将字符串中所有字幕字符转换为小写,输入语句如下. SELECT LOWER('BEAUTIFUL'),LOWER('Well'); 2.UPPER()函数 S ...

  8. react 16.8版本新特性以及对react开发的影响

    Facebook团队对社区上的MVC框架都不太满意的情况下,开发了一套开源的前端框架react,于2013年发布第一个版本. react最开始倡导函数式编程,使用function以及内部方法React ...

  9. Docker 部署xxl-job 报错:xxl-rpc remoting error(connect timed out), for url : xxxxxx

    使用Docker 部署的xxl-job,当调度中心和执行器部署在不同的容器内,此时xxl-job调用执行器的服务就会报: address:http://172.0.0.1:8841/ code:500 ...

  10. 无法加载文件 **.ps1,系统中禁止执行脚本

    控制台执行命令后出现 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing" 在控制台执行命令: s ...