1. 程式人生 > >Fastdfs-企業級分布式存儲應用

Fastdfs-企業級分布式存儲應用

fastdfs 分布式存儲

Fastdfs-企業級分布式存儲應用

技術介紹:

FastDFS是由國人余慶所開發,其項目地址:https://github.com/happyfish100

FastDFS是一個輕量級的開源分布式文件系統,主要解決了大容量的文件存儲和高並發訪問的問題,文件存取時實現了負載均衡。

FastDFS是一款類Google FS的開源分布式文件系統,它用純C語言實現,支持Linux、FreeBSD、AIX等UNIX系統。它只能通過 專有API對文件進行存取訪問,不支持POSIX接口方式,不能mount使用。準確地講,Google FS以及FastDFS、mogileFS、 HDFS、TFS等類Google FS都不是系統級的分布式文件系統,而是應用級的分布式文件存儲服務。

FastDFS的特性:

1、分組存儲,靈活簡潔、對等結構,不存在單點

2、 文件ID由FastDFS生成,作為文件訪問憑證。FastDFS不需要傳統的name server

3、和流行的web server無縫銜接,FastDFS已提供apache和nginx擴展模塊

4、大、中、小文件均可以很好支持,支持海量小文件存儲

5、 支持多塊磁盤,支持單盤數據恢復

6、 支持相同文件內容只保存一份,節省存儲空間

7、 存儲服務器上可以保存文件附加屬性

8、 下載文件支持多線程方式,支持斷點續傳

項目環境:

一臺tracker:ip 172.17.13.136

一臺storage node1: ip 172.17.13.134

一臺storage node2: ip 172.17.13.135

項目實現:

一、在所有主機操作:

1、創建目錄用來存放下載的rpm包

mkdir fastdfs

cd fastdfs

lftp 172.17.0.1

>cd /pub/Sources/7.x86_64/fastdfs/

>mget *

需要的包有:

ls fastdfs

fastdfs-5.0.11-1.el7.centos.x86_64.rpm

fastdfs-debuginfo-5.0.11-1.el7.centos.x86_64.rpm

fastdfs-server-5.0.11-1.el7.centos.x86_64.rpm

fastdfs-tool-5.0.11-1.el7.centos.x86_64.rpm

libfastcommon-1.0.36-1.el7.centos.x86_64.rpm

libfastcommon-devel-1.0.36-1.el7.centos.x86_64.rpm

libfdfsclient-5.0.11-1.el7.centos.x86_64.rpm

libfdfsclient-devel-5.0.11-1.el7.centos.x86_64.rpm

nginx-1.10.2-1.el7.centos.x86_64.rpm

nginx-all-modules-1.10.2-1.el7.centos.noarch.rpm

nginx-filesystem-1.10.2-1.el7.centos.noarch.rpm

nginx-mod-http-geoip-1.10.2-1.el7.centos.x86_64.rpm

nginx-mod-http-image-filter-1.10.2-1.el7.centos.x86_64.rpm

nginx-mod-http-perl-1.10.2-1.el7.centos.x86_64.rpm

nginx-mod-http-xslt-filter-1.10.2-1.el7.centos.x86_64.rpm

nginx-mod-mail-1.10.2-1.el7.centos.x86_64.rpm

nginx-mod-stream-1.10.2-1.el7.centos.x86_64.rpm

2、安裝需要的rpm包

yum localinstall lib* fast*

二、在Tracker服務器上操作:

1、創建工作目錄

mkdir -p /data/fastdfs/tracker

2、編輯配置文件並啟動服務

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

vim /etc/fdfs/tracker.conf

base_path=/data/fastdfs/tracker

啟動服務:/etc/init.d/fdfs_trackerd start

ss -ntl 查看22122端口打開

技術分享圖片

三、在storage主機上操作:

1、創建工作目錄

mkdir -p /data/fastdfs/storage

2、編輯配置文件並啟動服務

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

vim /etc/fdfs/storage.conf

base_path=/data/fastdfs/storage 工作路徑

store_path0=/data/fastdfs/storage 存儲路徑

tracker_server=172.17.13.136:22122

啟動服務:/etc/init.d/fdfs_storaged start

ss -ntl 查看23000端口打開

技術分享圖片

四、在tracker主機上操作:

1、編輯客戶端工具的配置文件,並查看存儲節點狀態

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

vim /etc/fdfs/client.conf

tracker_server=172.17.13.136:22122

base_path=/data/fastdfs/tracker

查看:fdfs_monitor /etc/fdfs/client.conf

技術分享圖片

2、文件上傳

fdfs_upload_file /etc/fdfs/client.conf 2345_image_file_copy_2.jpg

技術分享圖片

3、文件查看

fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBENhlodMpmAHnjTAAAEiN5GKSA9782137

技術分享圖片

4、文件下載

技術分享圖片

如何實現nginx功能:

storage:

1、安裝nginx以及對應模塊

cd ~/fastdfs/

yum localinstall nginx*

2、修改nginx的location配置,添加映射路徑和啟動模塊。註意排除其他location匹配幹擾

vim /etc/nginx/nginx.conf

location /group1/M00 {

root /data/fastdfs/storage/data;

ngx_fastdfs_module;

}

3、修改對應fastdfs模塊

vim /etc/fdfs/mod_fastdfs.conf

url_have_group_name = true

tracker_server=172.17.13.136:22122

store_path0=/data/fastdfs/storage

systemctl start nginx

測試:http://172.17.13.134/group1/M00/00/00/rBENh1odSWeAP8amAAKKmTpeYKw687.jpg

可以訪問到該圖片

技術分享圖片


Fastdfs-企業級分布式存儲應用