FastDFS分佈式文件系統

FastDFS簡介服務器

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

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

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

•支持存儲服務器在線擴容mvc

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

•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<tracker_conf_filename>

•#start the storage server:

•/usr/local/bin/fdfs_storaged<storage_conf_filename>
FastDFS和集中存儲方式對比

指標

FastDFS

NFS

集中存儲設備

如NetApp、NAS

線性擴容性

文件高併發訪問性能

通常

文件訪問方式

專有API

POSIX

支持POSIX

硬件成本

較低

中等

相同內容文件只保存一份

支持

不支持

不支持

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

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


官網資料,分享給你們學習 

核心技術:Maven,Springmvc mybatis shiro, Druid,Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx 
1.     項目核心代碼結構截圖

分佈式框架介紹 - kafkaee - kafkaee的博客

  項目模塊依賴

分佈式框架介紹 - kafkaee - kafkaee的博客

特別提醒:開發人員在開發的時候能夠將本身的業務REST服務化或者Dubbo服務化

2.    項目依賴介紹

   2.1 後臺管理系統、Rest服務系統、Scheculer定時調度系統依賴以下圖:

 

分佈式框架介紹 - kafkaee - kafkaee的博客

      2.2 Dubbo獨立服務項目依賴以下圖:

 

分佈式框架介紹 - kafkaee - kafkaee的博客

3.  項目功能部分截圖:

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客
 

zookeeper、dubbo服務啓動

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客
 

dubbo管控臺

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 REST服務平臺

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

 

分佈式框架介紹 - kafkaee - kafkaee的博客

相關文章
相關標籤/搜索