国产精品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>

      一種磁盤中邏輯卷克隆的方法、裝置及磁盤與流程

      文檔序號:12596764閱讀:466來源:國知局
      一種磁盤中邏輯卷克隆的方法、裝置及磁盤與流程

      本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種磁盤中邏輯卷克隆的方法、裝置及磁盤。



      背景技術(shù):

      在傳統(tǒng)的克隆技術(shù)中,采用的多是單純的物理復(fù)制技術(shù)即采用直接復(fù)制源卷的方法,復(fù)制過程中要求源存儲卷中數(shù)據(jù)不發(fā)生變化,這個要求會隨著源存儲卷越大、復(fù)制時間越長、造成的影響就越大。由于很難保證在復(fù)制過程中不對源卷進行寫操作,一旦在復(fù)制源卷的過程中,對源卷中尚未復(fù)制過的數(shù)據(jù)進行了寫操作且寫入數(shù)據(jù)和原數(shù)據(jù)不一致,那么就不能保證所復(fù)制數(shù)據(jù)的實時有效性;因此,如何有效的避免對源卷寫操作時破壞源卷數(shù)據(jù)的有效性,是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問題。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的是提供一種磁盤中邏輯卷克隆的方法、裝置及磁盤,均能夠?qū)υ淳韴?zhí)行克隆的過程中可以對源卷進行任意的讀寫操作,能夠有效的避免對源卷寫操作時破壞源卷數(shù)據(jù)的有效性。

      為解決上述技術(shù)問題,本發(fā)明提供一種磁盤中邏輯卷克隆的方法,包括:

      源卷啟動克隆時,當(dāng)所述源卷要寫入數(shù)據(jù)到存儲位置時,判斷克隆表中對應(yīng)所述存儲位置的標(biāo)記是否為未復(fù)制;

      若是,則將所述源卷中所述存儲位置的原數(shù)據(jù)讀取并寫入到目的卷中與所述存儲位置對應(yīng)的存儲位置中,再將所述源卷要寫入數(shù)據(jù)寫入到所述存儲位置中,并將所述克隆表中對應(yīng)所述存儲位置的標(biāo)記設(shè)置為已復(fù)制;

      若否,則將要寫入數(shù)據(jù)寫入到所述源卷中所述存儲位置;

      當(dāng)所述克隆表中所有的標(biāo)記都為已復(fù)制時,完成所述源卷的克隆。

      其中,源卷啟動克隆之前,還包括:建立源卷和目的卷的克隆關(guān)系;所述建立源卷和目的卷的克隆關(guān)系包括:

      設(shè)置與源卷存儲空間大小相同的目的卷;

      分別對所述源卷和所述目的卷按照預(yù)定大小進行分片;

      設(shè)置克隆表,將所述克隆表中各位與所述源卷和所述目的卷中各相同位置的分片建立映射關(guān)系,并將所述克隆表中每一位初始設(shè)置為未復(fù)制。

      其中,建立源卷和目的卷的克隆關(guān)系之前,還包括:

      判斷所述源卷的存儲空間是否大于預(yù)定值;

      若是,則執(zhí)行建立源卷和目的卷的克隆關(guān)系。

      其中,所述源卷未完成克隆之前讀取克隆數(shù)據(jù)的方法,包括:

      判斷所述克隆表中要讀取的克隆數(shù)據(jù)對應(yīng)的存儲位置的標(biāo)記是否為已復(fù)制;

      若是,則從所述目的卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù);

      若否,則從所述源卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù)。

      本發(fā)明還提供一種磁盤中邏輯卷克隆的裝置,包括:

      第一判斷模塊,用于源卷啟動克隆時,當(dāng)所述源卷要寫入數(shù)據(jù)到存儲位置時,判斷克隆表中對應(yīng)所述存儲位置的標(biāo)記是否為未復(fù)制;

      COW模塊,用于若未復(fù)制,則將所述源卷中所述存儲位置的原數(shù)據(jù)讀取并寫入到目的卷中與所述存儲位置對應(yīng)的存儲位置中,再將所述源卷要寫入數(shù)據(jù)寫入到所述存儲位置中,并將所述克隆表中對應(yīng)所述存儲位置的標(biāo)記設(shè)置為已復(fù)制;若已復(fù)制,則將要寫入數(shù)據(jù)寫入到所述源卷中所述存儲位置;

      第二判斷模塊,用于判斷所述克隆表中所有的標(biāo)記是否都為已復(fù)制,若是,完成所述源卷的克隆。

      其中,該裝置還包括:克隆關(guān)系建立模塊,所述克隆關(guān)系建立模塊包括:

      目的卷單元,用于設(shè)置與源卷存儲空間大小相同的目的卷;

      分片單元,用于分別對所述源卷和所述目的卷按照預(yù)定大小進行分片;

      克隆表設(shè)置單元,用于設(shè)置克隆表,將所述克隆表中各位與所述源卷和所述目的卷中各相同位置的分片建立映射關(guān)系,并將所述克隆表中每一位初始設(shè)置為未復(fù)制。

      其中,該裝置還包括:

      第三判斷模塊,用于判斷所述源卷的存儲空間是否大于預(yù)定值;若是,則執(zhí)行建立源卷和目的卷的克隆關(guān)系。

      其中,該裝置還包括:

      克隆數(shù)據(jù)讀取模塊,用于判斷所述克隆表中要讀取的克隆數(shù)據(jù)對應(yīng)的存儲位置的標(biāo)記是否為已復(fù)制;若是,則從所述目的卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù);若否,則從所述源卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù)。

      本發(fā)明還提供一種磁盤,包括:根據(jù)上述任一項所述的磁盤中邏輯卷克隆的裝置。

      本發(fā)明所提供的磁盤中邏輯卷克隆的方法,該方法包括源卷啟動克隆時,當(dāng)源卷要寫入數(shù)據(jù)到存儲位置時,判斷克隆表中對應(yīng)存儲位置的標(biāo)記是否為未復(fù)制;若是,則將源卷中存儲位置的原數(shù)據(jù)讀取并寫入到目的卷中與存儲位置對應(yīng)的存儲位置中,再將源卷要寫入數(shù)據(jù)寫入到存儲位置中,并將克隆表中對應(yīng)所述存儲位置的標(biāo)記設(shè)置為已復(fù)制;若否,則將要寫入數(shù)據(jù)寫入到源卷中所述存儲位置;當(dāng)克隆表中所有的標(biāo)記都為已復(fù)制時,完成源卷的克?。?/p>

      可見,該方法在源卷執(zhí)行寫操作時,判斷需要克隆的原數(shù)據(jù)是否已經(jīng)復(fù)制,若復(fù)制過則直接進行寫操作,若沒有則需要先對原數(shù)據(jù)進行復(fù)制,再在對應(yīng)的存儲位置上寫入數(shù)據(jù);即在對源卷執(zhí)行克隆的過程中可以對源卷進行任意的讀寫操作,能夠有效的避免對源卷寫操作時破壞源卷數(shù)據(jù)的有效性;本發(fā)明還提供了一種磁盤中邏輯卷克隆的裝置及磁盤,具有上述有益效果,在此不再贅述。

      附圖說明

      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

      圖1為本發(fā)明實施例所提供的磁盤中邏輯卷克隆的方法的流程圖;

      圖2為本發(fā)明實施例所提供的磁盤中邏輯卷克隆時刻的狀態(tài)示意圖;

      圖3為本發(fā)明實施例所提供的磁盤中邏輯卷克隆執(zhí)行過程中的狀態(tài)示意圖;

      圖4為本發(fā)明實施例所提供的磁盤中邏輯卷克隆完成時刻的狀態(tài)示意圖;

      圖5為本發(fā)明實施例所提供的磁盤中邏輯卷克隆的裝置的結(jié)構(gòu)框圖。

      具體實施方式

      本發(fā)明的核心是提供一種磁盤中邏輯卷克隆的方法、裝置及磁盤,均能夠?qū)υ淳韴?zhí)行克隆的過程中可以對源卷進行任意的讀寫操作,能夠有效的避免對源卷寫操作時破壞源卷數(shù)據(jù)的有效性。

      為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

      請參考圖1,圖1為本發(fā)明實施例所提供的磁盤中邏輯卷克隆的方法的流程圖;該方法可以包括:

      S100、源卷啟動克隆時,當(dāng)所述源卷要寫入數(shù)據(jù)到存儲位置時,判斷克隆表中對應(yīng)所述存儲位置的標(biāo)記是否為未復(fù)制;

      其中,在源卷進行克隆之前需要建立克隆關(guān)系,即建立對源卷進行克隆后的目的卷,源卷與目的卷的之間對應(yīng)關(guān)系以及它們與克隆表的關(guān)系。具體的過程可以如下:

      設(shè)置與源卷存儲空間大小相同的目的卷;

      分別對所述源卷和所述目的卷按照預(yù)定大小進行分片;

      設(shè)置克隆表,將所述克隆表中各位與所述源卷和所述目的卷中各相同位置的分片建立映射關(guān)系,并將所述克隆表中每一位初始設(shè)置為未復(fù)制。

      具體的即克隆關(guān)系包括源卷和目的卷,這里目的卷和源卷的大小必須一致,因為要克隆源卷的全部存儲位置的數(shù)據(jù);然后分別對源卷和目的卷按照固定大小分片(例如:每一片為256KB),這里的預(yù)定大小也即固定大小可以根據(jù)實際需求進行確定,例如源卷寫入不是特別頻繁,則這里的預(yù)定大小可以設(shè)置大一些,源卷寫入特別頻繁,則這里的預(yù)定大小可以設(shè)置小一些;這里的每一片可以稱之為一個顆粒。分片之后,需要設(shè)置克隆表(例如bitmap),在克隆表中每一位與所述源卷和所述目的卷中各對應(yīng)的分片為一一對應(yīng)的關(guān)系;例如假設(shè)源卷的大小是2G,那么可以分成8096個顆粒;在內(nèi)存中用一個位(bit)來標(biāo)記一個顆粒的話,需要開辟1KB大小的空間做為一個bitmap大小的bitmap中每一位對應(yīng)源卷/目的卷中的一個顆粒,用來標(biāo)記是否已經(jīng)將數(shù)據(jù)從源卷復(fù)制到了目的卷。Bitmap中的位用1來表示數(shù)據(jù)尚未復(fù)制,0來表示數(shù)據(jù)已經(jīng)復(fù)制(反之1表示已復(fù)制,0表示尚未復(fù)制亦可,或者用其它標(biāo)記形式也可以,只要能夠用兩種狀態(tài)分別表示已復(fù)制和未復(fù)制即可)。

      這里為了進一步在不影響克隆有效性的基礎(chǔ)上提高速度的話,需要對源卷的大小進行判斷,假設(shè)源卷很小的話其克隆過程會很快,下這個過程中原數(shù)據(jù)發(fā)生改變的可能性較小,因此,可以直接進行克隆操作,不需要進行克隆表的建立。優(yōu)選的,判斷所述源卷的存儲空間是否大于預(yù)定值;若是,則執(zhí)行建立源卷和目的卷的克隆關(guān)系;若否,則對源卷進行傳統(tǒng)的克隆操作(直接拷貝)。

      這里可以對判斷條件進行增加,例如源卷的大小很小,且寫操作發(fā)生頻率比較低,這里的條件的設(shè)置以及條件中的比較值的設(shè)置都可以根據(jù)用戶的實際情況進行,可以綜合考慮有效性和效率。

      請參考圖2,給出了步驟S100的初始狀態(tài),圖中的數(shù)值均以舉例子的形式給出??寺£P(guān)系建立好之后,就可以啟動克隆操作了。如附圖2所示,左邊的卷是克隆源卷,右邊的卷是克隆目的卷。在T0時刻啟動克隆,這時數(shù)據(jù)還沒有開始復(fù)制,Bitmap中每一位還都是初始值1。

      S110、若是,則將所述源卷中所述存儲位置的原數(shù)據(jù)讀取并寫入到目的卷中與所述存儲位置對應(yīng)的存儲位置中,再將所述源卷要寫入數(shù)據(jù)寫入到所述存儲位置中,并將所述克隆表中對應(yīng)所述存儲位置的標(biāo)記設(shè)置為已復(fù)制;

      S120、若否,則將要寫入數(shù)據(jù)寫入到所述源卷中所述存儲位置;

      其中,步驟S110和步驟S120是克隆過程,具體可以參考圖3,具體舉例過程如下:

      假設(shè)到T1時刻,源卷產(chǎn)生寫操作,要寫入數(shù)據(jù)T1(即源卷要寫入數(shù)據(jù))。這時候采用COW技術(shù),先分析Bitmap(即克隆表),T1時刻寫入存儲位置對應(yīng)Bitmap位上值是1,表示尚未復(fù)制過,表示該存儲位置是第一次寫入。將該位置的原數(shù)據(jù)T0(即需要克隆的原數(shù)據(jù))先讀取出來寫入目的卷對應(yīng)的存儲位置,再將T1數(shù)據(jù)寫入源卷存儲位置上,最后將Bitmap中對應(yīng)的位標(biāo)記為0,即表示該位對應(yīng)顆粒已經(jīng)寫入過數(shù)據(jù)。

      假設(shè)到T2時刻,源卷寫入了數(shù)據(jù)T2,寫入步驟同上即S110。

      假設(shè)到T3時刻,在源卷的相同位置上寫數(shù)據(jù)T3,這時分析Bitmap得知數(shù)據(jù)已經(jīng)寫入過一次,這不是首次寫入該位置數(shù)據(jù)了,就不再進行COW操作,而是對源卷直接覆蓋寫即S120。

      S130、當(dāng)所述克隆表中所有的標(biāo)記都為已復(fù)制時,完成所述源卷的克隆。

      其中,請參考圖4,當(dāng)所有顆粒都已經(jīng)進行過一遍寫操作時,Bitmap中的所有標(biāo)記為置為0,目的卷中的每一個顆粒的數(shù)據(jù)內(nèi)容都已經(jīng)是源卷在T0時刻的數(shù)據(jù)了,這時候克隆結(jié)束即完成源卷的克隆,最初建立的克隆關(guān)系也將被刪除。這個時候的目的卷就是源卷的一個在T0時刻的完整復(fù)制,并且目的卷和源卷不再有任何關(guān)系。

      傳統(tǒng)的克隆是要停止源卷的寫操作的,在復(fù)制源卷的過程中對無法寫入,影響了生產(chǎn),而此方法將復(fù)制過程進行了分解,在每次寫源卷時復(fù)制,每一次復(fù)制時間短,不會影響生產(chǎn)。

      基于上述技術(shù)方案,所述源卷未完成克隆之前讀取克隆數(shù)據(jù)的方法,包括:

      判斷所述克隆表中要讀取的克隆數(shù)據(jù)對應(yīng)的存儲位置的標(biāo)記是否為已復(fù)制;

      若是,則從所述目的卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù);

      若否,則從所述源卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù)。

      即當(dāng)讀取克隆數(shù)據(jù)時,如果目的卷上的存儲位置是COW如S110寫入的,直接讀取即可,如果目的卷上的存儲位置沒有進行COW寫入,那么重定向到源卷上對應(yīng)位置上讀取。當(dāng)存儲位置上的所有數(shù)據(jù)都COW過之后,即可停止COW操作。

      其中,“第一次寫時復(fù)制(Copy On First Write,簡稱COFW或COW)”技術(shù)。這種技術(shù)是指當(dāng)數(shù)據(jù)第一次寫入某個存儲位置時,要先將該存儲位置中原數(shù)據(jù)讀取出來并寫到另一個存儲中對應(yīng)的位置上,最后再將數(shù)據(jù)寫入該存儲位置。此技術(shù)可以有效的保存下來原存儲中在啟動COW技術(shù)這個時間點的數(shù)據(jù),無論原存儲中的數(shù)據(jù)是否被改動或被多次改動過。

      基于上述技術(shù)方案,本發(fā)明實施例提的磁盤中邏輯卷克隆的方法,在啟動克隆的時候?qū)υ淳黹_始進行COW操作,對于某個存儲位置如果是第一次寫數(shù)據(jù),則將該存儲位置上的數(shù)據(jù)復(fù)制到目的卷上,再對該存儲位置進行寫操作;如果對某個存儲位置不是首次寫數(shù)據(jù),則可以直接在該存儲位置上覆蓋寫;當(dāng)讀取克隆數(shù)據(jù)時,如果目的卷上的存儲位置是COW寫入的,直接讀取即可,如果目的卷上的存儲位置沒有進行COW寫入,那么重定向到源卷上對應(yīng)位置上讀取。當(dāng)存儲位置上的所有數(shù)據(jù)都COW過之后,即可停止COW操作,此時克隆目的卷就等價于物理克隆出來的目的卷,與源卷再無關(guān)系。即在克隆過程中可以對源卷進行任意的讀寫操作,能夠有效的避免對源卷寫操作時破壞源卷數(shù)據(jù)的有效性。

      下面對本發(fā)明實施例提供的磁盤中邏輯卷克隆的裝置及磁盤進行介紹,下文描述的磁盤中邏輯卷克隆的裝置及磁盤與上文描述的磁盤中邏輯卷克隆的方法可相互對應(yīng)參照。

      請參考圖5,圖5為本發(fā)明實施例所提供的磁盤中邏輯卷克隆的裝置的結(jié)構(gòu)框圖;該裝置可以包括:

      第一判斷模塊100,用于源卷啟動克隆時,當(dāng)所述源卷要寫入數(shù)據(jù)到存儲位置時,判斷克隆表中對應(yīng)所述存儲位置的標(biāo)記是否為未復(fù)制;

      COW模塊200,用于若未復(fù)制,則將所述源卷中所述存儲位置的原數(shù)據(jù)讀取并寫入到目的卷中與所述存儲位置對應(yīng)的存儲位置中,再將所述源卷要寫入數(shù)據(jù)寫入到所述存儲位置中,并將所述克隆表中對應(yīng)所述存儲位置的標(biāo)記設(shè)置為已復(fù)制;用于若已復(fù)制,則將要寫入數(shù)據(jù)寫入到所述源卷中所述存儲位置;

      第二判斷模塊300,用于判斷所述克隆表中所有的標(biāo)記是否都為已復(fù)制,若是,完成所述源卷的克隆。

      基于上述技術(shù)方案,還包括:克隆關(guān)系建立模塊,所述克隆關(guān)系建立模塊包括:

      目的卷單元,用于設(shè)置與源卷存儲空間大小相同的目的卷;

      分片單元,用于分別對所述源卷和所述目的卷按照預(yù)定大小進行分片;

      克隆表設(shè)置單元,用于設(shè)置克隆表,將所述克隆表中各位與所述源卷和所述目的卷中各相同位置的分片建立映射關(guān)系,并將所述克隆表中每一位初始設(shè)置為未復(fù)制。

      基于上述技術(shù)方案,還包括:

      第三判斷模塊,用于判斷所述源卷的存儲空間是否大于預(yù)定值;若是,則執(zhí)行建立源卷和目的卷的克隆關(guān)系;若否,則對源卷進行傳統(tǒng)的克隆操作(直接拷貝,不需要建立源卷和目的卷的克隆關(guān)系)。

      基于上述技術(shù)方案,還包括:

      克隆數(shù)據(jù)讀取模塊,用于判斷所述克隆表中要讀取的克隆數(shù)據(jù)對應(yīng)的存儲位置的標(biāo)記是否為已復(fù)制;若是,則從所述目的卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù);若否,則從所述源卷對應(yīng)的存儲位置中讀取克隆數(shù)據(jù)。

      本發(fā)明還提供一種磁盤,包括:根據(jù)上述任一項技術(shù)方案所述的磁盤中邏輯卷克隆的裝置。

      說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。

      專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

      結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。

      以上對本發(fā)明所提供的磁盤中邏輯卷克隆的方法、裝置及磁盤進行了詳細(xì)介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1