国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法及裝置與流程

      文檔序號(hào):12927067閱讀:665來源:國(guó)知局
      數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法及裝置與流程
      本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體涉及到一種數(shù)據(jù)存儲(chǔ)方法,數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法及裝置。

      背景技術(shù):
      分布式非關(guān)系型數(shù)據(jù)庫(NotonlyStructuredQueryLanguage,NOSQL)物理上一般由大規(guī)模的集群組成。大多數(shù)物理存儲(chǔ)節(jié)點(diǎn)不僅部署分布式文件系統(tǒng)(Distributedfilesystem,DFS)的數(shù)據(jù)節(jié)點(diǎn)(DataNode)進(jìn)程,還部署NOSQL數(shù)據(jù)庫的從(slave)進(jìn)程,同時(shí)存儲(chǔ)節(jié)點(diǎn)集群需要部署獨(dú)立的調(diào)度節(jié)點(diǎn)(Namenode)。NOSQL和DFS的信息分布各自按照各自策略進(jìn)行獨(dú)立分配,圖1是一個(gè)分布式非關(guān)系型數(shù)據(jù)庫的部署圖,其中粗的實(shí)線方框代表一個(gè)存儲(chǔ)節(jié)點(diǎn),粗橫線上方表示該存儲(chǔ)節(jié)點(diǎn)部署NOSQL數(shù)據(jù)庫的從節(jié)點(diǎn)進(jìn)程。粗橫線下方表示該存儲(chǔ)節(jié)點(diǎn)部署的數(shù)據(jù)節(jié)點(diǎn)(DataNode)進(jìn)程。其中每一個(gè)從節(jié)點(diǎn)進(jìn)程同時(shí)也是一個(gè)DFS文件系統(tǒng)的客戶,調(diào)用DFS文件系統(tǒng)中存儲(chǔ)的數(shù)據(jù)文件。其中,分區(qū)region-1為NOSQL數(shù)據(jù)庫中一個(gè)表的一個(gè)分區(qū),其部署在存儲(chǔ)節(jié)點(diǎn)S1上。在region-1創(chuàng)建后,完成數(shù)據(jù)寫入操作,形成數(shù)據(jù)文件,該數(shù)據(jù)文件在DFS上的被劃為4個(gè)數(shù)據(jù)塊(Block),分別是R1-b1、R1-b2、R1-b3、R1-b4。每一個(gè)Block的數(shù)據(jù)塊副本分布如圖1所示。所有涉及到region-1的數(shù)據(jù)查詢操作全部由存儲(chǔ)節(jié)點(diǎn)S1的從節(jié)點(diǎn)進(jìn)程來完成,而在存儲(chǔ)節(jié)點(diǎn)S1上存儲(chǔ)了region-1的對(duì)應(yīng)的數(shù)據(jù)文件的所有數(shù)據(jù)塊,為表述方面,下面簡(jiǎn)稱為與region-1對(duì)應(yīng)的所有數(shù)據(jù)塊,所以存儲(chǔ)節(jié)點(diǎn)S1只需要讀取本地硬盤數(shù)據(jù)即可完成數(shù)據(jù)查詢操作,不會(huì)涉及到通過網(wǎng)絡(luò)讀取其他存儲(chǔ)節(jié)點(diǎn)上數(shù)據(jù)塊副本來完成操作。但是,在NOSQL數(shù)據(jù)庫的從節(jié)點(diǎn)進(jìn)程故障時(shí),如圖1A所示,NOSQL數(shù)據(jù)庫的主控節(jié)點(diǎn)發(fā)現(xiàn)從節(jié)點(diǎn)進(jìn)程異常之后,按照負(fù)載均衡原則將存儲(chǔ)節(jié)點(diǎn)S1負(fù)責(zé)的分區(qū)全部分配給存儲(chǔ)節(jié)點(diǎn)集群中的存儲(chǔ)節(jié)點(diǎn)S4。在存儲(chǔ)節(jié)點(diǎn)S1故障后,存儲(chǔ)節(jié)點(diǎn)S4將負(fù)責(zé)region-1的全部數(shù)據(jù)查詢操作。由于DFS并不會(huì)感覺到這樣的故障,所以與region-1對(duì)應(yīng)的數(shù)據(jù)文件位置將不會(huì)發(fā)生任何變化。在這樣的數(shù)據(jù)分布下,涉及到region-1的R1-b1、R1-b3兩個(gè)數(shù)據(jù)塊中的數(shù)據(jù)讀取時(shí),存儲(chǔ)節(jié)點(diǎn)S4將需要通過網(wǎng)絡(luò)去其他存儲(chǔ)R1-b1、R1-b3數(shù)據(jù)塊副本的存儲(chǔ)節(jié)點(diǎn)上讀取數(shù)據(jù)。如圖1B所示,在存儲(chǔ)節(jié)點(diǎn)S1上分布式DFS的數(shù)據(jù)節(jié)點(diǎn)(DataNode)進(jìn)程故障時(shí),DFS的調(diào)度節(jié)點(diǎn)發(fā)現(xiàn)數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障后,按照預(yù)先配置的數(shù)據(jù)塊副本復(fù)制機(jī)制,將存儲(chǔ)節(jié)點(diǎn)S1原來存儲(chǔ)的數(shù)據(jù)塊副本通過其他非故障存儲(chǔ)節(jié)點(diǎn)上的數(shù)據(jù)塊副本恢復(fù)出來,并按照負(fù)載均衡策略放置在其他非故障存儲(chǔ)節(jié)點(diǎn)上。但是,由于存儲(chǔ)節(jié)點(diǎn)S1上NOSQL數(shù)據(jù)庫的從節(jié)點(diǎn)進(jìn)程依舊正常,NOSQL數(shù)據(jù)庫的分區(qū)不會(huì)重新分布。如存儲(chǔ)節(jié)點(diǎn)S1依舊負(fù)責(zé)region-1全部數(shù)據(jù)查詢操作。而DFS的存儲(chǔ)節(jié)點(diǎn)S1上的數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障,導(dǎo)致存儲(chǔ)節(jié)點(diǎn)S1無法提供文件讀取服務(wù)。在這樣的數(shù)據(jù)分布下,涉及到region-1的數(shù)據(jù)讀取時(shí),存儲(chǔ)節(jié)點(diǎn)S1需要通過網(wǎng)絡(luò)去其他存儲(chǔ)該分區(qū)region-1對(duì)應(yīng)的數(shù)據(jù)塊副本的存儲(chǔ)節(jié)點(diǎn)上讀取數(shù)據(jù)。如圖1C所示,存儲(chǔ)節(jié)點(diǎn)S1由于硬件或者是網(wǎng)絡(luò)等原因?qū)е抡麄€(gè)存儲(chǔ)節(jié)點(diǎn)故障。DFS的調(diào)度節(jié)點(diǎn)發(fā)現(xiàn)數(shù)據(jù)節(jié)點(diǎn)進(jìn)程異常后,同時(shí)調(diào)度節(jié)點(diǎn)按照既定的數(shù)據(jù)塊副本復(fù)制機(jī)制,開始數(shù)據(jù)塊副本恢復(fù),類似圖1B中的狀態(tài)。同時(shí),NOSQL數(shù)據(jù)庫的主控節(jié)點(diǎn)也會(huì)發(fā)現(xiàn)該存儲(chǔ)節(jié)點(diǎn)的從節(jié)點(diǎn)進(jìn)程故障,主控節(jié)點(diǎn)將根據(jù)系統(tǒng)的負(fù)載情況將存儲(chǔ)節(jié)點(diǎn)S1上的分區(qū)重新分布,與圖1A類似。數(shù)據(jù)庫再一次達(dá)到穩(wěn)定數(shù)據(jù)分布時(shí),存儲(chǔ)節(jié)點(diǎn)S4負(fù)責(zé)region-1全部數(shù)據(jù)查詢操作。由于DFS的存儲(chǔ)S1節(jié)點(diǎn)故障后重新分布數(shù)據(jù)塊副本后,存儲(chǔ)節(jié)點(diǎn)S4上只有region-1的R1-b2、R1-b4副本。涉及到region-1的R1-b1、R1-b3中的數(shù)據(jù)讀取時(shí),存儲(chǔ)節(jié)點(diǎn)S4需要通過網(wǎng)絡(luò)去其他存儲(chǔ)該R1-b1、R1-b3的數(shù)據(jù)塊副本的存儲(chǔ)節(jié)點(diǎn)上讀取數(shù)據(jù)。綜上所述,在現(xiàn)有技術(shù)的數(shù)據(jù)存儲(chǔ)方式下,發(fā)生以上幾種故障時(shí),就會(huì)出現(xiàn)跨節(jié)點(diǎn)數(shù)據(jù)訪問甚至是跨機(jī)架的訪問數(shù)據(jù),這樣不僅增大了數(shù)據(jù)訪問時(shí)延,還會(huì)增加網(wǎng)絡(luò)流量。

      技術(shù)實(shí)現(xiàn)要素:
      本發(fā)明的目的是提供一種數(shù)據(jù)存儲(chǔ)方法,以解決現(xiàn)有技術(shù)在節(jié)點(diǎn)故障時(shí),出現(xiàn)跨節(jié)點(diǎn)訪問,增加訪問數(shù)據(jù)時(shí)延的問題。第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)方法,所述方法包括:將數(shù)據(jù)庫中的一個(gè)表的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn);其中,N為自然數(shù),并且N不小于2?;诘谝环矫?,在第一種可能的實(shí)施方式中,在所述將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn)之前,還包括:為所述數(shù)據(jù)庫中所述分區(qū)分配分區(qū)標(biāo)識(shí);根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的所述N個(gè)數(shù)據(jù)塊命名?;诘谝环矫婊虻谝环矫娴牡谝环N可能的實(shí)施方式中,還提供了第二種可能的實(shí)施方式,所述將所述N個(gè)數(shù)據(jù)塊中全部數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn),具體包括:按照部署策略,在所述部署策略對(duì)應(yīng)的第二存儲(chǔ)節(jié)點(diǎn)上對(duì)所述分區(qū)中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的數(shù)據(jù)文件中的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的存儲(chǔ)節(jié)點(diǎn)。第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法,所述方法包括:獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn);其中,M為自然數(shù);將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)?;诘诙矫妫诘谝环N可能的實(shí)施方式中,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)故障為的從節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之前,還包括:如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的L個(gè)分區(qū)遷移至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn);其中L為自然數(shù)。基于第二方面或第二方面的第一種可能的實(shí)施方式中,還提供了第二種可能的實(shí)施方式,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)上故障為數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之后還包括:將所述第二存儲(chǔ)節(jié)點(diǎn)上的所述M個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊備份到所述存儲(chǔ)節(jié)點(diǎn)集群中的第三存儲(chǔ)節(jié)點(diǎn),所述第三存儲(chǔ)節(jié)點(diǎn)為非故障存儲(chǔ)節(jié)點(diǎn)。第三方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括:第一部署單元,用以將數(shù)據(jù)庫中的一個(gè)表的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);劃分單元,用以將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);第二部署單元,用以將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn);其中,N為自然數(shù),并且N不小于2?;诘谌矫妫诘谝环N可能的實(shí)施方式中,還包括處理單元,用以在所述將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn)之前:為所述數(shù)據(jù)庫中所述分區(qū)分配分區(qū)標(biāo)識(shí);根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的所述N個(gè)數(shù)據(jù)塊命名?;诘谌矫妫诘诙N可能的實(shí)施方式中,所述將第二部署單元具體用于:按照部署策略,在所述部署策略對(duì)應(yīng)的第二存儲(chǔ)節(jié)點(diǎn)上對(duì)所述分區(qū)中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的數(shù)據(jù)文件中的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的存儲(chǔ)節(jié)點(diǎn)。第四方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理裝置,所述裝置包括:獲取單元,用以獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;確定單元,用以根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定部署有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的多個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn);處理單元,用以將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)?;诘谒姆矫?,在第一種可能的實(shí)施方式中,所述第一存儲(chǔ)節(jié)點(diǎn)的從節(jié)點(diǎn)進(jìn)程故障,所述處理單元還用以:如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的L個(gè)分區(qū)遷移至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn);其中L為自然數(shù)。基于第四方面或第四方面的第一種可能的實(shí)施方式中,還提供了第二種可能的實(shí)施方式,所述第一存儲(chǔ)節(jié)點(diǎn)上的數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障,所述處理單元還用以:將所述第二存儲(chǔ)節(jié)點(diǎn)上的所述M個(gè)數(shù)據(jù)塊備份到所述存儲(chǔ)節(jié)點(diǎn)集群中的第三存儲(chǔ)節(jié)點(diǎn),所述第三存儲(chǔ)節(jié)點(diǎn)為非故障存儲(chǔ)節(jié)點(diǎn)。第五方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括:網(wǎng)絡(luò)接口;中央處理器;存儲(chǔ)器;物理存儲(chǔ)在所述存儲(chǔ)器中的應(yīng)用程序,所述中央處理器執(zhí)行所述應(yīng)用程序,使得所述數(shù)據(jù)存儲(chǔ)裝置執(zhí)行以下步驟::將數(shù)據(jù)庫中的一個(gè)表的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn);其中,N為自然數(shù),并且N不小于2?;诘谖宸矫?,在第一種可能的實(shí)施方式中,在所述將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn)之前,還包括:為所述數(shù)據(jù)庫中所述分區(qū)分配分區(qū)標(biāo)識(shí);根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的所述N個(gè)數(shù)據(jù)塊命名?;诘谖宸矫?,在第二種可能的實(shí)施方式中,所述將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)具體包括:按照部署策略,在所述部署策略對(duì)應(yīng)的第二存儲(chǔ)節(jié)點(diǎn)上對(duì)所述分區(qū)中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的數(shù)據(jù)文件中的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的存儲(chǔ)節(jié)點(diǎn)。第六方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理裝置,所述裝置包括:網(wǎng)絡(luò)接口;中央處理器;存儲(chǔ)器;物理存儲(chǔ)在所述存儲(chǔ)器中的應(yīng)用程序,所述中央處理器執(zhí)行所述應(yīng)用程序,使得所述數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理裝置執(zhí)行以下步驟:獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn);其中,M為自然數(shù);將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)。基于第六方面,在第一種可能的實(shí)施方式中,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)故障為的從節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之前,還包括:如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的L個(gè)分區(qū)遷移至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn);其中L為自然數(shù)?;诘诹矫?,在第二種可能的實(shí)施方式中,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)上故障為數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之后還包括:將所述第二存儲(chǔ)節(jié)點(diǎn)上的所述M個(gè)數(shù)據(jù)塊備份到所述存儲(chǔ)節(jié)點(diǎn)集群中的第三存儲(chǔ)節(jié)點(diǎn),所述第三存儲(chǔ)節(jié)點(diǎn)為非故障存儲(chǔ)節(jié)點(diǎn)。第七方面,本發(fā)明實(shí)施例提供了一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)時(shí),所述計(jì)算機(jī)執(zhí)行如下步驟:將數(shù)據(jù)庫中的一個(gè)表的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn);其中,N為自然數(shù),并且N不小于2?;诘谄叻矫妫诘谝环N可能的實(shí)施方式中,在所述將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn)之前,還包括:為所述數(shù)據(jù)庫中所述分區(qū)分配分區(qū)標(biāo)識(shí);根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的所述N個(gè)數(shù)據(jù)塊命名?;诘谄叻矫?,在第二種可能的實(shí)施方式中,所述將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)具體包括:按照部署策略,在所述部署策略對(duì)應(yīng)的第二存儲(chǔ)節(jié)點(diǎn)上對(duì)所述分區(qū)中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的數(shù)據(jù)文件的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的存儲(chǔ)節(jié)點(diǎn)。第八方面,本發(fā)明實(shí)施例提供了一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)時(shí),所述計(jì)算機(jī)執(zhí)行如下步驟:獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn);其中,M為自然數(shù);將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)?;诘诎朔矫?,在第一種可能的實(shí)施方式中,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)故障為的從節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之前,還包括:如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的L個(gè)分區(qū)遷移至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn);其中L為自然數(shù)?;诘诎朔矫?,在第二種可能的實(shí)施方式中,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)上故障為數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之后還包括:將所述第二存儲(chǔ)節(jié)點(diǎn)上的所述M個(gè)數(shù)據(jù)塊備份到所述存儲(chǔ)節(jié)點(diǎn)集群中的第三存儲(chǔ)節(jié)點(diǎn),所述第三存儲(chǔ)節(jié)點(diǎn)為非故障存儲(chǔ)節(jié)點(diǎn)。通過本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法,將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn),之后將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);最后將所述多個(gè)數(shù)據(jù)塊中全部數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在相同的第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)。使得分布式非關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)節(jié)點(diǎn)故障的情況下,能夠盡量減少跨節(jié)點(diǎn)數(shù)據(jù)范圍,以減少時(shí)延、降低網(wǎng)絡(luò)流量。附圖說明為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是現(xiàn)有技術(shù)的NOSQL數(shù)據(jù)分布示意圖;圖1A是現(xiàn)有技術(shù)NOSQL數(shù)據(jù)庫從節(jié)點(diǎn)進(jìn)程故障處理示意圖;圖1B是現(xiàn)有技術(shù)NOSQL數(shù)據(jù)庫數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障處理示意圖;圖1C是現(xiàn)有技術(shù)NOSQL數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)集群中的節(jié)點(diǎn)故障處理示意圖;圖2是本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法的應(yīng)用場(chǎng)景示意圖;圖3是本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法一種實(shí)施方式的流程圖;圖4是本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法的存儲(chǔ)狀態(tài)示意圖;圖5是本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法的流程圖;圖6是本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法一種故障處理示意圖;圖7是本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法一種故障處理示意圖;圖8是本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法一種故障處理示意圖;圖9是本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置一實(shí)施例的結(jié)構(gòu)示意圖;圖10是本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)處理裝置一種實(shí)施例的結(jié)構(gòu)示意圖;圖11是本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置一實(shí)施例的結(jié)構(gòu)示意圖;圖12是本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)處理裝置一種實(shí)施例的結(jié)構(gòu)示意圖。具體實(shí)施方式以下結(jié)合附圖,對(duì)本發(fā)明實(shí)施例做進(jìn)一步詳細(xì)敘述。圖2是本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法和數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法的應(yīng)用場(chǎng)景示意圖,NOSQL數(shù)據(jù)庫只完成數(shù)據(jù)的邏輯管理,而實(shí)際上數(shù)據(jù)存儲(chǔ)在分布式文件系統(tǒng)DFS。DFS也是一個(gè)主從分布式架構(gòu),在NOSQL數(shù)據(jù)庫中的主控節(jié)點(diǎn)作為DFS內(nèi)部提供元數(shù)據(jù)服務(wù)的調(diào)度節(jié)點(diǎn)。NOSQL數(shù)據(jù)庫中的從節(jié)點(diǎn),作為DFS提供文件存儲(chǔ)以及文件操作的數(shù)據(jù)節(jié)點(diǎn),統(tǒng)一稱為存儲(chǔ)節(jié)點(diǎn)。也就是說,在本發(fā)明實(shí)施例提供的數(shù)據(jù)庫中同時(shí)部署了兩種系統(tǒng),一種是NOSQL數(shù)據(jù)庫,一種是DFS,在數(shù)據(jù)庫的各個(gè)存儲(chǔ)節(jié)點(diǎn)上,同時(shí)部署了DFS的數(shù)據(jù)節(jié)點(diǎn)(datanode)進(jìn)程和NOSQL數(shù)據(jù)庫中的從節(jié)點(diǎn)(slave)進(jìn)程,在NOSQL數(shù)據(jù)庫中控制從節(jié)點(diǎn)(slave)進(jìn)程為主控(master)進(jìn)程,在DFS中控制數(shù)據(jù)節(jié)點(diǎn)進(jìn)程的進(jìn)程為調(diào)度(namenode)進(jìn)程,主控(master)進(jìn)程和調(diào)度(namenode)進(jìn)程共同布置的存儲(chǔ)節(jié)點(diǎn)為NOSQL數(shù)據(jù)庫的主控節(jié)點(diǎn),也是DFS的調(diào)度節(jié)點(diǎn)。為方便系統(tǒng)內(nèi)部管理,存儲(chǔ)在DFS中的數(shù)據(jù)文件一般被分割為一定大小的數(shù)據(jù)塊(block)。為防止由于硬件故障導(dǎo)致丟失數(shù)據(jù),一個(gè)數(shù)據(jù)塊一般會(huì)被存儲(chǔ)在多個(gè)存儲(chǔ)節(jié)點(diǎn)。調(diào)度節(jié)點(diǎn)不僅負(fù)責(zé)管理文件系統(tǒng)名稱空間和控制外部客戶端的訪問,同時(shí)決定將數(shù)據(jù)塊映射到存儲(chǔ)節(jié)點(diǎn)集群中的哪個(gè)存儲(chǔ)節(jié)點(diǎn)上。對(duì)于最常見的3個(gè)數(shù)據(jù)塊副本備份機(jī)制來說,第一個(gè)數(shù)據(jù)塊一般選擇離發(fā)起寫請(qǐng)求的客戶端最近一個(gè)節(jié)點(diǎn)作為存儲(chǔ)節(jié)點(diǎn),第二個(gè)數(shù)據(jù)塊所在的存儲(chǔ)節(jié)點(diǎn)與存儲(chǔ)第一個(gè)數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)在同一機(jī)架上,第三個(gè)數(shù)據(jù)塊所在的存儲(chǔ)節(jié)點(diǎn)與第一數(shù)據(jù)塊和第二數(shù)據(jù)塊所在的存儲(chǔ)節(jié)點(diǎn)屬于不同的機(jī)架。在進(jìn)行數(shù)據(jù)塊讀取時(shí),實(shí)際的數(shù)據(jù)塊讀取并不經(jīng)過調(diào)度節(jié)點(diǎn),只有表示存儲(chǔ)節(jié)點(diǎn)和數(shù)據(jù)塊之間映射關(guān)系的元數(shù)據(jù)經(jīng)過調(diào)度節(jié)點(diǎn)。存儲(chǔ)節(jié)點(diǎn)響應(yīng)來自DFS客戶端的讀寫請(qǐng)求。存儲(chǔ)節(jié)點(diǎn)還響應(yīng)來自調(diào)度節(jié)點(diǎn)的創(chuàng)建、刪除和復(fù)制數(shù)據(jù)塊的命令。如圖3所示,本發(fā)明實(shí)施例提供一種應(yīng)用在上述場(chǎng)景中的數(shù)據(jù)存儲(chǔ)方法,所述方法包括:301,將數(shù)據(jù)庫中的一個(gè)表的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);具體而言,NOSQL數(shù)據(jù)庫在創(chuàng)建分區(qū)時(shí),一般是給這個(gè)分區(qū)一個(gè)分區(qū)標(biāo)識(shí),該分區(qū)標(biāo)識(shí)就是底層DFS創(chuàng)建數(shù)據(jù)文件的文件名。如圖4所示的應(yīng)用實(shí)例中,分區(qū)region-1,部署在由存儲(chǔ)節(jié)點(diǎn)S1、存儲(chǔ)節(jié)點(diǎn)S2、存儲(chǔ)節(jié)點(diǎn)S3、存儲(chǔ)節(jié)點(diǎn)S4、存儲(chǔ)節(jié)點(diǎn)S5和存儲(chǔ)節(jié)點(diǎn)S6等組成的存儲(chǔ)節(jié)點(diǎn)集群中的一個(gè)存儲(chǔ)節(jié)點(diǎn)中,圖4所示的實(shí)施例中,將region-1對(duì)應(yīng)的分區(qū)部署在存儲(chǔ)節(jié)點(diǎn)S1。概括而言,首先為數(shù)據(jù)庫中的所述分區(qū)分配分區(qū)標(biāo)識(shí);之在創(chuàng)建分區(qū)對(duì)應(yīng)的數(shù)據(jù)文件的數(shù)據(jù)塊時(shí),根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的N個(gè)數(shù)據(jù)塊命名。302,將所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);具體而言,region-1為NOSQL數(shù)據(jù)庫中表的一個(gè)分區(qū),其部署在存儲(chǔ)節(jié)點(diǎn)S1上。region-1分區(qū)創(chuàng)建,完成數(shù)據(jù)寫入操作,形成數(shù)據(jù)文件,該數(shù)據(jù)文件在DFS上的被劃為4個(gè)數(shù)據(jù)塊,分別是R1-b1、R1-b2、R1-b3、R1-b4,這四個(gè)數(shù)據(jù)塊都被部署在存儲(chǔ)節(jié)點(diǎn)S1上。上述實(shí)施例中,N為自然數(shù),并且N不小于2,也就是說組成存儲(chǔ)節(jié)點(diǎn)集群的存儲(chǔ)節(jié)點(diǎn)數(shù)目,以及一個(gè)分區(qū)對(duì)應(yīng)的數(shù)據(jù)文件被劃分成的數(shù)據(jù)塊個(gè)數(shù)都是根據(jù)實(shí)際需求設(shè)定的,不應(yīng)理解為對(duì)本發(fā)明技術(shù)方案的限制。303,將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)。具體而言,為了滿足數(shù)據(jù)安全,通常需要為分區(qū)的數(shù)據(jù)文件對(duì)應(yīng)的每個(gè)數(shù)據(jù)塊設(shè)置多份備份數(shù)據(jù)塊,也可以稱之為副本。例如圖4所示的為兩份副本,一份部署在存儲(chǔ)節(jié)點(diǎn)S3,一份部署在存儲(chǔ)節(jié)點(diǎn)S5,存儲(chǔ)節(jié)點(diǎn)S5和存儲(chǔ)節(jié)點(diǎn)S3都為第二存儲(chǔ)節(jié)點(diǎn)。分別將同一分區(qū)的數(shù)據(jù)文件對(duì)應(yīng)的數(shù)據(jù)塊的一份副本放置在同一存儲(chǔ)節(jié)點(diǎn),這樣一個(gè)存儲(chǔ)節(jié)點(diǎn)上從節(jié)點(diǎn)進(jìn)程出現(xiàn)故障,只要將該從節(jié)點(diǎn)進(jìn)程所負(fù)責(zé)的分區(qū)重新在備份該分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的其他非故障的存儲(chǔ)節(jié)點(diǎn)上打開即可,這樣就避免了跨節(jié)點(diǎn)訪問數(shù)據(jù)。更具體的說,步驟303進(jìn)一步包括:按照部署策略,在所述部署策略對(duì)應(yīng)的第二存儲(chǔ)節(jié)點(diǎn)上對(duì)所述分區(qū)的數(shù)據(jù)文件中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的存儲(chǔ)節(jié)點(diǎn)。以圖4所示的架構(gòu)為例,在對(duì)數(shù)據(jù)塊R1-b1副本部署時(shí),發(fā)現(xiàn)數(shù)據(jù)塊R1-b1為Region-1對(duì)應(yīng)的數(shù)據(jù)文件的第一個(gè)數(shù)據(jù)塊,則根據(jù)DFS默認(rèn)部署策略對(duì)R1-b1的副本進(jìn)行部署,對(duì)數(shù)據(jù)塊R1-b2進(jìn)行副本部署時(shí),獲取數(shù)據(jù)塊R1-b1的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)分布信息,得知數(shù)據(jù)塊R1-b1的副本分布在數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)S3和數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)S5。之后,對(duì)數(shù)據(jù)塊R1-b2按照數(shù)據(jù)塊R1-b1的副本數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)分布情況,進(jìn)行分布。同理,數(shù)據(jù)塊R1-b3和數(shù)據(jù)塊R1-b4的分布過程與數(shù)據(jù)塊R1-b2相同不多贅述。相應(yīng)的,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理方法,可以應(yīng)用在圖2所示的數(shù)據(jù)庫系統(tǒng)的幾種故障狀況下。如圖5所示,所述方法包括:501,獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;具體而言,在存儲(chǔ)節(jié)點(diǎn)集群中的一個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)生故障時(shí),首先要獲取存儲(chǔ)節(jié)點(diǎn)集群中故障存儲(chǔ)節(jié)點(diǎn)的分區(qū)分布信息,例如在第一存儲(chǔ)節(jié)點(diǎn)上部署了哪些分區(qū),這些分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的備份數(shù)據(jù)塊的分布信息,以獲知在非故障存儲(chǔ)節(jié)點(diǎn)上哪個(gè)存儲(chǔ)節(jié)點(diǎn)上部署了故障存儲(chǔ)節(jié)點(diǎn)上的分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊備份。502,根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn),其中,M為自然數(shù)。503,將所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)。具體而言,在所述存儲(chǔ)節(jié)點(diǎn)集群中的非故障存儲(chǔ)節(jié)點(diǎn)中確定了部署有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的第二存儲(chǔ)節(jié)點(diǎn)之后,將第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到第二存儲(chǔ)節(jié)點(diǎn)上。這樣,同一分區(qū)的數(shù)據(jù)文件的數(shù)據(jù)塊的備份數(shù)據(jù)塊放置在同一存儲(chǔ)節(jié)點(diǎn),這樣只要一個(gè)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)故障,只要將該存儲(chǔ)節(jié)點(diǎn)上的所述分區(qū)分布到所述第二存儲(chǔ)節(jié)點(diǎn),重新在第二存儲(chǔ)節(jié)點(diǎn)上打開即可。這樣就避免了跨節(jié)點(diǎn)訪問數(shù)據(jù)。如圖6所示,在一種可能的實(shí)施方式中,假設(shè)存儲(chǔ)節(jié)點(diǎn)S1上的NOSQL數(shù)據(jù)庫的從節(jié)點(diǎn)進(jìn)程異常終止,NOSQL數(shù)據(jù)庫的主控節(jié)點(diǎn)很快就會(huì)發(fā)現(xiàn)該進(jìn)程異常。主控節(jié)點(diǎn)根據(jù)非故障存儲(chǔ)節(jié)點(diǎn)的分區(qū)分布信息以及故障存儲(chǔ)節(jié)點(diǎn)分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的備份數(shù)據(jù)塊分布情況,將故障存儲(chǔ)節(jié)點(diǎn)存儲(chǔ)的的L個(gè)分區(qū)分布到有對(duì)應(yīng)數(shù)據(jù)塊的非故障存儲(chǔ)節(jié)點(diǎn)上,其中L為自然數(shù)。在故障存儲(chǔ)節(jié)點(diǎn)分區(qū)重新分布之前,如果非故障的第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)未達(dá)到負(fù)載均衡閾值,則將所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)重新分布在所述第二存儲(chǔ)節(jié)點(diǎn),整個(gè)存儲(chǔ)節(jié)點(diǎn)集群的分區(qū)重分布完成;如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)超過負(fù)載均衡閾值,說明所述第二存儲(chǔ)節(jié)點(diǎn)分區(qū)數(shù)過多,此時(shí)在所述第二存儲(chǔ)節(jié)點(diǎn)上隨機(jī)選取多個(gè)分區(qū),將這些分區(qū)進(jìn)行重分布,使得所述第二存儲(chǔ)節(jié)點(diǎn)上分區(qū)達(dá)到負(fù)載均衡。也就是說,如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的多個(gè)分區(qū)重分布至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn)。如圖7所示,在另一種可能的實(shí)施方式中,假設(shè)存儲(chǔ)節(jié)點(diǎn)S1上DFS的數(shù)據(jù)節(jié)點(diǎn)進(jìn)程異常終止,DFS的調(diào)度節(jié)點(diǎn)發(fā)現(xiàn)該進(jìn)程異常。調(diào)度節(jié)點(diǎn)按照數(shù)據(jù)塊副本復(fù)制機(jī)制將原來存儲(chǔ)節(jié)點(diǎn)S1負(fù)責(zé)的全部數(shù)據(jù)塊分配給存儲(chǔ)節(jié)點(diǎn)集群中其他存儲(chǔ)節(jié)點(diǎn)。只有數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障而從節(jié)點(diǎn)進(jìn)程依舊可以正常工作的情況,是否需要重分布從節(jié)點(diǎn)進(jìn)程負(fù)責(zé)的分區(qū)到對(duì)應(yīng)的存儲(chǔ)有該分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的副本的非故障存儲(chǔ)節(jié)點(diǎn)上,根據(jù)配置進(jìn)行操作。調(diào)度節(jié)點(diǎn)根據(jù)故障存儲(chǔ)節(jié)點(diǎn)S1上的數(shù)據(jù)塊歸屬情況,將屬于同一分區(qū)的對(duì)應(yīng)的數(shù)據(jù)塊作為一個(gè)數(shù)據(jù)塊組進(jìn)行標(biāo)識(shí)。調(diào)度節(jié)點(diǎn)根據(jù)非故障存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)塊分布信息,將故障存儲(chǔ)節(jié)點(diǎn)的同一分區(qū)的數(shù)據(jù)塊組重分布在非故障存儲(chǔ)節(jié)點(diǎn)S2上,也就是將第一存儲(chǔ)節(jié)點(diǎn)負(fù)責(zé)的同一分區(qū)的全部數(shù)據(jù)塊重分布在所述存儲(chǔ)節(jié)點(diǎn)集群中的非故障存儲(chǔ)節(jié)點(diǎn)。調(diào)度節(jié)點(diǎn)檢查配置,如果對(duì)數(shù)據(jù)讀取速率要求較低,則不需要將故障存儲(chǔ)節(jié)點(diǎn)的分區(qū)進(jìn)行重分布,則重分布完成。如果根據(jù)讀取速率需求,用戶發(fā)現(xiàn)需要將故障存儲(chǔ)節(jié)點(diǎn)的分區(qū)進(jìn)行重分布,則調(diào)度節(jié)點(diǎn)將故障存儲(chǔ)節(jié)點(diǎn)報(bào)告給主控節(jié)點(diǎn),主控節(jié)點(diǎn)發(fā)現(xiàn)該存儲(chǔ)節(jié)點(diǎn)從節(jié)點(diǎn)進(jìn)程未失效,則查找故障存儲(chǔ)節(jié)點(diǎn)上分區(qū)信息。主控節(jié)點(diǎn)根據(jù)非故障存儲(chǔ)節(jié)點(diǎn)的分區(qū)分布信息以及故障存儲(chǔ)節(jié)點(diǎn)上分區(qū)中數(shù)據(jù)塊分布情況,將故障存儲(chǔ)節(jié)點(diǎn)的同一分區(qū)的M個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊重分布到非故障存儲(chǔ)節(jié)點(diǎn)上。如圖8所示,在另一種可能的實(shí)施方式中,假設(shè)存儲(chǔ)節(jié)點(diǎn)S1由于硬件或者是網(wǎng)絡(luò)等原因?qū)е鹿收稀FS的調(diào)度節(jié)點(diǎn)很快就會(huì)發(fā)現(xiàn)該進(jìn)程異常。同時(shí),NOSQL數(shù)據(jù)庫的主控節(jié)點(diǎn)也會(huì)發(fā)現(xiàn)該存儲(chǔ)節(jié)點(diǎn)S1從節(jié)點(diǎn)進(jìn)程異常。主控節(jié)點(diǎn)將根據(jù)系統(tǒng)的負(fù)載情況將存儲(chǔ)節(jié)點(diǎn)S1上的分區(qū)重新分布,該過程類似從節(jié)點(diǎn)進(jìn)程故障的情況。同時(shí)調(diào)度節(jié)點(diǎn)按照既定的副本復(fù)制機(jī)制,開始副本恢復(fù),該過程類似數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障情況,不多贅述。如圖9所示,本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)裝置,所述裝置包括:第一部署單元901,用以將數(shù)據(jù)庫中一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);劃分單元902,用以將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);第二部署單元903,用以將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn);其中,N為自然數(shù),并且N不小于2。在一種可能的實(shí)施方式中,所述裝置還包括處理單元,用以在所述將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn)之前:為所述數(shù)據(jù)庫中的所述分區(qū)分配分區(qū)標(biāo)識(shí);根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的所述N個(gè)數(shù)據(jù)塊命名。在一種可能的實(shí)施方式中,所述第二部署單元具體用于:按照部署策略,在所述部署策略對(duì)應(yīng)的第二存儲(chǔ)節(jié)點(diǎn)上對(duì)所述分區(qū)的數(shù)據(jù)文件中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的數(shù)據(jù)文件中的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的存儲(chǔ)節(jié)點(diǎn)。通過本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置,可以將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn),之后將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);最后將所述多個(gè)數(shù)據(jù)塊中全部數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在相同的第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)。這樣可以使得使得分布式非關(guān)系型數(shù)據(jù)庫中,在數(shù)據(jù)節(jié)點(diǎn)故障的情況下,能夠盡量減少跨節(jié)點(diǎn)數(shù)據(jù)范圍,以減少時(shí)延、降低網(wǎng)絡(luò)流量。如圖10所示,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理裝置,所述裝置包括:獲取單元1001,用以獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;確定單元1002,用以根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn);其中,M為自然數(shù);處理單元1003,用以將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)。當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)故障為的從節(jié)點(diǎn)進(jìn)程故障時(shí),所述處理單元1003還用以在將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之前:如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的L個(gè)分區(qū)遷移至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn);其中L為自然數(shù)。當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)上故障為數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障時(shí),所述處理單元1003還用以在將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布在所述第二存儲(chǔ)節(jié)點(diǎn)之后:將所述第二存儲(chǔ)節(jié)點(diǎn)上的所述M個(gè)數(shù)據(jù)塊備份到所述存儲(chǔ)節(jié)點(diǎn)集群中的第三存儲(chǔ)節(jié)點(diǎn),所述第三存儲(chǔ)節(jié)點(diǎn)為非故障存儲(chǔ)節(jié)點(diǎn)。通過本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理裝置,能夠獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的某一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;之后,根據(jù)所述該存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn),之后將所述該存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)。這樣,在數(shù)據(jù)節(jié)點(diǎn)故障的情況下,處理存儲(chǔ)節(jié)點(diǎn)故障時(shí),能夠盡量減少跨節(jié)點(diǎn)數(shù)據(jù)范圍,以減少時(shí)延、降低網(wǎng)絡(luò)流量。如圖11所示,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)存儲(chǔ)裝置,本實(shí)施例包括網(wǎng)絡(luò)接口11、處理器12和存儲(chǔ)器13。系統(tǒng)總線14用于連接網(wǎng)絡(luò)接口11、處理器12和存儲(chǔ)器13。網(wǎng)絡(luò)接口11用于與網(wǎng)絡(luò)和存儲(chǔ)節(jié)點(diǎn)集群中的其他存儲(chǔ)節(jié)點(diǎn)通信。存儲(chǔ)器13具有軟件模塊和設(shè)備驅(qū)動(dòng)程序。軟件模塊能夠執(zhí)行本發(fā)明上述方法的各種功能模塊;設(shè)備驅(qū)動(dòng)程序可以是網(wǎng)絡(luò)和接口驅(qū)動(dòng)程序。在啟動(dòng)時(shí),這些軟件組件被加載到存儲(chǔ)器13中,然后被處理器12訪問并執(zhí)行如下指令:將數(shù)據(jù)庫中的一個(gè)表的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn);其中,N為自然數(shù),并且N不小于2。進(jìn)一步地,在所述將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn)之前,還包括:為所述數(shù)據(jù)庫中所述分區(qū)分配分區(qū)標(biāo)識(shí);根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的所述N個(gè)數(shù)據(jù)塊命名。更具體的,所述將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)具體包括:按照部署策略,在所述部署策略對(duì)應(yīng)的第二存儲(chǔ)節(jié)點(diǎn)上對(duì)所述分區(qū)的數(shù)據(jù)文件中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的數(shù)據(jù)文件中的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的存儲(chǔ)節(jié)點(diǎn)。通過本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置,可以將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn),之后將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);最后將所述多個(gè)數(shù)據(jù)塊中全部數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在相同的第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)。這樣可以使得使得分布式非關(guān)系型數(shù)據(jù)庫中,在數(shù)據(jù)節(jié)點(diǎn)故障的情況下,能夠盡量減少跨節(jié)點(diǎn)數(shù)據(jù)范圍,以減少時(shí)延、降低網(wǎng)絡(luò)流量。如圖12所示,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理裝置,所述裝置包括:網(wǎng)絡(luò)接口21、中央處理器22和存儲(chǔ)器23。系統(tǒng)總線24用于連接網(wǎng)絡(luò)接口21、中央處理器22和存儲(chǔ)器23。網(wǎng)絡(luò)接口21用于與網(wǎng)絡(luò)和存儲(chǔ)節(jié)點(diǎn)集群中的其他存儲(chǔ)節(jié)點(diǎn)通信。存儲(chǔ)器23中具有軟件模塊和設(shè)備驅(qū)動(dòng)程序。軟件模塊能夠執(zhí)行本發(fā)明上述方法的各種功能模塊;設(shè)備驅(qū)動(dòng)程序可以是網(wǎng)絡(luò)和接口驅(qū)動(dòng)程序。在啟動(dòng)時(shí),這些軟件組件被加載到存儲(chǔ)器23中,然后被中央處理器22訪問并執(zhí)行如下指令:獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn);其中,M為自然數(shù);將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)。進(jìn)一步地,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)故障為的從節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之前,還包括:如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的L個(gè)分區(qū)遷移至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn);其中L為自然數(shù)。進(jìn)一步地,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)上故障為數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之后還包括:將所述第二存儲(chǔ)節(jié)點(diǎn)上的所述M個(gè)數(shù)據(jù)塊備份到所述存儲(chǔ)節(jié)點(diǎn)集群中的第三存儲(chǔ)節(jié)點(diǎn),所述第三存儲(chǔ)節(jié)點(diǎn)為非故障存儲(chǔ)節(jié)點(diǎn)。通過本發(fā)明實(shí)施例提供的數(shù)據(jù)庫存儲(chǔ)節(jié)點(diǎn)故障處理裝置,能夠獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的某一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;之后,根據(jù)所述該存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn),之后將所述該存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)。這樣,在數(shù)據(jù)節(jié)點(diǎn)故障的情況下,處理存儲(chǔ)節(jié)點(diǎn)故障時(shí),能夠盡量減少跨節(jié)點(diǎn)數(shù)據(jù)范圍,以減少時(shí)延、降低網(wǎng)絡(luò)流量。本發(fā)明實(shí)施例還提供了一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)時(shí),所述計(jì)算機(jī)執(zhí)行如下步驟:將數(shù)據(jù)庫中的一個(gè)表的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn);將所述分區(qū)的數(shù)據(jù)文件劃分為N個(gè)數(shù)據(jù)塊,所述N個(gè)數(shù)據(jù)塊位于所述第一存儲(chǔ)節(jié)點(diǎn);將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn);其中,N為自然數(shù),并且N不小于2。進(jìn)一步的,在所述將數(shù)據(jù)庫中的一個(gè)表中的一個(gè)分區(qū)部署在數(shù)據(jù)庫中的第一存儲(chǔ)節(jié)點(diǎn)之前,還包括:為所述數(shù)據(jù)庫中所述分區(qū)分配分區(qū)標(biāo)識(shí);根據(jù)所述分區(qū)標(biāo)識(shí)為所述分區(qū)的所述N個(gè)數(shù)據(jù)塊命名。進(jìn)一步的,所述將所述N個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊部署在第二存儲(chǔ)節(jié)點(diǎn)上,所述第二存儲(chǔ)節(jié)點(diǎn)與所述第一存儲(chǔ)節(jié)點(diǎn)為不同存儲(chǔ)節(jié)點(diǎn)具體包括:按照部署策略,在所述部署策略對(duì)應(yīng)的第二節(jié)點(diǎn)上對(duì)所述分區(qū)的數(shù)據(jù)文件中的第一個(gè)數(shù)據(jù)塊進(jìn)行數(shù)據(jù)塊備份;獲取所述分區(qū)的數(shù)據(jù)文件中第一個(gè)數(shù)據(jù)塊的備份數(shù)據(jù)塊的存儲(chǔ)節(jié)點(diǎn)分布信息;備份所述分區(qū)的數(shù)據(jù)文件中的N-1個(gè)數(shù)據(jù)塊至所述存儲(chǔ)節(jié)點(diǎn)分布信息指示的節(jié)點(diǎn)。相應(yīng)的,本發(fā)明實(shí)施例還提供了一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)計(jì)算機(jī)執(zhí)行所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)時(shí),所述計(jì)算機(jī)執(zhí)行如下步驟:獲取存儲(chǔ)節(jié)點(diǎn)集群中故障的第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息;根據(jù)所述第一存儲(chǔ)節(jié)點(diǎn)的分區(qū)信息以及所述分區(qū)對(duì)應(yīng)的數(shù)據(jù)塊的分布信息,在所述存儲(chǔ)節(jié)點(diǎn)集群中確定備份有所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)對(duì)應(yīng)的M個(gè)數(shù)據(jù)塊的非故障第二存儲(chǔ)節(jié)點(diǎn);其中,M為自然數(shù);將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)。進(jìn)一步的,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)故障為的從節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之前,還包括:如果所述第二存儲(chǔ)節(jié)點(diǎn)的分區(qū)負(fù)載超過負(fù)載均衡閾值,則將所述第二存儲(chǔ)節(jié)點(diǎn)上的L個(gè)分區(qū)遷移至所述存儲(chǔ)節(jié)點(diǎn)集群中除第二存儲(chǔ)節(jié)點(diǎn)外的其它非故障存儲(chǔ)節(jié)點(diǎn);其中L為自然數(shù)。進(jìn)一步的,當(dāng)所述第一存儲(chǔ)節(jié)點(diǎn)上故障為數(shù)據(jù)節(jié)點(diǎn)進(jìn)程故障時(shí),所述將所述第一存儲(chǔ)節(jié)點(diǎn)的所述分區(qū)重新分布到所述第二存儲(chǔ)節(jié)點(diǎn)之后還包括:將所述第二存儲(chǔ)節(jié)點(diǎn)上的所述M個(gè)數(shù)據(jù)塊備份到所述存儲(chǔ)節(jié)點(diǎn)集群中的第三存儲(chǔ)節(jié)點(diǎn),所述第三存儲(chǔ)節(jié)點(diǎn)為非故障存儲(chǔ)節(jié)點(diǎn)。本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所公開的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:NAS(NetworkAttachedStorage)、U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1