本發明專利技術的實施例公開了一種數據存儲的檢測方法、設備及分布式存儲系統,其中,對分布式存儲系統中的第一數據節點中存儲的各條數據進行掃描;對于當前掃描到的數據,獲取所述掃描到的數據存儲在所述分布式存儲系統的其余一個或多個第二數據節點中的副本,并檢測所述數據的各個副本是否發生故障。通過本發明專利技術的實施例,可以及時發現副本不足的數據,進而可以及時對副本不足的數據進行修復,保證數據的可靠性。
【技術實現步驟摘要】
【專利摘要】本專利技術的實施例公開了一種數據存儲的檢測方法、設備及分布式存儲系統,其中,對分布式存儲系統中的第一數據節點中存儲的各條數據進行掃描;對于當前掃描到的數據,獲取所述掃描到的數據存儲在所述分布式存儲系統的其余一個或多個第二數據節點中的副本,并檢測所述數據的各個副本是否發生故障。通過本專利技術的實施例,可以及時發現副本不足的數據,進而可以及時對副本不足的數據進行修復,保證數據的可靠性。【專利說明】一種數據存儲的檢測方法、設備及分布式存儲系統
本專利技術涉及計算機
,尤其涉及一種數據存儲的檢測方法、設備及分布式存儲系統。
技術介紹
分布式存儲系統,例如,Cassandra,一般采用多副本的分布存儲策略,通過多副本冗余存儲來保證數據的可靠性。例如,可以采用3副本存儲,即將原始數據hash后存儲在其中一個數據節點上,而將另外2份副本存儲在其他數據節點上。當某個磁盤或節點故障時,仍能保證另外兩個副本可以訪問,并在合適的條件下完成故障副本的修復。其中,Cassandra是依賴DHT (Distributed Hash Table,分布式哈希表)技術實現的一種典型的無中心節點的環形結構的分布式存儲系統。Cassandra數據存儲空間可以抽象為一個環形結構,數據就是通過hash分散在這個環形存儲空間上。每個節點負責管理這個環形存儲空間上的某一塊連續的范圍(也叫Range),落在此Range空間上的數據就存儲在這個節點上。數據是以SSTable文件格式存儲在這個節點的磁盤上。在相關技術中,在數據故障時并不會進行數據副本的修復工作,而是依賴后續的用戶讀操作,在接入節點觸發多副本的對比,通過比較各副本的簽名是否一致,來發現哪個副本丟失或故障,進而對故障或丟失的副本進行修復。如圖1所示,當副本2所在數據節點磁盤故障導致該副本丟失時,在用戶再次訪問該數據時,從該數據節點上無法讀取副本2,因此三份副本的數據簽名是不一致的,進而會將完好副本的副本數據修復到該數據節點。由此可見,在相關技術中,在磁盤故障或節點故障導致副本丟失后,并不能及時進行修復,而是依賴后續用戶讀操作觸發修復。當丟失的此數據并非用戶經常訪問的熱數據的情況下,則這個數據將長期保持副本不足的狀態。而在這段較長的時間內,由于其他節點或磁盤故障導致另外的副本丟失,則將導致數據丟失無法訪問,因而數據的可靠性就無法得到保證。
技術實現思路
鑒于上述問題,提出了本專利技術以便提供一種克服上述問題或者至少部分地解決上述問題的一種數據存儲的檢測方法、設備及分布式存儲系統,可以將方便的檢測分布式存儲系統中存儲的數據副本是否丟失。根據本專利技術的一個方面,提供了一種數據存儲的檢測方法,所述方法包括:對分布式存儲系統中的第一數據節點中存儲的各條數據進行掃描,對于當前掃描到的數據,獲取所述掃描到的數據存儲在所述分布式存儲系統的其余一個或多個第二數據節點中的副本,并檢測所述數據的各個副本是否發生故障。可選地,對分布式存儲系統中的第一數據節點中存儲的各條數據進行掃描的步驟包括:對記錄所述第一數據節點中寫入的每條數據的相關信息進行掃描,獲取每條所述數據的相關信息,其中,所述相關信息包括:所述數據的數據標識、及存儲所述數據的其余一個或多個副本的第二數據節點的標識信息。可選地,獲取所述掃描到的數據存儲在所述分布式存儲系統的其余一個或多個第二數據節點中的副本,并檢測所述數據的各個副本是否發生故障的步驟包括:獲取所述第一數據節點中存儲的所述數據,并獲取所述數據的第一數據簽名;從存儲所述數據的副本的其余所述一個或多個第二數據節點上分別讀取所述數據的各個副本;分別獲取讀取的各個所述副本的第二數據簽名;通過判斷獲取的所述第一數據簽名和各個所述第二數據簽名是否完全相同,檢測所述數據的各個副本是否發生故障。可選地,如果檢測到所述數據的一個或多個副本發生故障,所述方法還包括:將所述數據重新寫入到存儲發生故障的副本數據節點。可選地,所述方法還包括:所述分布式存儲系統中的一個接入節點接收到數據寫入請求;所述接入節點向所述分布式存儲系統的N個數據節點發送副本寫入請求,其中,N為大于I的整數;在第一預定時間內,所述接入節點接收到所述N個數據節點中的η個數據節點返回的成功應答,確定所述請求寫入的數據能夠成功寫入,等待所述N個數據節點中其余Ν-η個數據節點的成功應答,其中,η為大于O且小于N的整數;在第二預定時間內,如果所述接入節點全部接收到所述Ν-η個數據節點返回的成功應答,則確定所述請求寫入的數據的副本完整,否則,確定所述請求寫入的數據的副本不完整,對所述請求寫入的數據的副本進行修復。根據本專利技術的另一個方面,還提供了一種數據存儲的檢測設備,所述設備包括:掃描模塊,用于對分布式存儲系統中的第一數據節點中存儲的各條數據進行掃描;檢測模塊,用于所述掃描模塊當前掃描到的數據進行檢測,獲取掃描到的所述數據存儲在所述分布式存儲系統的其余一個或多個第二數據節點中的各個副本,并檢測所述數據的各個副本是否發生故障。可選地,所述檢測模塊包括:讀取模塊,用于獲取所述第一數據節點中存儲的所述數據,以及從存儲所述數據的副本的其余一個或多個第二數據節點上分別讀取所述數據的各個副本;獲取模塊,用于分別獲取所述第一數據節點中存儲的所述數據的第一數據簽名,以及讀取的各個所述副本的第二數據簽名;判斷模塊,用于判斷獲取的所述第一數據簽名和各個所述第二數據簽名是否完全相同,檢測所述數據的各個副本是否發生故障。可選地,所述設備還包括:寫入模塊,用于在所述檢測模塊檢測到其中一個或多個副本發生故障時,將所述數據重新寫入到存儲發生故障的副本的數據節點。根據本專利技術的又一個方面,還提供了一種分布式存儲系統,其中,包括如上述的數據存儲的檢測設備。可選地,所述系統還包括:接入節點,所述接入節點包括:第一接收模塊,用于接收數據寫入請求;發送模塊,用于所述分布式存儲系統的N個數據節點發送副本寫入請求,其中,N為大于I的整數;第二接收模塊,用于接收所述N個數據節點返回的成功應答;確定模塊,用于在所述第二接收模塊在第一預定時間內接收到所述N個數據節點中的η個數據節點返回的成功應答時,確定所述請求寫入的數據能夠成功寫入,以及如果所述第二接收模塊在第二預定時間內全部接收到所述N個數據節點中的其余Ν-η個數據節點返回的成功應答,則確定所述請求寫入的數據的副本完整,否則,確定所述請求寫入的數據的副本不完整,對所述請求寫入的數據的副本進行修復。由上述技術方案可知,本專利技術的實施例具有如下有益效果:數據節點對其存儲的各條數據進行掃描,檢測每條數據的副本是否發生故障,而不需要接入節點的讀請求來觸發檢測,從而可以及時發現副本不足的數據,進而可以及時對副本不足的數據進行修復,保證了數據的可靠性。上述說明僅是本專利技術技術方案的概述,為了能夠更清楚了解本專利技術的技術手段,而可依照說明書的內容予以實施,并且為了讓本專利技術的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本專利技術的【具體實施方式】。【專利附圖】【附圖說明】通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本專利技術的限制。而且在整個附圖中,用相本文檔來自技高網...

【技術保護點】
一種數據存儲的檢測方法,所述方法包括:對分布式存儲系統中的第一數據節點中存儲的各條數據進行掃描;對于當前掃描到的數據,獲取所述掃描到的數據存儲在所述分布式存儲系統的其余一個或多個第二數據節點中的副本,并檢測所述數據的各個副本是否發生故障。
【技術特征摘要】
【專利技術屬性】
技術研發人員:王鋒,
申請(專利權)人:北京奇虎科技有限公司,奇智軟件北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。