處理緩存數(shù)據(jù)的方法
【專利摘要】本發(fā)明公開了一種處理緩存數(shù)據(jù)的方法,包括:獲取磁盤中的被操作文件的文件操作信息,文件操作信息包括文件操作類型;當(dāng)文件操作類型為文件刪除操作時(shí),將固態(tài)硬盤SSD緩存中的被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。本發(fā)明通過(guò)獲取刪除磁盤中目標(biāo)文件的操作信息,將SSD緩存中目標(biāo)文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,從而避免出現(xiàn)在磁盤中的目標(biāo)文件被刪除之后,由于SSD緩存中仍然存有該目標(biāo)文件,將該目標(biāo)文件重新寫回磁盤中的問(wèn)題。
【專利說(shuō)明】處理緩存數(shù)據(jù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)領(lǐng)域,具體涉及一種處理緩存數(shù)據(jù)的方法。
【背景技術(shù)】
[0002]在計(jì)算機(jī)系統(tǒng)中,輸入輸出(Input / Output, I / 0)性能是衡量系統(tǒng)整體性能的重要指標(biāo)。為了提高I / 0性能,目前開始使用I / 0性能優(yōu)異的固態(tài)硬盤(Solid StateDevice, SSD)設(shè)備作為硬盤驅(qū)動(dòng)器(Hard Disk Driver, HDD)磁盤的緩存設(shè)備,將HDD磁盤的熱點(diǎn)數(shù)據(jù)緩存到SSD設(shè)備中,利用SSD設(shè)備完成后續(xù)對(duì)熱點(diǎn)數(shù)據(jù)的I / 0操作。
[0003]具體的,如圖1所示,在計(jì)算機(jī)存儲(chǔ)系統(tǒng)中,對(duì)于業(yè)務(wù)發(fā)起的讀操作,若所需讀取的數(shù)據(jù)已緩存在SSD中,則從SSD讀取該數(shù)據(jù)到內(nèi)存并返回給業(yè)務(wù),如讀取數(shù)據(jù)塊b的操作;若還未緩存到SSD上,則將數(shù)據(jù)讀取到內(nèi)存中,并將該數(shù)據(jù)寫入到SSD中,如讀取數(shù)據(jù)塊c的操作。對(duì)于業(yè)務(wù)發(fā)起的寫操作,若所需寫入的數(shù)據(jù)已緩存在SSD中,則將數(shù)據(jù)寫入到SSD設(shè)備的對(duì)應(yīng)位置,如寫入數(shù)據(jù)塊a的操作;若未緩存,則從SSD中找出一個(gè)未被使用的塊或緩存了較冷數(shù)據(jù)的塊,將新數(shù)據(jù)寫入到SSD中,并將該塊數(shù)據(jù)置臟。當(dāng)緩存中的臟數(shù)據(jù)塊的達(dá)到預(yù)設(shè)的值后,會(huì)將部分臟數(shù)據(jù)塊回寫到HDD磁盤中。因此,將SSD作為緩存設(shè)備,可以提高SSD中的數(shù)據(jù)塊的I / 0的傳輸速度。但是,在實(shí)際進(jìn)行文件操作過(guò)程中,我們發(fā)現(xiàn),文件操作處理的對(duì)象是磁盤中的數(shù)據(jù)塊,并沒(méi)有包含緩存設(shè)備中保存的數(shù)據(jù)塊,而且緩存設(shè)備無(wú)法感知文件操作,無(wú)法及時(shí)更新。例如,在對(duì)一個(gè)文件進(jìn)行文件刪除操作后,磁盤中的該文件數(shù)據(jù)被刪除了,但是SSD仍然緩存著該文件數(shù)據(jù),而且該文件數(shù)據(jù)還仍然為臟數(shù)據(jù),這使得SSD中的該文件數(shù)據(jù)將在后續(xù)的某個(gè)時(shí)刻回寫到磁盤中。因此,現(xiàn)有的這種處理緩存數(shù)據(jù)的方法由于無(wú)法及時(shí)刪除SSD中的臟數(shù)據(jù),導(dǎo)致SSD空間浪費(fèi),而且這些臟數(shù)據(jù)將被回寫到磁盤上,使得文件刪除操作刪去的數(shù)據(jù)重新寫入磁盤,導(dǎo)致無(wú)用功。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例中提供一種處理緩存數(shù)據(jù)的方法,通過(guò)獲取刪除磁盤中目標(biāo)文件的操作信息,將SSD緩存中目標(biāo)文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,從而避免出現(xiàn)在磁盤中的目標(biāo)文件被刪除之后,由于SSD緩存中仍然存有該目標(biāo)文件,將該目標(biāo)文件重新寫回磁盤中的問(wèn)題。
[0005]本發(fā)明第一方面提供一種處理緩存數(shù)據(jù)的方法,其包括:
[0006]獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型;
[0007]當(dāng)所述文件操作類型為文件刪除操作時(shí),將固態(tài)硬盤SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0008]結(jié)合本發(fā)明第一方面,在第一方面的第一種可能實(shí)現(xiàn)方式中,所述獲取磁盤中的被操作文件的文件操作信息包括:
[0009]監(jiān)聽對(duì)文件進(jìn)行的操作,將監(jiān)聽到的被操作文件的文件操作信息保存至預(yù)先分配的內(nèi)存區(qū)中。
[0010]結(jié)合本發(fā)明第一方面的第一種可能實(shí)現(xiàn)方式,在第一方面的第二種可能實(shí)現(xiàn)方式中,所述監(jiān)聽對(duì)文件進(jìn)行的操作包括:
[0011]指定需要監(jiān)聽的文件以及文件操作類型;
[0012]監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作,所述文件操作屬于指定的需要監(jiān)聽的文件操作類型。
[0013]結(jié)合本發(fā)明第一方面的第二種可能實(shí)現(xiàn)方式,在第一方面的第三種可能實(shí)現(xiàn)方式中,所述指定需要進(jìn)行監(jiān)聽的文件以及文件操作類型包括:
[0014]創(chuàng)建文件操作的監(jiān)聽實(shí)例;
[0015]將需要監(jiān)聽的文件以及文件操作類型加入到所述監(jiān)聽實(shí)例中;
[0016]將所述監(jiān)聽實(shí)例保存至所述預(yù)先分配的內(nèi)存區(qū)中;
[0017]所述監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作包括:根據(jù)所述監(jiān)聽實(shí)例,監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作。
[0018]結(jié)合本發(fā)明第一方面的第三種可能實(shí)現(xiàn)方式,在第一方面的第四種可能實(shí)現(xiàn)方式中,所述創(chuàng)建文件操作的監(jiān)聽實(shí)例包括:
[0019]接收文件監(jiān)聽注冊(cè)命令;
[0020]在接收到文件監(jiān)聽注冊(cè)命令之后,確定需要監(jiān)聽的文件所在的設(shè)備;
[0021]判斷所述需要監(jiān)聽的文件所在的設(shè)備是否為所述SSD緩存,若所述需要監(jiān)聽的文件所在的設(shè)備為所述SSD緩存,則創(chuàng)建文件操作的監(jiān)聽實(shí)例。
[0022]結(jié)合本發(fā)明第一方面或第一方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第一方面的第五種可能實(shí)現(xiàn)方式中,所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:
[0023]判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0024]結(jié)合本發(fā)明第一方面的第五種可能實(shí)現(xiàn)方式,在第一方面的第六種可能實(shí)現(xiàn)方式中,在所述判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊之后,還包括:若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊為臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的臟標(biāo)志,以及取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0025]結(jié)合本發(fā)明第一方面或第一方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第一方面的第七種可能實(shí)現(xiàn)方式中,在所述獲取磁盤中的被操作文件的文件操作信息之后,還包括:
[0026]當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷當(dāng)前條件是否符合預(yù)設(shè)條件,所述預(yù)設(shè)條件包括如下一項(xiàng)或多項(xiàng)條件:
[0027]所述SSD緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量、所述SSD緩存的臟數(shù)據(jù)塊數(shù)量占所述SSD緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小、所述SSD緩存的空間占用率大于或等于預(yù)設(shè)的占用率、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小;
[0028]所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:[0029]若當(dāng)前條件符合所述預(yù)設(shè)條件,將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0030]結(jié)合本發(fā)明第一方面或第一方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第一方面的第八種可能實(shí)現(xiàn)方式中,所述獲取磁盤中的被操作文件的文件操作信息包括:獲取磁盤中的所述被操作文件的路徑信息;
[0031]在所述獲取磁盤中的被操作文件的文件操作信息之后,所述方法還包括:
[0032]當(dāng)所述文件操作類型為文件刪除操作時(shí),根據(jù)所述被操作文件的路徑信息,判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;
[0033]所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:
[0034]若所述被操作文件記錄于所述緩存的文件列表中,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0035]結(jié)合本發(fā)明第一方面或第一方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第一方面的第九種可能實(shí)現(xiàn)方式中,在所述獲取磁盤中的被操作文件的文件操作信息之后,所述方法還包括:
[0036]判斷所述SSD緩存的空間利用率是否大于或等于預(yù)設(shè)的利用率;
[0037]所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:
[0038]若所述SSD緩存的空間利用率大于或等于預(yù)設(shè)的利用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0039]或者,
[0040]判斷所述SSD緩存的緩存命中率是否大于或等于預(yù)設(shè)緩存命中率;
[0041]所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:
[0042]若所述SSD緩存的緩存命中率大于或等于預(yù)設(shè)的緩存命中率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0043]或者,
[0044]判斷所述SSD緩存的輸入輸出負(fù)載是否大于或等于預(yù)設(shè)負(fù)載;
[0045]所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:
[0046]若所述SSD緩存的輸入輸出負(fù)載大于或等于預(yù)設(shè)負(fù)載,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0047]或者,
[0048]判斷系統(tǒng)處理器的使用率是否大于或等于預(yù)設(shè)使用率;
[0049]所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:
[0050]若系統(tǒng)處理器的使用率大于或等于預(yù)設(shè)使用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0051]結(jié)合本發(fā)明第一方面或第一方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第一方面的第十種可能實(shí)現(xiàn)方式中,在所述獲取磁盤中的被操作文件的文件操作信息之后,還包括:
[0052]當(dāng)所述文件操作類型為文件修改操作時(shí),則判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;
[0053]若所述被操作文件沒(méi)有記錄于所述緩存的文件列表中,則在所述SSD緩存的文件列表中新建被操作文件的記錄,以及從所述磁盤中讀取存儲(chǔ)所述被操作文件的磁盤塊號(hào),將所述磁盤塊號(hào)存入到新建的被操作文件的記錄中。
[0054]本發(fā)明第二方面提供一種緩存控制設(shè)備,包括:
[0055]監(jiān)聽模塊,用于獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型;
[0056]處理模塊,用于接收監(jiān)聽模塊獲取的所述被操作文件的文件操作信息,并在當(dāng)所述文件操作類型為文件刪除操作時(shí),將固態(tài)硬盤SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0057]結(jié)合本發(fā)明第二方面,在第二方面的第一種可能實(shí)現(xiàn)方式中,所述監(jiān)聽模塊還用于監(jiān)聽對(duì)文件進(jìn)行的操作,將監(jiān)聽到的被操作文件的文件操作信息保存至預(yù)先分配的內(nèi)存區(qū)中。
[0058]結(jié)合本發(fā)明第二方面的第一種可能實(shí)現(xiàn)方式,在第二方面的第二種可能實(shí)現(xiàn)方式中,所述監(jiān)聽模塊還包括:
[0059]指定子模塊,用于指定需要監(jiān)聽的文件以及文件操作類型,
[0060]監(jiān)聽子模塊,用于監(jiān)聽對(duì)所述指定子模塊指定的需要監(jiān)聽的文件進(jìn)行的文件操作,所述文件操作屬于所述指定子模塊指定的需要監(jiān)聽的文件操作類型。
[0061]結(jié)合本發(fā)明第二方面的第二種可能實(shí)現(xiàn)方式,在第二方面的第三種可能實(shí)現(xiàn)方式中,所述監(jiān)聽模塊還包括:監(jiān)聽實(shí)例創(chuàng)建子模塊,所述監(jiān)聽實(shí)例創(chuàng)建子模塊用于創(chuàng)建文件操作的監(jiān)聽實(shí)例,將需要監(jiān)聽的文件以及文件操作類型加入到所述監(jiān)聽實(shí)例中,將所述監(jiān)聽實(shí)例保存至所述預(yù)先分配的內(nèi)存區(qū)中;
[0062]所述監(jiān)聽子模塊還用于根據(jù)所述監(jiān)聽實(shí)例創(chuàng)建子模塊創(chuàng)建的所述監(jiān)聽實(shí)例,監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作。
[0063]結(jié)合本發(fā)明第二方面的第三種可能實(shí)現(xiàn)方式,在第二方面的第四種可能實(shí)現(xiàn)方式中,所述監(jiān)聽實(shí)例創(chuàng)建子模塊還用于接收文件監(jiān)聽注冊(cè)命令,在接收到文件監(jiān)聽注冊(cè)命令之后,確定需要監(jiān)聽的文件所在的設(shè)備,以及判斷所述需要監(jiān)聽的文件所在的設(shè)備是否為所述SSD緩存,若所述需要監(jiān)聽的文件所在的設(shè)備為所述SSD緩存,則創(chuàng)建文件操作的監(jiān)聽實(shí)例。
[0064]結(jié)合本發(fā)明第二方面或第二方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第二方面的第五種可能實(shí)現(xiàn)方式中,所述處理模塊還用于判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0065]結(jié)合本發(fā)明第二方面的第五種可能實(shí)現(xiàn)方式,在第二方面的第六種可能實(shí)現(xiàn)方式中,所述處理模塊還用于在判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊之后,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊為臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的臟標(biāo)志,以及取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0066]結(jié)合本發(fā)明第二方面或第二方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第二方面的第七種可能實(shí)現(xiàn)方式中,所述處理模塊還用于:
[0067]在接收監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷當(dāng)前條件是否符合預(yù)設(shè)條件,所述預(yù)設(shè)條件包括如下一項(xiàng)或多項(xiàng)條件:
[0068]所述SSD緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量、所述SSD緩存的臟數(shù)據(jù)塊數(shù)量占所述SSD緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小、所述SSD緩存的空間占用率大于或等于預(yù)設(shè)的占用率、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大?。?br>
[0069]若當(dāng)前條件符合所述預(yù)設(shè)條件,將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0070]結(jié)合本發(fā)明第二方面或第二方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第二方面的第八種可能實(shí)現(xiàn)方式中,所述監(jiān)聽模塊還用于獲取磁盤中的所述被操作文件的路徑信息;
[0071]所述處理模塊還用于在接收監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),根據(jù)所述被操作文件的路徑信息,判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中,若所述被操作文件記錄于所述緩存的文件列表中,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0072]結(jié)合本發(fā)明第二方面或第二方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第二方面的第九種可能實(shí)現(xiàn)方式中,所述處理模塊還用于:
[0073]在接收到監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),
[0074]判斷所述SSD緩存的空間利用率是否大于或等于預(yù)設(shè)的利用率,若所述SSD緩存的空間利用率大于或等于預(yù)設(shè)的利用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0075]或者,
[0076]判斷所述SSD緩存的緩存命中率是否大于或等于預(yù)設(shè)緩存命中率,若所述SSD緩存的緩存命中率大于或等于預(yù)設(shè)的緩存命中率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0077]或者,
[0078]判斷所述SSD緩存的輸入輸出負(fù)載是否大于或等于預(yù)設(shè)負(fù)載,若所述SSD緩存的輸入輸出負(fù)載大于或等于預(yù)設(shè)負(fù)載,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0079]或者,
[0080]判斷系統(tǒng)處理器的使用率是否大于或等于預(yù)設(shè)使用率,若系統(tǒng)處理器的使用率大于或等于預(yù)設(shè)使用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0081]結(jié)合本發(fā)明第二方面或第二方面的第一至四任意一種可能實(shí)現(xiàn)方式,在第二方面的第十種可能實(shí)現(xiàn)方式中,所述處理模塊還用于在接收到監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件修改操作時(shí),則判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;
[0082]若所述被操作文件沒(méi)有記錄于所述緩存的文件列表中,則在所述SSD緩存的文件列表中新建被操作文件的記錄,以及從所述磁盤中讀取存儲(chǔ)所述被操作文件的磁盤塊號(hào),將所述磁盤塊號(hào)存入到新建的被操作文件的記錄中。
[0083]本發(fā)明第三方面提供一種存儲(chǔ)系統(tǒng),其包括內(nèi)存、固態(tài)硬盤SSD緩存、磁盤存儲(chǔ)介質(zhì),所述內(nèi)存、所述SSD緩存、所述磁盤存儲(chǔ)介質(zhì)通過(guò)數(shù)據(jù)線連接,所述存儲(chǔ)系統(tǒng)還包括如本發(fā)明第二方面或第二方面的各種可能實(shí)現(xiàn)方式中所述的緩存控制設(shè)備,所述緩存控制設(shè)備分別與所述內(nèi)存、所述SSD緩存和所述磁盤存儲(chǔ)介質(zhì)連接。
[0084]本發(fā)明第四方面提供一種處理緩存數(shù)據(jù)的方法,包括:
[0085]分布式節(jié)點(diǎn)根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息;
[0086]根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的固態(tài)硬盤SSD緩存中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存中的數(shù)據(jù)塊與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
[0087]結(jié)合本發(fā)明第四方面,在第四方面的第一種可能實(shí)現(xiàn)方式中,所述分布式節(jié)點(diǎn)根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息包括:
[0088]根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,查詢所述頁(yè)高速緩存中是否存在需置無(wú)效的數(shù)據(jù)塊,若所述頁(yè)高速緩存中存在需置無(wú)效的數(shù)據(jù)塊,則獲取所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息。
[0089]結(jié)合本發(fā)明第四方面的第一種可能實(shí)現(xiàn)方式,在第四方面的第二種可能實(shí)現(xiàn)方式中,在所述分布式節(jié)點(diǎn)根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,還包括:將獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息寫入所述分布式節(jié)點(diǎn)上的存儲(chǔ)有監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
[0090]結(jié)合本發(fā)明第四方面的第二種可能實(shí)現(xiàn)方式,在第四方面的第三種可能實(shí)現(xiàn)方式中,所述根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的SSD緩存中需置無(wú)效的數(shù)據(jù)塊,包括:
[0091]根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,獲取所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的磁盤塊號(hào),所述磁盤塊號(hào)與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng);
[0092]根據(jù)所述磁盤塊號(hào),在所述SSD緩存中查詢與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊;
[0093]將查詢到的與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊確定為所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊。
[0094]結(jié)合本發(fā)明第四方面的第三種可能實(shí)現(xiàn)方式,在第四方面的第四種可能實(shí)現(xiàn)方式中,所述將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,包括:
[0095]判斷所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,
[0096]若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志;在取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志之后,取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài);
[0097]若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài)。
[0098]本發(fā)明第五方面提供一種分布式節(jié)點(diǎn),其包括:
[0099]監(jiān)聽模塊,用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息;
[0100]處理模塊,用于接收監(jiān)聽模塊獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的固態(tài)硬盤SSD緩存中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存中的數(shù)據(jù)塊與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
[0101]結(jié)合本發(fā)明第四方面,在第四方面的第一種可能實(shí)現(xiàn)方式中,所述監(jiān)聽模塊還用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,查詢所述頁(yè)高速緩存中是否存在需置無(wú)效的數(shù)據(jù)塊,若所述頁(yè)高速緩存中存在需置無(wú)效的數(shù)據(jù)塊,則獲取所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息。
[0102]結(jié)合本發(fā)明第四方面的第一種可能實(shí)現(xiàn)方式,在第四方面的第二種可能實(shí)現(xiàn)方式中,所述監(jiān)聽模塊還用于在根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,將獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息寫入所述分布式節(jié)點(diǎn)上的存儲(chǔ)有監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
[0103]結(jié)合本發(fā)明第四方面的第二種可能實(shí)現(xiàn)方式,在第四方面的第三種可能實(shí)現(xiàn)方式中,所述處理模塊還包括:
[0104]獲取子模塊,用于在接收監(jiān)聽模塊獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,獲取所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的磁盤塊號(hào),所述磁盤塊號(hào)與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng);
[0105]查詢子模塊,根據(jù)所述獲取子模塊獲取到的所述磁盤塊號(hào),在所述SSD緩存中查詢與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊;
[0106]無(wú)效子模塊,將所述查詢子模塊查詢到的與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊確定為所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊。
[0107]結(jié)合本發(fā)明第四方面的第三種可能實(shí)現(xiàn)方式,在第四方面的第四種可能實(shí)現(xiàn)方式中,所述無(wú)效子模塊還用于:
[0108]判斷所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志;在取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志之后,取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài);
[0109]若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài)。
[0110]本發(fā)明第六方面提供一種分布式存儲(chǔ)系統(tǒng),其包括:虛擬機(jī)、如本發(fā)明第五方面或第五方面的各種可能實(shí)現(xiàn)方式中所述的分布式節(jié)點(diǎn)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN,所述分布式節(jié)點(diǎn)掛載所述SAN上的數(shù)據(jù)塊,所述虛擬機(jī)用于從所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中讀取數(shù)據(jù),并進(jìn)行讀或?qū)懖僮鳌?br>
[0111]在本發(fā)明實(shí)施例中提供的一種處理緩存數(shù)據(jù)的方法中,通過(guò)獲取刪除磁盤中目標(biāo)文件的操作信息,將SSD緩存中目標(biāo)文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,從而避免出現(xiàn)在磁盤中的目標(biāo)文件被刪除之后,由于SSD緩存中仍然存有該目標(biāo)文件,將該目標(biāo)文件重新寫回磁盤中的問(wèn)題。由于將SSD緩存中目標(biāo)文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,從而將目標(biāo)文件所占用的緩存空間釋放,用于其他文件的存儲(chǔ),因此,本發(fā)明實(shí)施例可以提高緩存設(shè)備的緩存利用率。
[0112]在本發(fā)明實(shí)施例中提供的另一種處理緩存數(shù)據(jù)的方法中,分布式節(jié)點(diǎn)獲取頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的SSD緩存中需置無(wú)效的數(shù)據(jù)塊,將SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,從而可以在另一分布式節(jié)點(diǎn)對(duì)SAN中的數(shù)據(jù)進(jìn)行寫操作后,及時(shí)將該分布式節(jié)點(diǎn)的SSD緩存中該數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)塊置無(wú)效,避免將寫操作之前的該數(shù)據(jù)再次讀取到頁(yè)高速緩存中,防止分布式節(jié)點(diǎn)讀取到舊數(shù)據(jù)。
【專利附圖】
【附圖說(shuō)明】
[0113]圖1是現(xiàn)有的計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)結(jié)構(gòu)示意圖;
[0114]圖2是本發(fā)明實(shí)施例1提供的一種處理緩存數(shù)據(jù)的方法的流程圖;
[0115]圖3是本發(fā)明實(shí)施例2提供的一種處理緩存數(shù)據(jù)的方法的流程圖;
[0116]圖4是監(jiān)聽步驟流程示意圖;
[0117]圖5是創(chuàng)建文件操作的監(jiān)聽實(shí)例的步驟示意圖;
[0118]圖6是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)示意圖;
[0119]圖7是本發(fā)明實(shí)施例3提供的一種緩存控制設(shè)備結(jié)構(gòu)示意圖;
[0120]圖8是本發(fā)明實(shí)施例4提供的一種緩存控制設(shè)備結(jié)構(gòu)示意圖;
[0121]圖9是本發(fā)明實(shí)施例6提供的一種處理緩存數(shù)據(jù)的方法的流程圖;
[0122]圖10是多節(jié)點(diǎn)共孚存儲(chǔ)系統(tǒng)的結(jié)構(gòu)不意圖;
[0123]圖11是本發(fā)明實(shí)施例7提供的一種處理緩存數(shù)據(jù)的方法的流程圖;
[0124]圖12是本發(fā)明實(shí)施例8提供的一種分布式節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0125]圖13是本發(fā)明實(shí)施例9提供的一種分布式節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0126]圖14是本發(fā)明實(shí)施例5提供的一種存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;
[0127]圖15是本發(fā)明實(shí)施例10提供的一種分布式存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;
[0128]圖16是本發(fā)明實(shí)施例11提供的一種緩存控制設(shè)備的結(jié)構(gòu)示意圖;
[0129]圖17是本發(fā)明實(shí)施例12提供的一種分布式節(jié)點(diǎn)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0130]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0131]如圖2所示,本發(fā)明實(shí)施例1提供一種處理緩存數(shù)據(jù)的方法,包括:[0132]101、獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型。
[0133]當(dāng)用戶對(duì)文件進(jìn)行操作時(shí),緩存控制設(shè)備獲取磁盤中的被操作文件的文件操作信息。文件操作信息中的文件操作類型包括文件刪除操作、文件修改操作、文件移動(dòng)操作、文件打開操作和文件關(guān)閉操作等多種類型。
[0134]102、當(dāng)所述文件操作類型為文件刪除操作時(shí),將SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0135]步驟102的具體實(shí)現(xiàn)方式可以為:判斷被操作文件的所述文件操作類型是否為文件刪除操作,若判斷所述文件操作類型為文件刪除操作,則將SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0136]由于在用戶對(duì)文件進(jìn)行操作之后,緩存控制設(shè)備可以獲得被操作文件的文件操作類型,若文件操作類型為文件刪除操作,則可以刪除緩存中的被操作文件,即將緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。因此,在用戶對(duì)文件進(jìn)行文件刪除操作之后,不僅磁盤中保存的被操作文件被刪除,緩存中的被操作文件也將被刪除,從而可以節(jié)省緩存的使用空間,提高緩存空間利用率,避免緩存中的被操作文件被回寫到磁盤上。
[0137]如圖3所示,本發(fā)明實(shí)施例2提供一種處理緩存數(shù)據(jù)的方法,包括:
[0138]201、監(jiān)聽對(duì)文件進(jìn)行的操作,將監(jiān)聽到的被操作文件的文件操作信息保存至預(yù)先分配的內(nèi)存區(qū)中。
[0139]在步驟201中,可以將內(nèi)存緩沖buffer作為預(yù)先分配的內(nèi)存區(qū)。緩存控制設(shè)備可以在實(shí)施監(jiān)聽之前,指定需要監(jiān)聽的文件以及文件操作類型,然后監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作,所述文件操作屬于指定的需要監(jiān)聽的文件操作類型。
[0140]為了實(shí)現(xiàn)對(duì)需要監(jiān)聽的文件以及文件操作類型的指定,如圖4所示,可以實(shí)施如下步驟:
[0141]301、創(chuàng)建文件操作的監(jiān)聽實(shí)例;
[0142]302、將需要監(jiān)聽的文件以及文件操作類型加入到所述監(jiān)聽實(shí)例中;
[0143]303、將所述監(jiān)聽實(shí)例保存至預(yù)先分配的內(nèi)存區(qū)中。
[0144]在實(shí)施步驟301至303之后,根據(jù)所述監(jiān)聽實(shí)例,可以監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作。
[0145]在上述步驟301中,如圖5所示,創(chuàng)建文件操作的監(jiān)聽實(shí)例的步驟可以包括:
[0146]401、接收文件監(jiān)聽注冊(cè)命令;
[0147]402、在接收到文件監(jiān)聽注冊(cè)命令之后,確定需要監(jiān)聽的文件所在的設(shè)備;
[0148]403、判斷所述需要監(jiān)聽的文件所在的設(shè)備是否為SSD緩存,若所述需要監(jiān)聽的文件所在的設(shè)備為SSD緩存,則創(chuàng)建文件操作的監(jiān)聽實(shí)例。
[0149]在執(zhí)行步驟201之后,所述緩存控制設(shè)備可以執(zhí)行如下步驟:
[0150]202、從所述預(yù)先分配的內(nèi)存區(qū)中獲取所述被操作文件的文件操作類型。
[0151]203、判斷所述文件操作類型是否為文件刪除操作。
[0152]204、當(dāng)所述文件操作類型為文件刪除操作時(shí),則遍歷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊,判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊。[0153]205、若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0154]206、若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊為臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的臟標(biāo)志,以及取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0155]在取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)識(shí)之后,所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊在緩存中的空間可以被重新利用,所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊將不會(huì)被回寫至磁盤中。
[0156]為了進(jìn)一步確認(rèn)所述緩存中保存有被操作文件,本發(fā)明實(shí)施例還可以采取以下進(jìn)一步技術(shù)措施。具體的,所述獲取被操作文件的文件操作信息包括:獲取被操作文件的路徑信息。在所述獲取磁盤中的被操作文件的文件操作信息之后,根據(jù)所述被操作文件的路徑信息,判斷所述被操作文件是否記錄于所述緩存的文件列表中。若所述被操作文件記錄于所述緩存的文件列表中,則表示所述緩存中保存有被操作文件,進(jìn)而可以判斷所述文件操作類型是否為文件刪除操作,當(dāng)所述文件操作類型是文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0157]此外,在實(shí)際應(yīng)用中,當(dāng)存儲(chǔ)系統(tǒng)的當(dāng)前條件符合預(yù)設(shè)條件時(shí),則說(shuō)明存儲(chǔ)系統(tǒng)中的SSD緩存有必要進(jìn)一步提高緩存的利用率和I / 0傳輸性能,因此,在執(zhí)行步驟201之后,所述方法還可以包括:當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷當(dāng)前條件是否符合預(yù)設(shè)條件,所述預(yù)設(shè)條件包括如下一項(xiàng)或多項(xiàng)條件:
[0158]所述SSD緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量、所述SSD緩存的臟數(shù)據(jù)塊數(shù)量占所述SSD緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小、所述SSD緩存的空間占用率大于或等于預(yù)設(shè)的占用率、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小。
[0159]若當(dāng)前條件符合所述預(yù)設(shè)條件,將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0160]例如,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷所述緩存的臟數(shù)據(jù)塊數(shù)量是否大于或等于預(yù)設(shè)的數(shù)量,若所述緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0161]還例如,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷所述緩存的臟數(shù)據(jù)塊數(shù)量占所述緩存的總數(shù)據(jù)塊數(shù)量的比例是否大于或等于預(yù)設(shè)閾值,若判斷所述緩存的臟數(shù)據(jù)塊數(shù)量占所述緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。優(yōu)選的,該預(yù)設(shè)閾值設(shè)為50%。
[0162]還例如,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷所述被操作文件的大小是否大于或等于預(yù)設(shè)的文件大小,若判斷所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。優(yōu)選的,預(yù)設(shè)的文件大小設(shè)為100KB。
[0163]還例如,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷緩存的空間占用率是否大于或等于預(yù)設(shè)的占用率,若判斷緩存的空間占用率大于或等于預(yù)設(shè)的占用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0164]此外,在實(shí)際應(yīng)用中,存儲(chǔ)系統(tǒng)中的SSD緩存資源可能富于,也可能緊張。為了避免SSD緩存資源出現(xiàn)緊張,提高緩存的利用率和I / 0傳輸性能,可以采取以下進(jìn)一步技術(shù)措施。具體的,在執(zhí)行步驟201之后,所述方法還可以包括:
[0165]判斷所述SSD緩存的空間利用率是否大于或等于預(yù)設(shè)的利用率;
[0166]若所述SSD緩存的空間利用率大于或等于預(yù)設(shè)的利用率,而且當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0167]或者,
[0168]判斷所述SSD緩存的緩存命中率是否大于或等于預(yù)設(shè)緩存命中率;
[0169]若所述SSD緩存的緩存命中率大于或等于預(yù)設(shè)的緩存命中率,而且當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0170]或者,
[0171]判斷所述SSD緩存的輸入輸出負(fù)載是否大于或等于預(yù)設(shè)負(fù)載;
[0172]若所述SSD緩存的輸入輸出負(fù)載大于或等于預(yù)設(shè)負(fù)載,而且當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0173]或者,
[0174]判斷系統(tǒng)處理器的使用率是否大于或等于預(yù)設(shè)使用率;
[0175]若系統(tǒng)處理器的使用率大于或等于預(yù)設(shè)使用率,而且當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0176]另外,當(dāng)被操作文件的文件操作類型為文件修改操作時(shí),本發(fā)明實(shí)施例還可以采取以下進(jìn)一步技術(shù)措施,以避免在調(diào)用緩存數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤。具體的,所述處理緩存數(shù)據(jù)的方法還可以包括:
[0177]在所述獲取被操作文件的文件操作信息之后,判斷所述文件操作類型是否為文件修改操作,當(dāng)所述文件操作類型為文件修改操作時(shí),則判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;若所述被操作文件沒(méi)有記錄于所述緩存的文件列表中,則在所述SSD緩存的文件列表中新建被操作文件的記錄,以及從所述磁盤中讀取存儲(chǔ)所述被操作文件的磁盤塊號(hào),將所述磁盤塊號(hào)存入到新建的被操作文件的記錄中。
[0178]例如,當(dāng)分布式式節(jié)點(diǎn)A將共享磁盤中的某個(gè)文件修改,則將該文件記錄在SSD緩存的文件列表中,當(dāng)分布式節(jié)點(diǎn)B需要讀取該文件時(shí),將查詢文件列表中的記錄,當(dāng)發(fā)現(xiàn)文件列表中存在被操作文件的記錄時(shí),則確定SSD緩存中的該文件并不是最新的修改后的文件,將從磁盤中讀取最新的修改后的文件。因此,采取上述技術(shù)措施可以避免分布式節(jié)點(diǎn)從SSD緩存中讀取到過(guò)時(shí)的數(shù)據(jù)。
[0179]如圖6所示,下面以Linux操作系統(tǒng)為例進(jìn)行說(shuō)明。
[0180]Linux操作系統(tǒng)內(nèi)核包含有文件系統(tǒng)層和塊設(shè)備層,文件系統(tǒng)層又包含文件操作模塊、文件I / 0模塊和文件操作監(jiān)聽模塊,其中的文件操作模塊用于實(shí)施文件的操作,文件操作監(jiān)聽模塊可以監(jiān)聽文件操作模塊進(jìn)行的文件操作,獲得文件操作信息,文件操作信息包括文件操作類型等信息。其中,可以監(jiān)聽到的文件操作類型包括:
[0181 ] FILE_ACCESS,即文件被訪問(wèn);
[0182]FILE_M0DIFY,文件被寫;
[0183]FILE_ATTRIB,文件屬性被修改;
[0184]FILE_CLOSE_WRITE,可寫文件被關(guān)閉;[0185]FILE_CL0SE_N0WRITE,不可寫文件被關(guān)閉;
[0186]FILE_0PEN,文件被打開;
[0187]FILE_M0VED_FR0M,文件被移走,如 mv ;
[0188]FILE_M0VED_T0,文件被移來(lái),如 mv、cp ;
[0189]FILE_CREATE,創(chuàng)建新文件;
[0190]FILE_DELETE,文件被刪除,如 rm ;
[0191]FILE_DELETE_SELF,自刪除,即一個(gè)可執(zhí)行文件在執(zhí)行時(shí)刪除自己;
[0192]FILE_M0VE_SELF,自移動(dòng),即一個(gè)可執(zhí)行文件在執(zhí)行時(shí)移動(dòng)自己;
[0193]FILE_UNM0UNT,宿主文件系統(tǒng)被解掛umount ;
[0194]FILE_CL0SE,文件被關(guān)閉;
[0195]FILE_M0VE,文件被移動(dòng)。
[0196]文件I / 0模塊用于從存儲(chǔ)設(shè)備中輸入輸出文件數(shù)據(jù)。塊設(shè)備層位于文件系統(tǒng)層的下級(jí),其又包含磁盤緩存管理部分和塊設(shè)備驅(qū)動(dòng)部分,磁盤緩存管理部分包括I / 0管理模塊、空間管理模塊和文件操作處理模塊,塊設(shè)備驅(qū)動(dòng)部分包括緩存設(shè)備驅(qū)動(dòng)模塊和磁盤設(shè)備驅(qū)動(dòng)模塊,緩存設(shè)備驅(qū)動(dòng)模塊用于驅(qū)動(dòng)緩存設(shè)備,磁盤設(shè)備驅(qū)動(dòng)模塊用于驅(qū)動(dòng)磁盤設(shè)備??臻g管理模塊通過(guò)I / 0管理模塊控制緩存設(shè)備驅(qū)動(dòng)和磁盤設(shè)備驅(qū)動(dòng),以對(duì)緩存設(shè)備和磁盤設(shè)備中的數(shù)據(jù)進(jìn)行處理。文件操作處理模塊用于讀取文件操作監(jiān)聽模塊獲取的文件操作信息,如監(jiān)聽文件的文件操作類型,監(jiān)聽文件的路徑信息、監(jiān)聽文件的修改信息等。文件操作處理模塊將讀取的文件操作信息傳輸給空間管理模塊,以使空間管理模塊對(duì)緩存設(shè)備中的被操作文件作出處理。這里需要指出的是,現(xiàn)有的操作系統(tǒng)內(nèi)核并不包含有文件操作監(jiān)聽模塊和文件操作處理模塊,正是這兩個(gè)模塊使得緩存控制設(shè)備能夠在文件被操作后,及時(shí)響應(yīng),并對(duì)緩存中的該文件做出相應(yīng)的處理,以提高緩存利用率,避免調(diào)用的緩存數(shù)據(jù)出現(xiàn)錯(cuò)誤。
[0197]為了更清楚的說(shuō)明本發(fā)明實(shí)施例2的方法,以下構(gòu)建一個(gè)實(shí)際場(chǎng)景對(duì)其進(jìn)行詳細(xì)介紹?,F(xiàn)有一個(gè)Linux服務(wù)器,其上運(yùn)行的業(yè)務(wù)特點(diǎn)為:所讀寫的文件以大文件為主(文件大小在1MB及以上),業(yè)務(wù)數(shù)據(jù)存放在數(shù)據(jù)盤/ dev / sda上,該盤為本地磁盤,大小為10G;服務(wù)器上還設(shè)有一張SSD卡,路徑為/ dev / hioa,大小為2G。在業(yè)務(wù)開始前,已將該磁盤和SSD卡封裝為一個(gè)帶緩存的磁盤設(shè)備/ dev / dm-Οο在/ dev / dm_0上格式化了 ext3文件系統(tǒng)。并掛載到根文件系統(tǒng)的/ home / datastore目錄下。在該服務(wù)器中,所建立的共享信息的內(nèi)存區(qū)指針為char*info_buffer。
[0198]將本發(fā)明實(shí)施例2中的方案應(yīng)用到該服務(wù)器中。預(yù)設(shè)的操作處理?xiàng)l件:臟塊比重大于等于30%,文件刪除操作的響應(yīng)信息:系統(tǒng)處理器的使用率低于20%、緩存設(shè)備緩存空間的利用率高于80%。以下為應(yīng)用實(shí)施例2方法所包括的具體步驟:
[0199]例如,業(yè)務(wù)創(chuàng)建了 20個(gè)文件,位于數(shù)據(jù)存儲(chǔ)datastore中,分別為datal?data20。每個(gè)文件大小均為1G。分別對(duì)這20個(gè)文件啟動(dòng)了文件修改和刪除監(jiān)聽操作。
[0200]業(yè)務(wù)讀取datal的所有數(shù)據(jù),這些數(shù)據(jù)緩存到SSD卡上;
[0201]業(yè)務(wù)讀取data2的所有數(shù)據(jù),這些數(shù)據(jù)緩存到SSD卡上,此時(shí),SSD緩存空間已將全部用完;
[0202]業(yè)務(wù)重寫了 datal文件的所有數(shù)據(jù),此時(shí),datal文件緩存在SSD卡上的1G數(shù)據(jù)均變臟;文件操作監(jiān)聽模塊檢測(cè)到本次文件修改操作,將文件的路徑名、文件操作類型信息存放到緩存單元info_buffer中,文件操作處理模塊從info_buffer中讀取datal文件修改記錄,查詢發(fā)現(xiàn)該文件還未記錄在文件列表,將datal文件記錄到磁盤緩存模塊的文件列表中;
[0203]業(yè)務(wù)讀取data3文件的所有數(shù)據(jù),由于此時(shí)緩存空間已用完,且datal的數(shù)據(jù)為臟無(wú)法替換,故將data2的所有已緩存數(shù)據(jù)替換出SSD卡;此時(shí)SSD卡上緩存的數(shù)據(jù)為datal的1G臟數(shù)據(jù)以及data3的1G有效數(shù)據(jù);
[0204]業(yè)務(wù)讀取data4文件的所有數(shù)據(jù),由于此時(shí)緩存空間已用完,且datal的數(shù)據(jù)為臟無(wú)法替換,故將data3的所有已緩存數(shù)據(jù)替換出SSD卡;此時(shí)SSD卡上緩存的數(shù)據(jù)為datal的1G臟數(shù)據(jù)以及data4的1G有效數(shù)據(jù);
[0205]業(yè)務(wù)刪除datal文件。文件操作監(jiān)聽模塊檢測(cè)到本次文件刪除操作,將文件的路徑名、文件操作類型信息存放到info_buffer中,文件操作處理模塊從info_buffer中讀取datal文件刪除記錄,查詢發(fā)現(xiàn)該記錄已位于文件列表中,處理模塊獲取datal文件所有的磁盤數(shù)據(jù)塊號(hào)信息,為磁盤塊201開始的250K個(gè)磁盤塊;
[0206]處理模塊從201號(hào)磁盤塊開始,依次查詢?cè)搲K是否緩存在SSD上。查詢發(fā)現(xiàn)201號(hào)磁盤塊已緩存,且為臟,則取消其臟標(biāo)志,再將其置為無(wú)效,依次完成250K個(gè)磁盤塊處理。
[0207]此時(shí)SSD卡上緩存的數(shù)據(jù)為data4的1G有效數(shù)據(jù);業(yè)務(wù)讀取data5文件的所有數(shù)據(jù),由于此時(shí)緩存空間還有1G剩余,故將data5的數(shù)據(jù)均緩存到SSD卡上;此時(shí)SSD卡上緩存的數(shù)據(jù)為data4和data5的共2G有效數(shù)據(jù)。
[0208]如圖7所示,本發(fā)明實(shí)施例3還提供一種緩存控制設(shè)備,包括:
[0209]監(jiān)聽模塊501,用于獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型;
[0210]處理模塊502,用于接收監(jiān)聽模塊501獲取的所述被操作文件的文件操作信息,并在當(dāng)所述文件操作類型為文件刪除操作時(shí),將固態(tài)硬盤SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0211]如圖8所示,本發(fā)明實(shí)施例4還提供一種緩存控制設(shè)備,包括:
[0212]監(jiān)聽模塊601,用于獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型;
[0213]處理模塊602,用于接收監(jiān)聽模塊601獲取的所述被操作文件的文件操作信息,并在當(dāng)所述文件操作類型為文件刪除操作時(shí),將固態(tài)硬盤SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0214]所述監(jiān)聽模塊601還用于監(jiān)聽對(duì)文件進(jìn)行的操作,將監(jiān)聽到的被操作文件的文件操作信息保存至預(yù)先分配的內(nèi)存區(qū)中;
[0215]所述處理模塊602還用于從所述預(yù)先分配的內(nèi)存區(qū)中獲取所述文件操作信息中的文件操作類型。
[0216]優(yōu)選的,所述監(jiān)聽模塊601包括:
[0217]指定子模塊603,用于指定需要監(jiān)聽的文件以及文件操作類型;
[0218]監(jiān)聽子模塊604,用于監(jiān)聽對(duì)所述指定子模塊603指定的需要監(jiān)聽的文件進(jìn)行的文件操作,所述文件操作屬于所述指定子模塊603指定的需要監(jiān)聽的文件操作類型。[0219]優(yōu)選的,所述監(jiān)聽模塊601包括:監(jiān)聽實(shí)例創(chuàng)建子模塊605,所述監(jiān)聽實(shí)例創(chuàng)建子模塊605用于創(chuàng)建文件操作的監(jiān)聽實(shí)例,將需要監(jiān)聽的文件以及文件操作類型加入到所述監(jiān)聽實(shí)例中,以及將所述監(jiān)聽實(shí)例保存至預(yù)先分配的內(nèi)存區(qū)中;
[0220]所述監(jiān)聽子模塊604還用于根據(jù)所述監(jiān)聽實(shí)例創(chuàng)建子模塊605創(chuàng)建的所述監(jiān)聽實(shí)例,監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作。
[0221]優(yōu)選的,所述監(jiān)聽實(shí)例創(chuàng)建子模塊605還用于接收文件監(jiān)聽注冊(cè)命令,以及在接收到文件監(jiān)聽注冊(cè)命令之后,獲取需要監(jiān)聽的文件所在的設(shè)備,以及判斷所述需要監(jiān)聽的文件所在的設(shè)備是否為緩存設(shè)備,若所述需要監(jiān)聽的文件所在的設(shè)備為緩存設(shè)備,則創(chuàng)建文件操作的監(jiān)聽實(shí)例。
[0222]優(yōu)選的,所述處理模塊602還用于遍歷在所述SSD緩存中所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊,判斷在所述緩存中所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0223]優(yōu)選的,所述處理模塊602還用于在判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊之后,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊為臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的臟標(biāo)志,以及取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0224]優(yōu)選的,所述處理模塊602還用于在接收監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷當(dāng)前條件是否符合預(yù)設(shè)條件,所述預(yù)設(shè)條件包括如下一項(xiàng)或多項(xiàng)條件:
[0225]所述SSD緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量、所述SSD緩存的臟數(shù)據(jù)塊數(shù)量占所述SSD緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小、所述SSD緩存的空間占用率大于或等于預(yù)設(shè)的占用率、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大??;
[0226]若當(dāng)前條件符合所述預(yù)設(shè)條件,將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0227]優(yōu)選的,所述監(jiān)聽模塊601進(jìn)一步用于獲取被操作文件的路徑信息;
[0228]所述處理模塊602還用于在接收監(jiān)聽模塊601獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),根據(jù)所述被操作文件的路徑信息,判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中,若所述被操作文件記錄于所述緩存的文件列表中,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0229]優(yōu)選的,所述處理模塊602還用于:在所述接收到所述監(jiān)聽模塊601獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),
[0230]判斷所述SSD緩存的空間利用率是否大于或等于預(yù)設(shè)的利用率,若所述SSD緩存的空間利用率大于或等于預(yù)設(shè)的利用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0231]或者,
[0232]判斷所述SSD緩存的緩存命中率是否大于或等于預(yù)設(shè)緩存命中率,若所述SSD緩存的緩存命中率大于或等于預(yù)設(shè)的緩存命中率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0233]或者,[0234]判斷所述SSD緩存的輸入輸出負(fù)載是否大于或等于預(yù)設(shè)負(fù)載,若所述SSD緩存的輸入輸出負(fù)載大于或等于預(yù)設(shè)負(fù)載,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0235]或者,
[0236]判斷系統(tǒng)處理器的使用率是否大于或等于預(yù)設(shè)使用率,若系統(tǒng)處理器的使用率大于或等于預(yù)設(shè)使用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0237]優(yōu)選的,所述處理模塊602還用于在接收到監(jiān)聽模塊601獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件修改操作時(shí),則判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;
[0238]若所述被操作文件沒(méi)有記錄于所述緩存的文件列表中,則在所述SSD緩存的文件列表中新建被操作文件的記錄,以及從所述磁盤中讀取存儲(chǔ)所述被操作文件的磁盤塊號(hào),將所述磁盤塊號(hào)存入到新建的被操作文件的記錄中。
[0239]如圖14所示,本發(fā)明實(shí)施例5提供一種存儲(chǔ)系統(tǒng)1101,包括內(nèi)存1102、固態(tài)硬盤SSD緩存1103、磁盤存儲(chǔ)介質(zhì)1104,所述內(nèi)存1102、所述SSD緩存1103、所述磁盤存儲(chǔ)介質(zhì)1104通過(guò)數(shù)據(jù)線連接,所述存儲(chǔ)系統(tǒng)還包括如上所述的緩存控制設(shè)備1105,所述緩存控制設(shè)備1105分別與所述內(nèi)存1102、所述SSD緩存1103和所述磁盤存儲(chǔ)介質(zhì)1104連接。所述存儲(chǔ)系統(tǒng)1101可以為分布式存儲(chǔ)系統(tǒng),也可以其他存儲(chǔ)系統(tǒng),這里不做限制。
[0240]如圖9所示,本發(fā)明實(shí)施例6還提供另外一種處理緩存數(shù)據(jù)的方法,包括:
[0241]701、分布式節(jié)點(diǎn)根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息。
[0242]702、根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的固態(tài)硬盤SSD緩存中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存中的數(shù)據(jù)塊與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
[0243]本發(fā)明實(shí)施例方法可以應(yīng)用于多節(jié)點(diǎn)共享存儲(chǔ)系統(tǒng),以下將結(jié)合多節(jié)點(diǎn)共享存儲(chǔ)場(chǎng)景對(duì)本發(fā)明實(shí)施例方法做進(jìn)一步說(shuō)明。
[0244]如圖10所示,多節(jié)點(diǎn)共享存儲(chǔ)系統(tǒng)包括存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Storage Area Network,SAN)、計(jì)算節(jié)點(diǎn)代理(Computing Node Agent, CNA)和虛擬機(jī),其中,圖6示出了計(jì)算節(jié)點(diǎn)代理CNA1和CNA2,虛擬機(jī)VM1和VM2。所述SAN包含有邏輯卷lunl,邏輯卷lunl掛載到CNA1和CNA2上,其在CNA1和CNA2中的掛載分區(qū)均為sda。CNA1和CNA2設(shè)有掛載分區(qū)sda和頁(yè)高速緩存,CNA1還設(shè)有SSD緩存,而且CNA1中的掛載分區(qū)sda和SSD緩存封裝成與CNA1對(duì)應(yīng)的虛擬機(jī)VM1上的一個(gè)邏輯卷。頁(yè)高速緩存為內(nèi)核的磁盤緩存,使用內(nèi)存的部分空間作為磁盤數(shù)據(jù)的緩存。
[0245]當(dāng)虛擬機(jī)VM1首次讀取lunl上4kb的數(shù)據(jù)塊x時(shí),數(shù)據(jù)塊x會(huì)被CNA1緩存到SSD上,并同時(shí)緩存到頁(yè)高速緩存中。當(dāng)虛擬機(jī)VM1非首次讀取lunl上4kb的數(shù)據(jù)塊x時(shí),若頁(yè)高速緩存中的數(shù)據(jù)塊X為有效,則虛擬機(jī)VM1將從高速緩存中直接讀取數(shù)據(jù)塊X ;若頁(yè)高速緩存中未緩存有數(shù)據(jù)塊X,則CNA1可以將SSD中緩存的數(shù)據(jù)塊X讀取到頁(yè)高速緩存中,虛擬機(jī)VM1再?gòu)母咚倬彺嬷凶x取數(shù)據(jù)塊X。當(dāng)虛擬機(jī)VM2對(duì)數(shù)據(jù)塊X進(jìn)行寫操作時(shí),將數(shù)據(jù)寫入CNA2節(jié)點(diǎn)的頁(yè)高速緩存中,形成臟數(shù)據(jù)。此時(shí),多節(jié)點(diǎn)共享存儲(chǔ)系統(tǒng)中的分布式文件系統(tǒng)(如虛擬鏡像管理系統(tǒng)(Virtual Image Management System, VIMS))將發(fā)起數(shù)據(jù)塊x的無(wú)效操作。CNA1監(jiān)聽分布式文件系統(tǒng)發(fā)起的無(wú)效操作,獲取數(shù)據(jù)塊X的無(wú)效操作,并將所述CNA1的SSD緩存中的數(shù)據(jù)塊X置無(wú)效。在虛擬機(jī)VM2對(duì)數(shù)據(jù)塊X進(jìn)行寫操作之后,當(dāng)虛擬機(jī)VM1再次讀取數(shù)據(jù)塊X時(shí),由于頁(yè)高速緩存和SSD緩存中的數(shù)據(jù)塊X均置為無(wú)效,虛擬機(jī)VM1只能從所述SAN的邏輯卷中讀取最新修改的數(shù)據(jù)X。如果未應(yīng)用本發(fā)明實(shí)施例方法,SSD緩存中的數(shù)據(jù)塊X仍然有效,則當(dāng)虛擬機(jī)VM1再次讀取數(shù)據(jù)塊X時(shí),頁(yè)高速緩存可能將從SSD緩存中讀取到不是虛擬機(jī)VM2對(duì)數(shù)據(jù)塊X進(jìn)行寫操作之后的數(shù)據(jù)塊X,從而不能讀取到最新的數(shù)據(jù)。因此,本發(fā)明實(shí)施例方法可以避免不是最新的SSD緩存中的數(shù)據(jù)塊X再被讀入頁(yè)高速緩存中,確保VM1讀取到最新的數(shù)據(jù)塊X。
[0246]如圖11所示,本發(fā)明實(shí)施例7還提供一種處理緩存數(shù)據(jù)的方法,可以包括:
[0247]801、分布式節(jié)點(diǎn)監(jiān)聽分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息。
[0248]802、分布式節(jié)點(diǎn)根據(jù)監(jiān)聽到的數(shù)據(jù)無(wú)效操作信息,查詢所述頁(yè)高速緩存中是否存在需置無(wú)效的數(shù)據(jù)塊,若所述頁(yè)高速緩存中存在需置無(wú)效的數(shù)據(jù)塊,則獲取所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,并將獲取的所述需置無(wú)效的數(shù)據(jù)塊的信息寫入所述分布式節(jié)點(diǎn)上的存儲(chǔ)有監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
[0249]803、從所述監(jiān)聽實(shí)例的內(nèi)存區(qū)中獲得所述需置無(wú)效的數(shù)據(jù)塊的信息,并根據(jù)所述需置無(wú)效的數(shù)據(jù)塊的信息,獲取SSD緩存中需置無(wú)效的數(shù)據(jù)塊的磁盤塊號(hào),所述磁盤塊號(hào)與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
[0250]804、根據(jù)所述磁盤塊號(hào),在所述SSD緩存中查詢與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊。
[0251]805、將查詢到的與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊確定為所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊。
[0252]806、將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效。
[0253]其中,步驟806可以通過(guò)如下方式實(shí)現(xiàn):
[0254]判斷所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志;在取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志之后,取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài);若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài)。
[0255]本發(fā)明實(shí)施例方法其實(shí)可以包括兩個(gè)流程部分,一是監(jiān)聽流程,二是處理流程。以下對(duì)這兩個(gè)流程進(jìn)行簡(jiǎn)要說(shuō)明。
[0256]監(jiān)聽流程可以包括:
[0257]讀取監(jiān)聽消息。具體的,分布式文件系統(tǒng)下發(fā)數(shù)據(jù)無(wú)效操作,分布式節(jié)點(diǎn)讀取數(shù)據(jù)無(wú)效操作信息。
[0258]判斷分布式文件系統(tǒng)中是否創(chuàng)建在分布式節(jié)點(diǎn)的緩存設(shè)備上,若是,收集數(shù)據(jù)無(wú)效操作信息;
[0259]將本次數(shù)據(jù)無(wú)效操作信息寫入監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
[0260]處理流程可以包括:
[0261]接收本次數(shù)據(jù)無(wú)效操作信息;
[0262]判斷本次操作是否為無(wú)效操作;[0263]若是,獲取本次操作所需置無(wú)效的數(shù)據(jù)塊的塊號(hào);
[0264]遍歷SSD緩存;
[0265]判斷所需置無(wú)效的數(shù)據(jù)塊是否已緩存;
[0266]若所需置無(wú)效的數(shù)據(jù)塊已緩存,則判斷所需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊;
[0267]若所需置無(wú)效的數(shù)據(jù)塊為臟數(shù)據(jù)塊,取消所需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志,再取消其有效標(biāo)志。
[0268]若所需置無(wú)效的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志。
[0269]如圖12所示,本發(fā)明實(shí)施例8還提供一種分布式節(jié)點(diǎn),包括:
[0270]監(jiān)聽模塊901,用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息;
[0271]處理模塊902,用于接收監(jiān)聽模塊901獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的固態(tài)硬盤SSD緩存中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存中的數(shù)據(jù)塊與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
[0272]如圖13所示,本發(fā)明實(shí)施例9還提供另一種分布式節(jié)點(diǎn),包括:
[0273]監(jiān)聽模塊1001,用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息;
[0274]處理模塊1002,用于接收監(jiān)聽模塊1001獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的固態(tài)硬盤SSD緩存中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存中的數(shù)據(jù)塊與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
[0275]所述監(jiān)聽模塊1001還用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,查詢所述頁(yè)高速緩存中是否存在需置無(wú)效的數(shù)據(jù)塊,若所述頁(yè)高速緩存中存在需置無(wú)效的數(shù)據(jù)塊,則獲取所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息。
[0276]優(yōu)選的,所述監(jiān)聽模塊1001還用于在根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,將獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息寫入所述分布式節(jié)點(diǎn)上的存儲(chǔ)有監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
[0277]優(yōu)選的,所述處理模塊1002還包括獲取子模塊1003、查詢子模塊1004和無(wú)效子模塊 1005,
[0278]所述獲取子模塊1003用于在接收監(jiān)聽模塊獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,獲取所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的磁盤塊號(hào),所述磁盤塊號(hào)與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng);
[0279]所述查詢子模塊1004用于根據(jù)所述獲取子模塊1003獲取到的所述磁盤塊號(hào),在所述SSD緩存中查詢與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊;
[0280]所述無(wú)效子模塊1005用于將所述查詢子模塊1004查詢到的與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊確定為所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊。
[0281]優(yōu)選的,所述無(wú)效子模塊1005還用于判斷所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志;在取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志之后,取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài);若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài)。
[0282]如圖15所示,本發(fā)明實(shí)施例10還提供一種分布式存儲(chǔ)系統(tǒng)1201,包括:虛擬機(jī)1202、如實(shí)施例8所述的分布式節(jié)點(diǎn)1203和存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN1204,所述分布式節(jié)點(diǎn)1023掛載所述SAN1204上的數(shù)據(jù)塊,所述虛擬機(jī)1202用于從所述分布式節(jié)點(diǎn)1203的頁(yè)高速緩存中讀取數(shù)據(jù),并進(jìn)行讀或?qū)懖僮鳌?br>
[0283]如圖16所示,本發(fā)明實(shí)施例11提供一種緩存控制設(shè)備1301,包括:處理器1302和輸入輸出接口 1303,所述處理器1302用于獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型;以及用于當(dāng)所述文件操作類型為文件刪除操作時(shí),通過(guò)輸入輸出接口 1303將固態(tài)硬盤SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0284]優(yōu)選的,所述處理器1302用于監(jiān)聽對(duì)文件進(jìn)行的操作,將監(jiān)聽到的被操作文件的文件操作信息保存至預(yù)先分配的內(nèi)存區(qū)中。
[0285]優(yōu)選的,所述處理器1302用于指定需要監(jiān)聽的文件以及文件操作類型;以及監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作,所述文件操作屬于指定的需要監(jiān)聽的文件操作類型。
[0286]優(yōu)選的,所述處理器1302用于:
[0287]創(chuàng)建文件操作的監(jiān)聽實(shí)例;
[0288]將需要監(jiān)聽的文件以及文件操作類型加入到所述監(jiān)聽實(shí)例中;
[0289]將所述監(jiān)聽實(shí)例保存至所述預(yù)先分配的內(nèi)存區(qū)中;
[0290]根據(jù)所述監(jiān)聽實(shí)例,監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作。
[0291]優(yōu)選的,所述處理器1302用于:
[0292]接收文件監(jiān)聽注冊(cè)命令;
[0293]在接收到文件監(jiān)聽注冊(cè)命令之后,確定需要監(jiān)聽的文件所在的設(shè)備;
[0294]判斷所述需要監(jiān)聽的文件所在的設(shè)備是否為所述SSD緩存,若所述需要監(jiān)聽的文件所在的設(shè)備為所述SSD緩存,則創(chuàng)建文件操作的監(jiān)聽實(shí)例。
[0295]優(yōu)選的,所述處理器1302用于當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:用于判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0296]優(yōu)選的,所述處理器1302用于在所述判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊之后,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊為臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的臟標(biāo)志,以及取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
[0297]優(yōu)選的,所述處理器1302用于在所述獲取磁盤中的被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷當(dāng)前條件是否符合預(yù)設(shè)條件,所述預(yù)設(shè)條件包括如下一項(xiàng)或多項(xiàng)條件:
[0298]所述SSD緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量、所述SSD緩存的臟數(shù)據(jù)塊數(shù)量占所述SSD緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小、所述SSD緩存的空間占用率大于或等于預(yù)設(shè)的占用率、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小;
[0299]若當(dāng)前條件符合所述預(yù)設(shè)條件,當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0300]優(yōu)選的,所述處理器1302用于獲取磁盤中的所述被操作文件的路徑信息;在所述獲取磁盤中的被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),根據(jù)所述被操作文件的路徑信息,判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;若所述被操作文件記錄于所述緩存的文件列表中,則當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0301]優(yōu)選的,所述處理器1302用于在所述獲取磁盤中的被操作文件的文件操作信息之后,判斷所述SSD緩存的空間利用率是否大于或等于預(yù)設(shè)的利用率;
[0302]若所述SSD緩存的空間利用率大于或等于預(yù)設(shè)的利用率,則當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0303]或者,
[0304]判斷所述SSD緩存的緩存命中率是否大于或等于預(yù)設(shè)緩存命中率;
[0305]若所述SSD緩存的緩存命中率大于或等于預(yù)設(shè)的緩存命中率,則當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0306]或者,
[0307]判斷所述SSD緩存的輸入輸出負(fù)載是否大于或等于預(yù)設(shè)負(fù)載;
[0308]若所述SSD緩存的輸入輸出負(fù)載大于或等于預(yù)設(shè)負(fù)載,則當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;
[0309]或者,
[0310]判斷系統(tǒng)處理器1302的使用率是否大于或等于預(yù)設(shè)使用率;
[0311]若系統(tǒng)處理器1302的使用率大于或等于預(yù)設(shè)使用率,則當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
[0312]優(yōu)選的,所述處理器1302用于在所述獲取磁盤中的被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件修改操作時(shí),則判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;若所述被操作文件沒(méi)有記錄于所述緩存的文件列表中,則在所述SSD緩存的文件列表中新建被操作文件的記錄,以及從所述磁盤中讀取存儲(chǔ)所述被操作文件的磁盤塊號(hào),將所述磁盤塊號(hào)存入到新建的被操作文件的記錄中。
[0313]如圖17所示,本發(fā)明實(shí)施例12提供一種分布式節(jié)點(diǎn)1401,包括:處理器1402、固態(tài)硬盤SSD緩存1403和頁(yè)高速緩存1404,處理器1402分別與固態(tài)硬盤SSD緩存1403和頁(yè)高速緩存1404連接,所述固態(tài)硬盤SSD緩存1403和頁(yè)高速緩存1404也通過(guò)相互連接,所述處理器1402用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息;以及用于根據(jù)所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存1403中的數(shù)據(jù)塊與所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。[0314]優(yōu)選的,所述處理器1402用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)1401的頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息包括:用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,查詢所述頁(yè)高速緩存1404中是否存在需置無(wú)效的數(shù)據(jù)塊,若所述頁(yè)高速緩存1404中存在需置無(wú)效的數(shù)據(jù)塊,則獲取所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息。
[0315]優(yōu)選的,所述處理器1402用于在所述分布式節(jié)點(diǎn)1401根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)1401的頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息之后,將獲取的所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息寫入所述分布式節(jié)點(diǎn)1401上的存儲(chǔ)有監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
[0316]優(yōu)選的,所述處理器1402用于根據(jù)所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)1401的SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊,包括:用于根據(jù)所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊的信息,獲取所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊的磁盤塊號(hào),所述磁盤塊號(hào)與所述頁(yè)高速緩存1404中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng);以及用于根據(jù)所述磁盤塊號(hào),在所述SSD緩存1403中查詢與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊,將查詢到的與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊確定為所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊。
[0317]優(yōu)選的,所述處理器1402用于所述將所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,包括:用于:
[0318]判斷所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,
[0319]若所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊,則取消所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志;在取消所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志之后,取消所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài);
[0320]若所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存1403中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài)。
[0321]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:只讀存儲(chǔ)器(ROM, Read Only Memory)、隨機(jī)存取記憶體(RAM, RandomAccess Memory)、磁盤或光盤等。
[0322]以上對(duì)本發(fā)明實(shí)施例所提供的處理緩存數(shù)據(jù)的方法的方法、緩存控制設(shè)備、存儲(chǔ)系統(tǒng)及分布式節(jié)點(diǎn)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種處理緩存數(shù)據(jù)的方法,其特征在于,包括:獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型;當(dāng)所述文件操作類型為文件刪除操作時(shí),將固態(tài)硬盤SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
2.根據(jù)權(quán)利要求1所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述獲取磁盤中的被操作文件的文件操作信息包括:監(jiān)聽對(duì)文件進(jìn)行的操作,將監(jiān)聽到的被操作文件的文件操作信息保存至預(yù)先分配的內(nèi)存區(qū)中。
3.根據(jù)權(quán)利要求2所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述監(jiān)聽對(duì)文件進(jìn)行的操作包括:指定需要監(jiān)聽的文件以及文件操作類型;監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作,所述文件操作屬于指定的需要監(jiān)聽的文件操作類型。
4.根據(jù)權(quán)利要求3所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述指定需要進(jìn)行監(jiān)聽的文件以及文件操作類型包括:創(chuàng)建文件操作的監(jiān)聽實(shí)例;將需要監(jiān)聽的文件以及文件操作類型加入到所述監(jiān)聽實(shí)例中;將所述監(jiān)聽實(shí)例保存至所述預(yù)先分配的內(nèi)存區(qū)中;所述監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作包括:根據(jù)所述監(jiān)聽實(shí)例,監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作。
5.根據(jù)權(quán)利要求4所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述創(chuàng)建文件操作的監(jiān)聽實(shí)例包括:接收文件監(jiān)聽注冊(cè)命令;在接收到文件監(jiān)聽注冊(cè)命令之后,確定需要監(jiān)聽的文件所在的設(shè)備;判斷所述需要監(jiān)聽的文件所在的設(shè)備是否為所述SSD緩存,若所述需要監(jiān)聽的文件所在的設(shè)備為所述SSD緩存,則創(chuàng)建文件操作的監(jiān)聽實(shí)例。
6.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
7.根據(jù)權(quán)利要求6所述的處理緩存數(shù)據(jù)的方法,其特征在于,在所述判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊之后,還包括:若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊為臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的臟標(biāo)志,以及取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
8.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述的處理緩存數(shù)據(jù)的方法,其特征在于,在所述獲取磁盤中的被操作文件的文件操作信息之后,還包括:當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷當(dāng)前條件是否符合預(yù)設(shè)條件,所述預(yù)設(shè)條件包括如下一項(xiàng)或多項(xiàng)條件:所述SSD緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量、所述SSD緩存的臟數(shù)據(jù)塊數(shù)量占所述SSD緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小、所述SSD緩存的空間占用率大于或等于預(yù)設(shè)的占用率、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大??;所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:若當(dāng)前條件符合所述預(yù)設(shè)條件,將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
9.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述獲取磁盤中的被操作文件的文件操作信息包括:獲取磁盤中的所述被操作文件的路徑信息;在所述獲取磁盤中的被操作文件的文件操作信息之后,所述方法還包括:當(dāng)所述文件操作類型為文件刪除操作時(shí),根據(jù)所述被操作文件的路徑信息,判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:若所述被操作文件記錄于所述緩存的文件列表中,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
10.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述的處理緩存數(shù)據(jù)的方法,其特征在于,在所述獲取磁盤中的 被操作文件的文件操作信息之后,還包括:判斷所述SSD緩存的空間利用率是否大于或等于預(yù)設(shè)的利用率;所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:若所述SSD緩存的空間利用率大于或等于預(yù)設(shè)的利用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;或者,判斷所述SSD緩存的緩存命中率是否大于或等于預(yù)設(shè)緩存命中率;所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:若所述SSD緩存的緩存命中率大于或等于預(yù)設(shè)的緩存命中率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;或者,判斷所述SSD緩存的輸入輸出負(fù)載是否大于或等于預(yù)設(shè)負(fù)載;所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:若所述SSD緩存的輸入輸出負(fù)載大于或等于預(yù)設(shè)負(fù)載,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;或者,判斷系統(tǒng)處理器的使用率是否大于或等于預(yù)設(shè)使用率;所述當(dāng)所述文件操作類型為文件刪除操作時(shí),將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效,包括:若系統(tǒng)處理器的使用率大于或等于預(yù)設(shè)使用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
11.根據(jù)權(quán)利要求1至5任意一項(xiàng)所述的處理緩存數(shù)據(jù)的方法,其特征在于,在所述獲取磁盤中的被操作文件的文件操作信息之后,還包括:當(dāng)所述文件操作類型為文件修改操作時(shí),則判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;若所述被操作文件沒(méi)有記錄于所述緩存的文件列表中,則在所述SSD緩存的文件列表中新建被操作文件的記錄,以及從所述磁盤中讀取存儲(chǔ)所述被操作文件的磁盤塊號(hào),將所述磁盤塊號(hào)存入到新建的被操作文件的記錄中。
12.—種緩存控制設(shè)備,其特征在于,包括:監(jiān)聽模塊,用于獲取磁盤中的被操作文件的文件操作信息,所述文件操作信息包括文件操作類型;處理模塊,用于接收監(jiān)聽模塊獲取的所述被操作文件的文件操作信息,并在當(dāng)所述文件操作類型為文件刪除操作時(shí),將固態(tài)硬盤SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
13.根據(jù)權(quán)利要求12所述的緩存控制設(shè)備,其特征在于,所述監(jiān)聽模塊還用于監(jiān)·聽對(duì)文件進(jìn)行的操作,將監(jiān)聽到的被操作文件的文件操作信息保存至預(yù)先分配的內(nèi)存區(qū)中。
14.根據(jù)權(quán)利要求13所述的緩存控制設(shè)備,其特征在于,所述監(jiān)聽模塊還包括:指定子模塊,用于指定需要監(jiān)聽的文件以及文件操作類型,監(jiān)聽子模塊,用于監(jiān)聽對(duì)所述指定子模塊指定的需要監(jiān)聽的文件進(jìn)行的文件操作,所述文件操作屬于所述指定子模塊指定的需要監(jiān)聽的文件操作類型。
15.根據(jù)權(quán)利要求14所述的緩存控制設(shè)備,其特征在于,所述監(jiān)聽模塊還包括:監(jiān)聽實(shí)例創(chuàng)建子模塊,所述監(jiān)聽實(shí)例創(chuàng)建子模塊用于創(chuàng)建文件操作的監(jiān)聽實(shí)例,將需要監(jiān)聽的文件以及文件操作類型加入到所述監(jiān)聽實(shí)例中,將所述監(jiān)聽實(shí)例保存至所述預(yù)先分配的內(nèi)存區(qū)中;所述監(jiān)聽子模塊還用于根據(jù)所述監(jiān)聽實(shí)例創(chuàng)建子模塊創(chuàng)建的所述監(jiān)聽實(shí)例,監(jiān)聽對(duì)需要監(jiān)聽的文件進(jìn)行的文件操作。
16.根據(jù)權(quán)利要求15所述的緩存控制設(shè)備,其特征在于,所述監(jiān)聽實(shí)例創(chuàng)建子模塊還用于接收文件監(jiān)聽注冊(cè)命令,在接收到文件監(jiān)聽注冊(cè)命令之后,確定需要監(jiān)聽的文件所在的設(shè)備,以及判斷所述需要監(jiān)聽的文件所在的設(shè)備是否為所述SSD緩存,若所述需要監(jiān)聽的文件所在的設(shè)備為所述SSD緩存,則創(chuàng)建文件操作的監(jiān)聽實(shí)例。
17.根據(jù)權(quán)利要求12至16任意一項(xiàng)所述的緩存控制設(shè)備,其特征在于,所述處理模塊還用于判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
18.根據(jù)權(quán)利要求17所述的緩存控制設(shè)備,其特征在于,所述處理模塊還用于在判斷所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊之后,若所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊為臟數(shù)據(jù)塊,則取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的臟標(biāo)志,以及取消所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊的有效標(biāo)志。
19.根據(jù)權(quán)利要求12至16任意一項(xiàng)所述的緩存控制設(shè)備,其特征在于,所述處理模塊還用于:在接收監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷當(dāng)前條件是否符合預(yù)設(shè)條件,所述預(yù)設(shè)條件包括如下一項(xiàng)或多項(xiàng)條件:所述SSD緩存的臟數(shù)據(jù)塊數(shù)量大于或等于預(yù)設(shè)的數(shù)量、所述SSD緩存的臟數(shù)據(jù)塊數(shù)量占所述SSD緩存的總數(shù)據(jù)塊數(shù)量的比例大于或等于預(yù)設(shè)閾值、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小、所述SSD緩存的空間占用率大于或等于預(yù)設(shè)的占用率、所述被操作文件的大小大于或等于預(yù)設(shè)的文件大小;若當(dāng)前條件符合所述預(yù)設(shè)條件,將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
20.根據(jù)權(quán)利要求12至16任意一項(xiàng)所述的緩存控制設(shè)備,其特征在于,所述監(jiān)聽模塊還用于獲取磁盤中的所述被操作文件的路徑信息;所述處理模塊還用于在 接收監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),根據(jù)所述被操作文件的路徑信息,判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中,若所述被操作文件記錄于所述緩存的文件列表中,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
21.根據(jù)權(quán)利要求12至16任意一項(xiàng)所述的緩存控制設(shè)備,其特征在于,所述處理模塊還用于:在所述接收到所述監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件刪除操作時(shí),判斷所述SSD緩存的空間利用率是否大于或等于預(yù)設(shè)的利用率,若所述SSD緩存的空間利用率大于或等于預(yù)設(shè)的利用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;或者,判斷所述SSD緩存的緩存命中率是否大于或等于預(yù)設(shè)緩存命中率,若所述SSD緩存的緩存命中率大于或等于預(yù)設(shè)的緩存命中率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;或者,判斷所述SSD緩存的輸入輸出負(fù)載是否大于或等于預(yù)設(shè)負(fù)載,若所述SSD緩存的輸入輸出負(fù)載大于或等于預(yù)設(shè)負(fù)載,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效;或者,判斷系統(tǒng)處理器的使用率是否大于或等于預(yù)設(shè)使用率,若系統(tǒng)處理器的使用率大于或等于預(yù)設(shè)使用率,則將所述SSD緩存中的所述被操作文件對(duì)應(yīng)的數(shù)據(jù)塊置為無(wú)效。
22.根據(jù)權(quán)利要求12至16任意一項(xiàng)所述的緩存控制設(shè)備,其特征在于,所述處理模塊還用于在接收到監(jiān)聽模塊獲取的所述被操作文件的文件操作信息之后,當(dāng)所述文件操作類型為文件修改操作時(shí),則判斷所述被操作文件是否記錄于所述SSD緩存的文件列表中;若所述被操作文件沒(méi)有記錄于所述緩存的文件列表中,則在所述SSD緩存的文件列表中新建被操作文件的記錄,以及從所述磁盤中讀取存儲(chǔ)所述被操作文件的磁盤塊號(hào),將所述磁盤塊號(hào)存入到新建的被操作文件的記錄中。
23.一種存儲(chǔ)系統(tǒng),包括內(nèi)存、固態(tài)硬盤SSD緩存、磁盤存儲(chǔ)介質(zhì),所述內(nèi)存、所述SSD緩存、所述磁盤存儲(chǔ)介質(zhì)通過(guò)數(shù)據(jù)線連接,其特征在于,所述存儲(chǔ)系統(tǒng)還包括如權(quán)利要求12至22任一項(xiàng)所述的緩存控制設(shè)備,所述緩存控制設(shè)備分別與所述內(nèi)存、所述SSD緩存和所述磁盤存儲(chǔ)介質(zhì)連接。
24.一種處理緩存數(shù)據(jù)的方法,其特征在于,包括:分布式節(jié)點(diǎn)根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息;根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的固態(tài)硬盤SSD緩存中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存中的數(shù)據(jù)塊與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
25.根據(jù)權(quán)利要求24所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述分布式節(jié)點(diǎn)根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息包括:根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,查詢所述頁(yè)高速緩存中是否存在需置無(wú)效的數(shù)據(jù)塊,若所述頁(yè)高速緩存中存在需置無(wú)效的數(shù)據(jù)塊,則獲取所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息。
26.根據(jù)權(quán)利要求25所·述的處理緩存數(shù)據(jù)的方法,其特征在于,在所述分布式節(jié)點(diǎn)根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,還包括:將獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息寫入所述分布式節(jié)點(diǎn)上的存儲(chǔ)有監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
27.根據(jù)權(quán)利要求26所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的SSD緩存中需置無(wú)效的數(shù)據(jù)塊,包括:根據(jù)所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,獲取所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的磁盤塊號(hào),所述磁盤塊號(hào)與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng);根據(jù)所述磁盤塊號(hào),在所述SSD緩存中查詢與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊;將查詢到的與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊確定為所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊。
28.根據(jù)權(quán)利要求27所述的處理緩存數(shù)據(jù)的方法,其特征在于,所述將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,包括:判斷所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志;在取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志之后,取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài);若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài)。
29.—種分布式節(jié)點(diǎn),其特征在于,包括:監(jiān)聽模塊,用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息;處理模塊,用于接收監(jiān)聽模塊獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息,確定所述分布式節(jié)點(diǎn)的固態(tài)硬盤SSD緩存中需置無(wú)效的數(shù)據(jù)塊,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置無(wú)效,所述SSD緩存中的數(shù)據(jù)塊與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng)。
30.根據(jù)權(quán)利要求29所述的分布式節(jié)點(diǎn),其特征在于,所述監(jiān)聽模塊還用于根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,查詢所述頁(yè)高速緩存中是否存在需置無(wú)效的數(shù)據(jù)塊,若所述頁(yè)高速緩存中存在需置無(wú)效的數(shù)據(jù)塊,則獲取所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息。
31.根據(jù)權(quán)利要求30所述的分布式節(jié)點(diǎn),其特征在于,所述監(jiān)聽模塊還用于在根據(jù)分布式文件系統(tǒng)下發(fā)的數(shù)據(jù)無(wú)效操作信息,獲取所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,將獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息寫入所述分布式節(jié)點(diǎn)上的存儲(chǔ)有監(jiān)聽實(shí)例的內(nèi)存區(qū)中。
32.根據(jù)權(quán)利要求31所述的分布式節(jié)點(diǎn),其特征在于,所述處理模塊還包括:獲取子模塊,用于在接收監(jiān)聽模塊獲取的所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊的信息之后,根據(jù)所述頁(yè)高速緩存中需 置無(wú)效的數(shù)據(jù)塊的信息,獲取所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的磁盤塊號(hào),所述磁盤塊號(hào)與所述頁(yè)高速緩存中需置無(wú)效的數(shù)據(jù)塊對(duì)應(yīng);查詢子模塊,根據(jù)所述獲取子模塊獲取到的所述磁盤塊號(hào),在所述SSD緩存中查詢與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊;無(wú)效子模塊,將所述查詢子模塊查詢到的與所述磁盤塊號(hào)對(duì)應(yīng)的數(shù)據(jù)塊確定為所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊。
33.根據(jù)權(quán)利要求32所述的分布式節(jié)點(diǎn),其特征在于,所述無(wú)效子模塊還用于:判斷所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是否為臟數(shù)據(jù)塊,若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志;在取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的臟標(biāo)志之后,取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài);若所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊是臟數(shù)據(jù)塊不是臟數(shù)據(jù)塊,則取消所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊的有效標(biāo)志,并將所述SSD緩存中需置無(wú)效的數(shù)據(jù)塊置為空閑狀態(tài)。
34.一種分布式存儲(chǔ)系統(tǒng),其特征在于,包括:虛擬機(jī)、如權(quán)利要求29至33任一項(xiàng)所述的分布式節(jié)點(diǎn)和存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN,所述分布式節(jié)點(diǎn)掛載所述SAN上的數(shù)據(jù)塊,所述虛擬機(jī)用于從所述分布式節(jié)點(diǎn)的頁(yè)高速緩存中讀取數(shù)據(jù),并進(jìn)行讀或?qū)懖僮鳌?br>
【文檔編號(hào)】G06F3/06GK103714014SQ201310577140
【公開日】2014年4月9日 申請(qǐng)日期:2013年11月18日 優(yōu)先權(quán)日:2013年11月18日
【發(fā)明者】溫正湖 申請(qǐng)人:華為技術(shù)有限公司