FastDFS分布式存储服务器

FastDFS

FastDFS

C语言编写的开源分布式文件存储系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并且注重高可用、高性能等指标,使用FastDFS可以方便的搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

FastDFS的架构

在这里插入图片描述
FastDFS包括Track server 和 Storage server。客户端与Track Server进行交互,进行文件的上传下载,Track server调度Storage Server完成文件的上传和下载。
Tracker 管理集群,Tracker也可以实现集群,每个Tracker节点地位平等。收集Storage集群的状态
Storage 实际保存文件Storage分为多个组,每个组之间保存的文件是不同的,每个组内部可以有多个成员,组成员内部保存的内容是一致的,组成员的地位是一致的,没有主从的概念。

文件的上传和下载

文件的上传的流程

在这里插入图片描述
客户端上传文件后, 存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息,文件的索引信息包含: 组名,虚拟磁盘路径,数据两级目录,文件名。

文件的下载流程

在这里插入图片描述

FastDFS的安装

  1. 安装FastDFS的依赖包
    解压然后,运行./make.sh 执行sudo ./make.sh install
  2. 安装 fastdfs
    解压缩fastdfs-master.zip
    执行./make.sh 执行sudo ./make.sh install
  3. 配置tracker
    sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    创建 /opt/fastdfs/tracker/
    编辑/etc/fdfs/tracker.conf
    修改文件内的base_path=/opt/fastdfs/tracker
  4. 配置存储服务器 storage
    sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    创建 /opt/fastdfs/storage/
    编辑/etc/fdfs/storage.conf
    修改文件内的base_path=/opt/fastdfs/storage
    store_path0=/opt/fastdfs/storage
    tracker_server=自己机器的IP:22122
  5. 启动tracker 和storage
    sudo service fdfs_trackerd start
    sudo service fdfs_storaged start
  6. 测试是否安装成功
    sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    编辑client.conf
base_path=/opt/fastdfs/tracker
tarcker_server=自己IP地址:22122

上传文件测试
fdfs_upload_file /etc/fdfs/client.conf 要上传的地址
如果返回group1 /M00/00/00/xxxxxxxx.jpg的文件ID说明文件上传成功。

Nginx的fastdfs-nginx-module 解决FastDFS大并发的下载性能问题

安装:
解压缩nginx,和fastdfs-nginx-module-masker
进入到nginx目录中
执行

# 配置nginx的编译添加module
sudo ./configure --prefix=/usr/local/nginx/ --add-module=fastdfs-nginx-module-master解压后的绝对路径/src
# 编译
sudo ./make
# 执行编译安装
sudo ./make install
# 拷贝配置文件
sudo cp fastdfs-nginx-module-master解压后的目录中src下的mod_fastdfs.conf 到 /etc/fdfs/mod_fasdfs.conf
# 编辑拷贝的配置文件
sudo vim /etc/fdfs/mod_fasdfs.conf
# 修改以下内容
connet_timeout = 10
tracker_server = 10.192.32.141:22122
url_have_group_name=true
store_path0=/opt/fastdfs/stprage
# 拷贝配置文件
sudo fasdfs-master目录中的http.conf /etc/fdfs/http.conf
sudo fasdfs-master目录中的mime.types /etc/fdfs/mime.types
# 编辑Nginx的配置文件
sudo vim /usr/local/nginx/conf/nginx.conf

server {
	lissten 8888;
	server_name localhost;
	location ~/group[0-9]/ {
		ngx_fasdfs_module;
	}
	error_page 500 502 503 504 /50x.html;
	location = /50x.html{
		root html;
	}
}
# 启动nginx
sudo /usr/local/nginx/sbin/nginx

到这里就安装完成了,借助各个语言的客户端就可以进行操作了。
比如python

from fdfs_client.client import Fdfs_client
client = Fdfs_client('配置文件')
ret = client.upload_by_filename('test')
ret {'Group name':'group1','Status':'Upload successed.', 'Remote file_id':'group1/M00/00/00/
	wKjzh0_xaR63RExnAAAaDqbNk5E1398.py','Uploaded size':'6.0KB','Local file name':'test'
	, 'Storage IP':'trackerIP'

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值