FastDFS安裝、啓動與文件訪問設置

目錄

1、分佈式文件系統概述

2、FastDFS簡介

3、FastDFS安裝前準備:

3.1、檢查Linux上是否安裝了gcc、libevent、libevent-devel,執行如下yum命令檢查:

3.2、安裝libfastcommon庫:

4、安裝FastDFS

5、FastDFS配置

6、啓動FastDFS

7、FastDFS停止與重啓

8、FastDFS測試

9、FastDFS的http訪問

9.1、FastDFS的Nginx訪問擴展模塊的下載與安裝

9.2、FastDFS的Nginx訪問配置

9.3、啓動Nginx

9.4、FastDFS的HTTP訪問

10、fastdfs的java客戶端運用

10.1、java程序

10.2、web程序


 

1、分佈式文件系統概述

分佈式文件系統(Distributed File System)是一個可以用來管理文件的軟件/軟件服務器。但是這個軟件所管理的文件通常不在一個服務器節點上,而是在多個服務器節點上,這些服務器節點通過網絡相連構成一個龐大的文件存儲服務器集羣,這些服務器都用於存儲文件資源,通過分佈式文件系統來管理這些服務器上的文件。

常見的分佈式文件系統有:FastDFS、GFS、HDFS(大數據文件系統)、Lustre、Ceph、GridFS、mogileFS、TFS(淘寶文件系統)等。

2、FastDFS簡介

FastDFS是一個開源的輕量級分佈式文件系統,它對文件進行管理,簡單、靈活、高效,由阿里巴巴採用C語言開發並開源。功能包括:文件存儲、文件同步(文件備份)、文件訪問(文件上傳、文件下載)等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、文檔網站、圖片網站、視頻網站等等。

FastDFS爲互聯網量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標,使用FastDFS很容易搭建一套高性能的文件服務器集羣提供文件上傳、下載等服務。

FastDFS服務端有兩個角色:跟蹤器(tracker)和存儲節點(storage)。跟蹤器主要做調度工作,在訪問上起負載均衡的作用。

存儲節點存儲文件,完成文件管理的所有功能:就是這樣的存儲、同步和提供存取接口,FastDFS同時對文件的metadata進行管理。所謂文件的meta data就是文件的相關屬性,以鍵值對(key value)方式表示,如:width=1024,其中的key爲width,value爲1024。文件metadata是文件屬性列表,可以包含多個鍵值對。

跟蹤器和存儲節點都可以由一臺或多臺服務器構成。跟蹤器和存儲節點中的服務器均可以隨時增加或下線而不會影響線上服務。其中跟蹤器中的所有服務器都是對等的,可以根據服務器的壓力情況隨時增加或減少。

爲了支持大容量,存儲節點(服務器)採用了分卷(或分組)的組織方式。存儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,所有卷的文件容量累加就是整個存儲系統中的文件容量。一個卷可以由一臺或多臺存儲服務器組成,一個卷下的存儲服務器中的文件都是相同的,卷中的多臺存儲服務器起到了冗餘備份和負載均衡的作用。

在卷中增加服務器時,同步已有的文件由系統自動完成,同步完成後,系統自動將新增服務器切換到線上提供服務。

當存儲空間不足或即將耗盡時,可以動態添加捲。只需要增加一臺或多臺服務器,並將它們配置爲一個新的卷,這樣就擴大了存儲系統的容量。

FastDFS中的文件標識分爲兩個部分:卷名和文件名,二者缺一不可。

3、FastDFS安裝前準備:

3.1、檢查Linux上是否安裝了gcc、libevent、libevent-devel,執行如下yum命令檢查:

yum list installed | grep gcc

yum list installed | grep libevent

yum list installed | grep libevent-devel

如果沒有安裝,則需要進行安裝,執行命令:yum install gcc libevent libevent-devel -y;

3.2、安裝libfastcommon庫:

libfastcommon庫是FastDFS文件系統運行需要的公共C語言函數庫;

