国产精品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ǔ)方法、裝置及系統(tǒng)與流程

      文檔序號(hào):12377317閱讀:721來(lái)源:國(guó)知局
      數(shù)據(jù)的分片存儲(chǔ)方法、裝置及系統(tǒng)與流程
      本發(fā)明實(shí)施例涉及分布式存儲(chǔ)領(lǐng)域,更具體地,涉及一種分布式存儲(chǔ)系統(tǒng)中數(shù)據(jù)的分片存儲(chǔ)方法、裝置以及系統(tǒng)。
      背景技術(shù)
      :隨著信息技術(shù)的快速發(fā)展,信息系統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)量越來(lái)越大。為了滿足大數(shù)據(jù)量的存儲(chǔ)需求,在多臺(tái)服務(wù)器上運(yùn)行的分布式存儲(chǔ)系統(tǒng)得到了廣泛的應(yīng)用。在分布式存儲(chǔ)系統(tǒng)中,多臺(tái)服務(wù)器上分別運(yùn)行了多個(gè)數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)進(jìn)行存儲(chǔ)時(shí),需要先將數(shù)據(jù)進(jìn)行分片(sharding),再將不同的數(shù)據(jù)分片交由不同的服務(wù)器進(jìn)行存儲(chǔ)。分片是一種水平擴(kuò)展(horizontalscaling)的方式,把一個(gè)大的數(shù)據(jù)集分散到多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,所有的數(shù)據(jù)節(jié)點(diǎn)將組成一個(gè)邏輯上的數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)這個(gè)大的數(shù)據(jù)集。分片對(duì)用戶(應(yīng)用層)是透明的,用戶不會(huì)知道數(shù)據(jù)很被存放到哪個(gè)片服務(wù)器上。采用數(shù)據(jù)分片進(jìn)行數(shù)據(jù)存儲(chǔ),可以突破單節(jié)點(diǎn)服務(wù)器的I/O能力限制,解決數(shù)據(jù)庫(kù)拓展性的問(wèn)題。同時(shí),為了保證數(shù)據(jù)和服務(wù)的高可用性,往往需要為分布式數(shù)據(jù)庫(kù)提供必要的容錯(cuò)機(jī)制,對(duì)各個(gè)數(shù)據(jù)分片進(jìn)行冗余備份。通過(guò)將同一數(shù)據(jù)分片的多個(gè)副本存儲(chǔ)在不同的服務(wù)器上,可以避免由于單個(gè)服務(wù)器不可用時(shí)造成的數(shù)據(jù)分片丟失。在現(xiàn)有技術(shù)中,通常采用交叉?zhèn)浞莸姆绞絹?lái)對(duì)分布式存儲(chǔ)系統(tǒng)中的數(shù)據(jù)分片進(jìn)行備份。數(shù)據(jù)分片的分片數(shù)量一般與存儲(chǔ)節(jié)點(diǎn)數(shù)量相同,從而將每個(gè)數(shù)據(jù)分片的主分片分別存儲(chǔ)于每個(gè)存儲(chǔ)節(jié)點(diǎn)上,而將備份分片存儲(chǔ)于與主分片所不同的另外任意兩個(gè)存儲(chǔ)節(jié)點(diǎn)上。例如,表1列舉了一種常見(jiàn)的將主數(shù)據(jù)及兩份備份數(shù)據(jù)存儲(chǔ)在6個(gè)數(shù)據(jù)節(jié)點(diǎn)的存儲(chǔ)策略,其中,數(shù)據(jù)分為A-F共六個(gè)數(shù)據(jù)分片,每個(gè)數(shù)據(jù)分片包含一個(gè)主數(shù)據(jù)以及兩個(gè)備份數(shù)據(jù)。存儲(chǔ)節(jié)點(diǎn)數(shù)據(jù)分片節(jié)點(diǎn)1ACD節(jié)點(diǎn)2BAC節(jié)點(diǎn)3CAF節(jié)點(diǎn)4DBE節(jié)點(diǎn)5EDF節(jié)點(diǎn)6FBE表1在現(xiàn)有技術(shù)中,通過(guò)將主分片與備份分片分別存儲(chǔ)在不同的存儲(chǔ)節(jié)點(diǎn)上,可以保證當(dāng)一個(gè)存儲(chǔ)節(jié)點(diǎn)故障時(shí),該數(shù)據(jù)分片不會(huì)損失,而只有當(dāng)同一數(shù)據(jù)分片所在的全部數(shù)據(jù)節(jié)點(diǎn)都產(chǎn)生故障時(shí),該數(shù)據(jù)片才會(huì)損失。但是,當(dāng)同一數(shù)據(jù)分片所在的全部數(shù)據(jù)節(jié)點(diǎn)都產(chǎn)生故障時(shí),可能會(huì)出現(xiàn)兩個(gè)數(shù)據(jù)分片的主備數(shù)據(jù)存儲(chǔ)在了相同的多個(gè)節(jié)點(diǎn)的情況,例如,在表1的例子中,數(shù)據(jù)分片A和數(shù)據(jù)分片C均存儲(chǔ)在了節(jié)點(diǎn)1、2、3中,當(dāng)該3個(gè)數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)故障時(shí),數(shù)據(jù)分片A和C均會(huì)丟失。此外,當(dāng)單個(gè)節(jié)點(diǎn)發(fā)生故障后,需要通過(guò)數(shù)據(jù)恢復(fù)來(lái)形成新的節(jié)點(diǎn),而在數(shù)據(jù)恢復(fù)時(shí),并發(fā)恢復(fù)的效率不高,例如在表1的例子中,當(dāng)節(jié)點(diǎn)6發(fā)生故障后,最多分別通過(guò)一個(gè)存儲(chǔ)有F、B、E數(shù)據(jù)分片的節(jié)點(diǎn),例如節(jié)點(diǎn)3、4、5來(lái)并發(fā)實(shí)現(xiàn)數(shù)據(jù)恢復(fù),而其他節(jié)點(diǎn)則不可參與恢復(fù)。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明提供了一種分布式存儲(chǔ)系統(tǒng)中數(shù)據(jù)的分片存儲(chǔ)方法、裝置以及系統(tǒng),提高了數(shù)據(jù)備份的可用性,以及數(shù)據(jù)恢復(fù)的效率。第一方面,本發(fā)明的實(shí)施例提供了一種數(shù)據(jù)的分片存儲(chǔ)方法。方法包括確定待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)到的M個(gè)數(shù)據(jù)節(jié)點(diǎn),并獲取待存儲(chǔ)數(shù)據(jù)的N個(gè)副本,其中,副本數(shù)數(shù)據(jù)的分片存儲(chǔ)方法N為待存儲(chǔ)數(shù)據(jù)的原始數(shù)據(jù)和備份數(shù)據(jù)的份數(shù)的總和,將所述N個(gè)副本中的每個(gè)副本依據(jù)同樣的分片方式分片為X個(gè)數(shù)據(jù)分片,從而每個(gè)數(shù)據(jù)分片都有N個(gè)數(shù)據(jù)分片副本。將待存儲(chǔ)數(shù)據(jù)的N個(gè)副本存儲(chǔ)到M個(gè)存儲(chǔ)節(jié)點(diǎn)中,即將X個(gè)數(shù)據(jù)分片中每個(gè)數(shù)據(jù)分片的N個(gè)數(shù)據(jù)分片副本分別存儲(chǔ)于N個(gè)存儲(chǔ)節(jié)點(diǎn)中。其中,使得副本存儲(chǔ)在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片副本的數(shù)量最小,具體的,使得數(shù)據(jù)分片副本存儲(chǔ)在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量為P或P+1,其中P為X除以的整數(shù)商(整數(shù)商指不完全商或部分商,例如,X為10,為3時(shí),整數(shù)商P為3)。由此,由于在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片副本的數(shù)量最小,使得當(dāng)任意N個(gè)存儲(chǔ)節(jié)點(diǎn)同時(shí)發(fā)生故障時(shí),可能造成的最大的數(shù)據(jù)損失最小,相對(duì)于現(xiàn)有技術(shù)而言,降低了數(shù)據(jù)損失比例,提高了數(shù)據(jù)備份的可用性。同時(shí),由于每個(gè)數(shù)據(jù)分片的副本均勻分布在不同的節(jié)點(diǎn)上,當(dāng)某一節(jié)點(diǎn)故障時(shí),存儲(chǔ)于該節(jié)點(diǎn)上的數(shù)據(jù)分片可以通過(guò)存儲(chǔ)于多個(gè)不同的節(jié)點(diǎn)相應(yīng)的副本進(jìn)行恢復(fù),從而提高并發(fā)恢復(fù)的效率。在一種可能的設(shè)計(jì)中,對(duì)副本進(jìn)行分時(shí),分片數(shù)X基于最佳分片基數(shù)Y進(jìn)行取值,其中分片數(shù)X可以等于或小于所述最佳分片基數(shù)Y與系數(shù)K的乘積,其中K為大于或者等于1的整數(shù)。在該種設(shè)計(jì)的一種實(shí)現(xiàn)方式中,X的取值小于Y與K的乘積,此時(shí),X的取值越接近Y與K的乘積時(shí),當(dāng)N個(gè)存儲(chǔ)節(jié)點(diǎn)同時(shí)發(fā)生故障時(shí),可能造成的最大的數(shù)據(jù)損失量占總存儲(chǔ)數(shù)據(jù)量的比例越小。在該種設(shè)計(jì)的一種實(shí)現(xiàn)方式中,X的取值為Y與K的乘積,此時(shí),當(dāng)N個(gè)存儲(chǔ)節(jié)點(diǎn)同時(shí)發(fā)生故障時(shí),可能造成的最大的數(shù)據(jù)損失量占總存儲(chǔ)數(shù)據(jù)量的比例最小。在該種設(shè)計(jì)的一種實(shí)現(xiàn)方式中,確定待存儲(chǔ)數(shù)據(jù)的分片數(shù)X時(shí),可以根據(jù)分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡需求,確定系數(shù)K。其中,K的值越大,待存儲(chǔ)數(shù)據(jù)的均衡負(fù)載程度越高。在一種可能的設(shè)計(jì)中,根據(jù)當(dāng)前分布式存儲(chǔ)系統(tǒng)的均衡負(fù)載情況,確定所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X。當(dāng)需要提高待存儲(chǔ)數(shù)據(jù)在分布式存儲(chǔ)系統(tǒng)中的均衡負(fù)載程度時(shí),可以取較大分片數(shù)X,從而獲得更小的數(shù)據(jù)粒度,提高均衡負(fù)載程度。在一種可能的設(shè)計(jì)中,根據(jù)待存儲(chǔ)數(shù)據(jù)的安全需求確定待存儲(chǔ)數(shù)據(jù)的副本數(shù)N,其中,所述副本數(shù)N的值越大,所能夠滿足的所述待存儲(chǔ)數(shù)據(jù)的安全需要越高,即要損失一個(gè)數(shù)據(jù)分片,需要同時(shí)發(fā)生故障的節(jié)點(diǎn)數(shù)量更多。在一種可能的設(shè)計(jì)中,根據(jù)所述待存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)類型和數(shù)據(jù)類型與副本數(shù)的對(duì)應(yīng)關(guān)系,確定所述待存儲(chǔ)數(shù)據(jù)的副本數(shù)N。從而對(duì)不同類型的數(shù)據(jù)提供更加靈活的數(shù)據(jù)可用性保障。在一種可能的設(shè)計(jì)中,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到存儲(chǔ)節(jié)點(diǎn)中時(shí),從M個(gè)數(shù)據(jù)節(jié)點(diǎn)中選出N個(gè)數(shù)據(jù)節(jié)點(diǎn)的的種數(shù)據(jù)節(jié)點(diǎn)的組合方式;確定分片數(shù)X除以所得的商P以及余數(shù)Q;在所述種所述數(shù)據(jù)節(jié)點(diǎn)的組合方式種中選擇Q種數(shù)據(jù)節(jié)點(diǎn)的組合方式用于存儲(chǔ)P+1個(gè)數(shù)據(jù)分片,其余個(gè)數(shù)據(jù)節(jié)點(diǎn)的組合方式用于存儲(chǔ)P個(gè)數(shù)據(jù)分片,其中,每個(gè)數(shù)據(jù)分片的N個(gè)副本分別存儲(chǔ)在要存儲(chǔ)的數(shù)據(jù)節(jié)點(diǎn)的組合方式中N個(gè)不同的數(shù)據(jù)節(jié)點(diǎn)上。第二方面,本發(fā)明實(shí)施例提供了一種確定分布式存儲(chǔ)系統(tǒng)中數(shù)據(jù)分片的方法,方法包括確定待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)到的M個(gè)數(shù)據(jù)節(jié)點(diǎn)以及獲取待存儲(chǔ)數(shù)據(jù)的副本數(shù)N,從而確定待存儲(chǔ)數(shù)據(jù)的分片數(shù)X。其中,等于或小于所述最佳分片基數(shù)Y與系數(shù)K的乘積,其中,K為大于或等于1的整數(shù)。X的取值越接近Y與K的乘積時(shí),當(dāng)N個(gè)存儲(chǔ)節(jié)點(diǎn)同時(shí)發(fā)生故障時(shí),可能造成的最大的數(shù)據(jù)損失量占總存儲(chǔ)數(shù)據(jù)量的比例越小。當(dāng)X的取值為Y與K的乘積時(shí),可能造成的最大的數(shù)據(jù)損失量占總存儲(chǔ)數(shù)據(jù)量的比例最小。在一種可能的設(shè)計(jì)中,根據(jù)分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡需求,確定系數(shù)K,其中,所述系數(shù)K為大于或等于1的整數(shù),所述K的值越大,待存儲(chǔ)數(shù)據(jù)的負(fù)載均衡程度越高。分片數(shù)X等于或小于在一種可能的設(shè)計(jì)中,確定分片數(shù)X后,確定將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到所述M個(gè)存儲(chǔ)節(jié)點(diǎn)中的存儲(chǔ)策略,其中,將所述X個(gè)數(shù)據(jù)分片中的每個(gè)數(shù)據(jù)分片的N個(gè)數(shù)據(jù)分片副本分別存儲(chǔ)于所述M個(gè)存儲(chǔ)節(jié)點(diǎn)中的N個(gè)存儲(chǔ)節(jié)點(diǎn)中,并使得數(shù)據(jù)分片副本存儲(chǔ)在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量為P或P+1,其中P為X除以的整數(shù)商。在該設(shè)計(jì)的一種可能的實(shí)現(xiàn)方式中,確定存儲(chǔ)策略的具體方式為:確定N個(gè)所述待存儲(chǔ)數(shù)據(jù)副本存儲(chǔ)于M個(gè)所述數(shù)據(jù)節(jié)點(diǎn)時(shí),從M個(gè)數(shù)據(jù)節(jié)點(diǎn)中選出N個(gè)數(shù)據(jù)節(jié)點(diǎn)的的種數(shù)據(jù)節(jié)點(diǎn)的組合方式;確定分片數(shù)X除以所得的商P以及余數(shù)Q;在所述種所述數(shù)據(jù)節(jié)點(diǎn)的組合方式種中選擇Q種數(shù)據(jù)節(jié)點(diǎn)的組合方式用于存儲(chǔ)P+1個(gè)數(shù)據(jù)分片,其余個(gè)數(shù)據(jù)節(jié)點(diǎn)的組合方式用于存儲(chǔ)P個(gè)數(shù)據(jù)分片,其中,每個(gè)數(shù)據(jù)分片的N個(gè)副本分別存儲(chǔ)在要存儲(chǔ)的數(shù)據(jù)節(jié)點(diǎn)的組合方式中N個(gè)不同的數(shù)據(jù)節(jié)點(diǎn)上。在一種可能的設(shè)計(jì)中,可以根據(jù)待存儲(chǔ)數(shù)據(jù)的安全需求確定待存儲(chǔ)數(shù)據(jù)的副本數(shù)N,副本數(shù)N的值越大,所能夠滿足的所述待存儲(chǔ)數(shù)據(jù)的安全需要越高。在一種可能的設(shè)計(jì)中,根據(jù)所述待存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)類型和數(shù)據(jù)類型與副本數(shù)的對(duì)應(yīng)關(guān)系,確定所述待存儲(chǔ)數(shù)據(jù)的副本數(shù)N。從而可以對(duì)不同數(shù)據(jù)類型提供不同程度的數(shù)據(jù)可用性的保障。第三方面,本發(fā)明實(shí)施例提供了一種分布式存儲(chǔ)設(shè)備,該設(shè)備可以實(shí)現(xiàn)前述第一或者第二方面方法設(shè)計(jì)中的功能。所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。所述模塊可以是軟件和/或硬件。在一種可能的設(shè)計(jì)中,該設(shè)備的結(jié)構(gòu)包括處理器,以及與所述處理器相連接的存儲(chǔ)器。其中,處理器調(diào)用所述存儲(chǔ)器中存儲(chǔ)的指令以用于執(zhí)行前述第一或者第二方面的方法。在一種可能的設(shè)計(jì)中,該設(shè)備包括獲取單元和存儲(chǔ)單元,其中,獲取單元用于確定待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)到的M個(gè)存儲(chǔ)節(jié)點(diǎn)以及獲取所述待存儲(chǔ)數(shù)據(jù)的N個(gè)副本,其中所述N個(gè)副本包括所述待存儲(chǔ)數(shù)據(jù)的原始數(shù)據(jù)和所述原始數(shù)據(jù)的N-1個(gè)備份數(shù)據(jù),所述N個(gè)副本中的每個(gè)副本依據(jù)同樣的分片方式被分片為X個(gè)數(shù)據(jù)分片以使得每個(gè)數(shù)據(jù)分片具有N個(gè)數(shù)據(jù)分片副本,N小于或等于M。確定單元將所述待存儲(chǔ)數(shù)據(jù)的N個(gè)副本存儲(chǔ)到所述M個(gè)存儲(chǔ)節(jié)點(diǎn),其中,將所述X個(gè)數(shù)據(jù)分片中的每個(gè)數(shù)據(jù)分片的N個(gè)數(shù)據(jù)分片副本分別存儲(chǔ)于所述M個(gè)存儲(chǔ)節(jié)點(diǎn)中的N個(gè)存儲(chǔ)節(jié)點(diǎn)中,并使得數(shù)據(jù)分片副本存儲(chǔ)在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量為P或P+1,其中P為X除以的整數(shù)商。在一種可能的設(shè)計(jì)中,該設(shè)備包括獲取單元和確定單元,其中,獲取單元用于獲取待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)到的M個(gè)數(shù)據(jù)節(jié)點(diǎn)以及待存儲(chǔ)數(shù)據(jù)的副本數(shù)N。確定單元根據(jù)前述第二方面的方法確定分片數(shù)X。第四方面,本發(fā)明實(shí)施例提供了一種分布式存儲(chǔ)系統(tǒng)。該分布式存儲(chǔ)系統(tǒng)包括客戶端、多個(gè)硬盤以及分布式存儲(chǔ)設(shè)備,該分布式存儲(chǔ)設(shè)備可以是前述第三方面的設(shè)計(jì)中的設(shè)備,用于執(zhí)行前述第一方面或者第二方面相對(duì)于的方法。第五方面,本發(fā)明實(shí)施例提供了又一種分布式存儲(chǔ)系統(tǒng),該系統(tǒng)包括客戶端和分布式存儲(chǔ)服務(wù)器系統(tǒng),其中,分布式存儲(chǔ)服務(wù)器系統(tǒng)可以包括:控制服務(wù)器、運(yùn)維管理(OAM)服務(wù)器、業(yè)務(wù)服務(wù)器、存儲(chǔ)資源池以及存儲(chǔ)引擎。這里,存儲(chǔ)引擎可以用于執(zhí)行前述第一方面或者第二方面中相應(yīng)的方法。相較于現(xiàn)有技術(shù),本發(fā)明提供了一種分布式環(huán)境下的數(shù)據(jù)分片存儲(chǔ)的方法,提高了數(shù)據(jù)的可用性,以及當(dāng)節(jié)點(diǎn)故障時(shí)數(shù)據(jù)恢復(fù)的效率。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹。顯而易見(jiàn)地,下面附圖中反映的僅僅是本發(fā)明的一部分實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得本發(fā)明的其他實(shí)施方式。而所有這些實(shí)施例或?qū)嵤┓绞蕉荚诒景l(fā)明的保護(hù)范圍之內(nèi)。圖1為本發(fā)明的一種可能的系統(tǒng)架構(gòu)示意圖;圖2為本發(fā)明實(shí)施例提供的一種確定分布式存儲(chǔ)系統(tǒng)分片存儲(chǔ)策略的流程示意圖;圖3為本發(fā)明實(shí)施例中的一種可能的分布式存儲(chǔ)系統(tǒng)分片存儲(chǔ)策略的示意圖;圖4為本發(fā)明實(shí)施例中的一種可能的分布式存儲(chǔ)系統(tǒng)分片存儲(chǔ)策略下節(jié)點(diǎn)恢復(fù)的示意圖;圖5為本發(fā)明實(shí)施例中一種可能的場(chǎng)景下多節(jié)點(diǎn)故障后分片數(shù)量與數(shù)據(jù)損失比例的關(guān)系示例圖;圖6為本發(fā)明實(shí)施例提供的一種分布式存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例提供的又一種分布式存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例提供的一種分布式存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例提供的又一種分布式存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例提供的一種分布式存儲(chǔ)裝置的結(jié)構(gòu)示意圖。圖11為本發(fā)明實(shí)施例提供的又一種分布式存儲(chǔ)裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。為了便于對(duì)本發(fā)明實(shí)施例的理解,首先介紹本發(fā)明所應(yīng)用于的分布式存儲(chǔ)系統(tǒng)的系統(tǒng)架構(gòu)。分布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。傳統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用集中的存儲(chǔ)服務(wù)器存放所有數(shù)據(jù),存儲(chǔ)服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點(diǎn),不能滿足大規(guī)模存儲(chǔ)應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。如圖1所示,是一種分布式存儲(chǔ)系統(tǒng)的架構(gòu)示意圖。需要說(shuō)明的是,該分布式存儲(chǔ)系統(tǒng)只是舉例說(shuō)明,本發(fā)明的應(yīng)用范圍并不局限于此。如圖所示的分布式存儲(chǔ)系統(tǒng)中,包括分布式數(shù)據(jù)庫(kù)引擎102和分布式數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)107。其中,分布式數(shù)據(jù)庫(kù)引擎102是系統(tǒng)核心,其負(fù)責(zé)數(shù)據(jù)的解析、路由、分發(fā)、合并等操作,并將底層的眾多存儲(chǔ)節(jié)點(diǎn)管理起來(lái);分布式存儲(chǔ)節(jié)點(diǎn)由多個(gè)用于存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn)組合,用戶可以根據(jù)需求靈活的構(gòu)建不同規(guī)模的數(shù)據(jù)節(jié)點(diǎn)集群。分布式數(shù)據(jù)庫(kù)引擎102包含了API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)模塊103,為客戶端提供接口以調(diào)用數(shù)據(jù)庫(kù)。資源申請(qǐng)模塊104根據(jù)客戶端的存儲(chǔ)需求,以及分布式數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中提供的每個(gè)節(jié)點(diǎn)的存儲(chǔ)量確定提供給客戶端本次存儲(chǔ)需求的節(jié)點(diǎn)數(shù)量,可選的,還可以根據(jù)用戶提交的數(shù)據(jù)可靠性需求確定待存儲(chǔ)數(shù)據(jù)備份副本的數(shù)量。數(shù)據(jù)管理模塊105根據(jù)申請(qǐng)的存儲(chǔ)資源確定存儲(chǔ)策略,即數(shù)據(jù)分片的數(shù)量以及數(shù)據(jù)分片與存儲(chǔ)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。數(shù)據(jù)路由模塊106根據(jù)數(shù)據(jù)管理模塊確定的存儲(chǔ)策略,對(duì)來(lái)自客戶端的請(qǐng)求進(jìn)行路由,將數(shù)據(jù)進(jìn)行分片并路由到數(shù)據(jù)節(jié)點(diǎn)上,或者聚合各個(gè)節(jié)點(diǎn)的數(shù)據(jù)并返回客戶端。應(yīng)當(dāng)理解的是,在分布式存儲(chǔ)系統(tǒng)中,模塊的功能是由服務(wù)器來(lái)實(shí)現(xiàn)的,通常情況下,某一功能模塊可以由獨(dú)立的服務(wù)器所實(shí)現(xiàn),但是,在一些情況下,也可以通過(guò)一個(gè)服務(wù)器實(shí)現(xiàn)多個(gè)功能模塊,或者一個(gè)功能模塊有多個(gè)服務(wù)器所組成的集群來(lái)實(shí)現(xiàn)。參考圖2,是本發(fā)明實(shí)施例一的流程示意圖。在本發(fā)明實(shí)施例中,提供了一種確定分布式存儲(chǔ)系統(tǒng)中數(shù)據(jù)分片存儲(chǔ)策略方法。結(jié)合前述介紹,本發(fā)明實(shí)施例主要通過(guò)對(duì)數(shù)據(jù)管理模塊105的改進(jìn),從而確定數(shù)據(jù)分片的存儲(chǔ)策略。在本發(fā)明實(shí)施例中,客戶端向分布式存儲(chǔ)系統(tǒng)發(fā)起了數(shù)據(jù)存儲(chǔ)請(qǐng)求,將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到分布式存儲(chǔ)系統(tǒng)中。應(yīng)當(dāng)理解的,本實(shí)施例中,對(duì)于方法步驟之間的執(zhí)行順序并不進(jìn)行限定。參考圖2本領(lǐng)域技術(shù)人員可以理解,S101、S102均為S103步驟的前置步驟,即S101、S102可以按照任意順序執(zhí)行,也可以一個(gè)或多個(gè)步驟并行同時(shí)執(zhí)行。如圖2所示,該方法包括:S101、確定待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)到的M個(gè)數(shù)據(jù)節(jié)點(diǎn)。具體的,一般而言,根據(jù)待存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)大小,以及每個(gè)數(shù)據(jù)節(jié)點(diǎn)所能提供的存儲(chǔ)量,可以確定要存儲(chǔ)到的M個(gè)數(shù)據(jù)節(jié)點(diǎn)。在一些情況下,數(shù)據(jù)所存儲(chǔ)的數(shù)據(jù)節(jié)點(diǎn)數(shù)量也可以為預(yù)設(shè)的固定值,或者為存儲(chǔ)節(jié)點(diǎn)的總數(shù)。此外,數(shù)據(jù)節(jié)點(diǎn)數(shù)M也可以根據(jù)通過(guò)API接口,根據(jù)用戶的設(shè)定值來(lái)確定。在一種設(shè)計(jì)中,在確定要存儲(chǔ)到的數(shù)據(jù)節(jié)點(diǎn)時(shí),可以根據(jù)每個(gè)節(jié)點(diǎn)的負(fù)載情況,選擇負(fù)載程度較低的M個(gè)數(shù)據(jù)節(jié)點(diǎn)作為要存儲(chǔ)到的數(shù)據(jù)節(jié)點(diǎn),從而提高整個(gè)分布式存儲(chǔ)系統(tǒng)的均衡負(fù)載程度。S102、獲取待存儲(chǔ)數(shù)據(jù)的N個(gè)副本。為了方便描述,在本發(fā)明中,副本數(shù)N指的是待存儲(chǔ)數(shù)據(jù)的原始數(shù)據(jù)和備份數(shù)據(jù)的份數(shù)的總和,即N個(gè)副本包括所述待存儲(chǔ)數(shù)據(jù)的原始數(shù)據(jù)和所述原始數(shù)據(jù)的N-1個(gè)備份數(shù)據(jù)。為了保證數(shù)據(jù)的可用性,需要對(duì)待存儲(chǔ)數(shù)據(jù)進(jìn)行冗余備份。待存儲(chǔ)數(shù)據(jù)的副本數(shù)N越大,待存儲(chǔ)數(shù)據(jù)的冗余程度越高,從而待存儲(chǔ)數(shù)據(jù)的可靠性也越好,但同時(shí)也會(huì)占用更大的存儲(chǔ)空間。在一般情況下,數(shù)據(jù)的副本數(shù)為預(yù)設(shè)的值,可以通過(guò)用戶事先設(shè)定,或者根據(jù)不同的待存儲(chǔ)數(shù)據(jù),在每次存儲(chǔ)請(qǐng)求時(shí)進(jìn)行設(shè)定。可以理解的,為了保證副本的冗余備份的隔離性,同一數(shù)據(jù)的副本應(yīng)當(dāng)存儲(chǔ)于不同的存儲(chǔ)節(jié)點(diǎn)上,從而保證當(dāng)某一存儲(chǔ)節(jié)點(diǎn)故障時(shí),其他副本不會(huì)丟失。因此,對(duì)于同一分布式系統(tǒng)而言,副本數(shù)N的值應(yīng)當(dāng)小于或者等于數(shù)據(jù)節(jié)點(diǎn)數(shù)M的值。可選的,可以根據(jù)待存儲(chǔ)數(shù)據(jù)的安全需求確定待存儲(chǔ)數(shù)據(jù)的副本數(shù)N。當(dāng)待存儲(chǔ)數(shù)據(jù)的安全需求越高時(shí),所確定的待存儲(chǔ)數(shù)據(jù)副本數(shù)N的值越大。數(shù)據(jù)的安全需求可以通過(guò)用戶的存儲(chǔ)請(qǐng)求直接獲得,即用戶在不同的存儲(chǔ)請(qǐng)求對(duì)待存儲(chǔ)數(shù)據(jù)提出不同的安全需求;也可以通過(guò)預(yù)設(shè)的判斷邏輯,例如不同的數(shù)據(jù)類型與安全需求的對(duì)應(yīng)關(guān)系,或者不同的用戶類型與安全需求的對(duì)應(yīng)關(guān)系等,確定待存儲(chǔ)數(shù)據(jù)的安全需求。在一些服務(wù)器平臺(tái)中,例如PaaS(Platform-as-a-Service,平臺(tái)即服務(wù))平臺(tái)下,用戶在平臺(tái)上所部屬的不同應(yīng)用的數(shù)據(jù)的安全需求不同,還可以根據(jù)不同的應(yīng)用或者應(yīng)用類型來(lái)確定待存儲(chǔ)數(shù)據(jù)的安全需求??蛇x的,可以根據(jù)待存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)類型和數(shù)據(jù)類型與副本數(shù)的對(duì)應(yīng)關(guān)系,確定待存儲(chǔ)數(shù)據(jù)的副本數(shù)N,從而對(duì)不同類型的數(shù)據(jù)以不同程度的可用性保護(hù)。N個(gè)副本中的每個(gè)副本依據(jù)同樣的分片方式被分片為X個(gè)數(shù)據(jù)分片以使得每個(gè)數(shù)據(jù)分片具有N個(gè)數(shù)據(jù)分片副本。分片數(shù)X是指將一個(gè)待存儲(chǔ)數(shù)據(jù)副本進(jìn)行分片的分片數(shù)量。在進(jìn)行分片存儲(chǔ)時(shí),待存儲(chǔ)數(shù)據(jù)的主數(shù)據(jù)和備份數(shù)據(jù)均需要以同樣的分片方式進(jìn)行分片,從而的到主數(shù)據(jù)分片和與之對(duì)應(yīng)的備份數(shù)據(jù)分片。在進(jìn)行分片后,每個(gè)數(shù)據(jù)副本都被分成同樣的X個(gè)數(shù)據(jù)分片,因而對(duì)于一個(gè)數(shù)據(jù)分片而言,存在N個(gè)包含該數(shù)據(jù)分片在內(nèi)的相同的分片副本??梢岳斫獾模?dāng)待存儲(chǔ)數(shù)據(jù)的分片數(shù)X確定后,待存儲(chǔ)數(shù)據(jù)共計(jì)有N×X個(gè)數(shù)據(jù)分片需要存儲(chǔ)到M個(gè)節(jié)點(diǎn)中。在一些情況下,分片數(shù)X可以由用戶預(yù)先設(shè)置,即可以對(duì)任一待存儲(chǔ)數(shù)據(jù)均采用相同的分片數(shù),或者由用戶根據(jù)不同的待存儲(chǔ)數(shù)據(jù)在進(jìn)行存儲(chǔ)請(qǐng)求時(shí)設(shè)置該待存儲(chǔ)數(shù)據(jù)的分片數(shù)??蛇x的,由于分片數(shù)越高,存儲(chǔ)到存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片數(shù)量越多,從而減小數(shù)據(jù)分片粒度,更容易將數(shù)據(jù)均勻的存儲(chǔ)到各個(gè)節(jié)點(diǎn)中,盡可能的實(shí)現(xiàn)負(fù)載均衡。因此,根據(jù)當(dāng)前分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡情況,對(duì)待存儲(chǔ)數(shù)據(jù)設(shè)置不同的分片數(shù)。例如,當(dāng)分布式系統(tǒng)對(duì)于負(fù)載均衡的需求較高時(shí),動(dòng)態(tài)的增大分片數(shù),以提高分布式系統(tǒng)的均衡負(fù)載程度。S103、將所述待存儲(chǔ)數(shù)據(jù)的N個(gè)副本存儲(chǔ)到所述M個(gè)存儲(chǔ)節(jié)點(diǎn)。具體的,在進(jìn)行存儲(chǔ)時(shí)遵循以下方法:將所述X個(gè)數(shù)據(jù)分片中的每個(gè)數(shù)據(jù)分片的N個(gè)數(shù)據(jù)分片副本分別存儲(chǔ)于所述M個(gè)存儲(chǔ)節(jié)點(diǎn)中的N個(gè)存儲(chǔ)節(jié)點(diǎn)中,并使得數(shù)據(jù)分片副本存儲(chǔ)在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量為P或P+1,其中P為X除以的整數(shù)商。相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)上的數(shù)據(jù)分片的數(shù)量,是指在分布式系統(tǒng)中,對(duì)于任意N個(gè)數(shù)據(jù)節(jié)點(diǎn),在這N個(gè)數(shù)據(jù)節(jié)點(diǎn)上存儲(chǔ)了該數(shù)據(jù)分片的全部N個(gè)副本的數(shù)據(jù)分片的數(shù)量。使得數(shù)據(jù)分片副本存儲(chǔ)在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量為P或P+1,其中P為X除以的整數(shù)商,實(shí)質(zhì)上即是使得存儲(chǔ)在相同的N個(gè)節(jié)點(diǎn)上的數(shù)據(jù)分片的數(shù)量最少。即需要將數(shù)據(jù)節(jié)點(diǎn)均勻的存儲(chǔ)在可能的N個(gè)數(shù)據(jù)節(jié)點(diǎn)的組合中,使得每種N個(gè)數(shù)據(jù)節(jié)點(diǎn)組合所存儲(chǔ)的數(shù)據(jù)分片數(shù)量相對(duì)均勻,從而任意選取N個(gè)數(shù)據(jù)節(jié)點(diǎn),在可能的存儲(chǔ)了全部N個(gè)副本的數(shù)據(jù)節(jié)點(diǎn)的數(shù)量中,其最大值最小。可以理解的,每個(gè)數(shù)據(jù)分片存儲(chǔ)于N個(gè)節(jié)點(diǎn)上,即一種N個(gè)節(jié)點(diǎn)的組合。而對(duì)于包含M個(gè)存儲(chǔ)節(jié)點(diǎn)的分布式系統(tǒng)而言,從中選出N個(gè)節(jié)點(diǎn)的組合,總共可以有種不同的組合。因此,當(dāng)分片數(shù)X小于時(shí),每個(gè)數(shù)據(jù)分片均可以選擇不同的N個(gè)數(shù)據(jù)分片,即存儲(chǔ)在相同的N個(gè)節(jié)點(diǎn)上的數(shù)據(jù)分片數(shù)量為1;當(dāng)分片數(shù)X大于時(shí),則會(huì)出現(xiàn)多個(gè)數(shù)據(jù)分片存儲(chǔ)在相同的N個(gè)節(jié)點(diǎn)上的情況。具體的,設(shè)分片數(shù)X除以所得的整數(shù)商P以及余數(shù)Q,那么,在種數(shù)據(jù)節(jié)點(diǎn)的組合方式種中選擇Q種數(shù)據(jù)節(jié)點(diǎn)的組合方式用于存儲(chǔ)P+1個(gè)數(shù)據(jù)分片,其余個(gè)數(shù)據(jù)節(jié)點(diǎn)的組合方式用于存儲(chǔ)P個(gè)數(shù)據(jù)分片。例如,當(dāng)有40個(gè)數(shù)據(jù)分片需要存儲(chǔ),每個(gè)數(shù)據(jù)分片有3個(gè)副本,而分布式系統(tǒng)中,共有20種3個(gè)數(shù)據(jù)節(jié)點(diǎn)的不同組合,因此,當(dāng)進(jìn)行存儲(chǔ)時(shí),要使得存儲(chǔ)在相同3個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量最小,即每種組合存儲(chǔ)2個(gè)不同數(shù)據(jù)節(jié)點(diǎn)的全部副本;而當(dāng)有50個(gè)數(shù)據(jù)分片需要存儲(chǔ)時(shí),則需要其中10種數(shù)據(jù)節(jié)點(diǎn)組合存儲(chǔ)3個(gè)不同的數(shù)據(jù)節(jié)點(diǎn)的全部副本,而另外10中數(shù)據(jù)節(jié)點(diǎn)組合存儲(chǔ)2個(gè)不同的數(shù)據(jù)節(jié)點(diǎn)的全部副本。下面舉例給出一種具體的進(jìn)行存儲(chǔ)的算法,從而獲得滿足前述存儲(chǔ)方式的存儲(chǔ)策略。應(yīng)當(dāng)理解的是,該算法僅僅是對(duì)于根據(jù)前述原則將待存儲(chǔ)數(shù)據(jù)存儲(chǔ)于存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)策略的一種設(shè)計(jì)。對(duì)于本領(lǐng)域技術(shù)人員而言,在理解前述分配原則的基礎(chǔ)上,可以通過(guò)多種不同的具體算法來(lái)實(shí)現(xiàn)上述的存儲(chǔ)策略,在此不再一一列舉。該算法包括如下步驟:1、為X個(gè)待存儲(chǔ)數(shù)據(jù)分片編號(hào)為1,2,3……X;2、為每個(gè)數(shù)據(jù)節(jié)點(diǎn)編號(hào)為1,2,3……N;3、建立存儲(chǔ)分配表,該存儲(chǔ)分配表包含行,N列,一行包含N個(gè)數(shù)據(jù)節(jié)點(diǎn),每行所包含的數(shù)據(jù)節(jié)點(diǎn)的組合互不相同,即每行中的數(shù)據(jù)節(jié)點(diǎn)為種數(shù)據(jù)節(jié)點(diǎn)組合中的一種;4、確立數(shù)據(jù)分片與存儲(chǔ)分配表中每行數(shù)據(jù)節(jié)點(diǎn)組合的對(duì)應(yīng)關(guān)系。其中,設(shè)分片數(shù)X除以所得的商P,存儲(chǔ)分配表中第N行分別與第K個(gè)數(shù)據(jù)節(jié)點(diǎn)相對(duì)應(yīng),且K≤X;5、根據(jù)確立的對(duì)應(yīng)關(guān)系,將每個(gè)數(shù)據(jù)節(jié)點(diǎn)的N個(gè)副本存儲(chǔ)到與之對(duì)應(yīng)的存儲(chǔ)分配表上一行的N個(gè)數(shù)據(jù)節(jié)點(diǎn)中,所述的存儲(chǔ)策略即為符合前述原則的存儲(chǔ)策略。為了方便對(duì)對(duì)本實(shí)施例的理解,下面按照本方法實(shí)施例得到的存儲(chǔ)策略的一個(gè)具體示例。如圖3所示,是將分片數(shù)X為20的待存儲(chǔ)數(shù)據(jù)以副本數(shù)N為3存儲(chǔ)于數(shù)據(jù)節(jié)點(diǎn)數(shù)M為6的分布式系統(tǒng)中,按照本發(fā)明實(shí)施例得到的存儲(chǔ)策略中的一種。在該策略中,由于正好與分片數(shù)量相等,要滿足存儲(chǔ)在相同的3個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量最小,即每種3個(gè)存儲(chǔ)節(jié)點(diǎn)組合存儲(chǔ)一個(gè)數(shù)據(jù)分片的3個(gè)副本。因此,在本例中,任意選出3個(gè)存儲(chǔ)節(jié)點(diǎn),其都只完整的存儲(chǔ)了一個(gè)數(shù)據(jù)分片的全部3個(gè)副本。例如,節(jié)點(diǎn)1、2、3僅完整存儲(chǔ)了數(shù)據(jù)分片A的全部3個(gè)副本,而節(jié)點(diǎn)1、2、4僅完整存儲(chǔ)了數(shù)據(jù)分片B的全部3個(gè)副本。由于每個(gè)數(shù)據(jù)分片均分別存儲(chǔ)在了3個(gè)不同的數(shù)據(jù)節(jié)點(diǎn)中,因此,要造成數(shù)據(jù)分片的徹底丟失,需要至少3個(gè)數(shù)據(jù)節(jié)點(diǎn)同時(shí)故障。而在本例的存儲(chǔ)策略下,當(dāng)任意3個(gè)數(shù)據(jù)節(jié)點(diǎn)同時(shí)故障時(shí),只會(huì)造成1個(gè)數(shù)據(jù)分片的丟失。例如,當(dāng)節(jié)點(diǎn)1、2、3故障時(shí),僅會(huì)造成數(shù)據(jù)分片A的丟失,而其他數(shù)據(jù)分片則在其余節(jié)點(diǎn)中至少還保存有1個(gè)數(shù)據(jù)分片副本。同時(shí),在本例中,當(dāng)任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障時(shí),由于數(shù)據(jù)分片的副本均勻的分散在其余的數(shù)據(jù)節(jié)點(diǎn)上,其余節(jié)點(diǎn)均可以對(duì)該節(jié)點(diǎn)同時(shí)進(jìn)行數(shù)據(jù)恢復(fù)。例如,如圖4所示,列舉了當(dāng)節(jié)點(diǎn)5故障時(shí)的一種可能的數(shù)據(jù)恢復(fù)方式,該節(jié)點(diǎn)中所存儲(chǔ)的數(shù)據(jù)分片的副本可以分別通過(guò)另外5個(gè)數(shù)據(jù)節(jié)點(diǎn)中灰色部分的的副本進(jìn)行恢復(fù)。根據(jù)本發(fā)明實(shí)施例,適用于將不同分片數(shù)和副本數(shù)的數(shù)據(jù)存儲(chǔ)于分布式系統(tǒng)中,可以根據(jù)待存儲(chǔ)數(shù)據(jù)的不同情況對(duì)分片數(shù)和副本數(shù)進(jìn)行靈活的調(diào)整。由于保證了存儲(chǔ)在相同N個(gè)節(jié)點(diǎn)的數(shù)據(jù)分片數(shù)量最少,因此,當(dāng)N個(gè)節(jié)點(diǎn)同時(shí)發(fā)生故障時(shí),可能造成的數(shù)據(jù)分片的丟失量最少,從而提高了數(shù)據(jù)備份的可用性。同時(shí),由于本方案可以實(shí)現(xiàn)分片數(shù)高于節(jié)點(diǎn)數(shù)的存儲(chǔ)策略,因此單個(gè)節(jié)點(diǎn)所存儲(chǔ)的的數(shù)據(jù)分片數(shù)量提高,當(dāng)單個(gè)節(jié)點(diǎn)發(fā)送故障時(shí),由于其存儲(chǔ)的數(shù)據(jù)分片的副本均勻的分布在其他的數(shù)據(jù)節(jié)點(diǎn)中,因此,能夠參與數(shù)據(jù)恢復(fù)的數(shù)據(jù)節(jié)點(diǎn)數(shù)量提高,即提高了節(jié)點(diǎn)故障時(shí)的數(shù)據(jù)恢復(fù)并發(fā)數(shù)量,提高了數(shù)據(jù)恢復(fù)效率。下面介紹本發(fā)明的第二種方法實(shí)施例。在本實(shí)施例中,給出了一種確定待存儲(chǔ)數(shù)據(jù)分片數(shù)的方法,通過(guò)所述的待存儲(chǔ)數(shù)據(jù)分片數(shù),可以達(dá)到更優(yōu)的數(shù)據(jù)可用性。本實(shí)施例中,如何確定待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)的數(shù)據(jù)節(jié)點(diǎn)數(shù)以及獲取待存儲(chǔ)數(shù)據(jù)的副本數(shù)的方法,與前述實(shí)施例的S101以及S102所介紹的方法相類似,在此不再贅述。此外,根據(jù)本方法實(shí)施例所確定的待存儲(chǔ)數(shù)據(jù)的分片數(shù),可以用于根據(jù)前述實(shí)施例中的S102步驟來(lái)將數(shù)據(jù)副本進(jìn)行分片,與之相似的介紹在本實(shí)施例中亦不再贅述。本實(shí)施例中確定待存儲(chǔ)數(shù)據(jù)的分片數(shù)X包括:S201、根據(jù)副本數(shù)N和存儲(chǔ)節(jié)點(diǎn)數(shù)M,確定待存儲(chǔ)數(shù)據(jù)的最佳分片基數(shù)Y,其中,S202、根據(jù)最佳分片基數(shù)Y,獲取待存儲(chǔ)數(shù)據(jù)的分片數(shù)X,所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X等于或小于所述最佳分片基數(shù)Y與系數(shù)K的乘積,其中,K為大于或等于1的整數(shù)。由前述可知,當(dāng)副本數(shù)為N,存儲(chǔ)節(jié)點(diǎn)數(shù)為M時(shí),將待存儲(chǔ)數(shù)據(jù)存入所述M個(gè)節(jié)點(diǎn)時(shí),待存儲(chǔ)數(shù)據(jù)的每個(gè)數(shù)據(jù)分片均需要存儲(chǔ)到N個(gè)節(jié)點(diǎn)中。從M個(gè)數(shù)據(jù)節(jié)點(diǎn)中選出N個(gè)數(shù)據(jù)節(jié)點(diǎn),總共有中組合方式。為了提高數(shù)據(jù)可用性,使得當(dāng)任意N個(gè)節(jié)點(diǎn)故障時(shí),可能造成的數(shù)據(jù)分片數(shù)丟失最少,應(yīng)當(dāng)盡可能的將每個(gè)數(shù)據(jù)分片存儲(chǔ)到不同的數(shù)據(jù)節(jié)點(diǎn)的組合中。由此可知,當(dāng)分片數(shù)量小于時(shí),分片數(shù)量越大,當(dāng)N個(gè)節(jié)點(diǎn)故障時(shí)可能丟失的最大數(shù)據(jù)量越少。具體的,若分片數(shù)為X,且每個(gè)數(shù)據(jù)分片的大小相等的情況下,當(dāng)時(shí),N各節(jié)點(diǎn)故障時(shí)可能丟失的最大數(shù)據(jù)量為總數(shù)據(jù)量的1/X。因此,當(dāng)時(shí),可能丟失的總數(shù)據(jù)量最小,為而當(dāng)分片數(shù)X大于時(shí),則會(huì)出現(xiàn)有2個(gè)或者更多的數(shù)據(jù)分片存儲(chǔ)在了相同的N個(gè)節(jié)點(diǎn)上,當(dāng)這N個(gè)節(jié)點(diǎn)故障時(shí),可能會(huì)造成2個(gè)或者更多的數(shù)據(jù)分片丟失。設(shè)X除以的整數(shù)商為P,則當(dāng)N個(gè)節(jié)點(diǎn)故障時(shí),且每個(gè)數(shù)據(jù)分片的大小相等的情況下,可能丟失的最大數(shù)據(jù)量占總數(shù)據(jù)量的P/X。由此可知,當(dāng)X為的整數(shù)倍時(shí),P/N的值等于此時(shí)可能丟失的總數(shù)據(jù)量也是最小的。為了便于理解,下面以數(shù)據(jù)節(jié)點(diǎn)數(shù)為6,副本數(shù)為3,且數(shù)據(jù)分片的大小相等的情況為例,舉例說(shuō)明在不同的分片數(shù)下,當(dāng)任意3個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障時(shí),可能造成的最大數(shù)據(jù)丟失量占全部數(shù)量的比例的變化情況。如圖5所示,橫坐標(biāo)為數(shù)據(jù)分片數(shù)量X,縱坐標(biāo)為當(dāng)任意3個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障時(shí),可能造成的最大數(shù)據(jù)丟失量占全部數(shù)量的比例,其函數(shù)圖像如圖所示。其中,若數(shù)據(jù)分片數(shù)量為6,三點(diǎn)故障時(shí)的最大丟失數(shù)據(jù)為全部數(shù)據(jù)的1/6;若數(shù)據(jù)分片數(shù)量為7,三點(diǎn)故障時(shí)的最大丟失數(shù)據(jù)為全部數(shù)據(jù)的1/7;……若數(shù)據(jù)分片數(shù)量為20,三點(diǎn)故障時(shí)的最大丟失數(shù)據(jù)為全部數(shù)據(jù)的1/20;若數(shù)據(jù)分片數(shù)量為21,三點(diǎn)故障時(shí)的最大丟失數(shù)據(jù)為全部數(shù)據(jù)的2/21;……若數(shù)據(jù)分片數(shù)量為40,三點(diǎn)故障時(shí)的最大丟失數(shù)據(jù)為全部數(shù)據(jù)的2/40;若數(shù)據(jù)分片數(shù)量為41,三點(diǎn)故障時(shí)的最大丟失數(shù)據(jù)為全部數(shù)據(jù)的3/41;……由此可知,以作為基數(shù),所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X等于所述最佳分片基數(shù)Y與系數(shù)K的乘積,當(dāng)N個(gè)節(jié)點(diǎn)發(fā)生故障時(shí),可能丟失的最大數(shù)據(jù)量占總數(shù)據(jù)量的比例最小,即數(shù)據(jù)的可用性最高。同時(shí),數(shù)據(jù)分片數(shù)X小于或的整數(shù)倍數(shù)時(shí),分片數(shù)X越接近或的整數(shù)倍數(shù),則可能丟失的最大數(shù)據(jù)量占總數(shù)據(jù)量的比例越小,數(shù)據(jù)的可用性越高,因而當(dāng)待存儲(chǔ)數(shù)據(jù)的分片數(shù)X小于且比較接近所述最佳分片基數(shù)Y與系數(shù)K的乘積,也能獲得相對(duì)較高的數(shù)據(jù)可用性??梢?jiàn),當(dāng)數(shù)據(jù)分片數(shù)X為或的大于1的整數(shù)倍時(shí),從數(shù)據(jù)的可用性上考慮,可以達(dá)到最優(yōu)值。而當(dāng)不能取所述的最優(yōu)值時(shí),則取值小于且越接近或的大于1的整數(shù)倍數(shù)時(shí),數(shù)據(jù)的可用性越高。因此,在確定分片數(shù)X時(shí),為了達(dá)到數(shù)據(jù)可用性上的最優(yōu),應(yīng)當(dāng)選取或的大于1的整數(shù)倍數(shù)作為分片數(shù)X;而當(dāng)綜合其他因素的考慮,不將或的大于1的整數(shù)倍數(shù)作為分片數(shù)X時(shí),分片數(shù)X的取值小于且越接近或的大于1的整數(shù)倍數(shù),越能夠提高數(shù)據(jù)的可用性。具體的,在考慮分片數(shù)X小于或的大于1的整數(shù)倍數(shù)時(shí),可以結(jié)合應(yīng)用本發(fā)明的具體場(chǎng)景所要達(dá)到的效果來(lái)確定X的最終取值。當(dāng)希望達(dá)到的技術(shù)效果為當(dāng)N個(gè)節(jié)點(diǎn)故障時(shí),可能造成的最大的數(shù)據(jù)丟失比例小于Q。結(jié)合前述可以理解,當(dāng)K取大于或者等于1的整數(shù)時(shí),在區(qū)間當(dāng)N個(gè)節(jié)點(diǎn)故障時(shí),可能造成的最大的數(shù)據(jù)丟失比例是單調(diào)遞減的,且該區(qū)間內(nèi)X的取值所對(duì)應(yīng)的可能造成的最大數(shù)據(jù)丟失比例為K/X。因此,要使得K/X小于Q,即X的取值應(yīng)當(dāng)大于K/Q。相應(yīng)的,當(dāng)K/Q的值小于或等于時(shí),X取區(qū)間中的任意值均可以滿足可能造成的最大的數(shù)據(jù)丟失比例小于Q;當(dāng)K/Q的值大于時(shí),X在區(qū)間中取任意值可以滿足可能造成的最大的數(shù)據(jù)丟失比例小于Q。可選的,由于分片數(shù)越高,待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)中可實(shí)現(xiàn)的負(fù)載均衡程度越高,因此,在以種實(shí)施方式中,可以根據(jù)分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡需求,確定系數(shù)K。該系數(shù)K為大于或等于1的整數(shù),用于確定最佳分片基數(shù)的倍數(shù)。當(dāng)待存儲(chǔ)數(shù)據(jù)的均衡負(fù)載需求越高時(shí),所述的系數(shù)K的值越大。分片數(shù)X的取值為等于或者小于所述最佳分片基數(shù)Y與所述系數(shù)K的乘積。即分片數(shù)X等于最佳分片基數(shù)Y與所述系數(shù)K的乘積時(shí),可以獲得最佳的數(shù)據(jù)可用性,且滿足分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡需求;而當(dāng)綜合考慮其他因素,使得分片數(shù)X的取值不為最佳分片基數(shù)Y與所述系數(shù)K的乘積時(shí)時(shí),則分片數(shù)X的取值越接近最佳分片基數(shù)Y與所述系數(shù)K的乘積,則數(shù)據(jù)可用性越高,且越能夠滿足分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡需求。在本實(shí)施例中,通過(guò)確定最佳分片基數(shù)Y,進(jìn)而根據(jù)最佳分片基數(shù)確定分片數(shù),可以在實(shí)現(xiàn)前述實(shí)施例的優(yōu)點(diǎn)的基礎(chǔ)上,進(jìn)一步的提高數(shù)據(jù)的可用性,使得在相同的數(shù)據(jù)節(jié)點(diǎn)數(shù)以及副本數(shù)的情況下,根據(jù)最佳分片基數(shù)所確定的分片數(shù)可以達(dá)到最優(yōu)或者相對(duì)最優(yōu)的數(shù)據(jù)可用性。同時(shí),由于所確定的分片數(shù)的值往往大于節(jié)點(diǎn)數(shù),從而提高了分布式系統(tǒng)的負(fù)載均衡,以及當(dāng)某一節(jié)點(diǎn)故障時(shí)的并發(fā)恢復(fù)效率。參閱圖6,圖6為本申請(qǐng)下一實(shí)施例提供的一種分布式存儲(chǔ)設(shè)備600,該設(shè)備600可以為部署在分布式存儲(chǔ)系統(tǒng)中的一個(gè)節(jié)點(diǎn),也可以為在分布式存儲(chǔ)系統(tǒng)中獨(dú)立的數(shù)據(jù)管理裝置。該設(shè)備600包括但不限于:計(jì)算機(jī)、服務(wù)器等設(shè)備,如圖6所示,該設(shè)備600包括:處理器601、存儲(chǔ)器602、收發(fā)器603和總線604。收發(fā)器603用于與外部設(shè)備(例如分布式系統(tǒng)中的其他節(jié)點(diǎn)或分布式系統(tǒng)以外的網(wǎng)絡(luò)設(shè)備)之間收發(fā)數(shù)據(jù)。設(shè)備600中的處理器601的數(shù)量可以是一個(gè)或多個(gè)。本申請(qǐng)的一些實(shí)施例中,處理器601、存儲(chǔ)器602和收發(fā)器603可通過(guò)總線系統(tǒng)或其他方式連接。關(guān)于本實(shí)施例涉及的術(shù)語(yǔ)的含義以及舉例,可以參前述實(shí)施例,此處不再贅述。其中,存儲(chǔ)器602中可以存儲(chǔ)程序代碼。處理器601用于調(diào)用存儲(chǔ)器602中存儲(chǔ)的程序代碼,用于執(zhí)行前述實(shí)施例中S101、S102、S103操作:對(duì)于上述操作的理解,可以參考前述第一個(gè)方法實(shí)施例中的介紹,在此不再贅述??蛇x的,處理器501還可以用于執(zhí)行前述第一個(gè)實(shí)施例中的步驟的細(xì)化或者可選的方案。可選的,在本實(shí)施例中,所述的處理器501在確定分片數(shù)X時(shí),還可以通過(guò)執(zhí)行S201、S202操作確定分片數(shù)X:根據(jù)副本數(shù)N和存儲(chǔ)節(jié)點(diǎn)數(shù)M,確定待存儲(chǔ)數(shù)據(jù)的最佳分片基數(shù)Y,最佳分片基數(shù)根據(jù)最佳分片基數(shù)Y,獲取待存儲(chǔ)數(shù)據(jù)的分片數(shù)X,所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X等于或小于所述最佳分片基數(shù)Y或者等于或小于所述最佳分片基數(shù)Y的自然數(shù)倍數(shù)。對(duì)于執(zhí)行上述步驟的理解,可以參考前述第二種實(shí)施例中的介紹,上述步驟也可以參照前述第二種實(shí)施例進(jìn)行拓展或者細(xì)化。需要說(shuō)明的是,這里的處理器601可以是一個(gè)處理元件,也可以是多個(gè)處理元件的統(tǒng)稱。例如,該處理元件可以是中央處理器(CentralProcessingUnit,CPU),也可以是特定集成電路(ApplicationSpecificIntegratedCircuit,ASIC),或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路,例如:一個(gè)或多個(gè)微處理器(digitalsingnalprocessor,DSP),或,一個(gè)或者多個(gè)現(xiàn)場(chǎng)可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA)。存儲(chǔ)器603可以是一個(gè)存儲(chǔ)裝置,也可以是多個(gè)存儲(chǔ)元件的統(tǒng)稱,且用于存儲(chǔ)可執(zhí)行程序代碼或應(yīng)用程序運(yùn)行裝置運(yùn)行所需要參數(shù)、數(shù)據(jù)等。且存儲(chǔ)器603可以包括隨機(jī)存儲(chǔ)器(RAM),也可以包括非易失性存儲(chǔ)器(non-volatilememory),例如磁盤存儲(chǔ)器,閃存(Flash)等。總線604可以是工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(IndustryStandardArchitecture,ISA)總線、外部設(shè)備互連(PeripheralComponent,PCI)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ExtendedIndustryStandardArchitecture,EISA)總線等。該總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖6中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。該用戶設(shè)備還可以包括輸入輸出裝置,連接于總線604,以通過(guò)總線與處理器601等其它部分連接。用戶可以通過(guò)輸入設(shè)備實(shí)現(xiàn)本實(shí)施例中需要人工配置或者預(yù)設(shè)參數(shù)的步驟。該輸入輸出裝置可以為操作人員提供一輸入界面,以便操作人員通過(guò)該輸入界面選擇布控項(xiàng),還可以是其它接口,可通過(guò)該接口外接其它設(shè)備。參閱圖7,圖7為本申請(qǐng)下一實(shí)施例提供的一種分布式存儲(chǔ)設(shè)備700,該設(shè)備700可以為部署在分布式存儲(chǔ)系統(tǒng)中的一個(gè)節(jié)點(diǎn),也可以為在分布式存儲(chǔ)系統(tǒng)中獨(dú)立的數(shù)據(jù)管理裝置。該設(shè)備700包括但不限于:計(jì)算機(jī)、服務(wù)器等設(shè)備,如圖7所示,該設(shè)備700包括:處理器701、存儲(chǔ)器702、收發(fā)器703和總線704。收發(fā)器703用于與外部設(shè)備(例如分布式系統(tǒng)中的其他節(jié)點(diǎn)或分布式系統(tǒng)以外的網(wǎng)絡(luò)設(shè)備)之間收發(fā)數(shù)據(jù)。設(shè)備700中的處理器701的數(shù)量可以是一個(gè)或多個(gè)。本申請(qǐng)的一些實(shí)施例中,處理器701、存儲(chǔ)器702和收發(fā)器703可通過(guò)總線系統(tǒng)或其他方式連接。關(guān)于本實(shí)施例涉及的術(shù)語(yǔ)的含義以及舉例,可以參前述實(shí)施例,此處不再贅述。其中,存儲(chǔ)器702中可以存儲(chǔ)程序代碼。處理器701用于調(diào)用存儲(chǔ)器702中存儲(chǔ)的程序代碼,用于執(zhí)行以下S201、S202操作操作,從而確定在分布式存儲(chǔ)系統(tǒng)中進(jìn)行分片存儲(chǔ)時(shí)的分片數(shù)量。對(duì)于上述操作的理解,可以參考前述第二個(gè)方法實(shí)施例中的介紹,在此不再贅述??蛇x的,處理器701還可以用于執(zhí)行前述第二個(gè)實(shí)施例中的步驟的細(xì)化或者可選的方案。需要說(shuō)明的是,這里的處理器701可以是一個(gè)處理元件,也可以是多個(gè)處理元件的統(tǒng)稱。例如,該處理元件可以是中央處理器(CentralProcessingUnit,CPU),也可以是特定集成電路(ApplicationSpecificIntegratedCircuit,ASIC),或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路,例如:一個(gè)或多個(gè)微處理器(digitalsingnalprocessor,DSP),或,一個(gè)或者多個(gè)現(xiàn)場(chǎng)可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA)。存儲(chǔ)器703可以是一個(gè)存儲(chǔ)裝置,也可以是多個(gè)存儲(chǔ)元件的統(tǒng)稱,且用于存儲(chǔ)可執(zhí)行程序代碼或應(yīng)用程序運(yùn)行裝置運(yùn)行所需要參數(shù)、數(shù)據(jù)等。且存儲(chǔ)器703可以包括隨機(jī)存儲(chǔ)器(RAM),也可以包括非易失性存儲(chǔ)器(non-volatilememory),例如磁盤存儲(chǔ)器,閃存(Flash)等??偩€704可以是工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(IndustryStandardArchitecture,ISA)總線、外部設(shè)備互連(PeripheralComponent,PCI)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ExtendedIndustryStandardArchitecture,EISA)總線等。該總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖7中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。該設(shè)備還可以包括輸入輸出裝置,連接于總線704,以通過(guò)總線與處理器701等其它部分連接。用戶可以通過(guò)輸入設(shè)備實(shí)現(xiàn)本實(shí)施例中需要人工配置或者預(yù)設(shè)參數(shù)的步驟。該輸入輸出裝置可以為操作人員提供一輸入界面,以便操作人員通過(guò)該輸入界面選擇布控項(xiàng),還可以是其它接口,可通過(guò)該接口外接其它設(shè)備。圖8是根據(jù)本發(fā)明的實(shí)施例的一種分布式存儲(chǔ)系統(tǒng)800的意性結(jié)構(gòu)圖。分布式存儲(chǔ)系統(tǒng)800包括:客戶端810,多個(gè)硬盤820和分布式存儲(chǔ)設(shè)備830。分布式存儲(chǔ)設(shè)備830可以是圖6或者圖7所示的分布式存儲(chǔ)設(shè)備600和分布式存儲(chǔ)設(shè)備700,在此不再贅述。在本實(shí)施例中所提供的分布式系統(tǒng)的硬件實(shí)體,可以參照前述的圖1中分布式系統(tǒng)架構(gòu)進(jìn)行理解。圖1中分布式數(shù)據(jù)庫(kù)引擎102在本發(fā)明實(shí)施例中以本不是存儲(chǔ)裝置830作為硬件實(shí)體,因而在本發(fā)明實(shí)施例所改進(jìn)的數(shù)據(jù)管理模塊105,在本實(shí)施例中所對(duì)應(yīng)承載的硬件實(shí)體是分布式存儲(chǔ)裝置830。分布式存儲(chǔ)裝置830根據(jù)用戶通過(guò)客戶端810發(fā)送的存儲(chǔ)/讀取請(qǐng)求,在多個(gè)硬盤820上存儲(chǔ)/讀取用戶的數(shù)據(jù)文件。圖9是根據(jù)本發(fā)明的實(shí)施例給出的另一種的分布式存儲(chǔ)系統(tǒng)900的示意性結(jié)構(gòu)圖。分布式存儲(chǔ)系統(tǒng)900包括:客戶端910和分布式存儲(chǔ)服務(wù)器系統(tǒng)920??蛻舳?10可以通過(guò)互聯(lián)網(wǎng)連接到存儲(chǔ)服務(wù)器系統(tǒng)920??蛻舳?10可以運(yùn)行分布式存儲(chǔ)系統(tǒng)的客戶端代理程序,用于支撐各種類型的分布式存儲(chǔ)應(yīng)用接入分布式存儲(chǔ)系統(tǒng),例如,客戶端代理程序可以實(shí)現(xiàn)個(gè)人在線存儲(chǔ)和備份、企業(yè)在線存儲(chǔ)和備份、應(yīng)用在線存儲(chǔ)或者其它新興的存儲(chǔ)和備份等等。分布式存儲(chǔ)服務(wù)器系統(tǒng)920可以包括:控制服務(wù)器930、運(yùn)維管理(OAM)服務(wù)器940、業(yè)務(wù)服務(wù)器950、存儲(chǔ)資源池970以及存儲(chǔ)引擎980。這里,存儲(chǔ)引擎980可以為圖6或圖7的分布式存儲(chǔ)裝置的例子。本實(shí)施例中的硬件裝置可以對(duì)應(yīng)前述圖1中的分布式架構(gòu)進(jìn)行理解,通過(guò)本實(shí)施例中的存儲(chǔ)引擎980實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)引擎102的功能,而分布式存儲(chǔ)服務(wù)器系統(tǒng)920中還包含分布式系統(tǒng)相關(guān)的其他功能性服務(wù)器,如控制服務(wù)器930、運(yùn)維管理服務(wù)器940、業(yè)務(wù)服務(wù)器950等。控制服務(wù)器930主要用于控制分布式存儲(chǔ)系統(tǒng)執(zhí)行各類存儲(chǔ)業(yè)務(wù),如組織數(shù)據(jù)的搬遷、搬移和備份、存儲(chǔ)熱點(diǎn)消除等等。運(yùn)維管理服務(wù)器940可以提供存儲(chǔ)系統(tǒng)的配置接口和運(yùn)行維護(hù)接口,并提供日志、告警等功能。業(yè)務(wù)服務(wù)器950可以提供業(yè)務(wù)識(shí)別、鑒權(quán)等功能,完成業(yè)務(wù)的傳遞功能。存儲(chǔ)資源池970可以包括物理存儲(chǔ)節(jié)點(diǎn)構(gòu)成的存儲(chǔ)資源池,例如,可以由存儲(chǔ)服務(wù)器/存儲(chǔ)單板960構(gòu)成,各個(gè)物理存儲(chǔ)節(jié)點(diǎn)中的虛擬節(jié)點(diǎn)構(gòu)成了一個(gè)存儲(chǔ)邏輯環(huán),用戶的數(shù)據(jù)文件可以存儲(chǔ)在存儲(chǔ)資源池中的虛擬節(jié)點(diǎn)上。存儲(chǔ)引擎980可以提供分布式存儲(chǔ)系統(tǒng)的主要功能的邏輯,這些邏輯可以部署在控制服務(wù)器930、業(yè)務(wù)服務(wù)器950、運(yùn)維管理服務(wù)器940中的某一個(gè)設(shè)備上,也可以以分布式部署方式部署在控制服務(wù)器940、業(yè)務(wù)服務(wù)器950、運(yùn)維管理服務(wù)器940和存儲(chǔ)資源池970上。因此,本發(fā)明所對(duì)應(yīng)的改進(jìn)也可以是在上述硬件中實(shí)現(xiàn)。圖10是是根據(jù)本發(fā)明的實(shí)施例的一種分布式存儲(chǔ)設(shè)備1000的示意性結(jié)構(gòu)圖。分布式存儲(chǔ)裝置1000包括:獲取單元1001、存儲(chǔ)單元1002。其中,獲取單元1001用于確定待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)到的M個(gè)存儲(chǔ)節(jié)點(diǎn)以及獲取所述待存儲(chǔ)數(shù)據(jù)的N個(gè)副本,其中所述N個(gè)副本包括所述待存儲(chǔ)數(shù)據(jù)的原始數(shù)據(jù)和所述原始數(shù)據(jù)的N-1個(gè)備份數(shù)據(jù),所述N個(gè)副本中的每個(gè)副本依據(jù)同樣的分片方式被分片為X個(gè)數(shù)據(jù)分片以使得每個(gè)數(shù)據(jù)分片具有N個(gè)數(shù)據(jù)分片副本,N小于或等于M。結(jié)合前述第一個(gè)實(shí)施例中所述的方法,本實(shí)施例中不再對(duì)獲取單元1001獲取數(shù)據(jù)節(jié)點(diǎn)數(shù)以及獲取待存儲(chǔ)數(shù)據(jù)的副本的具體方式或者可選的實(shí)施方式進(jìn)行贅述。結(jié)合前述的裝置實(shí)施例,獲取單元1001可以通過(guò)包含圖6所述分布式存儲(chǔ)裝置的收發(fā)器603,從而從外部網(wǎng)絡(luò)或者分布式存儲(chǔ)系統(tǒng)內(nèi)部的其他設(shè)備中獲取所述數(shù)據(jù)?;蛘撸@取單元1001還可以包含輸入輸出設(shè)備,從而可以通過(guò)用戶設(shè)置的方式獲取所述數(shù)據(jù)。此外,獲取單元1001還可以讀取存儲(chǔ)在該分布式存儲(chǔ)設(shè)備的預(yù)設(shè)值,從而獲取所述數(shù)據(jù)的預(yù)設(shè)數(shù)值。可選的,在本實(shí)施例中,所述的獲取單元1001在獲取待存儲(chǔ)數(shù)據(jù)的部分時(shí),對(duì)副本進(jìn)行分片,還可以通過(guò)圖6所述分布式存儲(chǔ)裝置的處理器601調(diào)用存儲(chǔ)器602中存儲(chǔ)的程序代碼執(zhí)行如下操作步驟來(lái)確定分片數(shù)X:根據(jù)所述副本數(shù)N和所述存儲(chǔ)節(jié)點(diǎn)數(shù)M,確定所述待存儲(chǔ)數(shù)據(jù)的最佳分片基數(shù)Y,所述最佳分片基數(shù)根據(jù)所述最佳分片基數(shù)Y,獲取所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X,所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X等于或小于所述最佳分片基數(shù)Y與系數(shù)K的乘積,其中,K為大于或等于1的整數(shù)??蛇x的,根據(jù)所述分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡需求,確定系數(shù)K,其中,所述系數(shù)K為自然數(shù),所述K的值越大,所述待存儲(chǔ)數(shù)據(jù)的負(fù)載均衡程度越高??蛇x的,根據(jù)當(dāng)前分布式存儲(chǔ)系統(tǒng)的均衡負(fù)載情況,確定所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X。存儲(chǔ)單元1002用于將所述待存儲(chǔ)數(shù)據(jù)存儲(chǔ)到分布式系統(tǒng)的M個(gè)存儲(chǔ)節(jié)點(diǎn)中。具體的,進(jìn)行存儲(chǔ)時(shí)的存儲(chǔ)策略遵循如下原則:將所述X個(gè)數(shù)據(jù)分片中的每個(gè)數(shù)據(jù)分片的N個(gè)數(shù)據(jù)分片副本分別存儲(chǔ)于所述M個(gè)存儲(chǔ)節(jié)點(diǎn)中的N個(gè)存儲(chǔ)節(jié)點(diǎn)中,并使得數(shù)據(jù)分片副本存儲(chǔ)在相同的N個(gè)存儲(chǔ)節(jié)點(diǎn)中的數(shù)據(jù)分片的數(shù)量為P或P+1,其中P為X除以的整數(shù)商。結(jié)合前述的裝置實(shí)施例,存儲(chǔ)單元1002可以通過(guò)包含圖6所述分布式存儲(chǔ)裝置的處理器601調(diào)用存儲(chǔ)器602中存儲(chǔ)的程序代碼實(shí)現(xiàn)。對(duì)于執(zhí)行上述步驟的理解,可以參考前述第一或者第二個(gè)實(shí)施例中的介紹,上述步驟也可以參照前述實(shí)施例進(jìn)行拓展或者細(xì)化。圖11是是根據(jù)本發(fā)明的實(shí)施例的一種分布式存儲(chǔ)設(shè)備1100的示意性結(jié)構(gòu)圖。分布式存儲(chǔ)裝置1100包括:獲取單元1101、確定單元1102。其中,獲取單元1101用于獲取待存儲(chǔ)數(shù)據(jù)所要存儲(chǔ)到的M個(gè)數(shù)據(jù)節(jié)點(diǎn)、待存儲(chǔ)數(shù)據(jù)的副本數(shù)N。結(jié)合前述第二個(gè)實(shí)施例中所述的方法,本實(shí)施例中不再對(duì)獲取單元1101獲取所述的兩個(gè)個(gè)數(shù)據(jù)的具體方式或者可選的實(shí)施方式進(jìn)行贅述。結(jié)合前述的裝置實(shí)施例,獲取單元1101可以通過(guò)包含圖7所述分布式存儲(chǔ)裝置的收發(fā)器703,從而從外部網(wǎng)絡(luò)或者分布式存儲(chǔ)系統(tǒng)內(nèi)部的其他設(shè)備中獲取所述數(shù)據(jù)?;蛘撸@取單元1101還可以包含輸入輸出設(shè)備,從而可以通過(guò)用戶設(shè)置的方式獲取所述數(shù)據(jù)。此外,獲取單元1101還可以讀取存儲(chǔ)在該分布式存儲(chǔ)設(shè)備的預(yù)設(shè)值,從而獲取所述數(shù)據(jù)的預(yù)設(shè)數(shù)值。確定單元1101用于確定待存儲(chǔ)數(shù)據(jù)的分片數(shù)X,所述分片數(shù)為將一個(gè)待存儲(chǔ)數(shù)據(jù)副本分片后的分片數(shù)量,所述待存儲(chǔ)數(shù)據(jù)的分片數(shù)X等于或小于或者等于或小于的正整數(shù)倍數(shù)。可選的,確定單元1101還用于根據(jù)所述分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡需求,確定系數(shù)K,其中,所述系數(shù)K為正整數(shù),所述K的值越大,所述待存儲(chǔ)數(shù)據(jù)的負(fù)載均衡程度越高;所述分片數(shù)X等于或小于確定單元1102可以通過(guò)包含圖7所述分布式存儲(chǔ)裝置的處理器701調(diào)用存儲(chǔ)器702中存儲(chǔ)的程序代碼執(zhí)行上述的操作步驟來(lái)確定分片數(shù)X。結(jié)合前述的裝置實(shí)施例,確定單元1102可以通過(guò)包含圖7所述分布式存儲(chǔ)裝置的處理器701調(diào)用存儲(chǔ)器702中存儲(chǔ)的程序代碼實(shí)現(xiàn)。對(duì)于執(zhí)行上述步驟的理解,可以參考前述第一或者第二個(gè)實(shí)施例中的介紹,上述步驟也可以參照前述實(shí)施例進(jìn)行拓展或者細(xì)化。本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(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ì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(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ì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲(chǔ)器(RAM,RandomAccessMemor)、磁碟或者光盤等各種可以存儲(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)。當(dāng)前第1頁(yè)1 2 3 
      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1