文件服务器之fastDFS
FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合中小文件(建议范围:4KB < file_size <500MB),对以文件为载体的在线服务,如相册网站、视频网站等。
fastDFS的组成:
tracker:起核心调度的作用,用于保存下面各个存储文件的信息,包括文件上传记录,下载记录等。是各个storage文件同步的核心。
storage:用于存储数据,定时向tracker发送自身信息。
client:通过访问tracker去上传或下载文件。
tracker和storage的对应关系:

一个tracker对应多个storage,又将storage集群抽象为组的概念,同一个组内的storage数据彼此同步,通过client向tracker中上传数据,而数据最后是存储在storage中的。
group之内的storage是数据冗余的关系,group之间的数据是负载均衡的关系。
fastDFS的安装:
因为安装包中是集成了tracker,storage,client的,所有无论要使用哪种功能,安装过程都是一样的,只是需要修改不同的配置文件即可:
安装过程:
1、安装开发环境
yum groupinstall "Development Tools" "Server platform Development" -y
2、安装libfastcommon
git clone https://github.com/happyfish100/libfastcommon.git
cd libfastcommon/
./make.sh
./make.sh install
3、安装fastdfs
cd /root/
git clone https://github.com/happyfish100/fastdfs.git
cd fastdfs/
./make.sh
./make.sh install
经过以上过程fastdfs已经安装完成,然后只需要到/etc/fdfs/下修改相应的配置文件即可:
tracker配置:
cd /etc/fdfs
cp tracker.conf.sample tracker.conf
vim /etc/fdfs/tracker.conf
base_path=/fdfs/tracker/data # 存储日志及tracker的状态信息的软件根目录
修改完配置文件之后可以创建数据存放的目录:mkdir -p /fdfs/tracker/data
之后可以直接启动服务:service fdfs_trackerd start
storage 配置:
cd /etc/fdfs/
cp storage.conf.sample storage.conf copy一份storage的配置文件
vim /etc/fdfs/storage.conf 修改配置文件
group_name=group1 #指定组名
base_path=/data/fdfs/storage # storage根目录
store_path_count=2 # 设置设备数量,即使用几个路径来存储数据,一般是应用到多块磁盘
store_path0=/data/fdfs/storage/m0 #指定存储路径0
store_path1=/data/fdfs/storage/m1 #指定存储路径1# 注意:同一组内存储路径不能冲突,例如:下一个节点的存储路径就是m2,m3....等
tracker_server=192.168.0.107:22122 #指定tracker
mkdir -pv /data/fdfs/storage/{m0,m1} # 创建数据目录
service fdfs_storaged start 启动服务
client配置
cd /etc/fdfs/
cp client.conf.sample client.conf
修改客户端配置文件:vim client.conf
base_path=/fdfs/client/data
tracker_server=192.168.0.107:22122
从客户端上传文件:
fdfs_upload_file /etc/fdfs/client.conf root.gz.tar
程序 所使用的配置文件 上传的文件(接路径)
删除文件:
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/rBURalsOVh2AeqF6AAFaxahaL98208.jpg
查看fastdfs集群状态:fdfs_monitor /etc/fdfs/client.conf
关于集群:
fastDFS的集群配置不难,只要在storage中指明相应的group就能自动加入到集群中了。
集群模式的storage配置文件需要注意两个字段:
group_name和tracker_server 这是一个多对多的关系,一个group可以属于多个tracker,而一个tracker可以拥有多个group。
具体的架构设计,应根据实际业务需求设置tracker和storage的数量以及它们之间的关系。
附:
fastDFS批量上传脚本:
#!/bin/bash
dir=/home/picture #将所有要上传的文件放在此目录下
for file_name in `ls $dir`;do
file_id=`fdfs_upload_file /etc/fdfs/client.conf $dir/$file_name`
if [ $? -eq 0 ];then
printf "%-40s %10s\n" "$file_name" "$file_id"
else
echo "This time for upload file has failed."
fi
done
文件服务器之fastDFS的更多相关文章
- Linux云计算-07_Linux文件服务器之vsftpd服务器
本章向读者介绍企业vsftpd服务器实战.匿名用户访问.系统用户访问及虚拟用户实战等. 1 vsftpd服务器企业实战 文件传输协议(File Transfer Protocol,FTP),基于该协议 ...
- 第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍
目录 1 背景 1.1 为什么需要分布式文件服务 1.1.1 单机时代 1.1.2 独立文件服务器 1.1.3 分布式文件系统 1.2 什么是FastDFS 2 系统架构 2.1 Tracker集群 ...
- Web服务器之iis,apache,tomcat三者之间的比较
IIS-Apache-Tomcat的区别 IIS与Tomcat的区别 IIS是微软公司的Web服务器.主要支持ASP语言环境. Tomcat是Java Servlet 2.2和JavaServer P ...
- 【转】Android 服务器之SFTP服务器上传下载功能
原文网址:http://blog.csdn.net/tanghua0809/article/details/47056327 本文主要是讲解Android服务器之SFTP服务器的上传下载功能,也是对之 ...
- linux下维护服务器之常用命令
linux下维护服务器之常用命令! 第1套如下: 正则表达式: 1.如何不要文件中的空白行和注释语句: [root@localhost ~]# grep -v '^$' 文件名 |grep -v '^ ...
- backup服务器之rsync服务
backup服务器之rsync服务 rsync是开源的.快速的.多功能的可实现全量及增量的本地或远程数据同步备份的优秀工具.它拥有scp.cp的全量复制功能,同时比scp.cp命令更优秀.更强大. ...
- CentOS文件服务与数据管理
CentOS文件服务与数据管理-专栏简介 本专栏内容涵盖了中高级Linux系统管理员所必须的文件服务.磁盘管理.数据管理.文件恢复等必备技能,实乃涨薪.跳槽之必备技能,且听一线运维老兵为你逐步揭开迷雾 ...
- 【转】Android 服务器之SFTP服务器上传下载功能 -- 不错
原文网址:http://blog.csdn.net/tanghua0809/article/details/47056327 本文主要是讲解Android服务器之SFTP服务器的上传下载功能,也是对之 ...
- Xbin-Store(分布式商城)项目所用Linux服务系列 FastDFS安装(五)
系列 Xbin-Store(分布式商城)项目所用Linux服务系列 MySQL安装(一) Xbin-Store(分布式商城)项目所用Linux服务系列 Redis集群安装(二) Xbin-Store( ...
随机推荐
- C++——简单程序设计
1.一个简单的程序 #include <iostream> //iostream是头文件,用来说明要使用的对象的相关信息. using namespace std; //使用命名空间,解决 ...
- No Delegate set : lost message:libpng error: Not a PNG file
当出现这个问题时,是因为本来是jpg或其他格式的图片存成了png导致的.或者有的图片本来就是jpg的,Android Studio一编译,发现不是png才造成了这个问题.解决这个问题可以在Androi ...
- Python_包
包 包是一种通过使用‘.模块名’来组织python模块名称空间的方式. 1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警 ...
- opencv学习之颜色空间转换cvtColor()
我们生活中大多数看到的彩色图片都是RGB类型,但是在进行图像处理时,需要用到灰度图.二值图.HSV.HSI等颜色制式,opencv提供了cvtColor()函数来实现这些功能.首先看一下cvtColo ...
- HTML的链接标签
网页的链接标签 文本超链接 图像超链接 格式:<a href="path" target="目标窗口位置" >链接文本或图像</a> 锚 ...
- SpringMVC项目使用elastic search搜索
项目需要,引入了elastic search(后续简称es),后面将介绍本地对es的安装,使用以及java连接es查询的整个过程. 1.es索引字段建立与修改,以curl新增一个索引字段示例 curl ...
- Flink流处理(三)- 数据流操作
3. 数据流操作 流处理引擎一般会提供一组内置的操作,用于对流做消费.转换,以及输出.接下来我们介绍一下最常见的流操作. 操作分为无状态的(stateless)与有状态的(stateful).无状态的 ...
- mybatis 查询list,内容为null,但list的size 为1
List<Integer> cityList = resourcePartnerService.selectCityList(userId); 需要在SQL里where语句加上 字段不为n ...
- unittest学习4-跳过用例执行
unittest支持跳过单个测试方法,甚至整个测试用例,还支持将测试用例标记为“测试失败” 基本跳过如下: import unittestimport requests,sys class MyTes ...
- 网页格式gbk转utf-8【python requests】
resp = requests.get(url) resp.content 是str类型 resp.text是unicode类型 如果返回的中文使用gbk编码,需要转换成utf-8的时候: resp. ...