拓撲圖存儲
1. 基於mogileFS搭建分布式文件系統--海量小文件的存儲利器
1.簡介
分布式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網路與節點相連。分布式文件系統的設計基於客戶機/伺服器模式。一個典型的網路可能包括多個供多用戶訪問的伺服器。另外,對等特性允許一些系統扮演客戶機和伺服器的雙重角色。例如,用戶可以「發表」一個允許其他客戶機訪問的目錄,一旦被訪問,這個目錄對客戶機來說就像使用本地驅動器一樣。
當下我們處在一個互聯網飛速發展的信息 社會 ,在海量並發連接的驅動下每天所產生的數據量必然以幾何方式增長,隨著信息連接方式日益多樣化,數據存儲的結構也隨著發生了變化。在這樣的壓力下使得人們不得不重新審視大量數據的存儲所帶來的挑戰,例如:數據採集、數據存儲、數據搜索、數據共享、數據傳輸、數據分析、數據可視化等一系列問題。
傳統存儲在面對海量數據存儲表現出的力不從心已經是不爭的事實,例如:縱向擴展受陣列空間限制、橫向擴展受交換設備限制、節點受文件系統限制。
然而分布式存儲的出現在一定程度上有效的緩解了這一問題,之所以稱之為緩解是因為分布式存儲在面對海量數據存儲時也並非十全十美毫無壓力,依然存在的難點與挑戰例如:節點間通信、數據存儲、數據空間平衡、容錯、文件系統支持等一系列問題仍處在不斷摸索和完善中。
2.分布式文件系統的一些解決方案
Google Filesystem適合存儲海量大個文件,元數據存儲與內存中
HDFS(Hadoop Filesystem)GFS的山寨版,適合存儲大量大個文件
TFS(Taobao Filesystem)淘寶的文件系統,在名稱節點上將元數據存儲與關系資料庫中,文件數量不在受限於名稱節點的內容空間,可以存儲海量小文件LustreOracle開發的企業級分布式系統,較重量級MooseFS基於FUSE的格式,可以進行掛載使用MogileFS
擅長存儲海量的小數據,元數據存儲與關系型資料庫中
1.簡介
MogileFS是一個開源的分布式文件系統,用於組建分布式文件集群,由LiveJournal旗下DangaInteractive公司開發,Danga團隊開發了包括 Memcached、MogileFS、Perlbal等不錯的開源項目:(註:Perlbal是一個強大的Perl寫的反向代理伺服器)。MogileFS是一個開源的分布式文件系統。
目前使用 MogileFS 的公司非常多,比如國外的一些公司,日本前幾名的公司基本都在使用這個.
國內所知道的使用 MogileFS 的公司有圖片託管網站 yupoo又拍,digg, 土豆, 豆瓣,1 號店, 大眾點評,搜狗,安居客等等網站.基本很多網站容量,圖片都超過 30T 以上。
2.MogileFS特性
1) 應用層提供服務,不需要使用核心組件
2)無單點失敗,主要有三個組件組成,分為tracker(跟蹤節點)、mogstore(存儲節點)、database(資料庫節點)
3)自動復制文件,復制文件的最小單位不是文件,而是class
4)傳輸中立,無特殊協議,可以通過NFS或HTTP實現通信
5)簡單的命名空間:沒有目錄,直接存在與存儲空間上,通過域來實現
6)不用共享任何數據
3.MogileFS的組成
1)Tracker--跟蹤器,調度器
MogileFS的核心,是一個調度器,mogilefsd進程就是trackers進程程序,trackers的主要職責有:刪除數據、復制數據、監控、查詢等等.這個是基於事件的( event-based ) 父進程/消息匯流排來管理所有來之於客戶端應用的交互(requesting operations to be performed), 包括將請求負載平衡到多個"query workers"中,然後讓 mogilefs的子進程去處理.
mogadm,mogtool的所有操作都要跟trackers打交道,Client的一些操作也需要定義好trackers,因此最好同時運行多個trackers來做負載均衡.trackers也可以只運行在一台機器上,使用負載均衡時可以使用搞一些簡單的負載均衡解決方案,如haproxy,lvs,nginx等,
tarcker的配置文件為/etc/mogilefs/mogilefsd.conf,監聽在TCP的7001埠
2)Database--資料庫部分
主要用來存儲mogilefs的元數據,所有的元數據都存儲在資料庫中,因此,這個數據相當重要,如果資料庫掛掉,所有的數據都不能用於訪問,因此,建議應該對資料庫做高可用
3)mogstored--存儲節點
數據存儲的位置,通常是一個HTTP(webDAV)伺服器,用來做數據的創建、刪除、獲取,任何 WebDAV 伺服器都可以, 不過推薦使用 mogstored . mogilefsd可以配置到兩個機器上使用不同埠… mogstored 來進行所有的 DAV 操作和流量,IO監測, 並且你自己選擇的HTTP伺服器(默認為 perlbal)用來做 GET 操作給客戶端提供文件.
典型的應用是一個掛載點有一個大容量的SATA磁碟. 只要配置完配置文件後mogstored程序的啟動將會使本機成為一個存儲節點.當然還需要mogadm這個工具增加這台機器到Cluster中.
配置文件為/etc/mogilefs/mogstored.conf,監聽在TCP的7500埠
4.基本工作流程
應用程序請求打開一個文件 (通過RPC 通知到 tracker, 找到一個可用的機器). 做一個 「create_open」 請求.
tracker 做一些負載均衡(load balancing)處理,決定應該去哪兒,然後給應用程序一些可能用的位置。
應用程序寫到其中的一個位置去 (如果寫失敗,他會重新嘗試並寫到另外一個位置去).
應用程序 (client) 通過」create_close」 告訴tracker文件寫到哪裡去了.
tracker 將該名稱和域命的名空間關聯 (通過資料庫來做的)
tracker, 在後台, 開始復制文件,知道他滿足該文件類別設定的復制規則
然後,應用程序通過 「get_paths」 請求 domain+key (key == 「filename」) 文件, tracker基於每一位置的I/O繁忙情況回復(在內部經過 database/memcache/etc 等的一些抉擇處理), 該文件可用的完整 URLs地址列表.
應用程序然後按順序嘗試這些URL地址. (tracker』持續監測主機和設備的狀態,因此不會返回死連接,默認情況下他對返回列表中的第一個元素做雙重檢查,除非你不要他這么做..)
1.拓撲圖
說明:1.用戶通過URL訪問前端的nginx
2.nginx根據特定的挑選演算法,挑選出後端一台tracker來響應nginx請求
3.tracker通過查找database資料庫,獲取到要訪問的URL的值,並返回給nginx
4.nginx通過返回的值及某種挑選演算法挑選一台mogstored發起請求
5.mogstored將結果返回給nginx
6.nginx構建響應報文返回給客戶端
2.ip規劃
角色運行軟體ip地址反向代理nginx192.168.1.201存儲節點與調度節點1
mogilefs192.168.1.202存儲節點與調度節點2
mogilefs192.168.1.203資料庫節點
MariaDB192.168.1.204
3.資料庫的安裝操作並為授權
關於資料庫的編譯安裝,請參照本人相關博文http://wangfeng7399.blog.51cto.com/3518031/1393146,本處將不再累贅,本處使用的為yum源的安裝方式安裝mysql
4.安裝mogilefs. 安裝mogilefs,可以使用yum安裝,也可以使用編譯安裝,本處通過yum安裝
5.初始化資料庫
可以看到在資料庫中創建了一些表
6.修改配置文件,啟動服務
7.配置mogilefs
添加存儲主機
添加存儲設備
添加域
添加class
8.配置192.168.1.203的mogilefs 。切記不要初始化資料庫,配置應該與192.168.1.202一樣
9.嘗試上傳數據,獲取數據,客戶端讀取數據
上傳數據,在任何一個節點上傳都可以
獲取數據
客戶端查看數據
我們可以通過任何一個節點查看到數據
要想nginx能夠實現對後端trucker的反向代理,必須結合第三方模塊來實現
1.編譯安裝nginx
2.准備啟動腳本
3.nginx與mofilefs互聯
查看效果
5.配置後端truckers的集群
查看效果
大功告成了,後續思路,前段的nginx和資料庫都存在單點故障,可以實現高可用集群
2. 校園網路的拓撲結構圖
結構圖如下:
由網路節點設備和通信介質構成的網路結構圖。網路拓撲定義了各種計算機、列印機、網路設備和其他設備的連接方式。換句話說,網路拓撲描述了線纜和網路設備的布局以及數據傳輸時所採用的路徑。網路拓撲會在很大程度上影響網路如何工作。
(2)拓撲圖存儲擴展閱讀
星型網路拓撲結構的一種擴充便是星行樹,如左圖所示。每個Hub與端用戶的連接仍為星型,Hub的級連而形成樹。然而,應當指出,Hub級連的個數是有限制的,並隨廠商的不同而有變化。
樹型結構是分級的集中控制式網路,與星型相比,它的通信線路總長度短,成本較低,節點易於擴充,尋找路徑比較方便,但除了葉節點及其相連的線路外,任一節點或其相連的線路故障都會使系統受到影響。
適用場合:只適用於低速、不用阻抗控制的信號,比如在沒有電源層的情況下,電源的布線就可以採用這種拓撲。
3. 怎麼存儲並繪制一個網路拓撲結構圖
打開開始菜單--程序--microsoft office visio;
為了便於我們繪圖,首先我們必須要把需要的繪圖菜單調出來。點擊文件--形狀--網路;
選擇網路裡面的伺服器、計算機和顯示器、網路和外設和網路位置。這是最常用的四項網路繪圖功能。
選擇好繪圖工具,在visio的左側將會出現你選擇的繪圖工具欄窗口;
繪圖時,根據需要來選擇圖形。比如說畫雲:在網路位置的工具欄選擇雲長按滑鼠左鍵然後拖到右側的編輯網格中。
為了讓圖形更加的美觀,我們還可以對編輯好的圖形做一定的放大縮小改動,點擊圖形四周的綠色小方塊拉動滑鼠方向鍵進行相應的調整;
網路中間的路線我們可以用工具欄裡面的連接線工具來代表。
依次把對應的硬體設備和pc編輯上去就ok了。