摘要: FastDFS是一個開源的,高性能的的分佈式文件系統,他主要的功能包括:文件存儲,同步和訪問,設計基於高可用和負載均衡,FastDFS很是適用於基於文件服務的站點,例如圖片分享和視頻分享網站linux
聲明:對於分佈式的一些技術點在網上均可以查到,這邊對於一些基本的操做作了些相關的總結,並做爲分佈式框架技術的支持文檔,但願能夠幫助到你們服務器
FastDFS是一個開源的,高性能的的分佈式文件系統,他主要的功能包括:文件存儲,同步和訪問,設計基於高可用和負載均衡,FastDFS很是適用於基於文件服務的站點,例如圖片分享和視頻分享網站架構
FastDFS有兩個角色:跟蹤服務(tracker)和存儲服務(storage),跟蹤服務控制,調度文件以負載均衡的方式訪問;存儲服務包括:文件存儲,文件同步,提供文件訪問接口,同時以key value的方式管理文件的元數據app
跟蹤和存儲服務能夠由1臺或者多臺服務器組成,同時能夠動態的添加,刪除跟蹤和存儲服務而不會對在線的服務產生影響,在集羣中,tracker服務是對等的負載均衡
存框架
儲系統由一個或多個卷組成,卷與卷之間的文件是相互獨立的,全部卷的文件容量累加就是整個存儲系統中的文件容量。一個卷能夠由一臺或多臺存儲服務器組成,分佈式
一個卷下的存儲服務器中的文件都是相同的,卷中的多臺存儲服務器起到了冗餘備份和負載均衡的做用。在卷中增長服務器時,同步已有的文件由系統自動完成,同性能
步完成後,系統自動將新增服務器切換到線上提供服務。當存儲空間不足或即將耗盡時,能夠動態添加捲。只須要增長一臺或多臺服務器,並將它們配置爲一個新的學習
卷,這樣就擴大了存儲系統的容量。測試
1、開始安裝:
1. 在http://code.google.com/p/fastdfs/downloads/list下載所需文件,此外還需先安裝好libevent。
2. tar xzf FastDFS_v2.11.tar.gz
3. cd FastDFS
若是支持HTTP, vi make.sh,使用/WITH_HTTPD查找到這一行,輸入i進入編輯模式,刪除掉前面的註釋#,:wq保存退出,若是須要安裝成服務,則把下面一行也解開。
./make.sh
./make.sh install
4. 準備幾個空閒的端口,可使用netstat -an | grep 端口號是否被佔用。
5. 根據實際狀況修改/etc/fdfs下的配置文件,每一個上面都有註釋說明,若是須要HTTP,別忘了解開最下面的#include http.conf,要帶一個#
6. 啓動tracker: /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
7. 啓動storage: /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf,若是出現錯誤,能夠到步驟5修改配置文件時設置的目錄的log目錄下查看具體錯誤緣由。
8. 到此安裝配置完畢
2、操做使用:在FastDFS安裝目錄bin下有如下可執行文件。
上傳文件:/usr/local/bin/fdfs_upload_file
下載文件:/usr/local/bin/fdfs_download_file [local_filename]
刪除文件:/usr/local/bin/fdfs_delete_file
monitor: /usr/local/bin/fdfs_monitor /etc/fdfs/client.conf
關閉:
killall fdfs_trackerd
killall fdfs_storaged
或
/usr/local/bin/stop.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/local/bin/stop.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
重啓:
/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/local/bin/restart.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
3、測試上傳:
./fdfs_test ../conf/client.conf upload QQ.png,能夠看到文件上傳成功。
在app/fdfs407/data/data/00/3C目錄下能夠找到剛剛上傳的圖片:
4、FastDFS上傳/下載過程:
首 先客戶端 client 發起對 FastDFS 的文件傳輸動做,是經過鏈接到某一臺 Tracker Server
的指定端口來實現的,Tracker Server 根據目前已掌握的信息,來決定選擇哪一臺 Storage Server
,而後將這個Storage Server 的地址等信息返回給 client,而後 client 再經過這些信息鏈接到這臺 Storage
Server,將要上傳的文件傳送到給 Storage Server上。
上傳過程:
下載過程:
在個人項目中,通常啓動2個tracker和2個storage就能夠了,以下所示:
./fdfs_trackerd ../conf/tracker-1.conf
./fdfs_trackerd ../conf/tracker-2.conf
./fdfs_storaged ../conf/storage-g1-1.conf
./fdfs_storaged ../conf/storage-g2-1.conf
聲明:全部博客服務於分佈式框架,做爲框架的技術支持及說明,框架面向企業,是大型互聯網分佈式企業架構,後期會介紹linux上部署高可用集羣項目。
完整的項目源碼來源 歡迎你們一塊兒學習研究相關技術,源碼獲取請加求求:2670716182