快速開啓FastDFS之旅...

1、FastDFS基本概念及基本原理

1.什麼是FastDFSnginx

  FastDFS是用C語言編寫的一款開源的分佈式文件系統。FastDFS爲互聯網量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集羣提供文件上傳、下載等服務。主要功能包括文件存儲、文件同步、文件訪問(上傳、下載)、存取負載均衡、在線擴容、相同內容只存儲一份等功能,適合有大容量存儲需求的應用或系統。作分佈式系統開發時,其中要解決的一個問題就是圖片、音視頻、文件共享的問題,分佈式文件系統正好能夠解決這個需求。同類的分佈式文件系統有谷歌的GFS、HDFS(Hadoop)、TFS(淘寶)等。git

  FastDFS有兩個角色:跟蹤服務(tracker)和存儲服務(storage),跟蹤服務控制,調度文件以負載均衡的方式訪問;存儲服務包括:文件存儲,文件同步,提供文件訪問接口,同時以key value的方式管理文件的元數據。github

  跟蹤和存儲服務能夠由1臺或者多臺服務器組成,同時能夠動態的添加,刪除跟蹤和存儲服務而不會對在線的服務產生影響,在集羣中,tracker服務是對等的。瀏覽器

  存儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,全部卷的文件容量累加就是整個存儲系統中的文件容量。一個卷能夠由一臺或多臺存儲服務器組成,一個卷下的存儲服務器中的文件都是相同的,卷中的多臺存儲服務器起到了冗餘備份和負載均衡的做用。在卷中增長服務器時,同步已有的文件由系統自動完成,同步完成後,系統自動將新增服務器切換到線上提供服務。當存儲空間不足或即將耗盡時,能夠動態添加捲。只須要增長一臺或多臺服務器,並將它們配置爲一個新的卷,這樣就擴大了存儲系統的容量。服務器

2.FastDFS系統架構   
快速開啓FastDFS之旅...
3.文件上傳流程 
快速開啓FastDFS之旅...
4.文件下載流程  
快速開啓FastDFS之旅...
5.上傳文件的文件名架構

  客戶端上傳文件後存儲服務器將文件ID返回給客戶端,此文件ID用於之後訪問該文件的索引信息。文件索引信息包括:組名,虛擬磁盤路徑,數據兩級目錄,文件名。  
快速開啓FastDFS之旅...
  1). 組名:文件上傳後所在的storage組名稱,在文件上傳成功後有storage服務器返回,須要客戶端自行保存。app

  2). 虛擬磁盤路徑:storage配置的虛擬路徑,與磁盤選項store_path*對應。若是配置了store_path0則是M00,若是配置了store_path1則是M01,以此類推。負載均衡

  3). 數據兩級目錄:storage服務器在每一個虛擬磁盤路徑下建立的兩級目錄,用於存儲數據文件。分佈式

  文件名:與文件上傳時不一樣。是由存儲服務器根據特定信息生成,文件名包含:源存儲服務器IP地址、文件建立時間戳、文件大小、隨機數和文件拓展名等信息。ide

2、搭建步驟

  爲了直觀立體,咱們選擇使用一臺虛擬機來模擬,只配置一個Tracker、一個Storage服務,配置Nginx來訪問上傳的文件。
快速開啓FastDFS之旅...

第一步.安裝fastDFS依賴的libevent工具包

  yum -y install libevent

第二步.下載FastDFS以及相關源碼包

  1.下載libfastcommon
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.35.tar.gz -O libfastcommon-1.0.35.tar.gz
  2.下載fastdfs源碼包

   wget https://github.com/happyfish100/fastdfs/archive/V5.10.tar.gz -O fastdfs-5.10.tar.gz

  3.下載fastdfs-nginx-module源碼包  wget https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz/download -O fastdfs-nginx-module_v1.16.tar.gz

  4.下載nginx源碼包

    wget http://nginx.org/download/nginx-1.12.0.tar.gz

第三步.安裝libfastcommon

  1.解壓縮libfastcommon並進入解壓後的目錄

    tar -zxvf libfastcommon-1.0.35.tar.gz && cd libfastcommon-1.0.35

  2.進行make和make install

    ./make.sh && ./make.sh install

  3.設置軟連接或者拷貝usr/lib64/libfastcommon.so文件到/usr/lib/下(64位系統跳過該步驟)

   ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
   ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
   ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
   ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

第四步.安裝Tracker服務

  1.解壓縮fastdfs-5.10.tar.gz並進入解壓後的目錄

    tar -zxvf fastdfs-5.10.tar.gz && cd fastdfs-5.10.tar.gz

  2.進行make和make install

    ./make.sh && ./make.sh install

   注:上面命令運行成功之後,會在/usr/bin目錄下生成以fdfs開頭的文件

  3.拷貝源碼解壓包目錄下conf目錄下的全部文件到/etc/fdfs下

    cp ~/fastdfs/fastdfs-5.10.tar.gz/conf/* /etc/fdfs/

  4.修改/etc/fdfs/tracker.conf文件對tracker進行配置   
快速開啓FastDFS之旅...
  5.啓動tracker服務

    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

    重啓命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

第五步.安裝Storage服務

  1.若是是在不一樣的服務器安裝該服務,第四步的1~3須要從新執行.

  2.修改/etc/fdfs/storage.conf文件對storage進行配置          
快速開啓FastDFS之旅...
快速開啓FastDFS之旅...
快速開啓FastDFS之旅...
  3.啓動storage服務

    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

    重啓:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

第六步.測試服務

  1.修改配置文件/etc/fdfs/client.conf配置客戶端    
快速開啓FastDFS之旅...
快速開啓FastDFS之旅...
  2.測試

    /usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg

成功會出現如下文字 
快速開啓FastDFS之旅...
先記下此處上傳成功文件的url是:http://192.168.85.131/group1/M00/00/00/wKhVg1kl_NGAd61UAABdrZgsqUU293_big.jpg

第七步:搭建Nginx提供Http服務

 1.安裝教程:Centos7安裝Nginx實戰

  注意:配置的參數要發生以下變化:添加最後一行

快速開啓FastDFS之旅...

 2.安裝完成之後,須要/root/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf文件複製到/etc/fdfs目錄下

   cp /root/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

 3.對copy後的文件進行編輯    
快速開啓FastDFS之旅...
快速開啓FastDFS之旅...
快速開啓FastDFS之旅...
4.對nginx進行配置

  在nginx配置文件中增長一個server:

快速開啓FastDFS之旅...
5.將libfdfsclient.so拷貝至/usr/lib下(64位機器跳過此步驟)

 cp /usr/lib64/libfdfsclient.so /usr/lib/

6.啓動nginx

  cd /usr/local/nginx/sbin && ./nginx

第八步.對以前測試上傳的文件進行訪問,瀏覽器輸入:http://192.168.85.131/group1/M00/00/00/wKhVg1kl_NGAd61UAABdrZgsqUU293_big.jpg

快速開啓FastDFS之旅...

出現此圖片說明fastdfs圖片服務器以及nginx插件搭建成功!

相關文章
相關標籤/搜索