一,FastDHT概述
FastDHT和FastDFS来自一个作者,FastDFS本身并没有提供文件去重功能,需要依赖第三方框架FastDHT
FastDHT是一个分布式Hash系统基于键值对内存存储,底层是CRC32进行效验,依赖于第三方Berkeley DB数据库,将效验信息持久化保存到DB数据库中
FastDHT的效验流程:
- 用户提供浏览器上传文件
- FastDFS手动信息,将文件转发给FastDHT进行效验
- FastDHT将文件名进行CRC32效验
- 将效验信息和DB数据库中信息进行比对,看是否重复
- 假如重复就按照Storage存储的真实文件生成软链接,再进行保存(软链接存储大小很小)
- 假如不重复就存储真实文件
二,FastDHT搭建
搭建FastDHT依赖两个依赖包:
- fastdht-master
- Berkeley DB数据库
一,搭建前置准备
文件下载地址:
- fastdht-master:https://github.com/happyfish100/fastdht
- Berkeley DB:https://www.linuxfromscratch.org/blfs/view/svn/server/db.html
① 上传文件
rz -y #或者其他工具
② 解压文件
#解压fastdht-master.zip unzip fastdht-master.zip #解压db.5.3.28.tar.gz tar -zxvf db.5.3.28.tar.gz
二,安装配置
一,安装Berkeley DB
① 进入db中的build_unix目录
cd bunild_unix
② 执行配置命令(一定要进入目录)
./../dist/configure
③ 进行编译安装
make && make install
二,安装配置FastDHT
① 进入fastdht的目录执行编译安装命令
#编译 ./make.sh #安装 ./make.sh install
注:默认安装后配置文件在/etc/fdht中,运行文件在/usr/local/bin中
② 配置/etc/fdht中的fdhtd.conf文件
port=11411 #服务端口号默认11411 base_path=/opt/fastdfs/fastdht #日志文件位置,必须存在
③ 配置/etc/fdht中的fdht_client.conf文件
keep_alive=1 base_path=/opt/fastdfs/fastdht/client #日志文件位置,必须存在
④ 配置/etc/fdht中的fdht_servers.conf文件(这个文件主要用来配置集群)
group_count = 1 #组的数量(集群数量) group0 = 192.168.68.133:11411 #组的地址
⑤ 配置FastDFS中的storage.conf文件
#是否检测上传文件已经存在。如果已经存在,则建立一个索引链接以节省磁盘空间 check_file_duplicate=1 #当上个参数设定为1时 , 在FastDHT中的命名空间 key_namespace=FastDFS #长连接配置选项,如果为0则为短连接 1为长连接(需要fastdfs和fastdht一直保持连接,所有为长连接) keep_alive=1 #引入fdht_servers.conf文件(下面的#include号是关键字表示引入,并不是注释) #include /etc/fdht/fdht_servers.conf
三,测试FastDHT
开启:
#开启FastDHT fdhtd /etc/fdht/fdhtd.conf start #开启FastDFS的tracker fdfs_trackerd /etc/fdfs/tracker.conf start #开启FastDFS的storage fdfs_storaged /etc/fdfs/storage.conf start
通过:fdfs_test 一直上传同一个文件(并查看文件目录)
蓝色的就是软连接文件,FastDHT对文件进行了去重
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109