分布式文件系統試用比較
MooseFS 很不錯,已經實用了半月了,易用,穩定,對小文件很高效。
MogileFS 據說對于 Web 2.0 應用存儲圖片啥的很好。
GlusterFS 感覺廣告宣傳做的比產品本身好。
OpenAFS/Coda 是很有特色的東西。
Lustre 復雜,高效,適合大型集群。
PVFS2 搭配定制應用會很好,據說曙光的并行文件系統就是基于 PVFS。
適合做通用文件系統的有 MooseFS,GlusterFS,Lustre。
================================================================
dCache
- 依賴 PostgreSQL
xtreemfs
* 服務端是 Java 實現的
- 性能不高
CloudStore (KosmosFS)
+ 被 Hadoop 作為分布式文件系統后端之一
- 不支持文件元信息
- kfs_fuse 太慢,不可用
- 編譯依賴多,文檔落后,腳本簡陋
- 開發不活躍
MooseFS
+ 支持文件元信息
+ mfsmount 很好用
+ 編譯依賴少,文檔全,默認配置很好
+ mfshdd.cfg 加 * 的條目會被轉移到其它 chunk server,以便此 chunk server 安全退出
+ 不要求 chunk server 使用的文件系統格式以及容量一致
+ 開發很活躍
+ 可以以非 root 用戶身份運行
+ 可以在線擴容
+ 支持回收站
+ 支持快照
- master server 存在單點故障
- master server 很耗內存
MogileFS
- 不適合做通用文件系統,適合存儲靜態只讀小文件,比如圖片
GlusterFS (特性)
+ 無單點故障問題
+ 支持回收站
+ 模塊化堆疊式架構
- 對文件系統格式有要求,ext3/ext4/zfs 被正式支持,xfs/jfs 可能可以,reiserfs 經測試可以 (系統需求)
- 需要以 root 用戶身份運行(用了 trusted xattr,mount 時加 user_xattr 選項是沒用的,官方說法是glusterfsd 需要創建不同屬主的文件,所以必需 root 權限)
- 不能在線擴容(不 umount 時增加存儲節點),計劃在 3.1 里實現
- 分布存儲以文件為單位,條帶化分布存儲不成熟
GFS2
http://sourceware.org/cluster/wiki/DRBD_Cookbook
http://www.smop.co.uk/blog/index.php/2008/02/11/gfs-goodgrief-wheres-the-documentation-file-system/
http://wiki.debian.org/kristian_jerpetjoen
http://longvnit.com/blog/?p=941
http://blog.chinaunix.net/u1/53728/showart_1073271.html (基于紅帽RHEL5U2 GFS2+ISCSI+XEN+Cluster 的高可性解決方案)
http://www.yubo.org/blog/?p=27 (iscsi+clvm+gfs2+xen+Cluster)
http://linux.chinaunix.net/bbs/thread-777867-1-1.html
* 并不是 distributed file system, 而是 shared disk cluster file system,需要某種機制在機器之間共享磁盤,以及加鎖機制,因此需要 drbd/iscsi/clvm/ddraid/gnbd 做磁盤共享,以及 dlm 做鎖管理)
- 依賴 Red Hat Cluster Suite (Debian: aptitude install redhat-cluster-suite, 圖形配置工具包system-config-cluster, system-config-lvm)
- 適合不超過約 30 個節點左右的小型集群,規模越大,dlm 的開銷越大,默認配置 8 個節點
OCFS2
* GFS 的 Oracle 翻版,據說性能比 GFS2 好 (Debian: aptitude install ocfs2-tools, 圖形配置工具包 ocfs2console)
- 不支持 ACL、flock,只是為了 Oracle database 設計
OpenAFS
+ 成熟穩定
+ 開發活躍,支持 Unix/Linux/MacOS X/Windows
- 性能不夠好
Coda
* 從服務器復制文件到本地,文件讀寫是本地操作因此很高效
* 文件關閉后發送到服務器
+ 支持離線操作,連線后再同步到服務器上
- 緩存基于文件,不是基于數據塊,打開文件時需要等待從服務器緩存到本地完畢
- 并發寫有版本沖突問題
- 并發讀有極大的延遲,需要等某個 client 關閉文件,比如不適合 tail -f some.log
- 研究項目,不夠成熟,使用不廣
PVFS2
http://blog.csdn.net/yfw418/archive/2007/07/06/1680930.aspx
* 高性能
- 沒有鎖機制,不符合 POSIX 語意,需要應用的配合,不適合做通用文件系統
(See pvfs2-guide chaper 5: PVFS2 User APIs and Semantics)
- 靜態配置,不能動態擴展
Lustre
* 適合大型集群
+ 很高性能
+ 支持動態擴展
- 需要對內核打補丁,深度依賴 Linux 內核和 ext3 文件系統
Hadoop HDFS
* 本地寫緩存,夠一定大小 (64 MB) 時傳給服務器
- 不適合通用文件系統
FastDFS
- 只能通過 API 使用,不支持 fuse
NFSv4 Referrals
+ 簡單
- 沒有負載均衡,容錯
NFSv4.1 pNFS
- 沒有普及
spNFS
* pNFS 在 Linux 上的一個實現
Ceph (http://ceph.newdream.net/)
- 開發初期,不穩定
- 依賴 btrfs
原文:http://selboo.com.cn/post/866/
【編輯推薦】