摘要: FastDFS是一個(gè)開源的蕾殴,高性能的的分布式文件系統(tǒng),他主要的功能包括:文件存儲(chǔ)钓觉,同步和訪問,設(shè)計(jì)基于高可用和負(fù)載均衡坚踩,F(xiàn)astDFS非常適用于基于文件服務(wù)的站點(diǎn),例如圖片分享和視頻分享網(wǎng)站
聲明:對(duì)于分布式的一些技術(shù)點(diǎn)在網(wǎng)上都可以查到瞬铸,這邊對(duì)于一些基本的操作做了些相關(guān)的總結(jié),并作為分布式框架技術(shù)的支持文檔嗓节,希望可以幫助到大家
FastDFS是一個(gè)開源的,高性能的的分布式文件系統(tǒng)拦宣,他主要的功能包括:文件存儲(chǔ)截粗,同步和訪問绸罗,設(shè)計(jì)基于高可用和負(fù)載均衡,F(xiàn)astDFS非常適用于基于文件服務(wù)的站點(diǎn)豆瘫,例如圖片分享和視頻分享網(wǎng)站
FastDFS有兩個(gè)角色:跟蹤服務(wù)(tracker)和存儲(chǔ)服務(wù)(storage),跟蹤服務(wù)控制靡羡,調(diào)度文件以負(fù)載均衡的方式訪問;存儲(chǔ)服務(wù)包括:文件存儲(chǔ)略步,文件同步,提供文件訪問接口趟薄,同時(shí)以key value的方式管理文件的元數(shù)據(jù)
跟蹤和存儲(chǔ)服務(wù)可以由1臺(tái)或者多臺(tái)服務(wù)器組成绽诚,同時(shí)可以動(dòng)態(tài)的添加恩够,刪除跟蹤和存儲(chǔ)服務(wù)而不會(huì)對(duì)在線的服務(wù)產(chǎn)生影響,在集群中蜂桶,tracker服務(wù)是對(duì)等的
存
儲(chǔ)系統(tǒng)由一個(gè)或多個(gè)卷組成儡毕,卷與卷之間的文件是相互獨(dú)立的扑媚,所有卷的文件容量累加就是整個(gè)存儲(chǔ)系統(tǒng)中的文件容量。一個(gè)卷可以由一臺(tái)或多臺(tái)存儲(chǔ)服務(wù)器組成疆股,
一個(gè)卷下的存儲(chǔ)服務(wù)器中的文件都是相同的,卷中的多臺(tái)存儲(chǔ)服務(wù)器起到了冗余備份和負(fù)載均衡的作用旬痹。在卷中增加服務(wù)器時(shí),同步已有的文件由系統(tǒng)自動(dòng)完成两残,同
步完成后永毅,系統(tǒng)自動(dòng)將新增服務(wù)器切換到線上提供服務(wù)卷雕。當(dāng)存儲(chǔ)空間不足或即將耗盡時(shí)节猿,可以動(dòng)態(tài)添加卷。只需要增加一臺(tái)或多臺(tái)服務(wù)器滨嘱,并將它們配置為一個(gè)新的
卷峰鄙,這樣就擴(kuò)大了存儲(chǔ)系統(tǒng)的容量太雨。
一、開始安裝:
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進(jìn)入編輯模式,刪除掉前面的注釋#,:wq保存退出搏予,如果需要安裝成服務(wù),則把下面一行也解開。
./make.sh
./make.sh install
4. 準(zhǔn)備幾個(gè)空閑的端口碗殷,可以使用netstat -an | grep 端口號(hào)是否被占用。
5. 根據(jù)實(shí)際情況修改/etc/fdfs下的配置文件锌妻,每個(gè)上面都有注釋說明,如果需要HTTP仿粹,別忘了解開最下面的#include http.conf襟己,要帶一個(gè)#
6. 啟動(dòng)tracker:?/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
7. 啟動(dòng)storage:?/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf牍陌,如果出現(xiàn)錯(cuò)誤,可以到步驟5修改配置文件時(shí)設(shè)置的目錄的log目錄下查看具體錯(cuò)誤原因毒涧。
8. 到此安裝配置完畢
二、操作使用:在FastDFS安裝目錄bin下有以下可執(zhí)行文件契讲。
上傳文件:/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
關(guān)閉:
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
三、測(cè)試上傳:
./fdfs_test ../conf/client.conf upload QQ.png捡偏,可以看到文件上傳成功。
在app/fdfs407/data/data/00/3C目錄下可以找到剛剛上傳的圖片:
四银伟、FastDFS上傳/下載過程:
首 先客戶端 client 發(fā)起對(duì) FastDFS 的文件傳輸動(dòng)作,是通過連接到某一臺(tái) Tracker Server
的指定端口來實(shí)現(xiàn)的彤避,Tracker Server 根據(jù)目前已掌握的信息,來決定選擇哪一臺(tái) Storage Server
琉预,然后將這個(gè)Storage Server 的地址等信息返回給 client董饰,然后 client 再通過這些信息連接到這臺(tái) Storage
Server圆米,將要上傳的文件傳送到給 Storage Server上。
上傳過程:
下載過程:
在我的項(xiàng)目中也祠,一般啟動(dòng)2個(gè)tracker和2個(gè)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
聲明:所有博客服務(wù)于分布式框架齿坷,作為框架的技術(shù)支持及說明桂肌,框架面向企業(yè)永淌,是大型互聯(lián)網(wǎng)分布式企業(yè)架構(gòu),后期會(huì)介紹linux上部署高可用集群項(xiàng)目遂蛀。
愿意了解框架技術(shù)或者源碼的朋友直接加求求(企鵝):2042849237
更多詳細(xì)源碼參考來源:http://minglisoft.cn/technology