1. 程式人生 > >簡單搭建FastDFS分布式文件系統(簡單易懂)

簡單搭建FastDFS分布式文件系統(簡單易懂)

module config 簡單 ble 視頻網站 mkdir -p pes 9.png target

一.什麽是FastDFS

  FastDFS一個開源的輕量級分布式文件系統,它對文件進行管理,充分考慮了冗余備份、負載均衡、線性擴容等機制,並註重高可用、高性能等指標,功能包括:文件存儲、文件同步、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件為載體的在線服務,如相冊網站、視頻網站等等。

二.工作原理

  FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。

  1.tracke 跟蹤器的作用:

    主要做調度工作,在訪問上起負載均衡的作用;其中所有的跟蹤器服務都是對等平級的,可以根據服務器的壓力的大小隨時增加或減少。

  2.storage 存儲節點的作用:

    完成文件管理的所有功能。(主要用於存儲文件,存儲完成後會返回一個地址給跟蹤器(tracker))

    為了可以支持擴容,跟蹤器和存儲節點都可以由一臺或多臺服務器構成。如果訪問的壓力大,可以多增加跟蹤器,如果存儲量大,可以增加多個存儲節點,同時,可以把同一存儲節點進行備份(back-up)。

系統架構圖

技術分享圖片

三.安裝過程

  1.準備工作

    準備2個不同ip的 linux 操作系統,安裝 gcc 環境(fastdfs是C語言開發的,因此需要安裝)

  2.安裝過程

    ①安裝libfastcommon

      解壓: tar -zxvf libfastcommonV1.0.7.tar.gz

      編譯: ./make.sh ./make.sh install

      註意libfastcommon安裝好後會自動將文件拷貝至/usr/lib64下,由於FastDFS程序引用usr/local/lib目錄所以需要將/usr/lib64下的庫文件拷貝至/usr/local/lib下。

    ② 建立軟連接

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

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

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

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

      作用: 將原文件復制到指定的路徑下,而不占用磁盤空間,並保持原文件的鏡像連接不被破壞。

    ③安裝FastDFS(共同部分)

      解壓: tar -zxvf FastDFS_v5.05.tar.gz

      編譯: ./make.sh ./make.sh install

    ④修改FastDFS 服務腳本bin

      因為FastDFS服務腳本設置的bin目錄為:/usr/local/bin/下,但是實際上安裝在了/usr/bin/下面,所以我們需要修改FastDFS配置文件,也就是需要修改2個配置文件

      命令: vim /etc/init.d/fdfs_storaged

      進行全局替換命令: %s+/usr/local/bin+/usr/bin

      命令: vim /etc/init.d/fdfs_trackerd

      進行全局替換命令: %s+/usr/local/bin+/usr/bin

    ⑤ tracker 跟蹤器的配置(192.168.25.131節點)

      1.進入 cd /etc/fdfs/ 目錄下

      2.復制1tracker

      命令: cp tracker.conf.sample tracker.conf

      技術分享圖片

      3修改tracker.conf的配置

        命令: vim tracker.conf

         1.修改base_path的路徑為:

          base_path=/fastdfs/tracker [此目錄用於存儲tracker的存儲信息]

        2.創建之前定義好的文件夾

          命令: mkdir -p /fastdfs/tracker

     啟動 tracker 跟蹤器

      啟動命令: /etc/init.d/fdfs_trackerd start

       停止命令: /etc/init.d/fdfs_trackerd stop

       查看進程: ps -ef | grep fdfs

      技術分享圖片

    ⑦設置開機啟動tracker 服務

      一般生產環境需要開機啟動一些服務,如keepalivedlinuxtomcat等等

       命令: vim /etc/rc.d/rc.local

      加入配置: /etc/init.d/fdfs_trackerd strat

  

    ⑧ storage 存儲器的配置(192.168.25.132節點)

      1.進入 cd /etc/fdfs/ 目錄下

      2.復制1storage

        命令: cp storage.conf.sample storage.conf

        技術分享圖片

      

        3修改storage.conf的配置

        命令: vim storage.conf

          1.配置內容為:

            base_path=/fastdfs/storage

            store_path0=/fastdfs/storage

            tracker_server=192.168.25.131:22122

            http.server_prot=8888 [這個基本上不用配]

          2.創建之前定義好的文件夾

            命令: mkdir -p /fastdfs/storage

        

        4.打開防火墻

          如果是生產環境,需要打開防火墻

          命令: vim /etc/sysconfig/iptables

          添加: -A INPUT -m state NEW -m tcp -p tcp -dport 23000 -j ACCEPT

          重啟: service iptables restart

    ⑨啟動 storage 存儲器

     在啟動 storage 之前需要先將 tracker啟動,因為 storage 中用到tracke的服務.[註意關掉 tracker中的防火墻]

      啟動 tracker 命令: /etc/init.d/fdfs_trackerd start

      停止 tracker 命令: /etc/init.d/fdfs_trackerd stop

      啟動 storage 命令: /etc/init.d/fdfs_storaged start

      停止 storage 命令: /etc/init.d/fdfs_storaged stop

      查看進程命令:     ps -ef | grep fdfs

      技術分享圖片

