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

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

在咱們進行相關項目開發時,確定會遇到須要進行文件保存的需求。那麼這些文件(如圖片)保存到哪裏呢?linux

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

1 FastDFS介紹

1.1 FastDFS架構

包括ClientTracker serverStorage servergit

  • 總體過程: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 工做原理實例介紹

以上傳文件爲例:github

  • 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)docker

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

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

在這裏插入圖片描述

2 FastDFS安裝(mac)

筆者先嚐試了使用docker安裝FastDFS,但在建立storage容器時沒法映射出data中的多個目錄,爲此也是嘗試了不少方法且網上多數是在ubuntu系統進行的安裝,先後花費了五六個小時,若是您有相關有效的解決的方法歡迎私信。這個方法我得出的結論是:vim

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

所以筆者使用了以下的安裝方法,親測有效:瀏覽器

2.1 安裝包

注意:上兩個連接都是github上成熟的項目,進入頁面後點擊「Clone or download」 ---> 「Download ZIP」bash

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/tracke
  • 編輯/etc/fdfs/tracker.conf配置文件

    sudo vim /etc/fdfs/tracker.conf
    • 修改其中base_path的部分以下:
    base_path=/您方便的目錄/fastdfs/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
相關文章
相關標籤/搜索