專(zhuān)利名稱(chēng):分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法、裝置、節(jié)點(diǎn)及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法、裝置、節(jié)點(diǎn)及系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的日趨進(jìn)步,分布式存儲(chǔ)系統(tǒng)在各個(gè)行業(yè)得到廣泛的應(yīng)用。分布式存儲(chǔ)系統(tǒng)主要是由存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Storage Area Network,簡(jiǎn)稱(chēng):SAN)中的存儲(chǔ)設(shè)備和多個(gè)節(jié)點(diǎn)組成。其中,各個(gè)節(jié)點(diǎn)可以為安裝有相應(yīng)的分布式存儲(chǔ)軟件的計(jì)算機(jī),存儲(chǔ)設(shè)備上存儲(chǔ)的數(shù)據(jù)為各個(gè)節(jié)點(diǎn)共享的。在分布式存儲(chǔ)系統(tǒng)中,當(dāng)任意一個(gè)節(jié)點(diǎn)發(fā)生改變時(shí),需要每個(gè)節(jié)點(diǎn)修改存儲(chǔ)系統(tǒng)節(jié)點(diǎn)配置信息;而隨著分布式存儲(chǔ)系統(tǒng)規(guī)模的增大,節(jié)點(diǎn)越來(lái)越多,對(duì)于分布式存儲(chǔ)系統(tǒng)的管理的難度也提高了?,F(xiàn)有技術(shù)分布式存儲(chǔ)系統(tǒng)中,將分布式系統(tǒng)中各個(gè)節(jié)點(diǎn)的配置信息存儲(chǔ)在共享的存儲(chǔ)設(shè)備上,每一個(gè)節(jié)點(diǎn)周期性地掃描存儲(chǔ)設(shè)備上的配置信息,如果配置信息有變化,則更新該節(jié)點(diǎn)本地保存的配置信息。但是,現(xiàn)有技術(shù)的分布式存儲(chǔ)系統(tǒng),存在各個(gè)節(jié)點(diǎn)本地的配置信息更新時(shí)間不及時(shí)的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法、裝置、節(jié)點(diǎn)及系統(tǒng),以實(shí)現(xiàn)及時(shí)更新各個(gè)節(jié)點(diǎn)本地的配置信息。第一方面,本發(fā)明實(shí)施例提供一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法,包括:第一節(jié)點(diǎn)修改基準(zhǔn)配置信息;所述第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息包括:所述第一節(jié)點(diǎn)修改存儲(chǔ)在共享存儲(chǔ)設(shè)備中或任意一節(jié)點(diǎn)中的基準(zhǔn)配置信息。在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息包括:所述第一節(jié)點(diǎn)作為待添加節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中;或者,所述第一節(jié)點(diǎn)作為退出節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息從所述基準(zhǔn)配置信息中刪除。根據(jù)第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,在所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之前,還包括:所述第一節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送修改配置的請(qǐng)求消息;所述第一節(jié)點(diǎn)在接收到預(yù)設(shè)數(shù)量的其他節(jié)點(diǎn)發(fā)送的應(yīng)答消息之后,觸發(fā)執(zhí)行修改操作。根據(jù)第一方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)作為待添加節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中之前,還包括:所述第一節(jié)點(diǎn)讀取所述基準(zhǔn)配置信息;所述第一節(jié)點(diǎn)判斷出所述基準(zhǔn)配置信息中存在空閑節(jié)點(diǎn)項(xiàng)時(shí),則觸發(fā)后續(xù)添加操作。根據(jù)第一方面、第一方面的第一種至第四種可能的實(shí)現(xiàn)方式的任意一種,在第五種可能的實(shí)現(xiàn)方式中,在所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之前,還包括:所述第一節(jié)點(diǎn)獲取所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限;在所述第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致之后,還包括:所述第一節(jié)點(diǎn)釋放對(duì)所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限。在第一方面的第六種可能的實(shí)現(xiàn)方式中,還包括:所述第一節(jié)點(diǎn)接收其他節(jié)點(diǎn)發(fā)送的同步消息;所述第一節(jié)點(diǎn)根據(jù)所述同步消息中的配置信息,更新本地的配置信息。根據(jù)第一方面、第一方面的第一種至第四種可能的實(shí)現(xiàn)方式的任意一種,在第七種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息包括:所述第一節(jié)點(diǎn)修改所述基準(zhǔn)配置信息中的節(jié)點(diǎn)配置信息;所述第一節(jié)點(diǎn)將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本。根據(jù)第一方面的第七種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,所述第一節(jié)點(diǎn)將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本包括:所述第一節(jié)點(diǎn)將基準(zhǔn)配置信息中的版本號(hào)加一。根據(jù)第一方面的第七種可能的實(shí)現(xiàn)方式,在第九種可能的實(shí)現(xiàn)方式中,還包括:所述第一節(jié)點(diǎn)接收第一核對(duì)消息,所述第一核對(duì)消息中包括配置信息中的版本號(hào);所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第一核對(duì)消息中的版本號(hào);當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第一核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者;當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第一核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。根據(jù)第一方面的第九種可能的實(shí)現(xiàn)方式,在第十種可能的實(shí)現(xiàn)方式中,還包括:所述第一節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送第一核對(duì)消息;當(dāng)接收到其他節(jié)點(diǎn)返回的第一核對(duì)響應(yīng)時(shí),根據(jù)所述第一核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。根據(jù)第一方面的第七種可能的實(shí)現(xiàn)方式,在第十一種可能的實(shí)現(xiàn)方式中,還包括:所述第一節(jié)點(diǎn)接收第二核對(duì)消息,所述第二核對(duì)消息中包括配置信息;所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第二核對(duì)消息中的版本號(hào);當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第二核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者;當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第二核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述第二核對(duì)消息中的配置信息更新本地的配置信息。根據(jù)第一方面的第i^一種可能的實(shí)現(xiàn)方式,在第十二種可能的實(shí)現(xiàn)方式中,還包括:所述第一節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送第二核對(duì)消息;當(dāng)接收到其他節(jié)點(diǎn)返回的第二核對(duì)響應(yīng)時(shí),根據(jù)所述第二核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。第二方面,本發(fā) 明實(shí)施例提供一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置,包括:修改模塊,用于修改基準(zhǔn)配置信息;同步模塊,用于更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。
在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述修改模塊具體用于:修改存儲(chǔ)在共享存儲(chǔ)設(shè)備中或任意一節(jié)點(diǎn)中的基準(zhǔn)配置信息。在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述修改模塊具體用于:所述修改模塊所在的節(jié)點(diǎn)作為待添加節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中;或者,所述修改模塊所在的節(jié)點(diǎn)作為退出節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息從所述基準(zhǔn)配置信息中刪除。根據(jù)第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,還包括:請(qǐng)求模塊,用于向其他節(jié)點(diǎn)發(fā)送修改配置的請(qǐng)求消息;應(yīng)答節(jié)點(diǎn)個(gè)數(shù)判斷模塊,用于在接收到預(yù)設(shè)數(shù)量的其他節(jié)點(diǎn)發(fā)送的應(yīng)答消息之后,觸發(fā)執(zhí)行修改操作。根據(jù)第二方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述修改模塊所在的節(jié)點(diǎn)作為待添加節(jié)點(diǎn),還包括:讀取模塊,用于讀取所述基準(zhǔn)配置信息;空閑節(jié)點(diǎn)項(xiàng)判斷模塊,用于判斷出所述基準(zhǔn)配置信息中存在空閑節(jié)點(diǎn)項(xiàng)時(shí),則觸發(fā)后續(xù)添加操作。根據(jù)第二方面、第二方面的第一種至第四種可能的實(shí)現(xiàn)方式的任意一種,在第五種可能的實(shí)現(xiàn)方式中,還包括:互斥讀寫(xiě)權(quán)限獲取模塊,用于在所述修改模塊修改基準(zhǔn)配置信息之前,獲取所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限;互斥讀寫(xiě)權(quán)限釋放模塊,用于在所述同步模塊更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致之后,釋放對(duì)所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限。在第二方面的第六種可能的實(shí)現(xiàn)方式,還包括:同步消息接收模塊,用于接收其他節(jié)點(diǎn)發(fā)送的同步消息;同步更新模塊,用于根據(jù)所述同步消息中的配置信息,更新本地的配
置信息。根據(jù)第二方面、第二方面的第一種至第四種可能的實(shí)現(xiàn)方式的任意一種,在第七種可能的實(shí)現(xiàn)方式中,其特征在于,所述修改模塊具體用于:修改所述基準(zhǔn)配置信息中的節(jié)點(diǎn)配置信息;將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本。根據(jù)第二方面的第七種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,所述修改模塊具體用于:將基準(zhǔn)配置信息中的版本號(hào)加一。根據(jù)第二方面的第七種可能的實(shí)現(xiàn)方式,在第九種可能的實(shí)現(xiàn)方式中,還包括:第一核對(duì)消息接收模塊,用于接收第一核對(duì)消息,所述第一核對(duì)消息中包括配置信息中的版本號(hào);第一版本號(hào)比較模塊,用于比較本地記錄的配置信息中的版本號(hào)與所述第一核對(duì)消息中的版本號(hào);第一核對(duì)響應(yīng)模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第一核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者;第一核對(duì)更新模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第一核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述基準(zhǔn)配置信息更新本地的配置信肩、O根據(jù)第二方面的第九種可能的實(shí)現(xiàn)方式,在第十種可能的實(shí)現(xiàn)方式中,還包括:第一核對(duì)消息發(fā)送模塊,用于向其他節(jié)點(diǎn)發(fā)送第一核對(duì)消息;第一核對(duì)響應(yīng)處理模塊,用于當(dāng)接收到其他節(jié)點(diǎn)返回的第一核對(duì)響應(yīng)時(shí),根據(jù)所述第一核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
根據(jù)第二方面的第七種可能的實(shí)現(xiàn)方式,在第十一種可能的實(shí)現(xiàn)方式中,還包括:第二核對(duì)消息接收模塊,用于接收第二核對(duì)消息,所述第二核對(duì)消息中包括配置信息;第二版本號(hào)比較模塊,用于所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第二核對(duì)消息中的版本號(hào);第二核對(duì)響應(yīng)模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第二核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者;第二核對(duì)更新模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第二核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述第二核對(duì)消息中的配置信息更新本地的配置信息。 根據(jù)第二方面的第i^一種可能的實(shí)現(xiàn)方式,在第十二種可能的實(shí)現(xiàn)方式中,還包括:第二核對(duì)消息發(fā)送模塊,用于向其他節(jié)點(diǎn)發(fā)送第二核對(duì)消息;第二核對(duì)響應(yīng)處理模塊,用于當(dāng)接收到其他節(jié)點(diǎn)返回的第二核對(duì)響應(yīng)時(shí),根據(jù)所述第二核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。第三方面,本發(fā)明實(shí)施例提供一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn),包括:至少一個(gè)處理器、至少一個(gè)網(wǎng)絡(luò)接口、至少一個(gè)用戶(hù)接口、存儲(chǔ)器和至少一通信總線,且所述處理器包括本發(fā)明任意實(shí)施例所述的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置。第四方面,本發(fā)明實(shí)施例提供一種分布式存儲(chǔ)系統(tǒng),包括:至少一個(gè)節(jié)點(diǎn)和共享存儲(chǔ)設(shè)備,其中,所述至少一個(gè)節(jié)點(diǎn)采用本發(fā)明任意實(shí)施例所述的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)。本發(fā)明實(shí)施例提供的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法、裝置、節(jié)點(diǎn)及系統(tǒng),通過(guò)在第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之后,向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致,實(shí)現(xiàn)在基準(zhǔn)配置信息改變后,及時(shí)通知到所有節(jié)點(diǎn),從而能夠保證各個(gè)節(jié)點(diǎn)上的配置信息實(shí)時(shí)更新。
為了更清楚地說(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ù)這些附圖獲得其他的附圖。圖1A為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例一的流程圖;圖1B為本發(fā)明實(shí)施例提供的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法所適用的分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)不意圖;圖2為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例二的流程圖;圖3為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例三的流程圖;圖4為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例四的流程圖;圖5為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例五的流程圖;圖6為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例一的結(jié)構(gòu)示意圖;圖7為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例二的結(jié)構(gòu)示意圖;圖8為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例三的流程圖;圖9為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例四的結(jié)構(gòu)示意圖10為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例五的結(jié)構(gòu)示意圖;圖11為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)實(shí)施例的結(jié)構(gòu)示意圖;圖12為本發(fā)明分布式存儲(chǔ)系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例所述的分布式存儲(chǔ)系統(tǒng)可以由多個(gè)節(jié)點(diǎn)和共享存儲(chǔ)設(shè)備構(gòu)成,各個(gè)節(jié)點(diǎn)之間以及各個(gè)節(jié)點(diǎn)與共享存儲(chǔ)設(shè)備之間通過(guò)以太網(wǎng)或局域網(wǎng)進(jìn)行通信,其中,共享存儲(chǔ)設(shè)備用于存儲(chǔ)數(shù)據(jù),并在其上部署有分布式文件管理組件,通過(guò)該分布式文件管理組件實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理,共享存儲(chǔ)設(shè)備可以為計(jì)算機(jī)、服務(wù)器或者可以為某個(gè)可供各個(gè)節(jié)點(diǎn)訪問(wèn)的存儲(chǔ)設(shè)備,例如硬盤(pán);每個(gè)節(jié)點(diǎn)可以為計(jì)算機(jī)或服務(wù)器,其上安裝有分布式系統(tǒng)組件,各個(gè)節(jié)點(diǎn)可以通過(guò)該分布式系統(tǒng)組件訪問(wèn)共享存儲(chǔ)設(shè)備上的分布式文件管理組件,并通過(guò)該分布式系統(tǒng)組件管理共享存儲(chǔ)設(shè)備上的數(shù)據(jù);并且,各節(jié)點(diǎn)上的分布式系統(tǒng)組件可以包括一種內(nèi)核線程,該內(nèi)核線程的作用是維護(hù)分布式系統(tǒng)中各節(jié)點(diǎn)配置信息的一致性。圖1A為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例一的流程圖,圖1B為本發(fā)明實(shí)施例提供的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法所適用的分布式存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)示意圖,該分布式存儲(chǔ)系統(tǒng)包括多個(gè)節(jié)點(diǎn)、共享存儲(chǔ)設(shè)備和網(wǎng)絡(luò)聯(lián)通設(shè)備,各節(jié)點(diǎn)可通過(guò)網(wǎng)絡(luò)聯(lián)通設(shè)備相互通信,并可以通過(guò)網(wǎng)絡(luò)聯(lián)通設(shè)備訪問(wèn)以及修改共享存儲(chǔ)設(shè)備上的數(shù)據(jù)。本實(shí)施例的執(zhí)行主體可以為任意一個(gè)節(jié)點(diǎn)上的分布式系統(tǒng)組件中的內(nèi)核線程,為清楚起見(jiàn),本實(shí)施例中將執(zhí)行下述方法的節(jié)點(diǎn)稱(chēng)為第一節(jié)點(diǎn),其它節(jié)點(diǎn)稱(chēng)為第二節(jié)點(diǎn)。如圖1A所示,本實(shí)施例的方法可以包括:步驟101、第一節(jié)點(diǎn)修改基準(zhǔn)配置信息。通常,基準(zhǔn)配置信息可以存儲(chǔ)在共享存儲(chǔ)設(shè)備中,具體地,可以在將分布式文件系統(tǒng)部署共享存儲(chǔ)設(shè)備的過(guò)程中,在共享存儲(chǔ)設(shè)備上預(yù)留一塊公共區(qū)域,該區(qū)域用于保存對(duì)分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置信息的基準(zhǔn)配置信息?;蛘撸鶞?zhǔn)配置信息也可以存儲(chǔ)在任意一個(gè)節(jié)點(diǎn)中,具體地,如果要將基準(zhǔn)配置信息存儲(chǔ)在某一節(jié)點(diǎn)中,可以在該節(jié)點(diǎn)的存儲(chǔ)設(shè)備上預(yù)留一塊公共區(qū)域,該區(qū)域用于保存對(duì)分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置信息的基準(zhǔn)配置信息。因此,步驟101在具體實(shí)現(xiàn)時(shí),所述第一節(jié)點(diǎn)可以根據(jù)所述基準(zhǔn)配置信息存放的位置,修改存儲(chǔ)在共享存儲(chǔ)設(shè)備中或任意一節(jié)點(diǎn)中的基準(zhǔn)配置信息。分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置信息例如可以包括:最大節(jié)點(diǎn)數(shù),用于標(biāo)記該分布式存儲(chǔ)系統(tǒng)最大支持的節(jié)點(diǎn)數(shù)目;現(xiàn)有節(jié)點(diǎn)個(gè)數(shù):標(biāo)記當(dāng)前分布式存儲(chǔ)系統(tǒng)存在多少個(gè)節(jié)點(diǎn);節(jié)點(diǎn)配置信息表,可以用每一個(gè)表項(xiàng)存放一個(gè)節(jié)點(diǎn)配置信息,其中,節(jié)點(diǎn)配置信息可以包含節(jié)點(diǎn)IP信息或者其他可以轉(zhuǎn)化為節(jié)點(diǎn)IP的數(shù)據(jù)信息;該節(jié)點(diǎn)配置信息的版本號(hào),用于標(biāo)記當(dāng)前配置的版本,以保證分布式存儲(chǔ)系統(tǒng)中系統(tǒng)配置信息的一致性,該版本號(hào)可以是順序遞增的。
步驟102、所述第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。實(shí)際實(shí)現(xiàn)時(shí),由于在步驟101中第一節(jié)點(diǎn)需要修改所述基準(zhǔn)配置信息,如果所述第一節(jié)點(diǎn)為計(jì)算機(jī),那么,通常在修改過(guò)程中所述第一節(jié)點(diǎn)就會(huì)將所述基準(zhǔn)配置信息存儲(chǔ)在所述第一節(jié)點(diǎn)的內(nèi)存中;向其他節(jié)點(diǎn)發(fā)送的同步消息中,可以包括以下信息:消息類(lèi)型、所述第一節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)以及版本號(hào)。發(fā)送同步消息的目的是,為了在每次修改配置信息之后,及時(shí)地通知其他節(jié)點(diǎn):“第一節(jié)點(diǎn)對(duì)配置信息進(jìn)行了修改”。而其他節(jié)點(diǎn)在接收到該同步消息時(shí),可以根據(jù)所述基準(zhǔn)配置信息更新其本地的配置信息?;蛘?,也可以在所述同步消息中攜帶所述基準(zhǔn)配置信息的全部?jī)?nèi)容,這樣,其他節(jié)點(diǎn)在接收到該同步消息時(shí),可以直接根據(jù)所述同步消息更新其本地保存的配置信息??紤]到節(jié)點(diǎn)數(shù)目較多的分布式存儲(chǔ)系統(tǒng)可能存在發(fā)送一次同步消息后部分節(jié)點(diǎn)不能成功接收的情況,因此,所述第一節(jié)點(diǎn)可以多次發(fā)送同步消息,具體地,所述同步消息的發(fā)送方式可以為:在預(yù)置的一段時(shí)間內(nèi),按照一定頻率發(fā)送?,F(xiàn)有技術(shù)的方案,各個(gè)節(jié)點(diǎn)為了更新本地保存的配置信息,需要定期查看共享存儲(chǔ)設(shè)備上的節(jié)點(diǎn)配置信息以判斷是否需要更新本地保存的配置信息,這就容易導(dǎo)致存儲(chǔ)鏈路出現(xiàn)擁堵。而本實(shí)施例中,由于各個(gè)節(jié)點(diǎn)之間可以互相通信以及時(shí)通知及接收配置信息有修改的消息,因此不需要各個(gè)節(jié)點(diǎn)定期訪問(wèn)共享存儲(chǔ)設(shè)備,只在接收到同步消息時(shí)才需要訪問(wèn)共享存儲(chǔ)設(shè)備,甚至可以不需要訪問(wèn)共享存儲(chǔ)設(shè)備即可完成更新,從而能夠避免頻繁地出現(xiàn)各個(gè)節(jié)點(diǎn)同時(shí)訪問(wèn)共享存儲(chǔ)設(shè)備上的節(jié)點(diǎn)配置信息的情況造成的存儲(chǔ)鏈路擁堵。本實(shí)施例,通過(guò)在第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之后,更新本地的配置信息,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致,實(shí)現(xiàn)在基準(zhǔn)配置信息改變后,及時(shí)通知到所有節(jié)點(diǎn),從而能夠保證各個(gè)節(jié)點(diǎn)上的配置信息實(shí)時(shí)更新。進(jìn)一步地,上述實(shí)施例,所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息可以包括:所述第一節(jié)點(diǎn)作為待添加節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中;或,所述第一節(jié)點(diǎn)作為退出節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息從所述基準(zhǔn)配置信息中刪除。需要說(shuō)明的是,當(dāng)?shù)谝还?jié)點(diǎn)作為退出節(jié)點(diǎn)時(shí),在退出后可以將本地保存的配置信息刪除。圖2為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例二的流程圖,本實(shí)施例的方法在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了一些處理步驟以使分布式存儲(chǔ)系統(tǒng)的配置方案更為完善,例如增加了修改基準(zhǔn)配置信息之前的請(qǐng)求過(guò)程和使用互斥的讀寫(xiě)權(quán)限進(jìn)行保護(hù)的過(guò)程。本實(shí)施例的執(zhí)行主體可以為第一節(jié)點(diǎn)上的分布式系統(tǒng)組件中的內(nèi)核線程,其中第一節(jié)點(diǎn)可以為分布式存儲(chǔ)系統(tǒng)中的任意一個(gè)節(jié)點(diǎn)。如圖2所示,本實(shí)施例的方法可以包括:步驟201、第一節(jié)點(diǎn)獲取所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限。其中,第一節(jié)點(diǎn)獲取所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限后,能夠保證只有該第一節(jié)點(diǎn)能夠讀取并修改所述基準(zhǔn)配置信息,因此,能夠保證所述基準(zhǔn)配置信息的完整性。在具體實(shí)現(xiàn)時(shí),第一節(jié)點(diǎn)獲取該互斥讀寫(xiě)權(quán)限時(shí),可能存在該互斥讀寫(xiě)權(quán)限已被其他節(jié)點(diǎn)獲取的情況,這時(shí),所述第一節(jié)點(diǎn)將不能成功地獲取到該互斥讀寫(xiě)權(quán)限,可以等待預(yù)設(shè)的一段時(shí)間后嘗試下一次獲取。進(jìn)一步地,當(dāng)所述第一節(jié)點(diǎn)作為待添加節(jié)點(diǎn)時(shí),還可以包括:
步驟202、所述第一節(jié)點(diǎn)讀取所述基準(zhǔn)配置信息。步驟203、所述第一節(jié)點(diǎn)判斷出所述基準(zhǔn)配置信息中存在空閑節(jié)點(diǎn)項(xiàng)時(shí),則觸發(fā)后續(xù)添加操作。而當(dāng)所述第一節(jié)點(diǎn)作為退出節(jié)點(diǎn)時(shí),則可以跳過(guò)步驟202和步驟203。具體地,在步驟203中,第一節(jié)點(diǎn)可以比較所述基準(zhǔn)配置信息中的最大節(jié)點(diǎn)數(shù)和現(xiàn)有節(jié)點(diǎn)個(gè)數(shù),以判斷是否存在空閑節(jié)點(diǎn)項(xiàng),如果存在,則可以執(zhí)行后續(xù)的添加操作;如果不存在,則可以放棄添加操作。步驟204、所述第一節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送修改配置的請(qǐng)求消息。向其他節(jié)點(diǎn)發(fā)送的修改配置的請(qǐng)求消息中,可以包括以下信息:消息類(lèi)型,例如可以為“請(qǐng)求”的消息類(lèi)型和所述第一節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí),以使其他節(jié)點(diǎn)能夠快速地識(shí)別該消息,并根據(jù)消息類(lèi)型做出不同的響應(yīng)。具體地,對(duì)于“請(qǐng)求”的消息類(lèi)型,可以只要發(fā)送應(yīng)答消息即可,不需進(jìn)行其他的操作。步驟205、所述第一節(jié)點(diǎn)在接收到預(yù)設(shè)數(shù)量的其他節(jié)點(diǎn)發(fā)送的應(yīng)答消息之后,觸發(fā)執(zhí)行修改操作。其中,步驟204和步驟205為一組可選的步驟,其目的是在所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之前,先通過(guò)該兩個(gè)步驟確認(rèn)該分布式存儲(chǔ)系統(tǒng)中各節(jié)點(diǎn)之間的通信是否正常。具體實(shí)現(xiàn)時(shí),還可以預(yù)設(shè)一個(gè)等待時(shí)間,如果在等待時(shí)間內(nèi)未收到預(yù)設(shè)數(shù)量的其他節(jié)點(diǎn)發(fā)送的應(yīng)答消息,則可以放棄添加操作。具體實(shí)現(xiàn)時(shí),可以采用兩種策略執(zhí)行步驟205,其中,策略一為:所述第一節(jié)點(diǎn)接收到的應(yīng)答消息個(gè)數(shù)需要等于現(xiàn)有節(jié)點(diǎn)的個(gè)數(shù),即接收到全部節(jié)點(diǎn)的應(yīng)答才可以加入該分布式存儲(chǔ)系統(tǒng);策略二為:按照第一節(jié)點(diǎn)接收到的應(yīng)答消息個(gè)數(shù)與現(xiàn)有節(jié)點(diǎn)的個(gè)數(shù)的比例,該比例可以預(yù)先設(shè)置,即,當(dāng)應(yīng)答的節(jié)點(diǎn)個(gè)數(shù)達(dá)到預(yù)先設(shè)置的要求后,就可以加入該分布式存儲(chǔ)系統(tǒng)。步驟206、所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息。進(jìn)一步地,在具體實(shí)現(xiàn)時(shí),步驟206中的修改基準(zhǔn)配置信息可以包括:修改所述基準(zhǔn)配置信息中的節(jié)點(diǎn)配置信息;將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本。進(jìn)一步優(yōu)選地,基準(zhǔn)配置信息中的版本號(hào)更新為最新版本可以為:每次修改都將版本號(hào)遞增,例如可以將基準(zhǔn)配置信息中的版本號(hào)加一。步驟207、在所述第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。步驟208、所述第一節(jié)點(diǎn)釋放對(duì)所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限。所述第一節(jié)點(diǎn)完整地完成了一次配置信息的修改后,才釋放對(duì)所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限,這時(shí),其他節(jié)點(diǎn)才能成功地獲取到該互斥讀寫(xiě)權(quán)限,從而再按本實(shí)施例的步驟修改配置信息,因此,能夠保證每一次修改都完整地進(jìn)行。本實(shí)施例,通過(guò)在修改基準(zhǔn)配置信息之前的向其他節(jié)點(diǎn)發(fā)送請(qǐng)求消息,并在得到預(yù)設(shè)數(shù)量的應(yīng)答消息時(shí)才觸發(fā)修改配置信息,實(shí)現(xiàn)在修改之前對(duì)分布式存儲(chǔ)系統(tǒng)是否正常工作的確認(rèn);通過(guò)使用互斥的讀寫(xiě)權(quán)限保證在同一時(shí)刻只有一個(gè)節(jié)點(diǎn)在修改所述基準(zhǔn)配置信息,保證修改的完整性;通過(guò)在第一節(jié)點(diǎn)作為待添加節(jié)點(diǎn)時(shí),在判斷出所述基準(zhǔn)配置信息中存在空閑節(jié)點(diǎn)項(xiàng)后觸發(fā)后續(xù)添加操作,保證添加節(jié)點(diǎn)的過(guò)程的正確性。
圖3為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例三的流程圖,本實(shí)施例的方法在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了第一節(jié)點(diǎn)接收到其他節(jié)點(diǎn)發(fā)送的同步消息的處理過(guò)程。如圖3所示,本實(shí)施例的方法可以包括:步驟301、第一節(jié)點(diǎn)接收其他節(jié)點(diǎn)發(fā)送的同步消息。步驟302、所述第一節(jié)點(diǎn)根據(jù)所述同步消息中的配置信息,更新本地的配置信息。具體地,所述第一節(jié)點(diǎn)可以查看基準(zhǔn)配置信息,并根據(jù)基準(zhǔn)配置信息更新本地的配置信息;或者,如果所述同步消息中攜帶了完整的配置信息,則所述第一節(jié)點(diǎn)可以直接根據(jù)所述同步消息中的配置信息更新本地的配置信息。本實(shí)施例,通過(guò)在接收到其他節(jié)點(diǎn)發(fā)送的同步消息時(shí),根據(jù)所述同步消息中的配置信息更新本地的配置信息,以保證在分布式配置系統(tǒng)的配置信息有變化時(shí),能夠及時(shí)更新本地的配置信息。圖4為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例四的流程圖,本實(shí)施例的方法在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了一種核對(duì)配置信息的處理過(guò)程,具體地,是針對(duì)上述實(shí)施例中可能出現(xiàn)的、同步消息無(wú)法成功地發(fā)送給所有其他節(jié)點(diǎn)的場(chǎng)景,以使本發(fā)明分布式存儲(chǔ)系統(tǒng)的配置方案更為完善。本實(shí)施例的執(zhí)行主體可以為第一節(jié)點(diǎn)上的分布式系統(tǒng)組件中的內(nèi)核線程,其中第一節(jié)點(diǎn)可以為分布式存儲(chǔ)系統(tǒng)中的任意一個(gè)節(jié)點(diǎn)。如圖4所示,本實(shí)施例的方法可以包括:步驟401、第一節(jié)點(diǎn)接收第一核對(duì)消息,所述第一核對(duì)消息中包括配置信息中的版本號(hào)。其中,第一核對(duì)消息的發(fā)起者可以為任意一個(gè)節(jié)點(diǎn),第一核對(duì)消息的發(fā)送可以由用戶(hù)觸發(fā),也可以根據(jù)預(yù)設(shè)的周期,定時(shí)地發(fā)送。發(fā)起者在發(fā)送第一核對(duì)消息時(shí),可以設(shè)置為向所有其他節(jié)點(diǎn)發(fā)送。所述第一核對(duì)消息中包括配置信息中的版本號(hào),具體地,所述第一核對(duì)消息中可以?xún)H僅包括配置信息中的版本號(hào)以及發(fā)起者的節(jié)點(diǎn)標(biāo)識(shí)。步驟402、所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第一核對(duì)消息中的版本號(hào)。具體地,本實(shí)施例是基于每次修改均將基準(zhǔn)配置信息中的版本號(hào)遞增的方案,例如每次將版本號(hào)加一,提供的核對(duì)配置信息的方法,因此,版本號(hào)越高,說(shuō)明該版本號(hào)對(duì)應(yīng)的配置信息越新。步驟403、當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第一核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者。進(jìn)一步地,當(dāng)發(fā)起者接收到其他節(jié)點(diǎn),如所述第一節(jié)點(diǎn),返回的第一核對(duì)響應(yīng)時(shí),同樣地,也可以先比較發(fā)起者本地記錄的配置信息中的版本號(hào)與第一核對(duì)響應(yīng)中的版本號(hào),如果判斷出需要更新時(shí),可以根據(jù)所述第一核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,可以根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。步驟404、當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
其中,步驟403與步驟404為并列的兩個(gè)步驟。本實(shí)施例,通過(guò)第一核對(duì)消息中的版本號(hào),使接收第一核對(duì)消息的節(jié)點(diǎn)能夠根據(jù)版本號(hào)判斷是否需要更新本地保存的配置信息;并且,通過(guò)當(dāng)任意一個(gè)接收第一核對(duì)消息的節(jié)點(diǎn)確定出本地記錄的配置信息中的版本號(hào)大于所述第一核對(duì)消息中的版本號(hào)時(shí),向所述發(fā)起者返回第一核對(duì)響應(yīng)以使所述發(fā)起者更新其本地保存的配置信息;從而實(shí)現(xiàn)使所有節(jié)點(diǎn)更新各自保存的配置信息;并且,由于本實(shí)施例的第一核對(duì)消息中僅僅攜帶版本號(hào)而不攜帶所有的配置信息,因此,第一核對(duì)消息所需要的數(shù)據(jù)量非常小,從而便于節(jié)省傳輸資源。圖5為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法實(shí)施例五的流程圖,本實(shí)施例的方法在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了另一種核對(duì)配置信息的處理過(guò)程,具體地,是針對(duì)上述實(shí)施例中可能出現(xiàn)的、同步消息無(wú)法成功地發(fā)送給所有其他節(jié)點(diǎn)的場(chǎng)景,以使本發(fā)明分布式存儲(chǔ)系統(tǒng)的配置方案更為完善。本實(shí)施例的執(zhí)行主體可以為第一節(jié)點(diǎn)上的分布式系統(tǒng)組件中的內(nèi)核線程,其中第一節(jié)點(diǎn)可以為分布式存儲(chǔ)系統(tǒng)中的任意一個(gè)節(jié)點(diǎn)。本實(shí)施例提供的方案為與實(shí)施例四的方案為并列的兩個(gè)方案,實(shí)際使用時(shí),可以根據(jù)分布式存儲(chǔ)系統(tǒng)的實(shí)際需求選擇一個(gè)。如圖5所示,本實(shí)施例的方法可以包括:步驟501、第一節(jié)點(diǎn)接收第二核對(duì)消息,所述第二核對(duì)消息中包括配置信息。其中,第二核對(duì)消息的發(fā)起者可以為任意一個(gè)節(jié)點(diǎn),第二核對(duì)消息的發(fā)送可以由用戶(hù)觸發(fā),也可以根據(jù)預(yù)設(shè)的周期,定時(shí)地發(fā)送。發(fā)起者在發(fā)送第二核對(duì)消息時(shí),可以設(shè)置為向所有其他節(jié)點(diǎn)發(fā)送。第二核對(duì)消息中包括所有節(jié)點(diǎn)的配置信息,具體實(shí)現(xiàn)時(shí),發(fā)起者可以直接將發(fā)起者本地保存的配置信息或直接將基準(zhǔn)配置信息中的所有信息,以及發(fā)起者的節(jié)點(diǎn)標(biāo)識(shí)攜帶在第二核對(duì)消息中。步驟502、所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第二核對(duì)消息中的版本號(hào)。具體地,本實(shí)施例是基于每次修改均將基準(zhǔn)配置信息中的版本號(hào)遞增的方案,例如每次將版本號(hào)加一,提供的核對(duì)配置信息的方法,因此,版本號(hào)越高,說(shuō)明該版本號(hào)對(duì)應(yīng)的配置信息越新。步驟503、當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第二核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者。進(jìn)一步地,當(dāng)發(fā)起者接收到其他節(jié)點(diǎn),如所述第一節(jié)點(diǎn),返回的第二核對(duì)響應(yīng)時(shí),同樣地,也可以先比較發(fā)起者本地記錄的配置信息中的版本號(hào)與第二核對(duì)響應(yīng)中的版本號(hào),如果判斷出需要更新時(shí),可以根據(jù)所述第二核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,可以根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。步驟504、當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述第二核對(duì)消息中的配置信息更新本地的配置信息。本實(shí)施例,通過(guò)發(fā)送第二核對(duì)消息中的版本號(hào),使接收第二核對(duì)消息的節(jié)點(diǎn)能夠根據(jù)版本號(hào)判斷是否需要更新本地保存的配置信息;通過(guò)當(dāng)任意一個(gè)接收第二核對(duì)消息的節(jié)點(diǎn)確定出本地記錄的配置信息中的版本號(hào)大于所述第二核對(duì)消息中的版本號(hào)時(shí),向所述發(fā)起者返回第二核對(duì)響應(yīng)以使所述發(fā)起者更新其本地保存的配置信息;從而實(shí)現(xiàn)使所有節(jié)點(diǎn)更新各自保存的配置信息;并且,由于在第二核對(duì)消息中攜帶所欲的配置信息,當(dāng)接收第二核對(duì)消息的節(jié)點(diǎn)判斷出需要更新時(shí)可以直接根據(jù)所述第二核對(duì)消息中的配置信息更新本地的配置信息,從而能夠提高更新效率。圖6為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例一的結(jié)構(gòu)示意圖,本實(shí)施例的裝置可以設(shè)置在分布式存儲(chǔ)系統(tǒng)的所有節(jié)點(diǎn)上。如圖6所示,本實(shí)施例的裝置600可以包括:修改模塊I和同步模塊2,其中,修改模塊I用于修改基準(zhǔn)配置信息;同步模塊2,用于更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。本實(shí)施例的裝置,可以用于執(zhí)行本發(fā)明任意方法實(shí)施例的技術(shù)方案,具備相應(yīng)的功能模塊,其實(shí)現(xiàn)原理類(lèi)似,此處不再贅述。本實(shí)施例的裝置,通過(guò)在修改模塊所在的節(jié)點(diǎn)修改基準(zhǔn)配置信息之后,向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致,實(shí)現(xiàn)在基準(zhǔn)配置信息改變后,及時(shí)通知到所有節(jié)點(diǎn),從而能夠保證各個(gè)節(jié)點(diǎn)上的配置信息實(shí)時(shí)更新。進(jìn)一步地,上述實(shí)施例中,基準(zhǔn)配置信息可以存儲(chǔ)在共享存儲(chǔ)設(shè)備中,也可以存儲(chǔ)在任意一個(gè)節(jié)點(diǎn)中,因此,修改模塊I具體可以用于:修改存儲(chǔ)在共享存儲(chǔ)設(shè)備中或任意一節(jié)點(diǎn)中的基準(zhǔn)配置信息。進(jìn)一步地,上述實(shí)施例中,修改模塊I所在的節(jié)點(diǎn)作為待添加節(jié)點(diǎn)時(shí),修改模塊I具體用于:將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中;或者,修改模塊I所在的節(jié)點(diǎn)作為退出節(jié)點(diǎn)時(shí),修改模塊I具體用于:將本地的節(jié)點(diǎn)配置信息從所述基準(zhǔn)配置信息中刪除。圖7為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例二的結(jié)構(gòu)示意圖,本實(shí)施例的裝置700在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了一些模塊以使分布式存儲(chǔ)系統(tǒng)的配置方案更為完善。如圖7所示,本實(shí)施例的裝置還可以包括:請(qǐng)求模塊3和應(yīng)答節(jié)點(diǎn)個(gè)數(shù)判斷模塊4,其中,請(qǐng)求模塊3用于向其他節(jié)點(diǎn)發(fā)送修改配置的請(qǐng)求消息;應(yīng)答節(jié)點(diǎn)個(gè)數(shù)判斷模塊4用于在接收到預(yù)設(shè)數(shù)量的其他節(jié)點(diǎn)發(fā)送的應(yīng)答消息之后,觸發(fā)執(zhí)行修改操作。進(jìn)一步地,為了滿足本實(shí)施例的裝置所在的節(jié)點(diǎn)作為待添加節(jié)點(diǎn)的場(chǎng)景,本實(shí)施例的裝置還可以包括:讀取模塊5和空閑節(jié)點(diǎn)項(xiàng)判斷模塊6,其中,讀取模塊5用于讀取所述基準(zhǔn)配置信息;空閑節(jié)點(diǎn)項(xiàng)判斷模塊6用于判斷出所述基準(zhǔn)配置信息中存在空閑節(jié)點(diǎn)項(xiàng)時(shí),則觸發(fā)后續(xù)添加操作。進(jìn)一步地,為了保證每次對(duì)基準(zhǔn)配置信息的修改能夠完整地進(jìn)行,本實(shí)施例的裝置還可以包括:互斥讀寫(xiě)權(quán)限獲取模塊7和互斥讀寫(xiě)權(quán)限釋放模塊8,其中,互斥讀寫(xiě)權(quán)限獲取模塊7用于在所述修改模塊I修改基準(zhǔn)配置信息之前,獲取所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限;互斥讀寫(xiě)權(quán)限釋放模塊8用于在所述同步模塊完成更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致之后,釋放對(duì)所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限。進(jìn)一步地,所述修改模塊I具體可以用于:修改所述基準(zhǔn)配置信息中的節(jié)點(diǎn)配置信息;將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本。
進(jìn)一步地,所述修改模塊I將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本,具體可以為:將基準(zhǔn)配置信息中的版本號(hào)加一。本實(shí)施例的裝置,可以用于執(zhí)行本發(fā)明任意方法實(shí)施例的技術(shù)方案,具備相應(yīng)的功能模塊,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。圖8為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例三的流程圖,本實(shí)施例的裝置800在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了用于根據(jù)同步消息更新本地保存的配置信息的功能模塊,以使分布式存儲(chǔ)系統(tǒng)的配置方案更為完善。如圖8所示,本實(shí)施例的裝置還可以包括:同步消息接收模塊9和同步更新模塊10,其中,同步消息接收模塊9,用于接收其他節(jié)點(diǎn)發(fā)送的同步消息;同步更新模塊10,用于根據(jù)所述同步消息中的配置信息,更新本地的配置信息。本實(shí)施例的裝置,可以用于執(zhí)行本發(fā)明任意方法實(shí)施例的技術(shù)方案,具備相應(yīng)的功能模塊,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。圖9為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例四的結(jié)構(gòu)示意圖,本實(shí)施例的裝置900在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了一種核對(duì)方案對(duì)應(yīng)的功能模塊,以使分布式存儲(chǔ)系統(tǒng)的配置方案更為完善。如圖9所示,本實(shí)施例的裝置還可以包括:第一核對(duì)消息接收模塊11、第一版本號(hào)比較模塊12、第一核對(duì)響應(yīng)模塊13以及第一核對(duì)更新模塊14,其中,第一核對(duì)消息接收模塊11用于接收第一核對(duì)消息,所述第一核對(duì)消息中包括配置信息中的版本號(hào);第一版本號(hào)比較模塊12用于比較本地記錄的配置信息中的版本號(hào)與所述第一核對(duì)消息中的版本號(hào);第一核對(duì)響應(yīng)模塊13用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第一核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者;第一核對(duì)更新模塊14用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第一核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。進(jìn)一步地,為了滿足本實(shí)施例的裝置作為第一核對(duì)消息的發(fā)起者的場(chǎng)景,本實(shí)施例的裝置還可以包括:第一核對(duì)消息發(fā)送模塊15和第一核對(duì)響應(yīng)處理模塊16,其中,第一核對(duì)消息發(fā)送模塊15,用于向其他節(jié)點(diǎn)發(fā)送第一核對(duì)消息;第一核對(duì)響應(yīng)處理模塊16,用于當(dāng)接收到其他節(jié)點(diǎn)返回的第一核對(duì)響應(yīng)時(shí),根據(jù)所述第一核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。本實(shí)施例的裝置,可以用于執(zhí)行本發(fā)明任意方法實(shí)施例的技術(shù)方案,具備相應(yīng)的功能模塊,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。圖10為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置實(shí)施例五的結(jié)構(gòu)示意圖,本實(shí)施例的裝置1000在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步增加了另一種核對(duì)方案對(duì)應(yīng)的功能模塊,以使分布式存儲(chǔ)系統(tǒng)的配置方案更為完善。如圖10所示,本實(shí)施例的裝置還可以包括:第二核對(duì)消息接收模塊21、第二版本號(hào)比較模塊22、第二核對(duì)響應(yīng)模塊23和第二核對(duì)更新模塊24,其中,第二核對(duì)消息接收模塊21可以用于接收第二核對(duì)消息,所述第二核對(duì)消息中包括配置信息;第二版本號(hào)比較模塊22可以用于所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第二核對(duì)消息中的版本號(hào);第二核對(duì)響應(yīng)模塊23可以用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第二核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者;第二核對(duì)更新模塊24可以用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第二核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述第二核對(duì)消息中的配置信息更新本地的配置信息。進(jìn)一步地,為了滿足本實(shí)施例的裝置作為第二核對(duì)消息的發(fā)起者的場(chǎng)景,本實(shí)施例的裝置還可以包括:第二核對(duì)消息發(fā)送模塊25和第二核對(duì)響應(yīng)處理模塊26,其中,第二核對(duì)消息發(fā)送模塊25可以用于向其他節(jié)點(diǎn)發(fā)送第二核對(duì)消息;第二核對(duì)響應(yīng)處理模塊26可以用于當(dāng)接收到其他節(jié)點(diǎn)返回的第二核對(duì)響應(yīng)時(shí),根據(jù)所述第二核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。本實(shí)施例的裝置,可以用于執(zhí)行本發(fā)明任意方法實(shí)施例的技術(shù)方案,具備相應(yīng)的功能模塊,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。圖11為本發(fā)明分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)實(shí)施例的結(jié)構(gòu)示意圖。如圖11所示,本實(shí)施例的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)1100,可以包括:至少一個(gè)處理器1101,至少一個(gè)網(wǎng)絡(luò)接口1102、用戶(hù)接口 1103,存儲(chǔ)器1104,和至少一通信總線1105。其中,網(wǎng)絡(luò)接口 1102用于實(shí)現(xiàn)本實(shí)施例的節(jié)點(diǎn)與其他節(jié)點(diǎn)或其他設(shè)備通過(guò)網(wǎng)絡(luò)進(jìn)行的交互;用戶(hù)接口 1103用于實(shí)現(xiàn)本實(shí)施例的節(jié)點(diǎn)與用戶(hù)的交互;通信總線1105用于實(shí)現(xiàn)各裝置之間的連接通信;存儲(chǔ)器1104可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(英文為non-volatiIememory,以下簡(jiǎn)稱(chēng)NVM),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。存儲(chǔ)器1104可選的可以包含至少一個(gè)存儲(chǔ)裝置,存儲(chǔ)各種代碼等,用于實(shí)現(xiàn)各種基礎(chǔ)業(yè)務(wù)以及處理基于硬件的任務(wù);處理器1101可以包括發(fā)明任意實(shí)施例所述的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置。本實(shí)施例的節(jié)點(diǎn),可以用于執(zhí)行本發(fā)明任意方法實(shí)施例的技術(shù)方案,具備相應(yīng)的功能模塊,其實(shí)現(xiàn)原理類(lèi)似,此處不再贅述。本實(shí)施例的節(jié)點(diǎn),通過(guò)在第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之后,向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致,實(shí)現(xiàn)在基準(zhǔn)配置信息改變后,及時(shí)通知到所有節(jié)點(diǎn),從而能夠保證各個(gè)節(jié)點(diǎn)上的配置信息實(shí)時(shí)更新。圖12為本發(fā)明分布式存儲(chǔ)系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖。如圖12所示,本實(shí)施例的分布式存儲(chǔ)系統(tǒng)1200,可以包括:至少一個(gè)節(jié)點(diǎn)和共享存儲(chǔ)設(shè)備。需要說(shuō)明的是,只包含一個(gè)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng)是本發(fā)明實(shí)施例提供的分布式存儲(chǔ)系統(tǒng)的一個(gè)特例,而在大多數(shù)情況下,分布式存儲(chǔ)系統(tǒng)可以包含至少兩個(gè)節(jié)點(diǎn),圖中以第一節(jié)點(diǎn)1201、第二節(jié)點(diǎn)1202為例進(jìn)行描述,和共享存儲(chǔ)設(shè)備1203,其中,第一節(jié)點(diǎn)1201和第二節(jié)點(diǎn)1202可以采用本發(fā)明任意實(shí)施例所述的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn),其對(duì)應(yīng)地,可以執(zhí)行本發(fā)明任一方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,此處不再贅述。對(duì)于只包含一個(gè)節(jié)點(diǎn)的分布式存儲(chǔ)系統(tǒng),本發(fā)明上述方法實(shí)施例中所述的:“第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致”的步驟可以簡(jiǎn)化處理,由于不存在其他節(jié)點(diǎn),因此只需要執(zhí)行“第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致”,即可達(dá)到使分布式存儲(chǔ)系統(tǒng)中所有節(jié)點(diǎn)上的配置信息實(shí)時(shí)更新的技術(shù)效果。本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。 最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
權(quán)利要求
1.一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法,其特征在于,包括: 第一節(jié)點(diǎn)修改基準(zhǔn)配置信息; 所述第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息包括: 所述第一節(jié)點(diǎn)修改存儲(chǔ)在共享存儲(chǔ)設(shè)備中或任意一節(jié)點(diǎn)中的基準(zhǔn)配置信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息包括: 所述第一節(jié)點(diǎn)作為待添加節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中;或 所述第一節(jié)點(diǎn)作為退出節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息從所述基準(zhǔn)配置信息中刪除。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之前,還包括: 所述第一節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送修改配置的請(qǐng)求消息; 所述第一節(jié)點(diǎn)在接收到預(yù)設(shè)數(shù)量的其他節(jié)點(diǎn)發(fā)送的應(yīng)答消息之后,觸發(fā)執(zhí)行修改操作。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第一節(jié)點(diǎn)作為待添加節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中之前,還包括: 所述第一節(jié)點(diǎn)讀取所述基準(zhǔn)配置信息; 所述第一節(jié)點(diǎn)判斷出所述基準(zhǔn)配置信息中存在空閑節(jié)點(diǎn)項(xiàng)時(shí),則觸發(fā)后續(xù)添加操作。
6.根據(jù)權(quán)利要求1 5任一所述的方法,其特征在于, 在所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息之前,還包括:所述第一節(jié)點(diǎn)獲取所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限; 在所述第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致之后,還包括:所述第一節(jié)點(diǎn)釋放對(duì)所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 所述第一節(jié)點(diǎn)接收其他節(jié)點(diǎn)發(fā)送的同步消息; 所述第一節(jié)點(diǎn)根據(jù)所述同步消息中的配置信息,更新本地的配置信息。
8.根據(jù)權(quán)利要求1-5任一所述的方法,其特征在于,所述第一節(jié)點(diǎn)修改基準(zhǔn)配置信息包括: 所述第一節(jié)點(diǎn)修改所述基準(zhǔn)配置信息中的節(jié)點(diǎn)配置信息; 所述第一節(jié)點(diǎn)將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述第一節(jié)點(diǎn)將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本包括: 所述第一節(jié)點(diǎn)將基準(zhǔn)配置信息中的版本號(hào)加一。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,還包括: 所述第一節(jié)點(diǎn)接收第一核對(duì)消息,所述第一核對(duì)消息中包括配置信息中的版本號(hào); 所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第一核對(duì)消息中的版本號(hào);當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第一核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者; 當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第一核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,還包括: 所述第一節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送第一核對(duì)消息; 當(dāng)接收到其他節(jié)點(diǎn)返回的第一核對(duì)響應(yīng)時(shí),根據(jù)所述第一核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
12.根據(jù)權(quán)利要求8所述的方法,其特征在于,還包括: 所述第一節(jié)點(diǎn)接收第二核對(duì)消息,所述第二核對(duì)消息中包括配置信息; 所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第二核對(duì)消息中的版本號(hào); 當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第二核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者; 當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第二核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述第二核對(duì)消息中的配置信息更新本地的配置信息。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,還包括: 所述第一節(jié)點(diǎn)向其他節(jié)點(diǎn)發(fā)送第二核對(duì)消息; 當(dāng)接收到其他節(jié)點(diǎn)返回的第二核對(duì)響應(yīng)時(shí),根據(jù)所述第二核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
14.一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置,其特征在于,包括: 修改模塊,用于修改基準(zhǔn)配置信息; 同步模塊,用于更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述修改模塊具體用于: 修改存儲(chǔ)在共享存儲(chǔ)設(shè)備中或任意一節(jié)點(diǎn)中的基準(zhǔn)配置信息。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述修改模塊具體用于: 所述修改模塊所在的節(jié)點(diǎn)作為待添加節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息添加至所述基準(zhǔn)配置信息中;或 所述修改模塊所在的節(jié)點(diǎn)作為退出節(jié)點(diǎn),將本地的節(jié)點(diǎn)配置信息從所述基準(zhǔn)配置信息中刪除。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,還包括: 請(qǐng)求模塊,用于向其他節(jié)點(diǎn)發(fā)送修改配置的請(qǐng)求消息; 應(yīng)答節(jié)點(diǎn)個(gè)數(shù)判斷模塊,用于在接收到預(yù)設(shè)數(shù)量的其他節(jié)點(diǎn)發(fā)送的應(yīng)答消息之后,觸發(fā)執(zhí)行修改操作。
18.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述修改模塊所在的節(jié)點(diǎn)作為待添加節(jié)點(diǎn),還包括:讀取模塊,用于讀取所述基準(zhǔn)配置信息; 空閑節(jié)點(diǎn)項(xiàng)判斷模塊,用于判斷出所述基準(zhǔn)配置信息中存在空閑節(jié)點(diǎn)項(xiàng)時(shí),則觸發(fā)后續(xù)添加操作。
19.根據(jù)權(quán)利要求14 18任一所述的裝置,其特征在于,還包括: 互斥讀寫(xiě)權(quán)限獲取模塊,用于在所述修改模塊修改基準(zhǔn)配置信息之前,獲取所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限; 互斥讀寫(xiě)權(quán)限釋放模塊,用于在所述同步模塊更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致之后,釋放對(duì)所述基準(zhǔn)配置信息的互斥讀寫(xiě)權(quán)限。
20.根據(jù)權(quán)利要求14所述的裝置,其特征在于,還包括: 同步消息接收模塊,用于接收其他節(jié)點(diǎn)發(fā)送的同步消息; 同步更新模塊,用于根據(jù)所述同步消息中的配置信息,更新本地的配置信息。
21.根據(jù)權(quán)利要求14 18任一所述的裝置,其特征在于,所述修改模塊具體用于: 修改所述基準(zhǔn)配置信息中的節(jié)點(diǎn)配置信息; 將基準(zhǔn)配置信息中的版本號(hào)更新為最新版本。
22.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述修改模塊具體用于: 將基準(zhǔn)配置信息中的版本號(hào)加一。
23.根據(jù)權(quán)利要求21所述的裝置,其特征在于,還包括: 第一核對(duì)消息接收模塊,用于接收第一核對(duì)消息,所述第一核對(duì)消息中包括配置信息中的版本號(hào); 第一版本號(hào)比較模塊,用于比較本地記錄的配置信息中的版本號(hào)與所述第一核對(duì)消息中的版本號(hào); 第一核對(duì)響應(yīng)模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第一核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)攜帶在第一核對(duì)響應(yīng)中返回給所述第一核對(duì)消息的發(fā)起者; 第一核對(duì)更新模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第一核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
24.根據(jù)權(quán)利要求23所述的裝置,其特征在于,還包括: 第一核對(duì)消息發(fā)送模塊,用于向其他節(jié)點(diǎn)發(fā)送第一核對(duì)消息; 第一核對(duì)響應(yīng)處理模塊,用于當(dāng)接收到其他節(jié)點(diǎn)返回的第一核對(duì)響應(yīng)時(shí),根據(jù)所述第一核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
25.根據(jù)權(quán)利要求21所述的裝置,其特征在于,還包括: 第二核對(duì)消息接收模塊,用于接收第二核對(duì)消息,所述第二核對(duì)消息中包括配置信息; 第二版本號(hào)比較模塊,用于所述第一節(jié)點(diǎn)比較本地記錄的配置信息中的版本號(hào)與所述第二核對(duì)消息中的版本號(hào); 第二核對(duì)響應(yīng)模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)大于所述第二核對(duì)消息中的版本號(hào)時(shí),將本地的配置信息攜帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者,或者將本地的配置信息的版本號(hào)帶在第二核對(duì)響應(yīng)中返回給所述第二核對(duì)消息的發(fā)起者; 第二核對(duì)更新模塊,用于當(dāng)比較結(jié)果為本地記錄的配置信息中的版本號(hào)小于所述第二核對(duì)消息中的版本號(hào)時(shí),根據(jù)所述第二核對(duì)消息中的配置信息更新本地的配置信息。
26.根據(jù)權(quán)利要求25所述的裝置,其特征在于,還包括: 第二核對(duì)消息發(fā)送模塊,用于向其他節(jié)點(diǎn)發(fā)送第二核對(duì)消息; 第二核對(duì)響應(yīng)處理模塊,用于當(dāng)接收到其他節(jié)點(diǎn)返回的第二核對(duì)響應(yīng)時(shí),根據(jù)所述第二核對(duì)響應(yīng)中的配置信息更新本地的配置信息,或者,根據(jù)所述基準(zhǔn)配置信息更新本地的配置信息。
27.—種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn),包括:至少一個(gè)處理器、至少一個(gè)網(wǎng)絡(luò)接口、至少一個(gè)用戶(hù)接口、存儲(chǔ)器和至少一通信總線,且所述處理器包括權(quán)利要求14 26任一所述的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置裝置。
28.—種分布式存儲(chǔ)系統(tǒng),包括:至少一個(gè)節(jié)點(diǎn)和共享存儲(chǔ)設(shè)備,其特征在于,所述至少一個(gè)節(jié)點(diǎn) 采用如權(quán)利要求27所述的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)。
全文摘要
本發(fā)明實(shí)施例提供一種分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法、裝置、節(jié)點(diǎn)及系統(tǒng),其中,方法包括第一節(jié)點(diǎn)修改基準(zhǔn)配置信息;所述第一節(jié)點(diǎn)更新本地的配置信息至與所述基準(zhǔn)配置信息一致,并向其他節(jié)點(diǎn)發(fā)送同步消息以更新其他節(jié)點(diǎn)的配置信息至與所述基準(zhǔn)配置信息一致。本發(fā)明實(shí)施例提供的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)配置方法、裝置、節(jié)點(diǎn)及系統(tǒng),可以實(shí)現(xiàn)及時(shí)更新各個(gè)節(jié)點(diǎn)本地的配置信息。
文檔編號(hào)H04L29/08GK103152390SQ20131004335
公開(kāi)日2013年6月12日 申請(qǐng)日期2013年2月4日 優(yōu)先權(quán)日2013年2月4日
發(fā)明者劉儀陽(yáng) 申請(qǐng)人:華為技術(shù)有限公司