新一代彈性云計算平臺 Cloudxy 發布 0.1 版

jopen 13年前發布 | 9K 次閱讀 云計算

從年初到現在,經過大半年的奮戰,康華(博客)在工作之余,帶領西郵興趣小組的同學進行彈性云存儲項目的開發,目前終于完成了第一個版本,取名cloudxy,其中的xy意味著,任何感興趣者都可以加入進來,或許因為您的加入,這個xy就有了未知的擴展。
 Cloudxy立足于實現虛擬子網(以太網)的彈性云計算平臺, 該項目主要包含有兩個子項目:
 HLFS - 虛擬機分布式鏡像存儲 (類似于亞馬遜EBS,首先發布出來)
 ECM - 虛擬環境管理系統 (后續發布)
 源代碼位于:http://code.google.com/p/cloudxy/
 郵件列表為:cloudxy@googlegroups.com
------------------------------------------------------------------------------------
關于HLFS,康華寫的相關文檔在:

    FAQ — http://code.google.com/p/cloudxy/wiki/HlfsFAQ
    DESGIN — http://code.google.com/p/cloudxy/wiki/HlfsDesign
    User-Manual — http://code.google.com/p/cloudxy/wiki/HlfsUserManual
    Code - http://cloudxy.googlecode.com/svn/trunk/hlfs/

-----------------------------------------------------------------------------------------
  關于HLFS,請優先閱讀HlfS FAQ

    hlfs (hdfs log structrue filesystem 的縮寫)是一個在hadoop hdfs 文件系統之上實現的log structrue filesystem - like 系統。但要注意它并非一個實現完整posix語義的文件系統(支持目錄操作、link等),而是僅僅實現了單一文件的基本管理(open,write,read,close)的系統,所以把它稱為存儲系統(block-level)可能更加合適。

hlfs 能做什么?

    由于hlfs自身特色(高可用性、寫透、快照、分布式、用戶態),適合于做虛擬機鏡像存儲(類似亞馬遜EBS)、在線網盤(金山快盤等)等虛擬塊設備的存儲架構。甚至發散一下思維,它也可以做為pnfs類似系統的后臺存儲等等。

    注, 其實我們的這次發布中有一個在nbd基礎上實現的網盤,完全可以做為一個在線網盤使用。

hlfs 來源自哪里?

    hlfs 項目來自于我們當前正在研發的彈性云平臺:基于erlang實現的一套虛擬機、虛擬網絡管理系統,該系統有點像EC2,不過最終重點放在了管理虛擬子網(二層)上。這個項目也是一個開源項目,目前還處于開發初期。hlfs是該項目中的一個子項目,預先開源出來。

hlfs 如何實現的?

    簡單的講,hdfs 的實現特點決定了它完全可以當做一個高可用性、幾乎無限大的網絡磁盤使用,

但不幸的是,它只能追加寫入,無法隨機寫入(其實正是這種取舍保證了hdfs反熵、故障切換等簡單可靠的特點),對于在線應用隨機訪問而言(如虛擬機磁盤鏡像)無法直接使用。所以我們借助log structrure filesystem的特色,使用追加方式的元數據管理技術,在hdfs這個大磁盤上實現隨機數據讀寫功能。 具體的實現方法見設計描述 http://code.google.com/p/cloudxy/wiki/HlfsDesign?ts=1322292067& updated=HlfsDesign。

hlfs 有哪些特點?

    hlfs 繼承了hadoop dfs 和 log structrue filesystem的諸多優點,同時也繼承了其缺點。

優點:

    高可用性 —— 繼承dfs
    高擴展性(可上大規模)、自動不停機擴容 —— 繼承dfs
    負載均衡 —— 繼承dfs
    用戶態實現(便于調試、故障易隔離) ——繼承dfs
    穩定性、可管理性高 —— 得益于dfs成熟、普及
    寫速度優化 —— 繼承lfs 和 dfs
    支持運行態數據快照(便于數據污染后,執行回滾) —— 繼承lfs

缺點:

    需要數據合并(merge或者rewrite,已清除的舊數據回收存儲空間)—— 遺傳自lfs
    響應速度打折(副本一致性是通過pipeline式串行實現保證,所以寫速度受一定影響) —— 遺傳自dfs

為什么開源?

    集體智慧永遠大于個人或者小團體智慧,因此希望能有更多朋友參與進來,貢獻智慧,一同進步。
    飲水思源,從來都是用別人開源軟件,好歹也應該嘗試加入潮流。

hlfs roadmap ?

    目前0.1版本實現了基本概念原型,系統支持隨機讀寫。未來將進一步實現:

    checkpoint機制 ——
    block cache機制、異步回寫機制 —— 目前都是寫透讀透,安全性高,但性能差。
    預讀readahead —— 讀性能優化主要靠readahead和提高cache命中率。
    異步實現hlfs driver for tapdisk —— 目前實現是用同步IO模型實現之。
    hdfs一致性的改進(或者說特化)

hlfs 項目中包含那些組件 ?

    libhlfs 庫
    tools ——
        mkfs.hlfs 格式化工具
        hlfs-seg-usaage-calc 段使用統計工具
        hlfs-seg-clean 段清理工具(只能用于離線狀態使用)
    hlfs driver for tapdisk2
        hlfs driver tapdisk2的一個driver
        tapdisk_ops 外部控制工具
    采用nbd架構的虛擬磁盤實現
        ndb-server
        nbd-client
        nbd-ops 外部控制工具

hlfs 和同類項目有什么區別 ?

    sheepdog——牧羊犬項目的目的和hlfs最為相似,都是奔著EBS服務而生。hlfs先從xen虛擬化實現入手,sheepdog從kvm入手 (不過這都不重要,兩者都是面向block-level的)。牧羊犬項目的實現,頗具創意——其采用對等網(無單點)結構實現后臺存儲服務,頗有 Dynamo的影子在其中;hlfs的后臺存儲沒有自己實現,而是建設于hadoop dfs之上,可以說是站在巨人肩膀上 —— 我們也曾經思考過獨立開發分布存儲系統,不過考慮工作量、以及更重要的是,考慮到我們設想是在最終理想的云環境中離線任務和在線應用是無差別的混合部署。而hadoop是離線應用的基石之一。所以希望整個系統都能遵循以hdfs為最下層存儲基礎,其他各種服務(如VM服務鏡像存儲服務、如key value存儲服務、SQL \NO SQL等數據服務)都建立在其上的“分層策略”。基于此考慮,我們選擇了hdfs做后臺存儲。
    moose ——有些公司采用moose實現虛擬機鏡像存儲(存放鏡像文件)。moose系統做鏡像存儲來說有點“大材小用”,或者尾大不掉的感覺。它是一個實在的文件系統,而不是block-level級別的存儲系統,相比而言元數據管理稍微重點。moose系統存儲鏡像,就需要使用fuse模式掛載到本地系統,也就是說數據流要經過內核態轉發,相比hlfs只存在于用戶態,所以數據流更精簡,另外就是錯誤不至于影響內核錯誤;另外moose系統的反熵過程比較慢,較為影響當前寫操作;不能實現隨時快照功能。
    Drbd ——DRDB可看成網絡RAID。能解磁盤冗余、跨機器問題。但不能提供thin provisoning,也不能動態負載均衡。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!