摘要: FastDFS是一個開源的,高性能的的分布式文件系統(tǒng)燥翅,他主要的功能包括:文件存儲骑篙,同步和訪問,設(shè)計基于高可用和負(fù)載均衡森书,F(xiàn)astDFS非常適用于基于文件服務(wù)的站點靶端,例如圖片分享和視頻分享網(wǎng)站
聲明:對于分布式的一些技術(shù)點在網(wǎng)上都可以查到谎势,這邊對于一些基本的操作做了些相關(guān)的總結(jié),并作為分布式框架技術(shù)的支持文檔躲查,希望可以幫助到大家
FastDFS是一個開源的它浅,高性能的的分布式文件系統(tǒng),他主要的功能包括:文件存儲镣煮,同步和訪問姐霍,設(shè)計基于高可用和負(fù)載均衡,F(xiàn)astDFS非常適用于基于文件服務(wù)的站點典唇,例如圖片分享和視頻分享網(wǎng)站
FastDFS有兩個角色:跟蹤服務(wù)(tracker)和存儲服務(wù)(storage)镊折,跟蹤服務(wù)控制,調(diào)度文件以負(fù)載均衡的方式訪問介衔;存儲服務(wù)包括:文件存儲恨胚,文件同步,提供文件訪問接口炎咖,同時以key value的方式管理文件的元數(shù)據(jù)
跟蹤和存儲服務(wù)可以由1臺或者多臺服務(wù)器組成赃泡,同時可以動態(tài)的添加,刪除跟蹤和存儲服務(wù)而不會對在線的服務(wù)產(chǎn)生影響乘盼,在集群中升熊,tracker服務(wù)是對等的
存 儲系統(tǒng)由一個或多個卷組成,卷與卷之間的文件是相互獨立的绸栅,所有卷的文件容量累加就是整個存儲系統(tǒng)中的文件容量级野。一個卷可以由一臺或多臺存儲服務(wù)器組成, 一個卷下的存儲服務(wù)器中的文件都是相同的粹胯,卷中的多臺存儲服務(wù)器起到了冗余備份和負(fù)載均衡的作用蓖柔。在卷中增加服務(wù)器時,同步已有的文件由系統(tǒng)自動完成风纠,同 步完成后况鸣,系統(tǒng)自動將新增服務(wù)器切換到線上提供服務(wù)。當(dāng)存儲空間不足或即將耗盡時竹观,可以動態(tài)添加卷懒闷。只需要增加一臺或多臺服務(wù)器,并將它們配置為一個新的 卷栈幸,這樣就擴(kuò)大了存儲系統(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)備幾個空閑的端口默刚,可以使用netstat -an | grep 端口號是否被占用。
5. 根據(jù)實際情況修改/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邪锌,如果出現(xiàn)錯誤,可以到步驟5修改配置文件時設(shè)置的目錄的log目錄下查看具體錯誤原因癌瘾。
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
三妨退、測試上傳:
./fdfs_test ../conf/client.conf upload QQ.png妇萄,可以看到文件上傳成功。
在app/fdfs407/data/data/00/3C目錄下可以找到剛剛上傳的圖片:
四咬荷、FastDFS上傳/下載過程:
首 先客戶端 client 發(fā)起對 FastDFS 的文件傳輸動作冠句,是通過連接到某一臺 Tracker Server 的指定端口來實現(xiàn)的,Tracker Server 根據(jù)目前已掌握的信息萍丐,來決定選擇哪一臺 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
聲明:所有博客服務(wù)于分布式框架拱层,作為框架的技術(shù)支持及說明,框架面向企業(yè)宴咧,是大型互聯(lián)網(wǎng)分布式企業(yè)架構(gòu)根灯,后期會介紹linux上部署高可用集群項目。
愿意了解框架技術(shù)或者源碼的朋友直接加求求(企鵝):2042849237