国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種打開磁盤寫緩存的方法和裝置制造方法

      文檔序號:6512920閱讀:233來源:國知局
      一種打開磁盤寫緩存的方法和裝置制造方法
      【專利摘要】本發(fā)明公開了打開磁盤寫緩存的方法和裝置:在存儲系統(tǒng)中建立3個隊(duì)列,分別為Pending隊(duì)列、Done隊(duì)列和Sync隊(duì)列;當(dāng)每接收到一個寫命令時,將該寫命令加入到Pending隊(duì)列中;對于Pending隊(duì)列中的每個寫命令,當(dāng)滿足預(yù)定條件時,將該寫命令下發(fā)到對應(yīng)的磁盤中,并在當(dāng)接收到磁盤返回的處理響應(yīng)時,將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中;當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中,并針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令;當(dāng)接收到任一磁盤返回的sync響應(yīng)時,將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除。應(yīng)用本發(fā)明所述方案,能夠提高磁盤的工作性能。
      【專利說明】一種打開磁盤寫緩存的方法和裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及存儲技術(shù),特別涉及一種打開磁盤寫緩存的方法和裝置。
      【背景技術(shù)】
      [0002]現(xiàn)有存儲系統(tǒng)中,通常都采用關(guān)閉磁盤(Disk)寫緩存(cache)的方式。
      [0003]相比于關(guān)閉磁盤寫緩存的方式,打開磁盤寫緩存的方式能夠更好地提高磁盤的工作性能,如加快磁盤的處理速度、降低時延等;但現(xiàn)有技術(shù)中還沒有一種較好的打開磁盤寫緩存的方式。

      【發(fā)明內(nèi)容】

      [0004]有鑒于此,本發(fā)明提供了一種打開磁盤寫緩存的方法和裝置,能夠提高磁盤的工作性能。
      [0005]為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
      [0006]一種打開磁盤寫緩存的方法,包括:
      [0007]在存儲系統(tǒng)中建立3個隊(duì)列,分別為Pending隊(duì)列、Done隊(duì)列和Sync隊(duì)列;
      [0008]當(dāng)每接收到一個寫命令時,將該寫命令加入到Pending隊(duì)列中;
      [0009]對于Pending隊(duì)列中的每個寫命令,當(dāng)滿足預(yù)定條件時,將該寫命令下發(fā)到對應(yīng)的磁盤中,并在當(dāng)接收到磁盤返回的處理響應(yīng)時,將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中;
      [0010]當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中,并針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令;
      [0011]當(dāng)接收到任一磁盤返回的sync響應(yīng)時,將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除。
      [0012]一種打開磁盤寫緩存的裝置,包括:
      [0013]第一處理模塊,用于在存儲系統(tǒng)中建立3個隊(duì)列,分別為Pending隊(duì)列、Done隊(duì)列和Sync隊(duì)列;
      [0014]第二處理模塊,用于當(dāng)每接收到一個寫命令時,將該寫命令加入到Pending隊(duì)列中;
      [0015]對于Pending隊(duì)列中的每個寫命令,當(dāng)滿足預(yù)定條件時,將該寫命令下發(fā)到對應(yīng)的磁盤中,并在當(dāng)接收到磁盤返回的處理響應(yīng)時,將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中;
      [0016]當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中,并針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令;
      [0017]當(dāng)接收到任一磁盤返回的sync響應(yīng)時,將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除。
      [0018]可見,采用本發(fā)明所述方案,通過將寫命令在所建立的三個隊(duì)列之間進(jìn)行轉(zhuǎn)移等, 實(shí)現(xiàn)了打開磁盤寫緩存,從而提高了磁盤的工作性能。
      【專利附圖】

      【附圖說明】
      [0019]圖1為本發(fā)明打開磁盤寫緩存的方法實(shí)施例的流程圖。
      [0020]圖2為本發(fā)明三個隊(duì)列中所包括的寫命令情況第一示意圖。
      [0021]圖3為本發(fā)明三個隊(duì)列中所包括的寫命令情況第二示意圖。
      [0022]圖4為本發(fā)明三個隊(duì)列中所包括的寫命令情況第三示意圖。
      [0023]圖5為本發(fā)明三個隊(duì)列中所包括的寫命令情況第四示意圖。
      [0024]圖6為本發(fā)明三個隊(duì)列中所包括的寫命令情況第五示意圖。
      [0025]圖7為本發(fā)明打開磁盤寫緩存的裝置實(shí)施例的組成結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0026]針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明中提出一種打開磁盤寫緩存的方案,能夠提高磁盤的工作性能。
      [0027]為了使本發(fā)明的技術(shù)方案更加清楚、明白,以下參照附圖并舉實(shí)施例,對本發(fā)明所述方案作進(jìn)一步的詳細(xì)說明。
      [0028]圖1為本發(fā)明打開磁盤寫緩存的方法實(shí)施例的流程圖。如圖1所示,包括以下步驟11?15。
      [0029]步驟11:在存儲系統(tǒng)中建立3個隊(duì)列,分別為Pending隊(duì)列、Done隊(duì)列和Sync隊(duì)列。
      [0030]初始建立時,三個隊(duì)列中均為空。
      [0031]其中,Pending隊(duì)列:用于保存所有尚未從磁盤返回處理響應(yīng)的寫命令;
      [0032]Done隊(duì)列:用于保存所有從磁盤返回處理響應(yīng)、但還未執(zhí)行sync命令的寫命令;
      [0033]Sync隊(duì)列:用于保存所有正在同步磁盤緩存的寫命令。
      [0034]步驟12:當(dāng)每接收到一個寫命令時,將該寫命令加入到Pending隊(duì)列中。
      [0035]本步驟中,當(dāng)每接收到一個寫命令時,根據(jù)三個隊(duì)列的不同功能,將其先加入到Pending隊(duì)列中。
      [0036]圖2為本發(fā)明三個隊(duì)列中所包括的寫命令情況第一示意圖。如圖2所示,假設(shè)接收到了三個寫命令,分別為 Writelto Diskl、Write2to Disk2 以及 Write3to Diskl,那么,將這三個寫命令均加入到Pending隊(duì)列中,此時,Done隊(duì)列和Sync隊(duì)列中均為空。
      [0037]步驟13:對于Pending隊(duì)列中的每個寫命令,當(dāng)滿足預(yù)定條件時,將該寫命令下發(fā)到對應(yīng)的磁盤中,并在當(dāng)接收到磁盤返回的處理響應(yīng)時,將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中。
      [0038]所述預(yù)定條件具體是指何種條件可根據(jù)實(shí)際需要而定,比如:經(jīng)過預(yù)定時長。
      [0039]對于Pending隊(duì)列中的每個寫命令,將其下發(fā)到對應(yīng)的磁盤中后,磁盤會按照現(xiàn)有方式對該寫命令進(jìn)行處理,處理完畢后,會返回處理響應(yīng);相應(yīng)地,當(dāng)接收到磁盤返回的處理響應(yīng)時,則可將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中。
      [0040]圖3為本發(fā)明三個隊(duì)列中所包括的寫命令情況第二示意圖。如圖3所示,結(jié)合圖2所示情況,假設(shè)針對Writelto Diskl和Write3to Diskl已經(jīng)接收到了從Diskl返回的處理響應(yīng),針對Write2to Disk2已經(jīng)接收到了從Disk2返回的處理響應(yīng),那么則將WriteltoDiskl> Write2to Disk2 以及 Write3to Diskl 從 Pending 隊(duì)列轉(zhuǎn)移到 Done 隊(duì)列中;假設(shè)Write4to Diskl、Write5to Disk2以及Write6to Disk3為新接收到的寫命令,那么則將Write4to Diskl> Write5to Disk2 以及 Write6to Disk3 均加入到 Pending 隊(duì)列中。
      [0041]步驟14:當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中,并針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令。
      [0042]所述預(yù)定條件具體是指何種條件可根據(jù)實(shí)際需要而定。
      [0043]比如:當(dāng)Done隊(duì)列中的寫命令數(shù)量每次達(dá)到預(yù)定閾值時,或者,每經(jīng)過預(yù)定時長后,則可將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中。
      [0044]之后,可針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令,即調(diào)用sync命令,如何調(diào)用為現(xiàn)有技術(shù)。
      [0045]圖4為本發(fā)明三個隊(duì)列中所包括的寫命令情況第三示意圖。如圖4所示,結(jié)合圖3所示情況,假設(shè)經(jīng)過了預(yù)定時長,那么則將Done隊(duì)列中的WriteIto Diskl、Write2to Disk2以及Write3to Diskl從Done隊(duì)列轉(zhuǎn)移到Sync隊(duì)列中,并針對Diskl和Disk2,分別執(zhí)行sync命令;假設(shè)此時已經(jīng)接收到了針對Write4to Diskl、Write5to Disk2以及Write6toDisk3 的處理響應(yīng),那么則將 Write4to Diskl、Write5to Disk2 以及 Write6to Disk3 從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中;假設(shè)此時還新接收到了一個Write7to Disk3,那么則將Write7to Disk3 加入到 Pending 隊(duì)列中。
      [0046]步驟15:當(dāng)接收到任一磁盤返回的sync響應(yīng)時,將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除。
      [0047]如步驟14中所述,針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令,各磁盤如何根據(jù)sync命令進(jìn)行相關(guān)處理為現(xiàn)有技術(shù),處理完畢后,會返回sync響應(yīng)。
      [0048]當(dāng)接收到任一磁盤返回的sync響應(yīng)時,可將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除,并且,可相應(yīng)地釋放所刪除的寫命令所占用的內(nèi)存,以節(jié)省內(nèi)存空間,如何釋放同樣為現(xiàn)有技術(shù)。
      [0049]圖5為本發(fā)明三個隊(duì)列中所包括的寫命令情況第四示意圖。如圖5所示,結(jié)合圖4所示情況,假設(shè)接收到了 Diskl返回的sync響應(yīng),那么則可將Writelto Diskl以及Write3to Diskl 從 Sync 隊(duì)列中刪除,并釋放 Writelto Diskl 以及 Write3to Diskl 所占用的內(nèi)存。
      [0050]另外,本發(fā)明所述方案中還提出:當(dāng)存儲系統(tǒng)掉電時,可將Pending隊(duì)列、Done隊(duì)列以及Sync隊(duì)列中的所有寫命令均保存到系統(tǒng)盤中;當(dāng)存儲系統(tǒng)上電時,可取出保存在系統(tǒng)盤中的所有寫命令,并將取出的所有寫命令均加入到Pending隊(duì)列中,后續(xù)按照圖1所示相關(guān)流程進(jìn)行處理即可。
      [0051]系統(tǒng)盤通常位于主板上,當(dāng)存儲系統(tǒng)掉電后,按照現(xiàn)有技術(shù),主板上會有短時間的供電存留以對主板進(jìn)行相關(guān)保護(hù),本發(fā)明所述方案中即可利用主板的這一特性,當(dāng)存儲系統(tǒng)掉電時,將Pending隊(duì)列、Done隊(duì)列以及Sync隊(duì)列中的所有寫命令均保存到系統(tǒng)盤中,然后正常關(guān)機(jī);當(dāng)存儲系統(tǒng)上電時,將保存在系統(tǒng)盤中的所有寫命令均讀取出來,并可認(rèn)為這些寫命令均未持久化到磁盤中,因此將它們?nèi)考尤氲絇ending隊(duì)列中。
      [0052]圖6為本發(fā)明三個隊(duì)列中所包括的寫命令情況第五示意圖。如圖6所示,結(jié)合圖5所示情況,當(dāng)存儲系統(tǒng)上電時,將原Pending隊(duì)列中的Write7to Disk3、原Done隊(duì)列中的 Write4to Diskl> Write5to Disk2 和 Write6to Disk3,以及原 Sync 隊(duì)列中的 Write2toDisk2均加入到Pending隊(duì)列中,此時,Done隊(duì)列和Sync隊(duì)列中均為空;需要說明的是,圖6中所示的各寫命令的排列順序僅為舉例說明,具體如何排序不作限制。
      [0053]基于上述介紹,圖7為本發(fā)明打開磁盤寫緩存的裝置實(shí)施例的組成結(jié)構(gòu)示意圖。如圖7所示,包括:
      [0054]第一處理模塊,用于在存儲系統(tǒng)中建立3個隊(duì)列,分別為Pending隊(duì)列、Done隊(duì)列和Sync隊(duì)列;
      [0055]第二處理模塊,用于當(dāng)每接收到一個寫命令時,將該寫命令加入到Pending隊(duì)列中;
      [0056]對于Pending隊(duì)列中的每個寫命令,當(dāng)滿足預(yù)定條件時,將該寫命令下發(fā)到對應(yīng)的磁盤中,并在當(dāng)接收到磁盤返回的處理響應(yīng)時,將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中;
      [0057]當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中,并針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令;
      [0058]當(dāng)接收到任一磁盤返回的sync響應(yīng)時,將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除。
      [0059]具體地,
      [0060]當(dāng)Done隊(duì)列中的寫命令數(shù)量每次達(dá)到預(yù)定閾值時,或者,每經(jīng)過預(yù)定時長后,第二處理模塊則將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中。
      [0061]另外,
      [0062]第二處理模塊還可進(jìn)一步用于,在將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除之后,釋放所刪除的寫命令所占用的內(nèi)存。
      [0063]再有,
      [0064]如圖7所示,該裝置中還可進(jìn)一步包括:第三處理模塊;
      [0065]第三處理模塊,用于當(dāng)存儲系統(tǒng)掉電時,將Pending隊(duì)列、Done隊(duì)列以及Sync隊(duì)列中的所有寫命令均保存到系統(tǒng)盤中;
      [0066]當(dāng)存儲系統(tǒng)上電時,取出保存在系統(tǒng)盤中的所有寫命令,并將取出的所有寫命令均加入到Pending隊(duì)列中。
      [0067]圖7所示裝置實(shí)施例的具體工作流程請參照前述方法實(shí)施例中的相應(yīng)說明,此處不再贅述。
      [0068]總之,采用本發(fā)明所述方案,實(shí)現(xiàn)了打開磁盤寫緩存,從而提高了磁盤的工作性能;而且,當(dāng)存儲系統(tǒng)掉電時,可及時將未同步到磁盤中的所有寫命令均保存到系統(tǒng)盤中,從而避免了數(shù)據(jù)丟失,進(jìn)而確保了數(shù)據(jù)的安全性。
      [0069]綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      【權(quán)利要求】
      1.一種打開磁盤寫緩存的方法,其特征在于,包括: 在存儲系統(tǒng)中建立3個隊(duì)列,分別為Pending隊(duì)列、Done隊(duì)列和Sync隊(duì)列; 當(dāng)每接收到一個寫命令時,將該寫命令加入到Pending隊(duì)列中; 對于Pending隊(duì)列中的每個寫命令,當(dāng)滿足預(yù)定條件時,將該寫命令下發(fā)到對應(yīng)的磁盤中,并在當(dāng)接收到磁盤返回的處理響應(yīng)時,將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中; 當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中,并針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令; 當(dāng)接收到任一磁盤返回的sync響應(yīng)時,將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中包括: 當(dāng)Done隊(duì)列中的寫命令數(shù)量每次達(dá)到預(yù)定閾值時,或者,每經(jīng)過預(yù)定時長后,則將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中。
      3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除之后,進(jìn)一步包括:釋放所刪除的寫命令所占用的內(nèi)存。`
      4.根據(jù)權(quán)利要求1或3所述的方法,其特征在于, 該方法進(jìn)一步包括: 當(dāng)存儲系統(tǒng)掉電時,將Pending隊(duì)列、Done隊(duì)列以及Sync隊(duì)列中的所有寫命令均保存到系統(tǒng)盤中; 當(dāng)存儲系統(tǒng)上電時,取出保存在系統(tǒng)盤中的所有寫命令,并將取出的所有寫命令均加入到Pending隊(duì)列中。
      5.一種打開磁盤寫緩存的裝置,其特征在于,包括: 第一處理模塊,用于在存儲系統(tǒng)中建立3個隊(duì)列,分別為Pending隊(duì)列、Done隊(duì)列和Sync隊(duì)列; 第二處理模塊,用于當(dāng)每接收到一個寫命令時,將該寫命令加入到Pending隊(duì)列中; 對于Pending隊(duì)列中的每個寫命令,當(dāng)滿足預(yù)定條件時,將該寫命令下發(fā)到對應(yīng)的磁盤中,并在當(dāng)接收到磁盤返回的處理響應(yīng)時,將該寫命令從Pending隊(duì)列轉(zhuǎn)移到Done隊(duì)列中; 當(dāng)每次滿足預(yù)定條件時,將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中,并針對Sync隊(duì)列中的所有寫命令所對應(yīng)的磁盤,分別執(zhí)行sync命令; 當(dāng)接收到任一磁盤返回的sync響應(yīng)時,將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除。
      6.根據(jù)權(quán)利要求5所述的裝置,其特征在于, 當(dāng)Done隊(duì)列中的寫命令數(shù)量每次達(dá)到預(yù)定閾值時,或者,每經(jīng)過預(yù)定時長后,所述第二處理模塊則將Done隊(duì)列中的所有寫命令均轉(zhuǎn)移到Sync隊(duì)列中。
      7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述第二處理模塊進(jìn)一步用于,在將Sync隊(duì)列中與該磁盤對應(yīng)的所有寫命令均刪除之后,釋放所刪除的寫命令所占用的內(nèi)存。
      8.根據(jù)權(quán)利要求5或7所述的裝置,其特征在于, 該裝置中進(jìn)一步包括: 第三處理模塊,用于當(dāng)存儲系統(tǒng)掉電時,將Pending隊(duì)列、Done隊(duì)列以及Sync隊(duì)列中的所有寫命令均保存到系統(tǒng)盤中; 當(dāng)存儲系統(tǒng)上電時,取出保存在系統(tǒng)盤中的所有寫命令,并將取出的所有寫命令均加入到Pending 隊(duì)列中。
      【文檔編號】G06F12/08GK103514109SQ201310438672
      【公開日】2014年1月15日 申請日期:2013年9月24日 優(yōu)先權(quán)日:2013年9月24日
      【發(fā)明者】余海濱 申請人:創(chuàng)新科存儲技術(shù)有限公司, 創(chuàng)新科軟件技術(shù)(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1