3.2.1、下載libfastcommon源代碼包,下載地址:https://github.com/happyfish100

3.2.2、解壓下載下來的壓縮包:

如果擴展名是tar.gz,使用命令:tar -zxvf libfastcommon-x.x.x.tar.gz

如果擴展名是zip,使用命令:unzip libfastcommon-x.x.x.zip

3.2.3、切換到解壓後的libfastcommon目錄:

cd libfastcommon-x.x.x

3.2.4、執行make腳本進行編譯:./make.sh

注意:make編譯的時候如果報錯,需要解決錯誤後再次make,通常發生錯誤是由於Linux缺少依賴庫導致,根據錯誤提示解決錯誤。

3.2.5、執行make install進行安裝:./make.sh install

4、安裝FastDFS

4.1、下載FastDFS安裝包,下載地址:https://github.com/happyfish100

4.2、解壓下載下來的tar.gz包:tar -zxvf fastdfs-x.xx.tar.gz

4.3、切換到解壓後的目錄:cd fastdfs-x.xx

4.4、執行編譯:./make.sh

4.5、安裝:./make.sh install

FastDFS安裝完成之後的所有編譯出來的文件存放在/usr/bin/,所有配置文件放在/etc/fdfs目錄下,使用ll  /usr/bin/fdfs*查看編譯之後的文件。

4.6、把解壓之後的fastdfs-x.xx/conf/目錄下的http.conf和mime.types拷貝到/etc/fdfs/目錄下

cp http.conf /etc/fdfs/

cp mime.types /etc/fdfs/

5、FastDFS配置

FastDFS安裝之後所有配置文件放在/etc/fdfs目錄下,修改該目錄下的配置文件;

把所有的擴展名是.sample的文件後綴都去掉,改爲以.conf結尾。比如:mv xxx.conf.sample xxx.conf

5.1、修改tracker.conf文件

base_path=/opt/fastdfs/tracker;並且在/opt/fastdfs/目錄下創建tracker目錄

5.2、修改storage.conf文件

base_path=/opt/fastdfs/storage;並且在/opt/fastdfs/目錄下創建storage目錄

store_path0=/opt/fastdfs/storage/files;並且在/opt/fastdfs/storage/目錄下創建files目錄

tracker_server=192.168.5.128:22122(跟蹤器服務器地址以及端口號)

6、啓動FastDFS

FastDFS啓動需要啓動兩個腳本;

6.1、啓動FastDFS的tracker服務,在任意目錄下執行fdfs_trackerd /etc/fdfs/tracker.conf

6.2、啓動FastDFS的storage服務,在任意目錄下執行fdfs_storaged /etc/fdfs/storage.conf

首次啓動storage後,會在配置的路徑下創建存儲文件的目錄;

7、FastDFS停止與重啓

7.1、關閉tracker服務,在任意目錄下執行fdfs_trackerd /etc/fdfs/tracker.conf (stop|restart)

72.、關閉storage服務,在任意目錄下執行fdfs_storaged /etc/fdfs/storage.conf (stop|restart)

注意:start(可省略)/stop/restart

或者使用kill命令關閉fastdfs,但不建議使用kill -9強制關閉,因爲可能導致文件信息不同步的問題。

8、FastDFS測試

 FastDFS安裝完成之後,可以使用fdfs_test腳本測試文件上傳。

測試之前,需要修改client.conf配置文件:

base_path=/opt/fastdfs/client;並且在/opt/fastdfs/目錄下創建client目錄

tracker_server=192.168.5.128:22122(跟蹤器服務器地址以及端口號)

測試文件上傳,在任意目錄下執行命令:fdfs_test /etc/fdfs/client.conf upload /root/aa.txt

測試刪除文件,在任意目錄下執行命令:fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgFgFv_qYGAYjLoAAAGQ_YTfVU325_big.txt

9、FastDFS的http訪問

