1.简介:
由于FastDFS本身不能对重复上传的文件进行去重,而FastDHT可以做到去重。FastDHT是一个高性能的分布式哈希系统,它是基于键值对存储的,而且它需要依赖于Berkeley DB作为数据存储的媒介,同时需要依赖于libfastcommon。
2.安装及配置:
1.下载FastDHT,下载地址:
https://github.com/happyfish100
FastDHT:fastdht-master.zip
2.由于libfastcommon在安装FastDFS时已经安装过,不需再安装。
3.下载Berkeley DB,下载地址:
http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
Berkeley DB:db-6.0.30.tar.gz
4.安装Berkeley DB,将db-6.0.30.tar.gz拷贝到/usr/local目录下。
5.解压:
tar -zxvf db-6.0.30.tar.gz
6.进入build-unix目录:
cd /usr/local/db-6.0.30/build_unix/
7.执行命令:
../dist/configure --prefix=/usr/local/db-6.0.30-test
make
make install
8.DB安装完毕,会在/usr/local目录下生成目录db-6.0.30-test
9.安装FastDHT,将fastdht-master.zip拷贝到/usr/local目录下,解压:
unzip fastdht-master.zip
10.进入fastdht-master目录,修改make.sh文件,修改:
CFLAGS=’-Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I/usr/local/db-6.0.30-test/include/ -L/usr/local/db-6.0.30-test/lib/’
标红部分为要加入的内容。
11.进入fastdht-master目录,编译安装:
cd /usr/local/fastdht-master/
./make.sh
./make.sh install
13.安装成功后fastdht被安装在/etc/fdht目录下,生成3个配置文件
12.配置FastDHT,创建fastdht目录:
mkdir /opt/fastdht
13.修改/etc/fdht/目录下的配置文件fdht_client.conf,依次修改如下内容:
base_path=/opt/fastdht
keep_alive=1
#include /etc/fdht/fdht_servers.conf
14.修改/etc/fdht/目录下的配置文件fdht_servers.conf,依次修改如下内容:
group_count = 1
group0 = 10.10.2.119:11411
15.修改/etc/fdht/目录下的fdhtd.conf文件,依次修改如下内容:
port=11411
bash_path=/opt/fastdht (该目录必须是已经存在的)
#include /etc/fdht/fdht_servers.conf -> (本行前有#表示打开,如果想关闭此选项,则应该为##开头)
16.配置/etc/fdfs/目录下的storage.conf文件,依次修改如下内容:
#是否检测上传文件已经存在。如果已经存在,则建立一个索引链接以节省磁盘空间
check_file_duplicate=1
#当上个参数设定为1时 , 在FastDHT中的命名空间
key_namespace=FastDFS
#长连接配置选项,如果为0则为短连接 1为长连接
keep_alive=1
#此处特别需要注意配置
#include /etc/fdht/fdht_servers.conf
17.执行如下命令:
cp /usr/local/db-6.0.30-test/lib/libdb-6.0.so /usr/lib/
cp /usr/local/db-6.0.30-test/lib/libdb-6.0.so /usr/lib64/
18.启动FastDHT:
fdhtd /etc/fdht/fdhtd.conf
19.测试,通过客户端命令测试上传:
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /opt/test.png
20.上传成功后返回路径,查看storage存储对应存储路径,发现返回的为一个软链接,之后每次重复上传的haul都是返回一个指向第一次上传的文件的软链接。也就保证了文件只保存了一份。需要说明的是,FastDFS不会返回原始文件的索引,返回的全部都是软链接,当所有的软链接都被删除的时候,原始文件也会从FastDFS中被删除。
21.安装测试完毕。