本發(fā)明專利技術(shù)提供一種多控制器間的緩存管理系統(tǒng),通過(guò)控制器id記錄數(shù)據(jù)塊的分布,在單個(gè)緩存更新時(shí),同時(shí)更新其它控制器的緩存,有效地克服了多控制器節(jié)點(diǎn)故障導(dǎo)致緩存數(shù)據(jù)丟失的缺陷,保證了數(shù)據(jù)的一致性,當(dāng)系統(tǒng)中存在N+1個(gè)控制器時(shí),能容忍N(yùn)個(gè)控制器同時(shí)出現(xiàn)故障,同一數(shù)據(jù)在緩存中存在多份,并維持一張全局目錄表,記錄數(shù)據(jù)塊的分布。在單個(gè)緩存更新時(shí),同時(shí)更新其它控制器的緩存,有效地克服了多控制器節(jié)點(diǎn)故障導(dǎo)致緩存數(shù)據(jù)丟失的缺點(diǎn),保證了數(shù)據(jù)的一致性。
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種多控制器間的緩存管理系統(tǒng)
本專利技術(shù)涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,具體地說(shuō)是一種多控制器間的緩存管理系統(tǒng)。
技術(shù)介紹
存儲(chǔ)設(shè)備出現(xiàn)故障,一直是IT人員頭痛的事,因?yàn)闆](méi)有有效的手段,讓多個(gè)控制器間數(shù)據(jù)高速緩存保持一致。某個(gè)或某些控制器出現(xiàn)故障后,沒(méi)有足夠的緩存?zhèn)浞荩瑢?dǎo)致數(shù)據(jù)丟失。這會(huì)嚴(yán)重影響到企業(yè)的正常營(yíng)運(yùn)。目前市面存儲(chǔ)產(chǎn)品大多只支持一個(gè)或幾個(gè)特定的控制器出故障后數(shù)據(jù)不丟失。采用此方案的系統(tǒng),可以做到N+1個(gè)控制器的系統(tǒng)中,N個(gè)控制器出故障后緩存數(shù)據(jù)不丟失。多控器間的緩存管理系統(tǒng)如字義所言,就是對(duì)多個(gè)控制器間的緩存資源虛擬化全局共享,實(shí)現(xiàn)緩存的統(tǒng)一管理與冗余分配,解決多個(gè)控制器同時(shí)故障時(shí)緩存數(shù)據(jù)丟失問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
本專利技術(shù)的目的是提供一種多控制器間的緩存管理系統(tǒng)。本專利技術(shù)的目的是按以下方式實(shí)現(xiàn)的,同一數(shù)據(jù)在緩存中存在多份,通過(guò)控制器id記錄數(shù)據(jù)塊的分布,在單個(gè)緩存更新時(shí),同時(shí)更新其它控制器的緩存,有效地克服了多控制器節(jié)點(diǎn)故障導(dǎo)致緩存數(shù)據(jù)丟失的缺陷,保證了數(shù)據(jù)的一致性,當(dāng)系統(tǒng)中存在N+1個(gè)控制器時(shí),能容忍N(yùn)個(gè)控制器同時(shí)出現(xiàn)故障,該系統(tǒng)結(jié)構(gòu)包括:緩存管理模塊(1)、緩存同步模塊(2)、故障處理模塊(3),其中:緩存管理模塊(1)提供如下功能:磁盤(pán)管理功能:所有加入到多控系統(tǒng)緩存管理模塊的磁盤(pán)對(duì)于每臺(tái)控制器來(lái)說(shuō)都需要?jiǎng)?chuàng)建對(duì)應(yīng)的紅黑樹(shù)用來(lái)緩存數(shù)據(jù),所有紅黑樹(shù)用鏈表連接起來(lái),并記錄此磁盤(pán)所屬控制器id,便于確定此磁盤(pán)屬于哪個(gè)控制器,并通知所有控制器,使其他控制器也創(chuàng)建此磁盤(pán)的紅黑樹(shù)并記錄所屬控制器id,從系統(tǒng)中移除磁盤(pán)時(shí),需要通知所有控制器釋放此結(jié)構(gòu);緩存數(shù)據(jù)組織緩存功能:將所有從本控制器或其他控制器發(fā)送的數(shù)據(jù)按照一定規(guī)則有序組織并緩存到內(nèi)存中,每臺(tái)控制器用鏈表將所有分配的空閑頁(yè)掛接在一個(gè)鏈表中,對(duì)于所有控制器的每個(gè)磁盤(pán),寫(xiě)入的數(shù)據(jù)都緩存在每臺(tái)控制器對(duì)應(yīng)磁盤(pán)的紅黑樹(shù)上;刷寫(xiě)緩存數(shù)據(jù)功能:根據(jù)磁盤(pán)id判斷所屬本控制器磁盤(pán),刷新本磁盤(pán)上的紅黑樹(shù)中緩存數(shù)據(jù)到磁盤(pán)中,并通知所有其他控制器釋放此緩存數(shù)據(jù),其他磁盤(pán)釋放對(duì)應(yīng)紅黑樹(shù)的緩存數(shù)據(jù),所有釋放的緩存移動(dòng)到空余頁(yè)鏈表中;預(yù)讀功能:在讀數(shù)據(jù)時(shí),如果數(shù)據(jù)存在于內(nèi)存中,直接從內(nèi)存返回?cái)?shù)據(jù)內(nèi)容,避免在磁盤(pán)上查找的低效率;緩存同步模塊(2)提供如下功能:從任意控制器寫(xiě)入數(shù)據(jù)時(shí),將此緩存數(shù)據(jù)發(fā)送到其余控制器緩存中保存,其余控制器更新自己的緩存,從而保證所有控制器緩存數(shù)據(jù)一致;從任意控制器讀取數(shù)據(jù)時(shí),如果數(shù)據(jù)不存在于緩存中,需要根據(jù)磁盤(pán)所屬控制器id來(lái)通知此控制器讀取實(shí)際數(shù)據(jù),此控制器將數(shù)據(jù)讀到緩存中后,將此緩存數(shù)據(jù)發(fā)送到其余控制器緩存中保存,其余控制器更新自己的緩存,從而保證所有控制器緩存數(shù)據(jù)一致;故障處理模塊(3)提供如下功能:故障處理:負(fù)責(zé)通過(guò)心跳包檢測(cè)各個(gè)控制器的狀態(tài),當(dāng)某個(gè)或某些控制器出現(xiàn)故障時(shí),相鄰控制器會(huì)接管這些故障控制器磁盤(pán),并更新此磁盤(pán)的所屬控制器id;新增控制器:向系統(tǒng)新增控制器時(shí),從相鄰控制器復(fù)制緩存數(shù)據(jù),保證緩存數(shù)據(jù)一致性。在體系結(jié)構(gòu)中,所有控制器保存一份相同的緩存數(shù)據(jù)。緩存管理模塊(1),當(dāng)加入磁盤(pán)時(shí)通知所有控制器,使其他控制器也創(chuàng)建此磁盤(pán)的數(shù)據(jù)結(jié)構(gòu)用來(lái)緩存數(shù)據(jù)。緩存同步模塊(2),從任意控制器寫(xiě)入數(shù)據(jù)時(shí),將此緩存數(shù)據(jù)發(fā)送到其余控制器緩存中保存,其余控制器更新自己的緩存,從而保證所有控制器緩存數(shù)據(jù)一致,從任意控制器讀取數(shù)據(jù)時(shí),如果數(shù)據(jù)不存在于緩存中,需要根據(jù)磁盤(pán)所屬控制器id來(lái)通知此控制器讀取實(shí)際數(shù)據(jù),此控制器將數(shù)據(jù)讀到緩存中后,將此緩存數(shù)據(jù)發(fā)送到其余控制器緩存中保存,其余控制器更新自己的緩存,從而保證所有控制器緩存數(shù)據(jù)一致。故障處理模塊(3),向系統(tǒng)新增控制器時(shí),從相鄰控制器復(fù)制緩存數(shù)據(jù),保證緩存數(shù)據(jù)一致性。本專利技術(shù)的有益效果是:一種多控器間的緩存管理系統(tǒng)支持在N+1個(gè)節(jié)點(diǎn)的存儲(chǔ)系統(tǒng)中,N個(gè)節(jié)點(diǎn)同時(shí)故障。因此采用這種“多控器間的緩存管理系統(tǒng)”技術(shù)可以增加系統(tǒng)可靠性,防止在多個(gè)控制器出現(xiàn)故障時(shí),緩存數(shù)據(jù)丟失問(wèn)題。附圖說(shuō)明圖1是磁盤(pán)注冊(cè)流程圖;圖2是緩存數(shù)據(jù)寫(xiě)入同步流程圖;圖3是緩存數(shù)據(jù)讀取同步流程圖;圖4是單臺(tái)控制器緩存數(shù)據(jù)組織形式圖。具體實(shí)施方式參照說(shuō)明書(shū)附圖對(duì)本專利技術(shù)的方法作以下詳細(xì)地說(shuō)明。正如
技術(shù)實(shí)現(xiàn)思路
中所描述的,本專利技術(shù)體系結(jié)構(gòu)主要包括:緩存管理模塊(1)、緩存同步模塊(2)、故障處理模塊(3)。在一個(gè)典型的配置環(huán)境里,如果是寫(xiě)入數(shù)據(jù),數(shù)據(jù)寫(xiě)入到緩存中,緩存同步模塊(2)根據(jù)將寫(xiě)入數(shù)據(jù)同步到其他控制器緩存,其他控制器緩存管理模塊(1)會(huì)記錄此數(shù)據(jù),同步完成后本地控制器緩存管理模塊(1)也記錄此數(shù)據(jù)并通知上層寫(xiě)入完成。如果是讀取數(shù)據(jù),首先查找是否在本控制器緩存中,如果不存在則根據(jù)磁盤(pán)所屬控制器id,緩存?zhèn)浞菽K(2)通知所在控制器讀取磁盤(pán)數(shù)據(jù)到緩存中并同步緩存數(shù)據(jù)。同步完成后直接讀取本地控制器的緩存,返回讀成功。當(dāng)系統(tǒng)中某臺(tái)控制器出現(xiàn)故障時(shí),相鄰控制器的故障處理模塊(3)接管出錯(cuò)控制器的磁盤(pán),并修改這些磁盤(pán)的所屬控制器id為本控制器id,然后通知其他控制器更新這些磁盤(pán)修改的所屬控制器id。至此,已經(jīng)完整實(shí)現(xiàn)了整個(gè)一種多控器間的緩存管理系統(tǒng),這種技術(shù)與傳統(tǒng)的緩存管理系統(tǒng)不一樣之處在于實(shí)現(xiàn)了多個(gè)控制器的緩存同步功能,并且保障了N+1個(gè)控制器存儲(chǔ)系統(tǒng)中,N個(gè)控制器同時(shí)故障系統(tǒng)不會(huì)丟失緩存數(shù)據(jù)。因此采用這種技術(shù),使其應(yīng)用在存儲(chǔ)系統(tǒng)中,解決了多控制器間數(shù)據(jù)高速緩存的一致性問(wèn)題,極大的提高了系統(tǒng)的可靠性。除說(shuō)明書(shū)所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。本文檔來(lái)自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種多控制器間的緩存管理系統(tǒng),?其特征在于同一數(shù)據(jù)在緩存中存在多份,通過(guò)控制器id記錄數(shù)據(jù)塊的分布,在單個(gè)緩存更新時(shí),同時(shí)更新其它控制器的緩存,有效地克服了多控制器節(jié)點(diǎn)故障導(dǎo)致緩存數(shù)據(jù)丟失的缺陷,保證了數(shù)據(jù)的一致性,當(dāng)系統(tǒng)中存在N+1個(gè)控制器時(shí),能容忍N(yùn)個(gè)控制器同時(shí)出現(xiàn)故障,該系統(tǒng)結(jié)構(gòu)包括:緩存管理模塊(1)、緩存同步模塊(2)、故障處理模塊(3),其中:緩存管理模塊(1)提供如下功能:磁盤(pán)管理功能:所有加入到多控系統(tǒng)緩存管理模塊的磁盤(pán)對(duì)于每臺(tái)控制器來(lái)說(shuō)都需要?jiǎng)?chuàng)建對(duì)應(yīng)的紅黑樹(shù)用來(lái)緩存數(shù)據(jù),所有紅黑樹(shù)用鏈表連接起來(lái),并記錄此磁盤(pán)所屬控制器id,便于確定此磁盤(pán)屬于哪個(gè)控制器,并通知所有控制器,使其他控制器也創(chuàng)建此磁盤(pán)的紅黑樹(shù)并記錄所屬控制器id,從系統(tǒng)中移除磁盤(pán)時(shí),需要通知所有控制器釋放此結(jié)構(gòu);緩存數(shù)據(jù)組織緩存功能:將所有從本控制器或其他控制器發(fā)送的數(shù)據(jù)按照一定規(guī)則有序組織并緩存到內(nèi)存中,每臺(tái)控制器用鏈表將所有分配的空閑頁(yè)掛接在一個(gè)鏈表中,對(duì)于所有控制器的每個(gè)磁盤(pán),寫(xiě)入的數(shù)據(jù)都緩存在每臺(tái)控制器對(duì)應(yīng)磁盤(pán)的紅黑樹(shù)上;刷寫(xiě)緩存數(shù)據(jù)功能:根據(jù)磁盤(pán)id判斷所屬本控制器磁盤(pán),刷新本磁盤(pán)上的紅黑樹(shù)中緩存數(shù)據(jù)到磁盤(pán)中,并通知所有其他控制器釋放此緩存數(shù)據(jù),其他磁盤(pán)釋放對(duì)應(yīng)紅黑樹(shù)的緩存數(shù)據(jù),所有釋放的緩存移動(dòng)到空余頁(yè)鏈表中;預(yù)讀功能:在讀數(shù)據(jù)時(shí),如果數(shù)據(jù)存在于內(nèi)存中,直接從內(nèi)存返回?cái)?shù)據(jù)內(nèi)容,避免在磁盤(pán)上查找的低效率;緩存同步模塊(2)提供如下功能:從任意控制器寫(xiě)入數(shù)據(jù)時(shí),將此緩存數(shù)據(jù)發(fā)送到其余控制器緩存中保存,其余控制器更新自己的緩存,從而保證所有控制器緩存數(shù)據(jù)一致;從任意控制器讀取數(shù)據(jù)時(shí),如果數(shù)據(jù)不存在于緩存中,需要根據(jù)磁盤(pán)所屬控制器id來(lái)通知此控制器讀取實(shí)際數(shù)據(jù),此控制器將數(shù)據(jù)讀到緩存中后,將此緩存數(shù)據(jù)發(fā)送到其余控制器緩存中保存,其余控制器更新自己的緩存,從而保證所有控制器緩存數(shù)據(jù)一致;故障處理模塊(3)提供如下功能:故障處理:負(fù)責(zé)通過(guò)心跳包檢測(cè)各個(gè)控制器的狀態(tài),當(dāng)某個(gè)或某些控制器出現(xiàn)故障時(shí),相鄰控制器會(huì)接管這些故障控制器磁盤(pán),并更新此磁盤(pán)的所屬控制器id;新增控制器:向系統(tǒng)新增控制器時(shí),從相鄰控制器復(fù)制緩存數(shù)據(jù),保證緩存數(shù)據(jù)一致性。...
【技術(shù)特征摘要】
1.一種多控制器間的緩存管理系統(tǒng),其特征在于同一數(shù)據(jù)在緩存中存在多份,通過(guò)控制器id記錄數(shù)據(jù)塊的分布,在單個(gè)緩存更新時(shí),同時(shí)更新其它控制器的緩存,有效地克服了多控制器節(jié)點(diǎn)故障導(dǎo)致緩存數(shù)據(jù)丟失的缺陷,保證了數(shù)據(jù)的一致性,當(dāng)系統(tǒng)中存在N+1個(gè)控制器時(shí),能容忍N(yùn)個(gè)控制器同時(shí)出現(xiàn)故障,該系統(tǒng)結(jié)構(gòu)包括:緩存管理模塊、緩存同步模塊、故障處理模塊,其中:緩存管理模塊提供如下功能:磁盤(pán)管理功能:所有加入到多控系統(tǒng)緩存管理模塊的磁盤(pán)對(duì)于每臺(tái)控制器來(lái)說(shuō)都需要?jiǎng)?chuàng)建對(duì)應(yīng)的紅黑樹(shù)用來(lái)緩存數(shù)據(jù),所有紅黑樹(shù)用鏈表連接起來(lái),并記錄此磁盤(pán)所屬控制器id,便于確定此磁盤(pán)屬于哪個(gè)控制器,并通知所有控制器,使其他控制器也創(chuàng)建此磁盤(pán)的紅黑樹(shù)并記錄所屬控制器id,從系統(tǒng)中移除磁盤(pán)時(shí),需要通知所有控制器釋放此結(jié)構(gòu);緩存數(shù)據(jù)組織緩存功能:將所有從本控制器或其他控制器發(fā)送的數(shù)據(jù)按照一定規(guī)則有序組織并緩存到內(nèi)存中,每臺(tái)控制器用鏈表將所有分配的空閑頁(yè)掛接在一個(gè)鏈表中,對(duì)于所有控制器的每個(gè)磁盤(pán),寫(xiě)入的數(shù)據(jù)都緩存在每臺(tái)控制器對(duì)應(yīng)磁盤(pán)的紅黑樹(shù)上;刷寫(xiě)緩存數(shù)據(jù)功能:根據(jù)磁盤(pán)id判斷所屬本控制器磁盤(pán),刷新本磁盤(pán)上的紅黑樹(shù)中緩存數(shù)據(jù)到磁盤(pán)中,并通知所有其他控制器釋放此緩存數(shù)據(jù),其他磁盤(pán)釋...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:楊帆,
申請(qǐng)(專利權(quán))人:浪潮電子信息產(chǎn)業(yè)股份有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。