9.1、FastDFS的Nginx訪問擴展模塊的下載與安裝

9.1.1、下載fastDFS的Nginx擴展模塊代碼源:fastdfs-nginx-module,下載地址:https://github.com/happyfish100

9.1.2、解壓下載下來的tar.gz包:tar -zxvf fastdfs-nginx-module-1.20.tar.gz

9.1.3、下載nginx,並解壓;

9.1.4、切換到nginx目錄下,執行 ./configure --prefix=/usr/local/soft/nginx_fdfs --add-module=/usr/local/soft/fastdfs-nginx-module-1.20/src

9.1.5、執行命令進行編譯:make

make的時候報錯:usr/local/include/fastdfs/fdfs_define.h:15:27: 致命錯誤:common_define.h:沒有那個文件或目錄

原因分析:usr/local/include/fastdfs/目錄下沒有fdfs_define.h文件,讀取不到common_define.h文件

解決方案:

        方案1、修改配置文件:參考連接:https://blog.csdn.net/zzzgd_666/article/details/81911892

        方案2、找到缺失的文件,然後放到/usr/local/include/fastdfs/目錄下:將/usr/include/fastcommon目錄和/usr/include/fastdfs這兩個目錄下的文件拷貝到/usr/local/include/fastdfs/目錄下,如果沒有對應的目錄,則執行mkdir xxx命令創建目錄。

        方案3、將/usr/include/fastcommon目錄下的文件拷貝到/usr/include/fastdfs目錄下。

然後重新從步驟9.1.4開始執行(推薦使用方案1,因爲可以保持文件原有的目錄結構)。

9.1.6、執行命令進行安裝:make install

注意事項:

Linux系統中安裝Nginx的前提是安裝以下幾個依賴庫:

1、gcc編譯器

檢測是否安裝:yum list installed | grep gcc

執行安裝:yum install gcc -y

2、openssl編譯器

檢測是否安裝:yum list installed | grep openssl

執行安裝:yum install openssl -y

3、pcre編譯器

檢測是否安裝:yum list installed | grep pcre

執行安裝:yum install pcre -y

4、zlib編譯器

檢測是否安裝:yum list installed | grep zlib

執行安裝:yum install zlib -y

9.2、FastDFS的Nginx訪問配置

9.2.1、將/usr/local/soft/fastdfs-nginx-module-1.20/src目錄下的mod_fastdfs.conf文件copy到/etc/fdfs目錄下;

9.2.2、修改配置文件mod_fastdfs.conf:

base_path=/opt/fastdfs/nginx_mod,並且在/opt/fastdfs/目錄下創建nginx_mod;

tracker_server=192.168.1.189:22122

store_path0=/opt/fastdfs/storage/files,文件存儲路徑

url_have_group_name = true,表示URL中有group的名字(group1或者group2等)

9.2.3、Nginx的配置文件修改:

攔截請求路徑中包含/group[1-9]/M0[0-9]的請求,使用FastDFS的Nginx模塊進行轉發:

        location ~ /group[1-9]/M0[0-9]{
            ngx_fastdfs_module;
        }

至此 ,FastDFS的Nginx訪問配置完畢。

9.3、啓動Nginx

測試啓動執行命令:/usr/local/soft/nginx_fdfs/sbin/nginx -c /usr/local/soft/nginx_fdfs/conf/nginx.conf -t

啓動執行命令:/usr/local/soft/nginx_fdfs/sbin/nginx -c /usr/local/soft/nginx_fdfs/conf/nginx.conf

 

9.4、FastDFS的HTTP訪問

複製測試上傳文件的時候返回的那個http路徑,在瀏覽器中打開文件,如果訪問不到則檢查虛擬機的防火牆設置。

10、fastdfs的java客戶端運用

10.1、java程序

源碼:https://download.csdn.net/download/weixin_39082031/10937737

10.2、web程序

源碼:https://download.csdn.net/download/weixin_39082031/10937747

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章