我在工作中需要把生產環境的使用者訪問日誌儲存到資料處理伺服器,並備份起來。一開始的做法是由人工來均衡資料處理伺服器的空間使用,但是隨著伺服器資料量的增加,人工的管理將變得很困難,一方面是存在單點故障的問題,如果一台資料處理伺服器掛了,上面的資料可能會丟失;另一方面,為了均衡各伺服器間的空間使用,需要把日誌從一台伺服器傳輸到另外一台。顯然人工的方式已經無法滿足資料增長的要求了,需要引入自動化的伺服器檔案管理系統。moosefs是一種分布式檔案系統,結構包括以下四種角色:
1 管理伺服器managing server (master)
2 元資料日誌伺服器metalogger server(metalogger)
3 資料儲存伺服器data servers (chunkservers)
4 客戶機掛載使用client computers
各種角色的作用如下:
1 管理伺服器:負責各個資料儲存伺服器的管理,檔案讀寫排程,檔案空間**以及恢復.多節點拷貝
2 元資料日誌伺服器: 負責備份master伺服器的變化日誌檔案,檔案型別為changelog_ml.*.mfs,以便於在master server出問題的時候接替其進行工作
3 資料儲存伺服器:負責連線管理伺服器,聽從管理伺服器排程,提供儲存空間,並為客戶提供資料傳輸.
4 客戶端: 通過fuse核心介面掛接遠端管理伺服器上所管理的資料儲存伺服器,.看起來共享的檔案系統和本地unix檔案系統使用一樣的效果.
工作原理如下圖所示:
簡單的說,就是找一台伺服器作為moosefs的master,其他的伺服器都掛到這個master上面,由master統一進行資料儲存的管理和讀寫的排程。使用起來就像在本地操作乙個超大的硬碟。
這樣處理之後,傳到一台伺服器的日誌檔案將會被打散到各個伺服器上,從而實現了伺服器空間使用的均衡;其次,moosefs可以靈活的調整資料的備份個數,備份的資料將會被隨機的儲存到其他機器,比如做兩個備份時,資料將會被拷貝到兩台不同的伺服器,從而保證了在一台機器掛掉的情況下,資料依舊安全。
雖然使用moosefs可以解決伺服器空間使用均衡和資料備份安全的問題,但是由於是通過一台中心機進行排程的,所以當這台中心機掛掉的話,伺服器上的資料將難以辨認和查詢。其次,當moosefs上某台機器的硬碟損壞了,將導致整個moosefs的日誌傳輸速度變得很慢,而且有可能會導致正在讀取該盤資料的程式僵死。
所以在使用moosefs時需要做一些準備工作:
1、master機要有主備。這樣可以在其中一台master壞的情況下及時切換和排程資料的備份
2、需要做好對伺服器硬碟的監控。當出現某個硬碟損壞時,要及時將該硬碟踢掉。
MooseFs的使用與操作
1 系統掛載 客戶端可以利用mfsmount掛載mfs與輔助的mfsmeta檔案系統。mfs檔案系統是正規的mfs掛載系統,裡面包含了所有的mfs儲存的檔案與目錄。mfsmeta檔案系統是mfs提供用於輔助的檔案系統,相當與windows的 站。分配作業系統掛載許可權 類似nfs的exports檔案...
HashCode的利與弊
hashcode是怎麼來的?將物件實體地址轉換成乙個整數,然後該整數通過hash函式的演算法就得到了hashcode。該整數和hashcode是對應的,而物件的實體地址和該整數也是對應的。所以,物件的實體地址,整數,hashcode是一種對映關係。查詢效率高!為什麼查詢效率高?因為採用雜湊表,也就是...
雲計算的利與弊
最近,雲計算這個炙手可熱的技術再次點燃競爭的火花。各大it巨頭紛紛推出自己的雲技術,並在全世界修建推廣自己的雲計算中心.例如 ibm將投資三億美元新建13個資料中心,這樣世界各地的客戶可以利用這種基於雲技術的儲存模式儲存其資料,即使遇到天災人禍也不用擔心資料丟失,可以輕易恢復資料。google將向美...