Nginx+FastDFS分散式檔案系統搭建及測試

2020-10-21 13:00:28

背景:在叢集部署環境下,隨著團隊發展,出現瓶頸:

  1. 伺服器磁碟有上限,不夠用
  2. 出現單點故障

因此,建立一個分散式檔案管理系統的新架構,希望有兩個特點:

  1. 容量能夠水平擴充套件
  2. 服務之間能夠實現負載均衡

FastDFS是最快的分散式檔案系統,主要用來進行檔案管理。
其功能主要有:(1)檔案儲存(2)檔案同步(3)檔案存取(上傳和下載等) 解決了大容量儲存了負載均衡的問題。

FastDFS原理圖:
在這裡插入圖片描述
FastDFS伺服器端有兩個角色:跟蹤器(Tracker)和儲存節點(storage):

  1. 跟蹤器主要做排程工作,在存取上起負載均衡的作用
  2. 儲存節點主要工作:儲存、同步和提供存取介面。

整體來說,FastDFS有兩個主要特點:

  • 高可靠性,無單點故障
  • 高吞吐量,只要Group組足夠多,資料流量是足夠分散的。

搭建圖片伺服器

1.安裝依賴環境
FastDFS由C語言開發,在linux命令列中輸入如下指令:
yum -y install gcc-c++
在這裡插入圖片描述
yum -y install libevent
在這裡插入圖片描述
2.上傳安裝檔案
在這裡插入圖片描述
在/usr/local下建立fastdfs包:mkdir fastdfs
使用Xftp將上述四個壓縮檔案上傳到/usr/local/fastdfs目錄下
在這裡插入圖片描述
3.安裝libfastcommon

  1. 進入fastdfs目錄下:cd usr/local/fastdfs

  2. 解壓libfastcommon的壓縮包:tar -zxf libfastcommonV1.0.7.tar.gz

  3. 進入解壓後libfastcommon的子目錄:cd libfastcommon-1.0.7

  4. ll檢視子目錄
    在這裡插入圖片描述

  5. 執行命令進行編譯:./make.sh

  6. 執行安裝指令:./make.sh install

注意:libfasstcommon安裝好後會自動把庫檔案拷貝至usr/lib64目錄下,所以我們將其拷貝到usr/lib的libfastcommon的參照目錄中

  1. 進入lib64目錄:cd /usr/lib64
  2. 將libfastcommon.so 檔案拷貝至/usr/lib下:cp libfastcommon.so /usr/lib

4.安裝FastDFS_v5.05(tracker+storage)

  1. 進入fastdfs目錄:cd /usr/local/fastdfs

  2. 解壓FastDFS_v5.0.5壓縮包: tar -zxf FastDFS_v5.0.5.tar.gz

  3. 進入FastDFS目錄下:cd FastDFS

  4. 執行命令進行編譯:./make.sh

  5. 執行安裝指令:./make.sh install

  6. 安裝成功後,將conf下檔案拷貝到/etc/fdfs檔案下,目的是為Nginx做準備:1.cd /usr/local/fastdfs/FastDFS/conf/
    2.cp * /etc/fdfs

    a.安裝tracker服務:
    設定tracker服務,修改/etc/fdfs/tracker.conf檔案:cd tracker
    在這裡插入圖片描述
    開啟跟蹤器組態檔:vim /etc/fdfs/tracker.conf
    找到base_path,並將其字尾地址改為/usr/local/fastdfs/FastDFS/tracker
    在這裡插入圖片描述
    啟動tracker:
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

    b.安裝storage:

  7. 修改storage儲存檔案:cd storage

  8. 輸入pwd,複製地址

  9. 修改storage組態檔:vim /etc/fdfs/storage.conf

  10. base_path=/usr/local/fastdfs/FastDFS/storage

  11. store_path0=/usr/local/fastdfs/FastDFS/storage

  12. 修改跟蹤器地址(ip地址+tracker埠號):tracker_server=192.168.157.129:22122

    啟動storage服務:
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

5.設定使用者端
13. 拷貝libfdfsclient.so至 /usr/lib :cp libfdfsclient.so /usr/lib
在這裡插入圖片描述
14. 修改組態檔/etc/fdfs/client.conf:在這裡插入圖片描述
15. 修改base_path地址和互動的tracker地址(IP+埠號):
在這裡插入圖片描述
6.安裝Nginx及Nginx依賴
16. yum命令安裝Nginx依賴環境:
(1)PCRE:
在這裡插入圖片描述
(2)zlib:
在這裡插入圖片描述
(3)openssl:
在這裡插入圖片描述
17. 解壓Nginx外掛壓縮包:
在這裡插入圖片描述
18. 設定config檔案,將其中local去掉:
在這裡插入圖片描述
輸入:
在這裡插入圖片描述
19. 將/fastdfs-nginx-module/src/mod_fastdfs.conf檔案複製到/etc/fdfs目錄下,並編輯:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
20. 解壓Nginx:tar -zxf nginx-1.8.1.tar.gz
在這裡插入圖片描述
21. 對Nginx重新config:./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module/src其中=後面地址要根據自己Nginx外掛地址填寫,非固定。
在這裡插入圖片描述
22.執行編譯和安裝:(1)make (2)make install

  1. 進入Nginx目錄下,並對conf檔案進行設定:
    在這裡插入圖片描述
    加入如下程式碼,表示當遇到/group1/M00/ 地址請求時,將處理交給nginx外掛去處理:
    在這裡插入圖片描述

啟動Nginx服務:在nginx的sbin目錄下執行:./nginx

檢視Nginx工作狀態:
在這裡插入圖片描述
主程序master和工作程序worker都已啟動,Nginx啟動成功!

測試Nginx:在瀏覽器中輸入虛擬機器器ip地址,出現Nginx預設頁面:在這裡插入圖片描述
測試FastDFS能否執行:

  1. 在根目錄下建立一個html頁面:隨便寫一個Hi,FastDFS!在這裡插入圖片描述
  2. 將該檔案上傳至伺服器:/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/hi.html
  3. 複製最後一行的檔案地址file url在瀏覽器中存取:
    在這裡插入圖片描述
    存取成功:
    在這裡插入圖片描述
    注意:本虛擬機器器防火牆未開,因此沒有設定預設80埠,若無法存取,請設定下防火牆80埠號。