FastDFS分佈式文件系統

摘要: FastDFS簡介 FastDFS是一個輕量級的開源分佈式文件系統 FastDFS主要解決了大容量的文件存儲和高併發訪問的問題,文件存取時實現了負載均衡 FastDFS實現了軟件方式的RAID,可以使用廉價的IDE硬盤進行存儲 支持存儲服務器在線擴容 支持相同內容的文件只保存一份,節約磁盤空間 FastDFS只能通過ClientAPI訪問,不支持POSIX訪問方式 FastDFS特別適合大中型網站使用,用來存儲資源文件(如:圖片、文檔、音頻、視頻等等)

FastDFS簡介

FastDFS是一個輕量級的開源分佈式文件系統

FastDFS主要解決了大容量的文件存儲和高併發訪問的問題,文件存取時實現了負載均衡

FastDFS實現了軟件方式的RAID,可以使用廉價的IDE硬盤進行存儲

支持存儲服務器在線擴容

支持相同內容的文件只保存一份,節約磁盤空間

FastDFS只能通過ClientAPI訪問,不支持POSIX訪問方式

FastDFS特別適合大中型網站使用,用來存儲資源文件(如:圖片、文檔、音頻、視頻等等)

系統架構-架構圖

系統架構-上傳文件流程圖

 1. client詢問tracker上傳到的storage,不需要附加參數;

 2. tracker返回一臺可用的storage;

 3. client直接和storage通訊完成文件上傳。

系統架構-下載文件流程圖

 1. client詢問tracker下載文件的storage,參數爲文件標識(組名和文件名);

 2. tracker返回一臺可用的storage;

 3. client直接和storage通訊完成文件下載。

相關術語

 Tracker Server:跟蹤服務器,主要做調度工作,在訪問上起負載均衡的作用。記錄storage server的狀態,是連接Client和Storageserver的樞紐。

 Storage Server:存儲服務器,文件和meta data都保存到存儲服務器上

 group:組,也可稱爲卷。同組內服務器上的文件是完全相同的

 文件標識:包括兩部分:組名和文件名(包含路徑)

 meta data:文件相關屬性,鍵值對(Key Value Pair)方式,如:width=1024,heigth=768

同步機制

同一組內的storageserver之間是對等的,文件上傳、刪除等操作可以在任意一臺storage server上進行;

文件同步只在同組內的storage server之間進行,採用push方式,即源服務器同步給目標服務器;

源頭數據才需要同步,備份數據不需要再次同步,否則就構成環路了;

上述第二條規則有個例外,就是新增加一臺storage server時,由已有的一臺storageserver將已有的所有數據(包括源頭數據和備份數據)同步給該新增服務器。

通信協議

 協議包由兩部分組成:header和body

 header共10字節,格式如下:

– 8 bytes body length

– 1 byte command

– 1 byte status

 body數據包格式由取決於具體的命令,body可以爲空

運行時目錄結構-tracker server

  ${base_path}

|__data

|     |__storage_groups.dat:存儲分組信息

|    |__storage_servers.dat:存儲服務器列表

|__logs

|__trackerd.log:trackerserver日誌文件

運行時目錄結構-storage server

  ${base_path}

|__data

|     |__.data_init_flag:當前storageserver初始化信息

|    |__storage_stat.dat:當前storage server統計信息

|    |__sync:存放數據同步相關文件

|    |     |__binlog.index:當前的binlog文件索引號

|    |     |__binlog.###:存放更新操作記錄(日誌)

|    |     |__${ip_addr}_${port}.mark:存放同步的完成情況

|    |

|     |__一級目錄:256個存放數據文件的目錄,如:00, 1F

|           |__二級目錄:256個存放數據文件的目錄

|__logs

|__storaged.log:storageserver日誌文件

安裝和運行

#step 1. download FastDFS source package and unpack it,

# if you use HTTP to download file, please downloadlibevent 1.4.x and install it

tar xzf FastDFS_v1.x.tar.gz

#for example:

tar xzf FastDFS_v1.20.tar.gz

#step 2. enter the FastDFS dir

cd FastDFS

#step 3. if HTTP supported, modify make.sh, uncommentthe line:

# WITH_HTTPD=1, then execute:

./make.sh

#step 4. make install

./make.sh install

#step 5. edit/modify the config file of tracker andstorage

#step 6. run server programs

#start the tracker server:

/usr/local/bin/fdfs_trackerd

#start the storage server:

/usr/local/bin/fdfs_storaged

FastDFS和集中存儲方式對比

 

 

FastDFS中文:http://www.csource.org/

 FastDFS英文:http://code.google.com/p/fastdfs/

官網資料,分享給大家學習

願意瞭解框架技術或者源碼的朋友直接加求求:2042849237



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