FastDFS文件管理系統


 

一.FastDFS介紹

        FastDFS 是一個開源的高性能分布式文件系統(DFS)。 它的主要功能包括:文件存儲,文件同步和文件訪問,以及高容量和負載平衡。主要解決了海量數據存儲問題,特別適合以中小文件(建議范圍:4KB < file_size <500MB)為載體的在線服務。

FastDFS 系統有三個角色:跟蹤服務器(Tracker Server)、存儲服務器(Storage Server)和客戶端(Client)。

Tracker Server:跟蹤服務器,主要做調度工作,起到均衡的作用;負責管理所有的 storage server和 group,每個 storage 在啟動后會連接 Tracker,告知自己所屬 group 等信息,並保持周期性心跳。

Storage Server:存儲服務器,主要提供容量和備份服務;以 group 為單位,每個 group 內可以有多台 storage server,數據互為備份。

       Client:客戶端,上傳下載數據的服務器,也就是我們自己的項目所部署在的服務器。

 存儲節點Storage采用了分卷[Volume](或分組[group])的組織方式,存儲系統由一個或多個組組成,組與組之間的文件是相互獨立的,所有組的文件容量累加就是整個存儲系統中的文件容量。

   一個卷[Volume](組[group])可以由一台或多台存儲服務器組成,一個組中的存儲服務器中的文件都是相同的,組中的多台存儲服務器起到了冗余備份和負載均衡的作用,數據互為備份,存儲空間以group內容量最小的storage為准,所以建議group內的多個storage盡量配置相同,以免造成存儲空間的浪費。

二.操作環境

操作系統:Centos 6.5 

IP:192.168.200.101

三.下載安裝FastDFS

1.安裝相關依賴包

[root@zha ~]# yum -y install unzip zip  gcc-c++

2.下載安裝libfastcommon(公共C函數庫)

[root@zha ~]# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

[root@zha ~]# mkdir /softpackages

[root@zha ~]# tar xf V1.0.7 -C /softpackages/

[root@zha ~]# cd /softpackages/libfastcommon-1.0.7/

[root@zha libfastcommon-1.0.7]# ./make.sh && ./make.sh install

libfastcommon.so 安裝到了/usr/lib64/libfastcommon.so,但是FastDFS主程序設置的lib目錄是/usr/local/lib,所以需要創建軟鏈接。

[root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

[root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

[root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

[root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

3.下載安裝FastDFS

wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

[root@zha libfastcommon-1.0.7]# cd /softpackages/

[root@zha softpackages]# wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

[root@zha softpackages]# ls

libfastcommon-1.0.7  V5.05

[root@zha softpackages]# tar xf V5.05

[root@zha softpackages]# cd fastdfs-5.05/

[root@zha fastdfs-5.05]# ./make.sh && ./make.sh install

 

默認安裝方式安裝后的相應文件與目錄:

服務腳本:/etc/init.d/fdfs_storaged

               /etc/init.d/fdfs_tracker

配置文件:

/etc/fdfs/client.conf.sample

/etc/fdfs/storage.conf.sample

/etc/fdfs/tracker.conf.sample

4. 配置FastDFS跟蹤器(Tracker)

[root@zha fastdfs-5.05]# cd /etc/fdfs/

[root@zha fdfs]# cp tracker.conf.sample tracker.conf

修改tracker.conf配置文件

[root@zha fdfs]# vim tracker.conf

Tracker 數據和日志目錄地址(根目錄必須存在,子目錄會自動創建)

 

創建tracker基礎數據目錄,即base_path對應的目錄(用於存儲tracker的數據文件和日志文件等)

[root@zha fdfs]# mkdir -p /home/chenjiaxin/fastdfs

為啟動腳本創建軟引用,因為fdfs_trackerd等命令在/usr/local/bin中並沒有,而是在/usr/bin路徑下

[root@zha fdfs]# ln -s /usr/bin/fdfs_trackerd  /usr/local/bin

[root@zha fdfs]# ln -s /usr/bin/stop.sh  /usr/local/bin

[root@zha fdfs]# ln -s /usr/bin/restart.sh  /usr/local/bin

啟動服務

[root@zha fdfs]# /etc/init.d/fdfs_trackerd start

Starting FastDFS tracker server:

查看端口

[root@zha fdfs]# netstat -antp|grep fdfs

tcp        0      0 0.0.0.0:22122               0.0.0.0:*                   LISTEN      15181/fdfs_trackerd

設置開機啟動

[root@zha fdfs]# chkconfig fdfs_trackerd on

 

5. 配置 FastDFS 存儲 (Storage)

創建Storage服務器的文件目錄,注意同Tracker相比要多建一個目錄,因為Storage還需要一個文件存儲路徑,用於存放接收的文件:

[root@zha fdfs]# mkdir /opt/fastdfs_storage

[root@zha fdfs]# mkdir /opt/fastdfs_storage_data

[root@zha fdfs]# cp storage.conf.sample storage.conf

修改storage.conf配置文件:

[root@zha fdfs]# vim storage.conf

#設置storage數據文件和日志目錄
base_path=/opt/fastdfs_storage 
#實際文件存儲路徑 store_path0
=/opt/fastdfs_storage_data #存儲路徑個數,需要和store_path個數匹配 store_path_count=1 #tracker 服務器的 IP地址和端口號,如果是單機搭建,IP不要寫127.0.0.1,否則啟動不成功 tracker_server=192.168.200.101 :22122
#設置 http 端口號 http.server_port
=8888

配置完成后同樣要為Storage服務器的啟動腳本設置軟引用:

[root@zha fdfs]# ln -s /usr/bin/fdfs_storaged /usr/local/bin

[root@zha fdfs]# /etc/init.d/fdfs_storaged start

Starting FastDFS storage server:

查看是否有23000,22122,兩個端口

[root@zha fdfs]# netstat -nulpt | grep fdfs

tcp        0      0 0.0.0.0:23000               0.0.0.0:*                   LISTEN      15228/fdfs_storaged

tcp        0      0 0.0.0.0:22122               0.0.0.0:*                   LISTEN      15181/fdfs_trackerd

設置開機啟動

[root@zha fdfs]#chkconfig fdfs_storaged on

查看:storage服務器是否已經登記到 tracker服務器

[root@zha fdfs]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf

Storage 1:

            id = 192.168.200.101

            ip_addr = 192.168.200.101 (bogon)  ACTIVE

看到192.168.200.101 ACTIVE 證明成功登記到了tracker服務器

現在已經完成fastdfs的全部配置!

 

四.文件上傳測試

1.修改track客戶端配置文件

[root@zha fdfs]# cp client.conf.sample client.conf

[root@zha fdfs]# vim client.conf

[root@zha fdfs]# mkdir -p /home/a/fastdfs

2.上傳文件

[root@zha ~]# cd /opt/fastdfs_storage/data/

[root@zha data]# ls

fdfs_storaged.pid  storage_stat.dat

Penguins.jpg       sync

[root@zha data]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf Penguins.jpg

group1/M00/00/00/wKjIZVr6ZLqAD2P2AAvea_OGt2M341.jpg

上傳成功后返回文件ID號:

group1/M00/00/00/wKjIZVr6ZLqAD2P2AAvea_OGt2M341.jpg

返回的文件ID由group、存儲目錄、兩級子目錄、fileid、文件后綴名(由客戶端指定,主要用於區分文件類型)拼接而成。

 

 

 


免責聲明!

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



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