雙控磁盤陣列間通過vpd芯片進行數(shù)據(jù)交換的方法與裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)存儲技術(shù)領(lǐng)域,更具體地,涉及一種雙控磁盤陣列間通過VPD芯片進行數(shù)據(jù)交換的方法與裝置。
【背景技術(shù)】
[0002]磁盤陣列(RedundantArrays of Independent Disks,RAID),有“獨立磁盤構(gòu)成的具有冗余能力的陣列”之意。磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數(shù)據(jù)所產(chǎn)生加成效果提升整個磁盤系統(tǒng)效能。利用這項技術(shù),將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個硬盤上。磁盤陣列還能利用同位檢查(ParityCheck)的觀念,在數(shù)組中任意一個硬盤故障時,仍可讀出數(shù)據(jù),在數(shù)據(jù)重構(gòu)時,將數(shù)據(jù)經(jīng)計算后重新置入新硬盤中。
[0003]磁盤陣列上有一個主要的部件叫控制器,只有一個控制器的磁盤陣列叫單控磁盤陣列。具有兩個控制器的磁盤陣列叫雙控磁盤陣列。在現(xiàn)有雙控磁盤陣列中,大部分是通過CPU的直接內(nèi)存訪問(Direct1nal Memory Access, DMA)通道進行雙控間的數(shù)據(jù)交換工作,由于CPU的復(fù)雜性,容易造成CPU資源的搶占和浪費。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種雙控磁盤陣列間通過重要產(chǎn)品數(shù)據(jù)(vital product data,VPD)芯片進行數(shù)據(jù)交換的方法與裝置,其目的在于利用VPD芯片在雙控磁盤中來存儲和傳遞較小的數(shù)據(jù)結(jié)構(gòu),由此解決現(xiàn)有技術(shù)中雙控磁盤間傳輸數(shù)據(jù)所造成的搶占和浪費CPU資源的的技術(shù)問題。
[0005]為了實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種雙控磁盤陣列間通過VPD芯片進行數(shù)據(jù)交換的方法,包括:
[0006]若雙控磁盤陣列中的第一磁盤陣列需要向第二磁盤陣列傳輸數(shù)據(jù),則將所述數(shù)據(jù)寫入所述雙控磁盤陣列的VPD芯片中;
[0007]雙控磁盤陣列中的第一磁盤陣列和第二磁盤陣列均周期性判斷所述VPD芯片中是否寫入了需要傳輸給所述第一磁盤陣列或第二磁盤陣列的數(shù)據(jù),如果是,則所述第一磁盤陣列或第二磁盤陣列讀取所述VPD芯片中的數(shù)據(jù)。
[0008]按照本發(fā)明的另一方面,還提供了一種雙控磁盤陣列間通過vro芯片進行數(shù)據(jù)交換的裝置,包括第一控制器、第二控制器和VPD芯片,其中:
[0009]所述第一控制器,用于在需要向第二控制器傳輸數(shù)據(jù)時,將所述數(shù)據(jù)寫入所述雙控磁盤陣列的VPD芯片中;
[0010]所述VPD芯片,用于存儲所述數(shù)據(jù);
[0011]所述第二控制器,用于周期性判斷所述vro芯片中是否寫入了需要傳輸給第二控制器的數(shù)據(jù),如果是,則所述第二控制器讀取所述VPD芯片中的數(shù)據(jù);
[0012]所述第一控制器,還用于周期性判斷所述vro芯片中是否寫入了需要傳輸給第一控制器的數(shù)據(jù),如果是,則所述第一控制器讀取所述VPD芯片中的數(shù)據(jù)。
[0013]總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益技術(shù)效果:
[0014]1、本發(fā)明方法通過雙控磁盤陣列自身所具有的VPD芯片來存儲和傳輸兩個磁盤陣列中需要傳輸?shù)臄?shù)據(jù),而不是現(xiàn)有技術(shù)中通過CPU的dma通道進行雙控間的數(shù)據(jù)交換工作,從而不會造成cpu資源的搶占和浪費;從而不會對雙控磁盤陣列的結(jié)構(gòu)造成改變,只需對控制器的控制程序稍作修改即可,不會增加額外成本。
[0015]2、本發(fā)明方法通過在VPD芯片上存儲的Vpdinfo (flag,data)來表示雙控間傳輸數(shù)據(jù)的狀態(tài)、并存儲要傳輸?shù)臄?shù)據(jù),實現(xiàn)方式簡單并且效率高。
【附圖說明】
[0016]圖1是本發(fā)明雙控磁盤陣列間通過VPD芯片進行數(shù)據(jù)交換方法的示意圖;
[0017]圖2為本發(fā)明雙控磁盤陣列間通過VPD芯片進行數(shù)據(jù)交換的裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0018]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0019]如圖1所示,本發(fā)明提供了一種雙控磁盤陣列間通過VPD芯片進行數(shù)據(jù)交換的方法,包括:
[0020]S1、若雙控磁盤陣列中的第一控制器需要向第二控制器傳輸數(shù)據(jù),則將所述數(shù)據(jù)寫入所述雙控磁盤陣列的VPD芯片中;
[0021]S2、雙控磁盤陣列中的第一控制器和第二控制器均周期性判斷所述VPD芯片中是否寫入了需要傳輸給所述第一控制器或第二控制器的數(shù)據(jù);
[0022]S3、如果是,則所述第一控制器或第二控制器讀取所述vro芯片中的數(shù)據(jù)。
[0023]如果步驟S2的判斷結(jié)果為否,則說明VPD芯片中未寫入需要傳輸給所述第一控制器或第二控制器的數(shù)據(jù),則不做任何處理,繼續(xù)周期性判斷所述vro芯片中是否寫入了需要傳輸給所述第一控制器或第二控制器的數(shù)據(jù);
[0024]其中,所述vro芯片是安裝在雙控磁盤陣列背板上的一個存儲芯片,可以分別聯(lián)通2個控制器,一般用來存儲產(chǎn)品廠商,型號等信息;在此,我們利用VPD芯片來存儲某控制器需要向另一控制器傳輸?shù)臄?shù)據(jù)。
[0025]在本發(fā)明中,利用VPD芯片來傳輸?shù)臄?shù)據(jù)通常是較小的數(shù)據(jù),因此,只需要在所述vro芯片中劃定一小片存儲區(qū)域,用來存儲上述需要傳輸?shù)臄?shù)據(jù)即可。
[0026]為了利用VPD芯片來傳輸芯片,本發(fā)明在所述VPD芯片中通過如下數(shù)據(jù)結(jié)構(gòu)存儲需要傳輸?shù)臄?shù)據(jù):
[0027]Vpdinfo (flag, data),
[0028]其中,所述flag為用于表示VPD芯片中數(shù)據(jù)存儲狀態(tài)的標(biāo)志位,所述data為用于存儲需要傳輸?shù)臄?shù)據(jù)的數(shù)據(jù)位。
[0029]通過上述數(shù)據(jù)結(jié)構(gòu),第一控制器和所述第二控制器可以通過讀取所述數(shù)據(jù)結(jié)構(gòu)Vpdinfo中的flag來判斷所述VPD芯片中是否寫入了需要傳輸給所述第一控制器或第二控制器的數(shù)據(jù)。
[0030]例如,當(dāng)flag為O表示沒有數(shù)據(jù),flag為I表示第一控制器發(fā)送數(shù)據(jù)給第二控制器,flag為2表示第二控制器發(fā)送數(shù)據(jù)給第一控制器。當(dāng)然上述flag也可以用其他的數(shù)據(jù)表示相應(yīng)含義,在具體實施中可根據(jù)需要設(shè)定。
[0031]通過上述數(shù)據(jù)結(jié)構(gòu),若雙控磁盤陣列中的第一控制器需要向第二控制器傳輸數(shù)據(jù),則將所述數(shù)據(jù)寫入所述雙控磁盤陣列的VPD芯片中數(shù)據(jù)結(jié)構(gòu)Vpdinfo的data數(shù)據(jù)位,并將所述數(shù)據(jù)結(jié)構(gòu)Vpdinfo的flag標(biāo)志位設(shè)置為I。
[0032]同理,若雙控磁盤陣列中的第二控制器需要向第一控制器傳輸數(shù)據(jù),則將所述數(shù)據(jù)寫入所述雙控磁盤陣列的VPD芯片中數(shù)據(jù)結(jié)構(gòu)Vpdinfo的data數(shù)據(jù)位,并將所述數(shù)據(jù)結(jié)構(gòu)Vpdinfo的flag標(biāo)志位設(shè)置為2。
[0