1. 程式人生 > >Centos 7.X部署分布式文件系統:FastDFS+Nginx

Centos 7.X部署分布式文件系統:FastDFS+Nginx

fastdfs 分布式文件系統 fastdfs fastdfs+nginx 甘兵

1、FastDFS簡介

1.1 介紹

  • FastDFS是一個開源的,高性能的的分布式文件系統,他主要的功能包括:文件存儲,同步和訪問,設計基於高可用和負載均衡,FastDFS非常適用於基於文件服務的站點,例如圖片分享和視頻分享網站。

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

  • 支持存儲服務器在線擴容,支持相同的文件只保存一份,節約磁盤。

  • FastDFS只能通過Client API訪問,不支持POSIX訪問方式。

  • FastDFS適合中大型網站使用,用來存儲資源文件(如:圖片、文檔、視頻等)



1.2 FastDFS組成

tracker server

跟蹤服務器:用來調度來自客戶端的請求。且在內存中記錄所有存儲組和存儲服務器的信息狀態。


storage server

存儲服務器:用來存儲文件(data)和文件屬性(metadata)


client

客戶端:業務請求發起方,通過專用接口基於TCP協議與tracker以及storage server進行交互


group

組,也可稱為卷:同組內上的文件是完全相同的


文件標識

包括兩部分:組名和文件名(包含路徑)


meta data

文件相關屬性:鍵值對(Key Value Pair)方式


fid

文件標識符: (例如: group1/M00/00/00/CgEOxVegXB2AdYafAAAB0b8tBbQ9155303 )

  • group1:存儲組的組名;上傳完成後,需要客戶端自行保存

  • M00:服務器配置的虛擬路徑,與磁盤選項store_path#對應

  • 00/00:兩級以兩位16進制數字命名的目錄

  • CgEOxVegXB2AdYafAAAB0b8tBbQ9155303:文件名,與原文件名並不相同;由storage server根據特定信息生成。文件名包含:源存儲服務器的IP地址、文件創建時間戳、文件大小、隨機數和文件擴展名等


1.3 FastDFS同步機制

  • 同一組內的storage server之間是對等的,文件上傳、刪除等操作可以在任意一臺storage server上進行;

  • 文件同步只在同組內的storage server之間進行,采用push方式,即源服務器同步給目標服務器;

  • 源頭數據才需要同步,備份數據不需要再次同步,否則就構成環路了;


提示:上述第二條規則有個例外,就是新增加一臺storage server時,由已有的一臺storage server將已有的所有數據(包括源頭數據和備份數據)同步給該新增服務器。


1.4 FastDFS特性

指標
說明
系統簡潔性
很簡潔,只有兩個角色:tracker、storage
系統性能很高、沒有使用數據庫,文件同步直接點對點,不經過tracker中轉
系統穩定性

高、C語言開發,可支持高並發和負載

RAID方式
分組(組內冗余),具有很高的靈活性
通信協議專有協議,下載文件支持HTTP
屬性(meta,data)
支持
相同內容文件只保存一份
支持
下載文件時支持文件偏移量
支持


2、背景

在這裏,我用3臺服務器部署,這3臺服務器都要部署nginx+fastdfs以及相關模塊。3臺服務器部署方式都一樣,只不過storage服務器有些配置會不同,過程有點麻煩,請大家一定要有耐心,一步一步走下去部署是OK的。


2.1 環境說明

172.18.18.111(以下簡稱tracker服務器): nginx、fastdfs(啟動tracker、storage)、fastfds其它模塊

172.18.18.112(以下簡稱storage服務器):nginx、fastdfs(啟動storage)、fastfds其它模塊

172.18.18.113(以下簡稱storage服務器):nginx、fastdfs(啟動storage)、fastfds其它模塊


2.2 軟件包、安裝路徑

準備的軟件包:

nginx-1.9.3.tar.gz
lua-5.1.4.tar.gz
libfastcommon-1.0.35.zip
fastdfs-master.zip
LuaJIT-2.1.0-beta2.tar.gz
v0.2.19.tar.gz
GraphicsMagick-1.3.25.tar.gz
GraphicsMagick-1.3.25.tar


所有軟件包上傳路徑:

#cd /usr/src/

安裝路徑:

#/usr/local/

fastdfs配置文件路徑:

#/etc/fdfs/

3、部署FastDFS

3.1、安裝libfastcommon

安裝fastDFS前,首先下載最新版本的libfastcommon進行安裝,上傳至/usr/src目錄中。下載地址https://github.com/happyfish100/libfastcommon/releases

  • 解壓、配置和編譯:

#cd /usr/src/
#unzip libfastcommon-1.0.35.zip
#cd libfastcommon-1.0.35/
#./make.sh
#./make.sh install

提示:確認make沒有錯誤後,執行安裝,64位系統默認會復制到/usr/lib64下。


  • 設置環境變量、創建軟鏈接:

#export LD_LIBRARY_PATH=/usr/lib64/
#ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so


3.2、安裝fastdfs

下載最新版本的fastDFS,上傳至/usr/s


rc目錄中。下載地址:https://github.com/happyfish100/fastdfs

  • 解壓、編譯:

#cd /usr/src/
#unzip fastdfs-master.zip
#cd fastdfs-master/
#./make.sh
#./make.sh install

提示:確認make沒有錯誤後,執行安裝,默認會安裝到/usr/bin中,會在/etc/fdfs生成以.sample結尾的4個文件,如下所示:

#ll /etc/fdfs/
-rw-r--r-- 1 root root 1461 Aug 12 15:48 client.conf.sample
-rw-r--r-- 1 root root 7927 Aug 12 15:48 storage.conf.sample
-rw-r--r-- 1 root root  105 Aug 12 15:48 storage_ids.conf.sample
-rw-r--r-- 1 root root 7389 Aug 12 15:48 tracker.conf.sample













Centos 7.X部署分布式文件系統:FastDFS+Nginx