“There is only one person who could ever make you happy, and that person is you.”
David Burns
安装配置参照 : CentOS 配置FastDFS
测试参照 : CentOS 安装配置(测试可以参照这个)
FastDFS
一、FastDFS简介
FastDFS是由国人余庆所开发,其项目地址:https://github.com/happyfish100
FastDFS
是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。支持存储服务器在线扩容,支持相同的文件只保存一份,节约磁盘。
FastDFS
只能通过Client API访问,不支持POSIX访问方式。
FastDFS
适合中大型网站使用,用来存储资源文件(如:图片、文档、视频等)
二、FastDFS组成部分及其它名词
1、tracker server
跟踪服务器:用来调度来自客户端的请求。且在内存中记录所有存储组和存储服务器的信息状态。
2、storage server
存储服务器:用来存储文件(data)和文件属性(metadata)
3、client
客户端:业务请求发起方,通过专用接口基于TCP协议与tracker以及storage server进行交互group组,也可称为卷:同组内上的文件是完全相同的
文件标识 包括两部分:组名和文件名(包含路径)
meta data 文件相关属性:键值对(Key Value Pair)方式
fid 文件标识符:例如:
group1/M00/00/00/CgEOxVegXB2AdYafAAAB0b8tBbQ9155303
group_name:存储组的组名;上传完成后,需要客户端自行保存
M##:服务器配置的虚拟路径,与磁盘选项store_path#对应两级以两位16进制数字命名的目录文件名:与原文件名并不相同;由storage server根据特定信息生成。文件名包含:源存储服务器的IP地址、文件创建时间戳、文件大小、随机数和文件扩展名等
三、FastDFS同步机制
1、同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;
2、文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;
3、源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。
四、FastDFS与集中存储方式对比
五、FastDFS和mogileFS对比
六、FastDFS安装配置
1、安装开发环境
# yum groupinstall"Development Tools""Server platform Development"
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
tracker配置
配置文件修改:根据需求修改
# cd /etc/fdfs
# cp tracker.conf.sample tracker.conf
# vim /etc/fdfs/tracker.conf
base_path=/data/fdfs/tracker #存储日志及tracker的状态信息
注: (1) vim /etc/fdfs/tracker.conf
如果这时候用vim的话有可能提示命令未发现,
- 查看是否安装了vim rpm-qa|grep vim 如果看到有三个包的情况说明已经安装了
- 如果缺少的话就进项安装 yum -y install vim
(2)在tracker.conf中只是修改了base_path=/data/fdfs/tracker(其他的配置不要动)
启动服务(Centos7)方式一:
# mkdir -pv /data/fdfs/tracker
# /etc/init.d/fdfs_trackerd start
storage配置
# cd /etc/fdfs
# cp storage.conf.sample storage.conf
# vim /etc/fdfs/storage.confgroup_name=group1#指定组名 base_path=/data/fdfs/storage# 用于存储数据 store_path_count=2#设置设备数量 store_path0=/data/fdfs/storage/m0#指定存储路径0 store_path1=/data/fdfs/storage/m1#指定存储路径1 注意:同一组内存储路径不能冲突,例如:下一个节点的存储路径就是m2,m3....等 tracker_server=10.1.14.197:22122#指定tracker
注:在storage.conf中
(1) 修改base_path=/data/fdfs/storage
(2)store_path=1 目前只有1台设置为1后续多台情况要改成对应的而数量
(3)Store_path0=/data/fdfs/storage/m0 多台,path后面的数字对应第几个
(4)Tracker_server=虚拟机ip:22122
启动服务(Centos7)方式一:
# mkdir -pv /data/fdfs/storage/{m0,m1} #创建数据目录
# /etc/init.d/fdfs_storaged start
client配置 修改客户端配置文件
#vi client.conf
#存放日志目录 base_path=/data/fdfs/client #跟踪服务 tracker_server=10.1.14.197:22122 如果有多个服务,就配置多个tracker_server
注:tracker_server=虚拟机ip:22122
七、测试FastDFS
1、上传文件
#创建文件内容为”12345678”的1.txt文件
echo"12345678">> /data/1.txt
#FastDFS上传文件测试fdfs_upload_file
fdfs_upload_file/etc/fdfs/client.conf /data/1.txt
2、下载文件
#FastDFS下载文件fdfs_download_file
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt
注:group1/M00/00/00/wKgB3li3a2mAejYPAAAADok0NhY177.txt
这个上传文件后会得到的的文件地址,要与上传的地址以及文件名称保持一致,不然会报错.
网友评论