分散式存儲系統
分散式存儲系統
分散式存儲系統(disteibuted storage system)是指將數據分散存儲在與網路互聯的多台獨立的設備上,提供并行訪問的存儲系統。系統中通常採用數據冗餘技術提高可靠性,採用負載均衡、鎖機制等提高存取效率等。分散式存儲系統大體可分為集群存儲系統和面向網際網路的分散式存儲系統兩種類型。
分散式存儲系統,是將數據分散存儲在多台獨立的設備上。傳統的網路存儲系統採用集中的存儲伺服器存放所有數據,存儲伺服器成為系統性能的瓶頸,也是可靠性和安全性的焦點,不能滿足大規模存儲應用的需要。分散式網路存儲系統採用可擴展的系統結構,利用多台存儲伺服器分擔存儲負荷,利用位置伺服器定位存儲信息,它不但提高了系統的可靠性、可用性和存取效率,還易於擴展。
在大數據環境下,元數據的體量也非常大,元數據的存取性能是整個分散式文件系統性能的關鍵。常見的元數據管理可以分為集中式和分散式元數據管理架構。集中式元數據管理架構採用單一的元數據伺服器,實現簡單.但是存在單點故障等問題。分散式元數據管理架構則將元數據分散在多個結點上.進而解決了元數據伺服器的性能瓶頸等問題.並提高了元數據管理架構的可擴展性,但實現較為複雜,並引入了元數據一致性的問題。另外,還有一種無元數據伺服器的分散式架構,通過在線演演算法組織數據,不需要專用的元數據伺服器。但是該架構對數據一致性的保障很困難.實現較為複雜。文件目錄遍歷操作效率低下,並且缺乏文件系統全局監控管理功能。
在大數據環境下,數據規模和複雜度的增加往往非常迅速,對系統的擴展性能要求較高。實現存儲系統的高可擴展性首先要解決兩個方面的重要問題,包含元數據的分配和數據的透明遷移。元數據的分配主要通過靜態子樹劃分技術實現,後者則側重數據遷移演演算法的優化。此外,大數據存儲體系規模龐大.結點失效率高,因此還需要完成一定的自適應管理功能。系統必須能夠根據數據量和計算的工作量估算所需要的結點個數,並動態地將數據在結點間遷移。以實現負載均衡;同時.結點失效時,數據必須可以通過副本等機制進行恢復,不能對上層應用產生影響。
構建存儲系統時.需要基於成本和性能來考慮,因此存儲系統通常採用多層不同性價比的存儲器件組成存儲層次結構。大數據的規模大,因此構建高效合理的存儲層次結構,可以在保證系統性能的前提下,降低系統能耗和構建成本,利用數據訪問局部性原理.可以從兩個方面對存儲層次結構進行優化。從提高性能的角度,可以通過分析應用特徵,識別熱點數據並對其進行緩存或預取,通過高效的緩存預取演演算法和合理的緩存容量配比,以提高訪問性能。從降低成本的角度,採用信息生命周期管理方法,將訪問頻率低的冷數據遷移到低速廉價存儲設備上,可以在小幅犧牲系統整體性能的基礎上,大幅降低系統的構建成本和能耗。
傳統數據存儲模型需要支持儘可能多的應用,因此需要具備較好的通用性。大數據具有大規模、高動態及快速處理等特性,通用的數據存儲模型通常並不是最能提高應用性能的模型.而大數據存儲系統對上層應用性能的關注遠遠超過對通用性的追求。針對應用和負載來優化存儲,就是將數據存儲與應用耦合。簡化或擴展分散式文件系統的功能,根據特定應用、特定負載、特定的計算模型對文件系統進行定製和深度優化,使應用達到最佳性能。這類優化技術在谷歌、Facebook等網際網路公司的內部存儲系統上,管理超過千萬億位元組級別的大數據,能夠達到非常高的性能。
在一個視頻監控系統中,選擇什麼樣的存儲解決方案直接決定了整個系統的系統架構以及系統的性能和穩定程度。
一種是在攝像監控前端採用有一定存儲容量(如1.2T)的DVR設備,所有需要的數據均保存在前端DVR的存儲設備中,比較好的方案中,後台軟體可以管理和維護多台的DVR設備,包括這些DVR設備的存儲數據,如錄像的轉存、刪除和回放等功能。這種方案中所有數據主要保存在DVR中,後台主要負責維護和必要的存儲。
另一種是在攝像監控前端採用DVR或者網路視頻伺服器,而存儲主要在遠端通過後台的PC或者伺服器軟體來將數據保存在後台的存儲設備上。
上述兩種存儲方案均有很多弊端,尤其當監控點很多,需要的存儲量又很大的情況下,這些可能的弊端包括:由於存儲分散導致難以維護;由於存儲的專業程度不高導致存儲的可靠性不高,進而導致整個系統的可靠性不高;存儲的利用率不高;存儲的擴展性不好。
為了克服這些弊端,並推薦使用基於分散式存儲、集中管理思路的、以及基於iSCSI技術的IPSAN來作為視頻監控的存儲解決方案,這個方案的主要特點包括:
1、分散式存儲,集中管理;
2、基於iSCSI技術的IPSAN(STorageAreaNetwork);
3、流媒體網關可以作為存儲解決方案的核心設備。
在這個方案中,共有三級:
1、上級監控中心:上級監控中心通常只有一個,主要由數字矩陣、認證伺服器和VSTARClerk軟體等。
2、本地監控中心:本地監控中心可以有多個,可依據地理位置設置,或者依據行政隸屬關係設立,主要由數字矩陣、流媒體網關、iSCSI存儲設備、VSTARRecorder軟體等組成;音視頻的數據均主要保存在本地監控中心,這就是分散式存儲的概念。
3、監控前端:主要由攝像頭、網路視頻伺服器組成,其中VE4000系列的網路視頻伺服器可以帶硬碟,該硬碟主要是用於網路不暢時,暫時對音視頻數據進行保存,或者需要在前端保存一些重要數據的情況。
本地監控中心的存儲設備也可以用一台伺服器,帶SCSI磁碟陣列的形式,但由於伺服器的網路收發性能有限,從而影響整個存儲系統的性能,因此有建議選用專業的iSCSI存儲設備。
1) iSCSI原理簡介
iSCSI 是由IETF 開發的一種基於存儲網路的新的Internet 協議,iSCSI 的原理是將SCSI 命令通過IP 網路傳輸,這樣就可以使在網路上傳送數據更加便利,而且可以實現遠程存儲管理。
iSCSI 使標準的SCSI 命令能夠在TCP/IP 網路上的主機系統(啟動器,Initiator)和存儲設備(目標器,target)之間傳送。而且iSCSI 協議支持在系統之間傳送標準的SCSI 命令。在系統之間的連接是通過標準的IP 網路基礎設施實現的,iSCSI 的協議模型如圖1 所示。
圖2 iSCSI 的協議模型
iSCSI 的工作原理是:當終端用戶或應用程序(啟動器)發送一個請求后,操作系統將生成一個適當的SCSI 命令和數據請求,SCSI 命令通過封裝,在需要加密的時候要執行加密處理。這些命令加上TCP/IP 協議的包頭,就可以在乙太網上傳輸。接收端(目標器)在收到這個數據包后按照相反的方向進行解包,解析出SCSI 命令和數據請求,SCSI命令再發送給SCSI 存儲設備驅動程序,因為iSCSI 是雙向的協議,所以它可以將數據返回給原來的請求。
2)基於IP SAN的網路存儲方案
圖3 基於IP SAN 的網路存儲方案
在這個解決方案中,網路視頻伺服器需要支持iSCSI 協議,是啟動器,而位於監控中心的iSCSI 存儲設備則是目標器。本地監控中心的iSCSI 存儲設備可以充當多個網路視頻伺服器的存儲設備,而且iSCSI 存儲設備還可以再外掛磁帶設備,進一步擴大存儲容量。
在網路存儲方案中,每台網路視頻伺服器均佔有一個IP,如果希望通過Internet 來進行遠程監控,則網路視頻伺服器的IP 地址必須是公網IP,在通常情況,公網IP 地址都是稀有資源;另外遠程監控受到網路容量的限制以及網路擁塞的影響,帶寬通常不能保證,給遠程監控帶來了不便,而卓揚科技的流媒體網關可以解決這兩個問題。
卓揚科技的流媒體網關是一個嵌入式的硬體設備,所有的報文轉發均是基於硬體轉發(如果是軟體轉發,性能達不到要求),報文的轉發能力可以達到1Gbps 以上,卓揚科技的流媒體網關的主要功能包括:
支持NAT 轉換功能
支持視頻分發功能,當多個遠程監控的用戶訪問同一台網路視頻伺服器的時候,均需要向流媒體網關發請求,然後流媒體網關再向網路視頻伺服器發出請求,當流媒體網關收到網路視頻伺服器的數據后(注意視頻伺服器與流媒體網關之間的數據流只有一份)再負責分發給遠端的多個監控用戶支持視頻點播服務,遠端用戶可以通過流媒體網關完成視頻點播的功能支持iSCSI 的Initiator
卓揚科技的流媒體網關可以對上述的功能進行分別進行配置。
下圖是一個流媒體網關與IP SAN 結合的網路視頻監控的解決方案,在方案中,流媒體網關沒有使能iSCSI 的Initiator,iSCSI 的Initiator 是由網路視頻伺服器完成,其中iSCSI 的存儲流是把監控流封裝了iSCSI 而成的。
圖4 與流媒體網關相配合的網路存儲方案1
下圖的網路存儲方案中,流媒體網關使能了iSCSI Initiator 功能,而網路視頻伺服器與流媒體網關傳送的均是原始的視頻數據流(與iSCSI 存儲流相比)。
圖5 中,需要對數據進行存儲的時候,流媒體網關首先從網路視頻伺服器活動數據(①),然後再通過iSCSI 存儲流將視頻數據保存到iSCSI 的存儲設備上(②)。當A 用戶需要進行遠程監控的時候,首先A 用戶向流媒體網關發出請求(③),流媒體網關再向視頻伺服器獲取數據(①),然後流媒體網關把監控視頻數據發送給用戶A(③)。當B 用戶需要進行視頻點播的時候,B 用戶首先向流媒體網關發出請求(④),流媒體網關再向iSCSI 存儲設備獲取數據(②),然後然後流媒體網關把監控視頻數據發送給用戶B(④)。
圖5 與流媒體網關相配合的網路存儲方案2
另外,在圖4 和圖5 中,是否進行NAT 轉換視組網需求而定,可以靈活配置。
五、後記
基於iSCSI 的IP SAN 存儲方案無疑是解決存儲問題的一個良方,尤其當iSCSI 的存儲設備的性能不斷提高、價格不斷降低的時候,採用這種方式就更是必然的選擇,我們深信,基於iSCSI 技術的存儲解決方案會逐漸成為大型網路視頻監控中存儲技術的主流。
分散式存儲系統需要使用多台伺服器共同存儲數據,而隨著伺服器數量的增加,伺服器出現故障的概率也在不斷增加。為了保證在有伺服器出現故障的情況下系統仍然可用。一般做法是把一個數據分成多份存儲在不同的伺服器中。但是由於故障和并行存儲等情況的存在,同一個數據的多個副本之間可能存在不一致的情況。這裡稱保證多個副本的數據完全一致的性質為一致性。
分散式存儲系統需要多台伺服器同時工作。當伺服器數量增多時,其中的一些伺服器出現故障是在所難免的。我們希望這樣的情況不會對整個系統造成太大的影響。在系統中的一部分節點出現故障之後,系統的整體不影響客服端的讀/寫請求稱為可用性。
分散式存儲系統中的多台伺服器通過網路進行連接。但是我們無法保證網路是一直通暢的,分散式系統需要具有一定的容錯性來處理網路故障帶來的問題。一個令人滿意的情況是,當一個網路因為故障而分解為多個部分的時候,分散式存儲系統仍然能夠工作。