,將從主OSD(OSD A)上獲取最新的日志,并進(jìn)行合并;S43’、重新上線的數(shù)據(jù)副本存儲(chǔ)模塊按照合并的歷史操作記錄信息從其他數(shù)據(jù)副本存儲(chǔ)模塊補(bǔ)充寫入丟失的元數(shù)據(jù)和數(shù)據(jù)體。發(fā)現(xiàn)其缺失的數(shù)據(jù)操作(4,5,6),將向OSD B請求對應(yīng)的操作數(shù)據(jù),進(jìn)行數(shù)據(jù)修復(fù)。同時(shí)對于OSD B,發(fā)現(xiàn)OSD A上線后也會(huì)修復(fù)自身丟失的數(shù)據(jù)(2,3)。基本前提:系統(tǒng)為強(qiáng)一致性,且讀取模式為Read-One,所以主OSD的上的數(shù)據(jù)一定是正確的。
[0049]請參閱圖7,顯示為本發(fā)明的模塊示意圖,如圖7所示,基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng)I安裝于服務(wù)器平臺(tái)中,包括:第一數(shù)據(jù)副本存儲(chǔ)模塊U、第二數(shù)據(jù)副本存儲(chǔ)模塊12和數(shù)據(jù)仲裁者副本模塊13;第一數(shù)據(jù)副本存儲(chǔ)模塊11用于存儲(chǔ)待讀取元數(shù)據(jù)、數(shù)據(jù)體和操作歷史記錄信息,第二數(shù)據(jù)副本存儲(chǔ)模塊12的規(guī)格與第一數(shù)據(jù)副本存儲(chǔ)模塊11相同,用于備份元數(shù)據(jù)、數(shù)據(jù)體和操作歷史記錄信息;數(shù)據(jù)仲裁者副本模塊13用于備份元數(shù)據(jù)、和完整的操作歷史記錄信息。
[0050]第一副本模塊11包括:元數(shù)據(jù)存儲(chǔ)模塊111、歷史記錄信息模塊112和數(shù)據(jù)體存儲(chǔ)模塊113;第二副本模塊12包括:元數(shù)據(jù)備份模塊121、歷史記錄信息備份模塊122和數(shù)據(jù)體備份模塊123。數(shù)據(jù)仲裁者副本模塊13包括:元數(shù)據(jù)備份模塊131和歷史記錄信息備份模塊132。數(shù)據(jù)仲裁者副本模塊的分布式存儲(chǔ)系統(tǒng)可以擴(kuò)展為分布式存儲(chǔ)多活數(shù)據(jù)中心。
[0051]請參閱圖8,顯示為本發(fā)明數(shù)據(jù)中心擴(kuò)展實(shí)施例通信示意圖,如圖8所示分布式存儲(chǔ)多活數(shù)據(jù)中心包括數(shù)據(jù)中心模塊101、數(shù)據(jù)中心模塊102和數(shù)據(jù)仲裁者中心模塊103。根據(jù)發(fā)明中數(shù)據(jù)仲裁改進(jìn),可以將ceph作為一個(gè)新型的分布式存儲(chǔ)的多活數(shù)據(jù)中心。數(shù)據(jù)中心1I與數(shù)據(jù)中心102中間通過低延時(shí)(5ms以內(nèi))的萬兆網(wǎng)絡(luò)連接,數(shù)據(jù)中心101與102分別與數(shù)據(jù)中心103相連,它們直接的連接延時(shí)可以稍微要求低點(diǎn)(10ms以內(nèi)),可以用千兆網(wǎng)絡(luò)相連。數(shù)據(jù)中心101與102存放實(shí)際的數(shù)據(jù)副本,作為雙活的數(shù)據(jù)中心。數(shù)據(jù)中心103作為數(shù)據(jù)仲裁者,只有但出現(xiàn)異常時(shí)輔助數(shù)據(jù)恢復(fù)。這樣的雙活數(shù)據(jù)中心即能滿足數(shù)據(jù)高可用,也能避免傳統(tǒng)數(shù)據(jù)中心出現(xiàn)腦裂的問題。
[0052]綜上,在數(shù)據(jù)的讀寫流程方面本發(fā)明采用的是ffrite-Quorum數(shù)據(jù)對象寫入流程作為基本策略,基于數(shù)據(jù)仲裁者副本的ceph分布式存儲(chǔ)系統(tǒng)及方法將存儲(chǔ)數(shù)據(jù)對象所包含的信息采用異步的方式,先將數(shù)據(jù)存儲(chǔ)對象包含的信息同步寫入第一數(shù)據(jù)副本存儲(chǔ)模塊和第二數(shù)據(jù)副本存儲(chǔ)模塊,再異步地將完整的操作歷史信息寫入數(shù)據(jù)仲裁者副本模塊中備份存儲(chǔ),所有的對對象數(shù)據(jù)信息的讀操作都有線從第一副本模塊中讀取存儲(chǔ)數(shù)據(jù)對象信息及列表信息。存儲(chǔ)操作發(fā)生的客戶端首先直接和第一數(shù)據(jù)副本存儲(chǔ)模塊通信,客戶端向分布式存儲(chǔ)系統(tǒng)的服務(wù)器端發(fā)送寫入操作請求,發(fā)起數(shù)據(jù)對象寫入操作。第一數(shù)據(jù)副本存儲(chǔ)模塊收到寫入操作請求后,先向第二數(shù)據(jù)副本存儲(chǔ)模塊同步發(fā)出與備份數(shù)據(jù)對應(yīng)的寫入操作請求,再異步地向數(shù)據(jù)仲裁者副本模塊發(fā)起數(shù)據(jù)對象寫入操作。當(dāng)?shù)谝粩?shù)據(jù)副本存儲(chǔ)模塊、第二數(shù)據(jù)副本存儲(chǔ)模塊和數(shù)據(jù)仲裁者副本模塊各自完成數(shù)據(jù)對象寫入操作后,第二數(shù)據(jù)副本存儲(chǔ)模塊向第一數(shù)據(jù)副本存儲(chǔ)模塊發(fā)送完成寫入的相應(yīng)確認(rèn)信息。第一數(shù)據(jù)副本存儲(chǔ)模塊和第二數(shù)據(jù)副本存儲(chǔ)模塊的操作歷史信息完整,所有數(shù)據(jù)對象信息寫入操作完成后,服務(wù)器端向客戶端發(fā)送確認(rèn)信息,確認(rèn)數(shù)據(jù)對象寫入操作完成。在發(fā)生某一數(shù)據(jù)副本存儲(chǔ)模塊出現(xiàn)掉線等異常情況時(shí),未出現(xiàn)異常的數(shù)據(jù)副本存儲(chǔ)模塊繼續(xù)寫入對象數(shù)據(jù)信息,在出現(xiàn)故障的數(shù)據(jù)副本存儲(chǔ)模塊恢復(fù)正常工作狀態(tài)后這樣的實(shí)現(xiàn)保證數(shù)據(jù)對象寫入操作過程中的可靠性,盡可能避免造成分布式存儲(chǔ)系統(tǒng)遇到異常時(shí)可能產(chǎn)生的數(shù)據(jù)丟失問題,簡化了系統(tǒng)實(shí)現(xiàn)的機(jī)構(gòu)復(fù)雜度和實(shí)現(xiàn)難度,提高了數(shù)據(jù)的讀取性能,解決了現(xiàn)有技術(shù)三副本策略中存在的確認(rèn)機(jī)制冗雜,數(shù)據(jù)對象寫入操作延時(shí)較大,系統(tǒng)整體每秒平均輸入輸出1PS(Input/Output Per Secend)不高的問題。
[0053]上述實(shí)施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬技術(shù)領(lǐng)域中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【主權(quán)項(xiàng)】
1.基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)方法,其特征在于,包括以下步驟: 51、分布式存儲(chǔ)系統(tǒng)接收數(shù)據(jù)寫入操作請求; 52、所述分布式存儲(chǔ)系統(tǒng)收到所述寫入操作請求后,開始數(shù)據(jù)寫入操作,并將寫入的所述數(shù)據(jù)同步地寫入數(shù)據(jù)副本存儲(chǔ)模塊中; 53、所述數(shù)據(jù)副本存儲(chǔ)模塊的數(shù)據(jù)寫入操作完成,所述數(shù)據(jù)副本存儲(chǔ)模塊直接回發(fā)寫操作確認(rèn)信息; 54、數(shù)據(jù)仲裁者副本模塊繼續(xù)從所述數(shù)據(jù)副本存儲(chǔ)模塊上異步地寫入數(shù)據(jù),進(jìn)行完整的數(shù)據(jù)仲裁信息備份,用于支持?jǐn)?shù)據(jù)迀移與修復(fù); 55、所述數(shù)據(jù)仲裁者副本模塊寫入操作完成,回發(fā)異步寫操作確認(rèn)信息。2.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)方法,其特征在于:所述數(shù)據(jù)寫入操作流程采用Wr ite-Quorum數(shù)據(jù)寫入流程,若所述數(shù)據(jù)副本存儲(chǔ)模塊總數(shù)為η,則完成數(shù)據(jù)寫入操作的所述數(shù)據(jù)副本存儲(chǔ)模塊數(shù)大于η/2后,直接返回寫入操作確認(rèn)信息,剩余副本模塊上的數(shù)據(jù)信息從所述數(shù)據(jù)副本存儲(chǔ)模塊上異步地寫入。3.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)方法,其特征在于:所述數(shù)據(jù)仲裁信息為操作歷史記錄信息,用于修復(fù)所述數(shù)據(jù)副本存儲(chǔ)模塊因異常未寫入的數(shù)據(jù);所述數(shù)據(jù)副本存儲(chǔ)模塊中全部寫入數(shù)據(jù)對象的元數(shù)據(jù)、數(shù)據(jù)體和所述操作歷史記錄信息;所述數(shù)據(jù)仲裁者副本模塊中不對所述數(shù)據(jù)體進(jìn)行寫操作。4.根據(jù)權(quán)利要求1所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)方法,其特征在于:還包括以下步驟: SI ’、判斷是否存在數(shù)據(jù)副本存儲(chǔ)模塊下線; S2’、若是,則所述分布式存儲(chǔ)體統(tǒng)排除下線的數(shù)據(jù)副本存儲(chǔ)模塊,調(diào)整寫入操作針對的數(shù)據(jù)副本存儲(chǔ)模塊數(shù); S3’、判斷已下線的所述數(shù)據(jù)副本存儲(chǔ)模塊是否重新上線; S4’、若是,則所述數(shù)據(jù)副本存儲(chǔ)模塊從其他所述數(shù)據(jù)副本存儲(chǔ)模塊或數(shù)據(jù)仲裁者副本模塊獲取完整的操作歷史記錄信息和數(shù)據(jù)體,進(jìn)行數(shù)據(jù)修復(fù); S5 ’、若否,則未下線的所述數(shù)據(jù)副本存儲(chǔ)模塊繼續(xù)進(jìn)行數(shù)據(jù)寫入操作。5.根據(jù)權(quán)利要求4所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)方法,其特征在于:所述步驟S4 ’還包括: S41 ’、下線的所述數(shù)據(jù)副本存儲(chǔ)模塊遍歷自身的所述操作歷史記錄信息; S42’、下線的所述數(shù)據(jù)副本存儲(chǔ)模塊中的操作歷史記錄信息與所述數(shù)據(jù)仲裁者副本模塊中的所述操作歷史記錄信息合并,獲得完整的所述操作歷史記錄信息; S43’、重新上線的所述數(shù)據(jù)副本存儲(chǔ)模塊按照合并的所述歷史操作記錄信息從其他未掉線的所述數(shù)據(jù)副本存儲(chǔ)模塊補(bǔ)充寫入丟失的所述元數(shù)據(jù)和所述數(shù)據(jù)體。6.基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng),用于在線分布式存儲(chǔ)數(shù)據(jù),其特征在于,所述基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng)安裝于服務(wù)器平臺(tái)中,包括:第一數(shù)據(jù)副本存儲(chǔ)模塊、第二數(shù)據(jù)副本存儲(chǔ)模塊和數(shù)據(jù)仲裁者副本模塊;所述第一數(shù)據(jù)副本存儲(chǔ)模塊用于存儲(chǔ)待讀取元數(shù)據(jù)、數(shù)據(jù)體和所述操作歷史記錄信息,所述第二數(shù)據(jù)副本存儲(chǔ)模塊的規(guī)格與所述第一數(shù)據(jù)副本存儲(chǔ)模塊相同,用于備份所述元數(shù)據(jù)、數(shù)據(jù)體和所述操作歷史記錄信息;所述數(shù)據(jù)仲裁者副本模塊用于備份所述元數(shù)據(jù)、和完整的所述操作歷史記錄信息。7.根據(jù)權(quán)利要求5所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng),其特征在于:所述第一副本模塊包括:操作元數(shù)據(jù)存儲(chǔ)模塊、歷史記錄信息模塊和數(shù)據(jù)體存儲(chǔ)模塊;所述第二副本模塊包括:操作元數(shù)據(jù)備份模塊、歷史記錄信息備份模塊和數(shù)據(jù)體備份模塊。8.根據(jù)權(quán)利要求5所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng),其特征在于:所述數(shù)據(jù)仲裁者副本模塊包括:元數(shù)據(jù)備份模塊和歷史記錄信息備份模塊。9.根據(jù)權(quán)利要求5所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng),其特征在于:所述基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng)可以擴(kuò)展為分布式存儲(chǔ)多活數(shù)據(jù)中心。10.根據(jù)權(quán)利要求5所述的基于數(shù)據(jù)仲裁者副本的分布式存儲(chǔ)系統(tǒng),其特征在于:所述分布式存儲(chǔ)多活數(shù)據(jù)中心包括數(shù)據(jù)中心模塊和數(shù)據(jù)仲裁者中心模塊。
【專利摘要】基于數(shù)據(jù)仲裁者副本分布式存儲(chǔ)系統(tǒng)及方法,用于在線分布式存儲(chǔ)數(shù)據(jù),包括以下步驟:S1、分布式存儲(chǔ)系統(tǒng)接收數(shù)據(jù)寫入操作請求;S2、分布式存儲(chǔ)系統(tǒng)收到寫入操作請求后,開始數(shù)據(jù)寫入操作,并將寫入的數(shù)據(jù)同步地寫入數(shù)據(jù)副本存儲(chǔ)模塊中;S3、數(shù)據(jù)副本存儲(chǔ)模塊的數(shù)據(jù)寫入操作完成,數(shù)據(jù)副本存儲(chǔ)模塊直接回發(fā)寫操作確認(rèn)信息;S4、數(shù)據(jù)仲裁者副本模塊繼續(xù)從數(shù)據(jù)副本存儲(chǔ)模塊上異步地寫入數(shù)據(jù),進(jìn)行完整的數(shù)據(jù)仲裁信息備份,用于支持?jǐn)?shù)據(jù)遷移與修復(fù);S5、數(shù)據(jù)仲裁者副本模塊寫入操作完成,回發(fā)異步寫操作確認(rèn)信息。本發(fā)明解決了現(xiàn)有技術(shù)中分布式存儲(chǔ)系統(tǒng)存在的有效存儲(chǔ)空間相對較少,讀寫效率低,數(shù)據(jù)修復(fù)困難和傳統(tǒng)雙副本存儲(chǔ)方法存在的腦裂的問題。
【IPC分類】H04L29/08
【公開號(hào)】CN105577776
【申請?zhí)枴緾N201510955956
【發(fā)明人】雍帥
【申請人】上海愛數(shù)信息技術(shù)股份有限公司
【公開日】2016年5月11日
【申請日】2015年12月17日