FastDFS 安裝與使用


FastDFS 安裝與使用

1. 什么是 FastDFS

FastDFS是一個開源的高性能分布式文件系統(DFS)。 它的主要功能包括:文件存儲,文件同步和文件訪問,以及高容量和負載平衡的設計。 FastDFS應滿足基於照片共享站點和視頻共享站點等文件服務的網站的要求。

Github介紹: https://github.com/happyfish100/fastdfs

Github文檔: https://github.com/happyfish100/fastdfs/wiki

2. 架構

FastDFS 官方介紹分為兩部分:tracker-server(跟蹤服務器)和 storage-server(存儲服務器)。實際應用中還包含一個 nginx 下載服務器。我們分這三部分來講:

tracker-server

跟蹤服務器:負責文件訪問的調度和負載平衡。管理所有的存儲服務器。

storage-server

存儲服務器:存儲文件以及文件管理功能。包括:文件存儲,文件同步,提供文件訪問接口。 它還管理元數據,這些元數據表示為文件的鍵值對。

存儲系統包含一個或多個卷,這些卷的文件在這些卷中是獨立的。 整個存儲系統的容量等於所有容量的總和。 文件卷包含一個或多個存儲服務器,這些服務器的文件在這些服務器中相同。 文件卷中的服務器相互備份,所有這些服務器都是負載平衡的。 將存儲服務器添加到卷時,此卷中已存在的文件會自動復制到此新服務器,完成此復制后,系統將在線將此服務器切換為提供存儲服務。

client-cluster

客戶端服務器:上傳和下載數據。

3. 部署結構

FastDFS架構圖.png

4. 一個完整的用例圖

FastDFS例子.png

5. 安裝與使用

本人使用的是 ubuntu14.04 環境,在其他系統環境下的安裝方式不一致,詳情可以參考 官方wiki

編譯環境

首先配置編譯環境,安裝必要的庫包。

一鍵安裝:

sudo apt-get install gcc g++ make automake autoconf libtool libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev 
磁盤目錄
說明 位置
所有安裝包 /usr/local/src
數據存儲位置 /home/dfs/
mkdir /home/dfs #創建數據存儲目錄
cd /usr/local/src #切換到安裝目錄准備下載安裝包
安裝 libfatscommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #編譯安裝
安裝 FastDFS
cd ../ #返回上一級目錄
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #編譯安裝
#配置文件准備
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客戶端文件,測試用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx訪問使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx訪問使用
安裝 fastdfs-nginx-module
cd ../ #返回上一級目錄
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
安裝nginx
wget http://nginx.org/download/nginx-1.15.4.tar.gz #下載nginx壓縮包
tar -zxvf nginx-1.15.4.tar.gz #解壓
cd nginx-1.15.4/
#添加fastdfs-nginx-module模塊
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ 
make && make install #編譯安裝

這里推薦下載源碼編譯安裝,如果通過 sudo apt-get install nginx 方式安裝的話,不容易配置 fastdfs-nginx-module 模塊,在后繼的部署過程中容易報錯。


FastDFS 單機部署 和 分布式部署 兩種方式,這里以 單機部署為例:

單機部署

tracker 配置
#服務器ip為 192.168.52.1
#建議用ftp下載下來這些文件 本地修改
vim /etc/fdfs/tracker.conf
#需要修改的內容如下
port=22122  # tracker服務器端口(默認22122,一般不修改)
base_path=/home/dfs  # 存儲日志和數據的根目錄
storage 配置
vim /etc/fdfs/storage.conf
#需要修改的內容如下
port=23000  # storage服務端口(默認23000,一般不修改)
base_path=/home/dfs  # 數據和日志文件存儲根目錄
store_path0=/home/dfs  # 第一個存儲目錄
tracker_server=192.168.52.1:22122  # tracker服務器IP和端口
http.server_port=8888  # http訪問文件的端口(默認8888,看情況修改,和nginx中保持一致)
配置 nginx 訪問
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的內容如下
tracker_server=192.168.52.1:22122  #tracker服務器IP和端口
url_have_group_name=true
store_path0=/home/dfs
#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
    listen       8888;    ## 該端口為storage.conf中的http.server_port相同
    server_name  localhost;
    location ~/group[0-9]/ {
        ngx_fastdfs_module;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   html;
    }
}

6. 運行 FastDFS

關閉防火牆

如果防火牆打開了的話記得關閉,不然無法啟動 FastDFS

#不關閉防火牆的話無法使用
systemctl stop firewalld.service #關閉
systemctl restart firewalld.service #重啟
啟動tracker服務
/etc/init.d/fdfs_trackerd start #啟動tracker服務
啟動storage服務
/etc/init.d/fdfs_storaged start #啟動storage服務
重啟 nginx
/usr/local/nginx/sbin/nginx -s reload #重啟nginx

這里重啟 nginx 我遇到了一些問題,如果你也跟我一樣啟動失敗的話,記得檢查下 nginx 是否之前沒有啟動,或是有沒有進程占用了 nginx 的端口號,導致啟動失敗。

啟動 nginx:

/usr/local/nginx/sbin/nginx #啟動nginx

查看 nginx 相關端口號:

ps -ef | grep nginx

7. client 測試

#保存后測試,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz

然后在瀏覽器中打開 服務器網址+端口號+ID,查看是否能返回結果,比如輸入:

192.168.52:8888/group1/M00/00/00/xx.tar.gz


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM