FastDFS安裝(mac)|文件存儲方案


FastDFS安裝(mac)|文件存儲方案

在我們進行相關項目開發時,肯定會遇到需要進行文件保存的需求。那么這些文件(如圖片)保存到哪里呢?

  • 第一種方案是直接保存到本地磁盤中,即通過瀏覽器發一個post的請求,相關程序將文件保存到本地,這樣完全可以實現。但缺點是文件和項目代碼都會保存到同一台電腦上,即這台電腦(服務器)既要向客戶端響應項目代碼又要響應文件。
  • 如果像分開就可以使用文件服務器,在這里就是FastDFS,即項目代碼在一台電腦,文件在另一台電腦(也就是服務器)。從而實現分開

1 FastDFS介紹

1.1 FastDFS架構

包括ClientTracker serverStorage server

  • 整體過程:Client也就是我們說的客戶端,其請求Tracker進行文件上傳、下載,Tracker再調度Storage完成文件上傳和下載。
  • Client: 客戶端,業務請求的發起方,通過專有接口,使用TCP/IP協議與Tracker或Storage進行數據交互。FastDFS提供了upload、download、delete等接口供客戶端使用。
  • Tracker server:跟蹤服務器,主要做調度工作,起負載均衡的作用。在內存中記錄集群中所有存儲組和存儲服務器的狀態信息,是客戶端和數據服務器交互的樞紐。
  • Storage server:存儲服務器(存儲節點或數據服務器),文件和文件屬性都保存到存儲服務器上。Storage server會定時的向Tracker server發消息,如果一段時間沒發,Tracker server就會將其去除。直接利用OS的文件系統調用管理文件。
    • Storage群中的橫向可以擴容,縱向可以備份。

1.2 工作原理實例介紹

以上傳文件為例:

  • Client拿到需要上傳的文件,這時Client會向Tracker server發一則消息即“當下需要保存文件”;
  • Tracker server在接到消息后,就會從其列表中尋找可用的Storage server,並將可用的Storage server IP返回給Client
  • Client在就到相關IP后,就向這個指定IP的那台服務器發生要上傳的文件;
  • Storage server 收到文件會將文件保存,並為其起名,后將該名稱返回給Client
  • Client收到這個名字后只需將該名稱保存下來,供以后依據該名稱到Storage server找尋該文件。

1.3 FastDFS上傳和下載流程

在這里插入圖片描述
在這里插入圖片描述

1.4 FastDFS文件索引

在這里插入圖片描述

  • FastDFS上傳和下載流程 都涉及到文件索引(file_id)

    • 文件索引(file_id)是客戶端上傳文件后存儲服務器返回給客戶端,是以后訪問該文件的索引信息。
  • 文件索引(file_id)信息包括:組名虛擬磁盤路徑數據兩級目錄文件名等信息。

    • 組名:文件上傳后所在的 Storage 組名稱。
    • 虛擬磁盤路徑:Storage 配置的虛擬路徑,與磁盤選項store_path*對應。如果配置了store_path0則是M00,如果配置了store_path1則是M01,以此類推。
    • 數據兩級目錄:Storage 服務器在每個虛擬磁盤路徑下創建的兩級目錄,用於存儲數據文件。
    • 文件名:由存儲服務器根據特定信息生成,文件名包含:源存儲服務器IP地址、文件創建時間戳、文件大小、隨機數和文件拓展名等信息。

在這里插入圖片描述

2 FastDFS安裝(mac)

筆者先嘗試了使用docker安裝FastDFS,但在創建storage容器時無法映射出data中的多個目錄,為此也是嘗試了很多方法且網上多數是在ubuntu系統進行的安裝,前后花費了五六個小時,如果您有相關有效的解決的方法歡迎私信。這個方法我得出的結論是:

--network=host 參數只有在linux下生效, mac windows 都不能成功,所以導致安裝fastdfs是失敗的

因此筆者使用了如下的安裝方法,親測有效:

2.1 安裝包(如果要與Nginx連接,需要用下面百度雲的四件套)

鏈接:https://pan.baidu.com/s/1mQNAb7djkAtX3NyqqURT6g
密碼:lpoh

延伸閱讀:

注意:上兩個鏈接都是github上成熟的項目,進入頁面后點擊“Clone or download” ---> “Download ZIP”

2.2 安裝libfastcommon

cd libfastcommon壓縮包解壓后的文件地址,一定要自行修改如(/Users/..../Desktop/libfastcommon-master)
./make.sh
sudo ./make.sh install

2.3 安裝FastDFS

cd FastDFS壓縮包解壓后的文件地址,一定要自行修改如(/Users/..../Desktop/fastdfs-master)
./make.sh
sudo ./make.sh install

2.4 相關文件配置

(1)配置跟蹤服務器tracker

  • 拷貝tracker配置文件
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
  • 先手動創建您想要存放目錄,即收到創建文件夾(名稱自由,但盡量不變方便后期查找): /您方便的目錄/fdfs/tracker。筆者是在創建了如下目錄路徑是:

    /var/fdfs/tracker
    
  • 編輯/etc/fdfs/tracker.conf配置文件

    sudo vim /etc/fdfs/tracker.conf
    
    • 修改其中base_path的部分如下:
    base_path=/您方便的目錄/fdfs/tracker
    

(2)配置存儲服務器storage

  • 拷貝storage配置文件
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
  • 先手動創建您想要存放目錄,即收到創建文件夾(名稱自由,與上tracker保持在一個上級目錄下): /您方便的目錄/fdfs/storage。筆者是在創建了如下目錄:
/var/fdfs/storage
  • 編輯/etc/fdfs/storage.conf 配置文件
sudo vim /etc/fdfs/storage.conf
  • 修改其中的base_path, store_path0, tracker_server
base_path=/您方便的目錄/fdfs/storage
store_path0=/您方便的目錄/fdfs/storage
tracker_server=Mac的IP地址:22122

(3)啟動tracker和storage

sudo fdfs_trackerd /etc/fdfs/tracker.conf start
sudo fdfs_storaged /etc/fdfs/storage.conf start

(4)查看是否啟動成功

ps aux|grep fdfs

如出現下面情況,則表明成功:

root             13211  98.0  0.0  4298076    800   ??  R     2:58下午   0:02.19 fdfs_storaged /etc/fdfs/storage.conf start
你的mac名        13256   0.0  0.0  4268192    464 s000  R+    2:58下午   0:00.00 grep fdfs
root             13140   0.0  0.0  4297384    796   ??  S     2:58下午   0:00.00 fdfs_trackerd /etc/fdfs/tracker.conf start

2.5 client.conf配置文件修改

  • 拷貝client配置文件
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
  • 修改client配置文件
sudo vim /etc/fdfs/client.conf
  • 修改其中的內容:
base_path=/您方便的目錄/fdfs/tracker
tracker_server=您Mac的IP地址:22122


免責聲明!

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



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