高速緩存驅(qū)動器、主機(jī)總線適配器及其使用的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲,更具體地,涉及一種高速緩存驅(qū)動器、主機(jī)總線適配器及其使用的方法。
【背景技術(shù)】
[0002]固態(tài)硬盤(SSD)由于訪問速度非常快,現(xiàn)已經(jīng)被廣泛用于標(biāo)準(zhǔn)硬盤(HDD)的高速緩存(Cache)。主機(jī)緩存軟件動態(tài)地管理固態(tài)硬盤與標(biāo)準(zhǔn)硬盤驅(qū)動器的使用,從而為用戶提供跨硬盤的全部容量的SSD級別的性能。
[0003]目前,主機(jī)緩存軟件是作為操作系統(tǒng)的驅(qū)動程序,稱為高速緩存驅(qū)動器(CacheDriver),來實現(xiàn)的。在對熱數(shù)據(jù)的讀寫等很多I/O操作中,需要對HDD和SSD都執(zhí)行I/O操作,在操作中,高速緩存驅(qū)動器捕獲主機(jī)操作系統(tǒng)發(fā)送給HDD的輸入/輸出(I/O)數(shù)據(jù)發(fā)送給HDD (第一次I/O操作),同時計算數(shù)據(jù)的熱度,即訪問的頻率。如果數(shù)據(jù)是“熱”數(shù)據(jù),即訪問頻率較高的數(shù)據(jù),需要更新到固態(tài)硬盤的高速緩存中,則高速緩存驅(qū)動程序就會復(fù)制數(shù)據(jù),并且傳輸?shù)焦虘B(tài)硬盤中(第二次I/O操作),因此,對于高速緩存驅(qū)動程序來說,對HDD和SSD都執(zhí)行I/O操作,需要兩次I/O操作。并且,高速緩存驅(qū)動程序訪問HDD和SSD時,在高速緩存驅(qū)動器內(nèi)采用的緩沖區(qū)是不同的存儲空間,這樣也要占據(jù)較多的存儲空間。
[0004]高速緩存驅(qū)動器通過主機(jī)總線適配器(Host Bus Adapter, HBA)訪問HDD和SSD。HBA是一個在服務(wù)器和存儲裝置間提供輸入/輸出(I/O)處理和物理連接的電路板和/或集成電路適配器。最常用的服務(wù)器內(nèi)部I/O通道是PCI,它們是連接服務(wù)器CPU和外圍設(shè)備的通訊協(xié)議。存儲系統(tǒng)的I/o通道有光纖、SAS和SATA。而HBA的作用就是實現(xiàn)內(nèi)部通道協(xié)議PCI和FC、SAS、SATA協(xié)議之間的轉(zhuǎn)換。主機(jī)總線適配卡內(nèi)部有一個小的中央處理器,一些內(nèi)存作為數(shù)據(jù)緩沖區(qū)以及連接SAS、SATA總線的連接器件等。這個小的中央處理器負(fù)責(zé)PCI和SAS、SATA通道兩種協(xié)議的轉(zhuǎn)換以及其它功能要求。HBA減輕了主處理器在數(shù)據(jù)存儲和檢索任務(wù)的負(fù)擔(dān),它能夠提高服務(wù)器的性能。
[0005]由于高速緩存驅(qū)動器訪問HDD和SSD需要兩次I/O操作,即高速緩存驅(qū)動器和HBA因為訪問HDD和SSD之間的交互也要兩次I/O操作。另夕卜,HBA訪問HDD和SSD時,在HBA內(nèi)采用的緩沖區(qū)是不同的存儲空間,這樣也要占據(jù)較多的存儲空間。
【發(fā)明內(nèi)容】
[0006]根據(jù)本發(fā)明的一個方面,提供了一種高速緩存驅(qū)動器使用的方法,包括:接收訪問數(shù)據(jù)的第一 I/o請求;以及響應(yīng)所述第一 I/O請求訪問的數(shù)據(jù)是熱數(shù)據(jù)并且所述第一 I/O請求需要訪問標(biāo)準(zhǔn)硬盤HDD,向主機(jī)總線適配器HBA發(fā)送第二 I/O請求,該第二 I/O請求要求所述HBA向所述HDD和固態(tài)硬盤SSD發(fā)送訪問數(shù)據(jù)的第三I/O請求。
[0007]根據(jù)本發(fā)明的第二個方面,提供了一種主機(jī)總線適配器HBA使用的方法,包括:從高速緩存驅(qū)動器接收第二 I/O請求,該第二 I/O請求要求該HBA向標(biāo)準(zhǔn)硬盤HDD和固態(tài)硬盤SSD發(fā)送訪問數(shù)據(jù)的第三I/O請求;以及發(fā)送所述第三I/O請求。
[0008]根據(jù)本發(fā)明的又一個方面,提供了一種高速緩存驅(qū)動器,包括:第一接收裝置,被配置為接收訪問數(shù)據(jù)的第一 I/o請求;以及發(fā)送裝置,被配置為響應(yīng)所述第一 I/O請求訪問的數(shù)據(jù)是熱數(shù)據(jù)并且所述第一 I/o請求需要訪問標(biāo)準(zhǔn)硬盤HDD,向主機(jī)總線適配器HBA發(fā)送第二 I/O請求,該第二 I/O請求要求所述HBA向所述HDD和固態(tài)硬盤SSD發(fā)送訪問數(shù)據(jù)的第二 i/o請求。
[0009]根據(jù)本發(fā)明的再一個方面,提供了一種主機(jī)總線適配器HBA,包括:接收裝置,被配置為從高速緩存驅(qū)動器接收第二 I/o請求,該第二 I/O請求要求該HBA向標(biāo)準(zhǔn)硬盤HDD和固態(tài)硬盤SSD發(fā)送訪問數(shù)據(jù)的第三I/O請求;以及
[0010]發(fā)送裝置,被配置為發(fā)送所述第三I/O請求。
[0011]本發(fā)明提出的方法和設(shè)備,能夠減少訪問HDD和SSD時高速緩存驅(qū)動程序和HBA之間的I/o操作,減少高速緩存驅(qū)動器以及HBA使用的存儲空間。
【附圖說明】
[0012]通過結(jié)合附圖對本公開示例性實施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號通常代表相同部件。
[0013]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框圖;
[0014]圖2示出了現(xiàn)有技術(shù)中,對于熱數(shù)據(jù)的讀缺失的I/O操作涉及到的流程;
[0015]圖3示出了根據(jù)本發(fā)明一種實施方式的一種高速緩存驅(qū)動器使用方法的流程;
[0016]圖4示意性示出的主機(jī)總線適配器HBA使用的方法的流程圖;
[0017]圖5示出了使用本發(fā)明的技術(shù)方案后的熱數(shù)據(jù)的的I/O操作涉及到的流程;
[0018]圖6示出了根據(jù)本發(fā)明一種實施方式的高速緩存驅(qū)動器600的結(jié)構(gòu)框圖;以及
[0019]圖7示出了根據(jù)本發(fā)明一種實施方式的主機(jī)總線適配器700的結(jié)構(gòu)框圖。
【具體實施方式】
[0020]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0021]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。
[0022]如圖1所示,計算機(jī)系統(tǒng)/服務(wù)器12以通用計算設(shè)備的形式表現(xiàn)。計算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0023]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0024]計算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0025]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM)30和/或高速緩存存儲器32。計算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實施例的功能。
[0026]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0027]計算機(jī)系統(tǒng)