一、分布式存儲系統簡介
隨著信息技術不斷的發展,給我們帶來便利的同時,不斷增加的數據量級、信息之間的連接關聯越來越復雜、數據訪問的并發量日益增加對I/O的要求越來越高、數據類型越來越復雜等難題也成為信息技術繼續高速發展亟需解決的難題。分布式存儲系統的出現在很大程度上解決了以上大部分難題。
分布式存儲系統,是將數據分散存儲在多臺獨立的設備上。傳統的網絡存儲系統采用集中的存儲服務器存放所有數據,存儲服務器成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模存儲應用的需要。分布式存儲系統采用可擴展的系統結構,利用多臺存儲服務器分擔存儲負荷,利用位置服務器定位存儲信息,它不但提高了系統的可靠性、可用性和存取效率,還易于擴展。
分布式存儲系統在接口類型上可分為通用分布式儲存和專用分布式儲存。通用分布式儲存是指沒有文件系統接口,需要通過API接口進行訪問;專用分布式儲存也稱為分布式文件系統,它們一般都會有文件系統接口,可以直接掛載。通用分布式儲存有mogilefs、fastdfs等,專用分布式儲存系統有moosefs等。
二、Mogilefs
MogileFS是一個開源的分布式文件存儲系統,MogileFS適用于存儲海量小文件的工作場景,由LiveJournal旗下的Danga Interactive公司開發,該團隊開發了包括 Memcached、MogileFS、Perlbal 等多個知名的開源項目。
1.Mogilefs架構圖:
2.組成Mogliefs的組件:
1.Trackers(mogilefsd):Mogliefs的核心組件,主要功能是(Replication)節點文件復制、(Deletion)文件刪除、(Query)元數據查詢、(Monitor)健康監測、(Reaper)儲存失敗重置等等。它通常稱為元數據服務器,但它不會去儲存元數據,而是將元數據儲存在如MySQL這一類的數據庫中。為保證架構的可靠性,Trackers一般有多個。Trackers可看作是一個旁掛式代理,只負責處理元數據信息。
2.數據庫:數據庫用來存放Mogliefs的元數據,而由Trackers來管理數據。因此通常建議做HA。
3.mogstored(儲存節點):實際文件存放的地方。通常會將實際文件保存至少兩份副本。
3.示例演示拓撲圖
在三個節點同時安裝Trackers和mogstored,選擇其中一個節點安裝MySQL。在生產環境最好是能單獨將MySQL部署并且做主從復制。Trackers和mogstored也可以分開部署在不同節點上,這些都需要根據實際的生產環境來決定。這里主要是演示mogilefs,不做MySQL主從復制演示。若想要Mogilefs能掛載,可以用FUSE來實現。
需要注意的是:mogilefs存儲的文件URL很特殊(后面會解釋mogilefs文件名生產的過程),如存儲一張圖片時文件URL可能會是類似6060/0000/0000/0000/00000021.jpg這樣的格式,對用戶來講就不太友好,用戶可能需要直觀的類似image.hello.com/21.jpg這樣的URL。所以通常會使用Nginx來反代Mogilefs。
新聞熱點
疑難解答