-------------------------------------------------------------------------------------------------------------------------

至此,我們的FastDFS 環境已經搭建完成

    ⑩創建 client 端進行測試

      Client端可以單獨出一個ip來配置,在這裏用 tracker 來配置

      1.進入 cd /etc/fdfs/ 目錄下

      2.復制1client

        命令: cp client.conf.sample client.conf

      3修改client.conf 的配置

        命令: vim client.conf

        配置內容為:

          base_path=/fastdfs/tracker

          tracker_server=192.168.25.131:22122

      4.測試上傳

         tracker中上傳1張照片到 /usr/local/software

        技術分享圖片

      5.tracker 中進行上傳【記得關掉2邊的防火墻

        命令: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf + 要上傳文件的路徑(/usr/local/software/IMG_20160831_191057.jpg)

        使用fdfs_upload_file 這個命令通過client.conf這個客戶端,將這個jpg文件上傳到服務器中

        技術分享圖片

        如果有返回值: /group1/M00/00/00/wKgZhFo9As2AeSMYABWdflqP_oo764.jpg 說明上傳成功

-------------------------------------------------------------------------------------------------------------------------

至此,我們的FastDFS 測試已完成

    ?FastDFSNginx的整合搭建

      在存儲節點上(storage ) 安裝fastdfs-nginx-module

      1.解壓 fastdfs-nginx-module_v1.16.tar.gz

        命令: mkdir -p /usr/local/fast/

        命令: tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/

     2.進入module的src目錄

         命令: cd /usr/local/fast/fastdfs-nginx-module/src

     3.編輯配置文件 config

        命令: vim config

       技術分享圖片

        把原先有local的路徑給去掉

     ? 安裝Nginx

        1.上傳解壓 nginx

        2.下載所需要的依賴庫

           命令: yum install pcre yum install pcre-devel

          命令: yum install zlib yum install zlib-devel

        3.進入nginx目錄下

          命令: cd /usr/local/software/nginx-1.8.0/ && ll

           技術分享圖片

           加入模塊命令:

            ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/

            在nginxsrc 中把 module中的命令添加進來

            技術分享圖片

           重新編譯安裝命令:

            make && make install

         

        4.復制 fastdfs-nginx-module 中的配置文件,到 /etc/fdfs 目錄中

          命令: cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

          因為啟動FastDFS時會用到fastdfs-nginx-module整合包中的命令,所以將它拷貝到啟動文件夾下

        5.修改剛才復制過來的文件 mod_fastdfs.conf

          命令: vim /etc/fdfs/mod_fastdfs.conf

          修改內容: 連接超時時間、跟蹤器路徑配置、url group 配置

            connect_timeout=10

            tracker_server=192.168.25.131:22122

            url_have_group_name=true(這樣才可以通過地址欄訪問到)

            store_path0=/fastdfs/storage

        6.復制剛才安裝FastDfs下的配置文件

          進入命令:cd /usr/local/software/FastDFS/conf && ll

          復制命令: cp http.conf mime.types /etc/fdfs/

        7.創建軟連接

          在/fastdfs/storage 文件存儲目錄下創建軟連接,將其鏈接到實際存放數據的目錄

          命令: ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00

        8.修改nginx的配置文件(這個nginx是加過module 的這個nginx,不是單一的nginx)

          進入命令: cd /usr/local/nginx/conf && ll

          修改命令: vim nginx.conf

            1.修改服務端口號

            技術分享圖片

            因為我們在配置 storagehttp.server_prot=8888 所以要跟這個服務保持一致

            

          2.修改 location 的匹配規則

            location ~/group([0-9]/M00){

              ngx_fastdfs_module;

            }

        

        9.最後檢查防火墻,然後我們啟動 nginx服務

          啟動nginx命令: /usr/local/nginx/sbin/nginx

          關閉nginx命令: /usr/local/nginx/sbin/nginx -s stop

          重新加載命令: /usr/local/nginx/sbin/nginx -s reload

          啟動成功:

          技術分享圖片

       10.查看nginx啟動成功

        地址欄: http://192.168.25.132:8888

        技術分享圖片

       11.驗證上傳圖片

        1.tracker storaged 2個服務啟起來

        2.上傳

          上傳命令: /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/img.jpg

          技術分享圖片

        3.在地址欄進行訪問

           storaged 的地址和返回的group id 拼接,進行訪問

          地址:

           192.168.25.132:8888/group1/M00/00/00/wKgZhFo9As2AeSMYABWdflqP_oo764.jpg

          技術分享圖片

  

  結束語:

    由於本人也是自己學習總結出來的,有不當之處,請各位看官及時指出,以提高知識總結的正確性和嚴謹性,為大家學習提供方便!!!

簡單搭建FastDFS分布式文件系統(簡單易懂)