FASTDFS

FASTDFS

1. 概述

  1. FASTDFS是一个开源的高性能的分布式文件系统. 它主要功能有: 文件存储,文件同步和文件访问及高容量和负载均衡,主要是用来解决海量数据存储问题.
  2. 在大数据里面的HDFS也是解决海量数据存储问题.
  3. FASTDFS存储的文件一般比较小(4KB-500MB),存储的文件数量比较多,大多是图像. HDFS是一个谷歌的文件服务器,它是Hadoop中分布式文件系统,可以存储的文件数据超级大,文件数量超级多

拓展
在这里插入图片描述

2. FastDFS的三个组成部分

FastDFS系统一般有三个角色: 跟踪服务器(Tracking server),存储服务器(Storage server),客户端(Client)

  • 跟踪服务器(Tracking server)

主要工作是调度服务,起到负载均衡的作用,负载管理所有的存储服务器(Storage server)和客户端(Client).
每个存储服务器在启动后都会先连接跟踪服务器,告知自己所属的group信息,并且它们之间需要保存周期性心跳

文件上传和下载的流程: 客户上传图片1.jpg,FastFDS的客户端(web服务器)会与之对接,然后告知跟踪服务器,跟踪服务器会随机把图片存储到某个存储服务器,这个存储服务器会把图片的id和路径告知跟踪服务器,跟踪服务器把图片id和路径告知客户端. 当客户下载1.jpg时客户端根据路径找到具体的存储服务器拿到图片反馈给客户.

在这里插入图片描述

  • 存储服务器

主要提供容量存储和备份服务;以group为单位,每一个grop内可以用于多台存储服务器,数据之间是互为备份的

在这里插入图片描述
在这里插入图片描述

  • 客户端

主要起到上传与下载数据的服务器,其实本质就是自己搭建的应用服务器(web服务器)

3. 存储策略

存储节点是以group(组,卷)进行组织的. 存储系统由一个或多个卷组成,卷与卷之间是独立的,所有卷的容量累加就是整个存储系统中的文件容量,一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台服务器起到了冗余备份和负载均衡的作用.

在卷中增加服务器时,会同步已有的文件到新增的服务器上,由系统自动完成,同步完成后,系统自动将新增的服务器切换到线上提供服务.它是由源服务器通过广播的方式把数据同步到新增的服务器.

当存储空间不足时,那么可以做到动态添加卷,只需要添加一台或多台服务器并将它们配置为新的卷,这样就扩大了存储系统的存储容量

在这里插入图片描述

4. FastFDS的文件同步

即上面的图

5.FastFDS的文件下载

即上面的跟踪服务器的文件上传和下载的流程

6. 下载安装FastDFS

6.1.分别在linux和windows配置lhosts文件的域名信息(可以不做)

vim /etc/hosts
指定一个域名 92.168.88.108 web应用服务器
192.168.88.108 www.zyvideo.com
路径:C:\Windows\System32\drivers\etc
192.168.88.108 www.zyvideo.com

6.2. 下载安装libfastCommon插件

  • 下载

在/usr/local下创建文件夹
cd /usr/local
mkdir fastdfs
cd fastdfs
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

  • 解压

tar -zxvf V1.0.7.tar.gz

  • 编译

cd libfastcommon-1.0.7/
./make.sh

  • 安装

./make.sh install

  • 建立软连接

因为默认安装的位置不正确,默认安装到/usr/lib64, 而fastdfs主程序在/usr/local/lib
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

6.3. 下载FastDFS

  • 下载

cd …
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

  • 解压

tar -axvf V5.05.tar.gz

  • 编译

cd fastdfs-5.05/
./make.sh

  • 安装

./make.sh install

  • 建立软连接

ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/fdfs_storaged /usr/local/bin
ln -s /usr/bin/fdfs_stop.sh /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin

6.4. 配置安装跟踪服务器Tracker

cd /etc/fdfs
cp tracker.conf.sample tracker.conf

  • 修改配置文件

vim tracker.conf
修改的内容:
base_path=/fastdfs/tracker/tracker
http.server_port=80
-创建目录
mkdir -p /fastdfs/tracker/tracker

  • 启动Tracker跟踪服务器

/etc/init.d/fdfs_trackerd start

  • 停止

service fdfs_trackerd stop

  • 设置Tracker开机自启

chkconfig fdfs_trackerd on

  • 查看端口号

netstat -unltp | grep fdfs

6.5. 配置FastDFS存储服务器 Storage

cd /etc/fdfs
cp storage.conf.sample storage.conf

  • 修改 storage.conf

vim storage.conf
修改内容
设置base:wq_path=/fastdfs/storage/storage
store_path0=/fastdfs/storage/file
tracker_server=www.zyvideo.com:22122
http.server_port=80

  • 创建目录

mkdir -p /fastdfs/storage/storage
mkdir -p /fastdfs/storage/file
reboot 重启虚拟机

  • 启动storage存储服务器

/etc/init.d/fdfs_storaged start

  • 查看端口号

netstat -unltp | grep fdfs

  • 查看是否启动成功

ps -ef | grep storage

  • 查看storage服务器和tracker服务器是否在通信

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
查看ip_addr = 192.168.88.107 (bogon) ACTIVE ;ACTIVE 标志成功

  • 假设失败了

重启tracker服务器
/usr/local/bin/restart.sh /usr/lcoal/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启storage服务器
/usr/local/bin/restart.sh /usr/lcoal/bin/fdfs_storaged /etc/fdfs/storage.conf
重新查看它们是否通信
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

  • 设置storage开机自启动

chkconfig fdfs_storaged on

7. 测试文件上传

  • 准备客户端

修改Tracker服务器的客户端配置文件
cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf

  • 修改文件

#保存客户端的数据和日志
base_path=/fastdfs/client/client
#tracker的端口号
tracker_server=com.zy.video.com:22122

mkdir -p /fastdfs/client/client

  • 在当前目录下新建一个文件夹test.txt,编辑一段信息

  • 上传文件

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.txt
如果上传成功,会返回一个存储路径
比如: group1/M00/00/00/wKhEgmBhS8WAIpzgAAAAFITq_MM299.txt
group1 是storage存储服务器的存储卷地址
M00 是storage存储服务器的虚拟目录
00/00 在storage存储服务器中的存储目录 256 * 256 ,目录文件在—> /fastdfs/storage/file/data

8. FastDFS绑定Nginx负载均衡器

  • 配置nginx.conf
#fastdfs服务器
server{
       listen            81;
       server_anme       www.zy.video.com;  
       location  /group1/M00 {
           alias  /fastdfs/storage/file/data;
      }
}
  • 重启nginx

cd ../
./sbin/nginx -s reload

  • 测试上传文件

在当前目录中上传一个文件test.txt
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.txt
上传成功后,会返回fastdfs的存储路径
group1/M00/00/00/wKhEgmBhS8WAIpzgAAAAFITq_MM299.txt

  • 查看是否成功

http://www.zy.video.com:81/存储路径

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值