fastDFS and mogileFS

FastDFS設計時借鑑了MogileFS的一些思路。FastDFS是一個完善的分佈式文件存儲系統,通過客戶端API對文件進行讀寫。可以說,MogileFS的所有功能特性FastDFS都具備,MogileFS網址:http://www.danga.com/mogilefs/

 

mogilefs 安裝:http://durrett.net/mogilefs_setup.html

FastDFS詳情請參閱:http://www.csource.org/

fastdfs  下載:http://code.google.com/p/fastdfs/downloads/list




另外,相對於MogileFS,FastDFS具有如下特點和優勢:
1. FastDFS完善程度較高,不需要二次開發即可直接使用;
2. 和MogileFS相比,FastDFS裁減了跟蹤用的數據庫,只有兩個角色:tracker和storage。FastDFS的架構既簡化了系統,同時也消除了性能瓶頸;
3. 在系統中增加任何角色的服務器都很容易:增加tracker服務器時,只需要修改storage和client的配置文件(增加一行tracker配置);增加storage服務器時,通常不需要修改任何配置文件,系統會自動將該卷中已有文件複製到該服務器;
4. FastDFS比MogileFS更高效。表現在如下幾個方面:
    1)參見上面的第2點,FastDFS和MogileFS相比,沒有文件索引數據庫,FastDFS整體性能更高;
    2)從採用的開發語言上看,FastDFS比MogileFS更底層、更高效。FastDFS用C語言編寫,代碼量不到3萬行,沒有依賴其他開源軟件程序包,安裝和部署特別簡潔;而MogileFS用perl編寫;
    3)FastDFS直接使用socket通信方式,相對於MogileFS的HTTP方式,效率更高。並且FastDFS使用sendfile傳輸文件,採用了內存零拷貝,系統開銷更小,文件傳輸效率更高。
5. FastDFS有着詳細的設計和使用文檔,而MogileFS的文檔相對比較缺乏。
6. FastDFS的日誌記錄非常詳細,系統運行時發生的任何錯誤信息都會記錄到日誌文件中,當出現問題時方便管理員定位錯誤所在。
7. FastDFS還對文件附加屬性(即meta data,如文件大小、圖片寬度、高度等)進行存取,應用不需要使用數據庫來存儲這些信息。
8. FastDFS從V1.14開始支持相同文件內容只保存一份,這樣可以節省存儲空間,提高文件訪問性能。
9. FastDFS從V1.18開始支持下載文件時,允許指定文件偏移量和大小(字節數)。

fastDFS配置

最近的項目中一個早期規劃的版面大部分基於文字的,圖片不多,所以前期沒有做圖片分離,隨着公測,以及頁面效果的體驗。
決定要用大量圖片來做視覺衝擊。所以必須架設分佈式文件系統來實現圖片分離。之前用過mogilefs,感覺還是不錯,就是配置起來還是繁瑣,
並且是基於mysql做節點日誌控制的,所以比較麻煩點。
之所以採用FastDFS,使用它協議比較簡單。php操作也比較方便,當然更重要的是性能也不錯。

簡單配置
/*————–安裝—————————*/
wget http://fastdfs.googlecode.com/files/FastDFS_v1.22.tar.gz
tar zvxf FastDFS_v1.22.tar.gz
cd FastDFS
./make.sh
./make.sh install

/*————–配置—————————*/
服務器設定

tracker: 192.168.1.1
storage: 192.168.1.2

/*————–添加配置文件—————————*/
mkdir /usr/local/fasrdfs/
vim /usr/local/fasrdfs/tracker_config
vim /usr/local/fasrdfs/storage_config

/*——tracker_config——–tracker(跟蹤器)服務器——————-*/

bind_addr=
port=22122
network_timeout=20
base_path= /www/dlsite/uploads/events/
max_connections=256
store_lookup=0
store_group=group2
store_server=1
reserved_storage_space = 4GB
log_level=info
run_by_group=
run_by_user=
allow_hosts=*

/*——storage_config——–存儲節點(storage)服務器—————–*/

disabled=false
group_name=group1
bind_addr=12
port=23000
network_timeout=20
heart_beat_interval=30
stat_report_interval=600
base_path=/www/dlsite/uploads/events/
sync_wait_msec=200
max_connections=256
tracker_server=192.168.1.2:22122
log_level=info
run_by_group=
run_by_user=
allow_hosts=*

/*——————-啓動————————————*/
/usr/local/bin/fdfs_trackerd /usr/local/fastdfs/tracker_config
/usr/local/bin/fdfs_storaged /usr/local/fastdfs/storage_config

/*————–向存儲節點(storage)發送數據—————————*/

/usr/local/bin/fdfs_test /usr/local/fastdfs/storage_config upload 數據文件
/*————–查看進程—————————*/
ps aux | grep fdfs

 

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