亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Linux系統(tǒng)DM層的IO緩存操作方法和系統(tǒng)的制作方法

文檔序號:6339342閱讀:305來源:國知局
專利名稱:一種基于Linux系統(tǒng)DM層的IO緩存操作方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及對慢速磁盤設(shè)備的讀寫優(yōu)化技術(shù),具體涉及一種基于Linux系統(tǒng)DM層 的對IO緩存操作方法和系統(tǒng)。
背景技術(shù)
早期的計算機(jī)系統(tǒng)只包含很有限的常用存儲設(shè)備,通過將這些存儲設(shè)備mount到 不同的地方來訪問它們,這些不同mount點(diǎn)的存儲空間是不能互通的,在使用有限的存儲 設(shè)備之前必須對它們有一個明確的規(guī)劃,否則使用過程中可能出現(xiàn)無法預(yù)料的問題,比如 空間不足等。隨著越來越多的存儲設(shè)備加入到系統(tǒng)中,這種一對一的結(jié)構(gòu)明顯不能滿足用 戶的需求,甚至無法創(chuàng)建一個超過磁盤大小的分區(qū),即使磁盤總量遠(yuǎn)大于該分區(qū)的大小。 Linux系統(tǒng)中的DM (Device Mapper)技術(shù)可以解決這類問題,它是Linux 2. 6內(nèi)核提供的一 種從邏輯設(shè)備到物理設(shè)備的映射框架機(jī)制,在該機(jī)制下,用戶可以很方便的根據(jù)自己的需 要制定實(shí)現(xiàn)存儲資源的管理策略,錯誤!未找到引用源。給出了 Linux DM層的結(jié)構(gòu)圖。在Linux內(nèi)核中通過模塊化的target driver插件實(shí)現(xiàn)對IO請求的過濾或者重 新定向等工作,當(dāng)前已經(jīng)實(shí)現(xiàn)的target driver插件包括軟raid、軟加密、邏輯卷?xiàng)l帶、多 路徑、鏡像、快照等,圖中l(wèi)inear、mirror、snapshot、multipath表示的就是這些target driver。DM層的引入進(jìn)一步體現(xiàn)了在Linux內(nèi)核設(shè)計中策略和機(jī)制分離的原則,將所有 與策略相關(guān)的工作放到用戶空間完成,內(nèi)核中主要提供完成這些策略所需要的機(jī)制。用戶 空間相關(guān)部分主要負(fù)責(zé)配置具體的策略和控制邏輯,比如邏輯設(shè)備和哪些物理設(shè)備建立映 射,怎么建立這些映射關(guān)系等等,而具體過濾和重定向IO請求的工作由內(nèi)核中相關(guān)代碼完 成。因此整個DM機(jī)制由兩部分組成內(nèi)核空間的DM驅(qū)動和用戶空間的DM庫以及它提供的 DMsetup 工具。對于前面提到的創(chuàng)建一個比單個磁盤大的分區(qū)的問題,DM技術(shù)可以完美地解決, 一個簡單的例子如圖所示。用戶可以通過DM技術(shù)將兩塊150GB的物理磁盤虛擬成一個 300GB的塊設(shè)備,這個虛擬塊設(shè)備可以作為一個分區(qū)使用,所有的接口與傳統(tǒng)的使用方法完 全一樣,DM層負(fù)責(zé)將數(shù)據(jù)寫往合適的物理塊設(shè)備并且負(fù)責(zé)將用戶請求的數(shù)據(jù)從正確的地方 讀出。本發(fā)明基于Linux系統(tǒng)DM層通過使用更快速的設(shè)備對慢速設(shè)備的數(shù)據(jù)進(jìn)行緩存來 提高系統(tǒng)的整體性能。磁盤的訪問速度對包含很多IO操作的應(yīng)用程序影響較大,如果能夠加快讀磁盤 的讀寫訪問將會顯著提升應(yīng)用程序的性能。但是,由于磁盤采用機(jī)械設(shè)備,導(dǎo)致其速度提升 遠(yuǎn)遠(yuǎn)不如采用集成電路的處理器和內(nèi)存的速度,所以必須采用一些特殊的機(jī)制來提升系統(tǒng) 的IO性能。

發(fā)明內(nèi)容
本發(fā)明提出了一種基于Linux系統(tǒng)DM層將容量大但是速度慢的存儲設(shè)備用容量 小但是速度快的存儲設(shè)備作為緩存來提高大容量磁盤的IO速度的方法。
一種基于Linux系統(tǒng)DM層的對IO緩存操作方法,采用Linux內(nèi)核實(shí)現(xiàn),包括讀過 程和寫過程,其中,讀過程為A、用戶發(fā)出讀請求時,判斷用戶是否允許緩存;B、如果用戶允許緩存則在高速存儲設(shè)備上根據(jù)之前存儲的管理信息來查找是否 已緩存了此IO所包含的數(shù)據(jù),如果找到則直接從高速存儲設(shè)備讀出并返回;C、如果用戶不允許緩存或者在高速存儲設(shè)備中找不到包含此IO的數(shù)據(jù)塊,則只 能從慢速的存儲設(shè)備讀出;D、讀出數(shù)據(jù)以后分為兩種情況,一是用戶不允許對讀進(jìn)行緩存,則直接返回即可, 二是用戶允許對讀進(jìn)行緩存,則在高速存儲設(shè)備上分配相當(dāng)?shù)目臻g,同時另分配合適的管 理空間,如果都成功,則將從慢速存儲設(shè)備中讀出的數(shù)據(jù)寫往高速存儲設(shè)備中;否則,直接 返回;寫過程為E、判斷用戶設(shè)置的選項(xiàng)是否需要對寫數(shù)據(jù)進(jìn)行緩存,如果不需要則直接寫往慢速 存儲設(shè)備;F、如果需要讀寫數(shù)據(jù)進(jìn)行緩存,則在高速存儲設(shè)備上分配一段空間,此空間需要 存下此IO所包含的數(shù)據(jù),另外還需要一些額外的管理信息,如果沒有這么大的空間則不做 緩存,直接寫往慢速存儲設(shè)備即可;如果空間足夠,則寫往高速存儲設(shè)備,做好標(biāo)記后返回。本發(fā)明的一種優(yōu)選技術(shù)方案在于所述IO請求中包括一段內(nèi)存中的數(shù)據(jù)以及這 段數(shù)據(jù)需要寫入的磁盤地址,并且這段地址在磁盤上是連續(xù)的。一種基于Linux系統(tǒng)DM層的IO緩存系統(tǒng),在物理磁盤設(shè)備之上增加一個有大量 內(nèi)存模塊組成的高速PCIE存儲設(shè)備,該設(shè)備通過PCIE接口連接到系統(tǒng)中。本發(fā)明的一種優(yōu)選技術(shù)方案在于所述存儲設(shè)備在安裝驅(qū)動后,在系統(tǒng)中呈現(xiàn)給 用戶的是一個標(biāo)準(zhǔn)的塊設(shè)備。本發(fā)明通過增加了一個高速的存儲設(shè)備作為物理設(shè)備的緩存,通過將常用的數(shù)據(jù) 放入高速存儲設(shè)備,用戶對磁盤的訪問性能得到了提升。


圖1為Linux DM層結(jié)構(gòu) 2 為 Device Mapper 使用舉例圖3為只有一個磁盤標(biāo)準(zhǔn)使用方式圖4磁盤使用新方式圖5為本發(fā)明流程圖
具體實(shí)施例方式本發(fā)明提出了一種基于Linux系統(tǒng)DM層將容量大但是速度慢的存儲設(shè)備用容量 小但是速度快的存儲設(shè)備作為緩存來提高大容量磁盤的IO速度的方法。只有一個磁盤的 標(biāo)準(zhǔn)使用方式如圖所示,虛擬塊設(shè)備與物理設(shè)備一一對應(yīng);本發(fā)明的優(yōu)化在于增加了一個 高速的存儲設(shè)備作為物理設(shè)備的緩存,該高速存儲設(shè)備是一塊高速PCI-E設(shè)備,由大量的 內(nèi)存模塊組成,通過高速的PCI-E接口連接到系統(tǒng)中,具有大容量、高帶寬和低延遲的特性。在Linux系統(tǒng)中安裝好此設(shè)備的驅(qū)動程序以后,呈現(xiàn)給用戶的是一個標(biāo)準(zhǔn)的塊設(shè)備,使 用方法與普通磁盤完全一樣,但是性能要遠(yuǎn)遠(yuǎn)高于普通磁盤。這里使用這樣一個高速設(shè)備 來作為慢速磁盤的緩存,從而可以提高整個系統(tǒng)的IO性能。通過將常用的數(shù)據(jù)放入高速存 儲設(shè)備,用戶對磁盤的訪問性能得到了提升。寫數(shù)據(jù)在打開緩存的前提下,如果配置運(yùn)行寫入緩存,則系統(tǒng)首先在高速存儲設(shè)備中分 配一個緩存塊,然后將數(shù)據(jù)寫入此緩存塊,而不是直接寫入慢速的磁盤設(shè)備。讀數(shù)據(jù)如果在緩存中找到數(shù)據(jù),則直接從緩存中讀取即可;如果不在緩存中,則需要從慢 速磁盤讀出,并根據(jù)需求進(jìn)一步存儲在高速存儲設(shè)備中。本發(fā)明以內(nèi)核模塊的方式實(shí)現(xiàn),通過向Linux系統(tǒng)的DM層注冊一系列函數(shù)來完成 需要的功能,其中最主要的函數(shù)用來處理從用戶發(fā)送來的IO請求,每個IO包括一段內(nèi)存中 的數(shù)據(jù)以及這段數(shù)據(jù)需要寫入的磁盤地址,需要說明的是這段地址在磁盤上是連續(xù)的,這 是為了減少磁盤頭的移動而做的優(yōu)化。拿到這個IO以后,內(nèi)核模塊就可以對其進(jìn)行處理。為了方便用戶的使用,可以提供多種緩存方式1、不緩存,這種方式下與標(biāo)準(zhǔn)的Linux系統(tǒng)的DM實(shí)現(xiàn)方式完全一樣,所有的IO 讀寫都直接對物理存儲設(shè)備進(jìn)行操作,不存在任何的緩存情況,高速存儲設(shè)備完全沒有使 用;2、僅讀緩存,這種方式僅緩存用戶從磁盤讀取的數(shù)據(jù),而對用戶寫的數(shù)據(jù)采取直 接寫往物理存儲設(shè)備的方式,在用戶第二次讀取某一塊數(shù)據(jù)時,此模塊可以直接從高速存 儲設(shè)備讀出,從而可以提高讀數(shù)據(jù)的性能,這種方式對存在大量讀操作的應(yīng)用程序尤其有 效;3、僅寫緩存,這種方式僅緩存用戶寫往磁盤的數(shù)據(jù),而用戶直接從磁盤讀出的數(shù) 據(jù)不做緩存,這樣,用戶只要讀取以前曾經(jīng)寫過的數(shù)據(jù),性能就會獲得顯著提升,這種方式 對生產(chǎn)者消費(fèi)者模式的應(yīng)用程序效果顯著;4、讀寫均緩存,這是最復(fù)雜的一種方式,也是最常用的方式,無論讀寫均在高速存 儲設(shè)備里做緩存,從而適應(yīng)更加廣泛的情況;用戶在做讀寫操作時,此內(nèi)核模塊必須根據(jù)以上四種情況來做適當(dāng)?shù)木彺娌僮鳎?錯誤!未找到引用源。給出了整個執(zhí)行過程。在寫數(shù)據(jù)的情況下首先判斷用戶設(shè)置的選項(xiàng)是否需要對寫數(shù)據(jù)進(jìn)行緩存,如果 不需要則直接寫往慢速存儲設(shè)備;如果需要讀寫數(shù)據(jù)進(jìn)行緩存,則在高速存儲設(shè)備上分配 一段空間,此空間需要存下此IO所包含的數(shù)據(jù),另外還需要一些額外的管理信息,如果沒 有這么大的空間則不做緩存,直接寫往慢速存儲設(shè)備即可;如果空間足夠,則寫往高速存儲 設(shè)備,做好標(biāo)記后返回。在讀數(shù)據(jù)的情況下用戶發(fā)出讀請求時,首先判斷用戶是否允許緩存,如果用戶允 許緩存則在高速存儲設(shè)備上根據(jù)之前存儲的管理信息來查找是否已緩存了此IO所包含的 數(shù)據(jù),如果找到則直接從高速存儲設(shè)備讀出并返回;如果用戶不允許緩存或者在高速存儲 設(shè)備中找不到包含此IO的數(shù)據(jù)塊,則只能從慢速的存儲設(shè)備讀出;讀出數(shù)據(jù)以后分為兩種 情況,一種是用戶不允許對讀進(jìn)行緩存,則直接返回即可,如果允許對讀進(jìn)行緩存,則在高速存儲設(shè)備上分配相當(dāng)?shù)目臻g,同時另分配合適的管理空間,如果都成功,則將從慢速存儲 設(shè)備中讀出的數(shù)據(jù)寫往高速存儲設(shè)備中;否則,直接返回。
權(quán)利要求
1.一種基于Linux系統(tǒng)DM層的IO緩存操作方法,其特征在于采用Linux內(nèi)核實(shí)現(xiàn), 包括讀過程和寫過程,其中,讀過程為A、用戶發(fā)出讀請求時,判斷用戶是否允許緩存;B、如果用戶允許緩存則在高速存儲設(shè)備上根據(jù)之前存儲的管理信息來查找是否已緩 存了此IO所包含的數(shù)據(jù),如果找到則直接從高速存儲設(shè)備讀出并返回;C、如果用戶不允許緩存或者在高速存儲設(shè)備中找不到包含此IO的數(shù)據(jù)塊,則只能從 慢速的存儲設(shè)備讀出;D、讀出數(shù)據(jù)以后分為兩種情況,一是用戶不允許對讀進(jìn)行緩存,則直接返回即可,二是 用戶允許對讀進(jìn)行緩存,則在高速存儲設(shè)備上分配相當(dāng)?shù)目臻g,同時另分配合適的管理空 間,如果都成功,則將從慢速存儲設(shè)備中讀出的數(shù)據(jù)寫往高速存儲設(shè)備中;否則,直接返回; 寫過程為E、判斷用戶設(shè)置的選項(xiàng)是否需要對寫數(shù)據(jù)進(jìn)行緩存,如果不需要則直接寫往慢速存儲 設(shè)備;F、如果需要讀寫數(shù)據(jù)進(jìn)行緩存,則在高速存儲設(shè)備上分配一段空間,此空間需要存下 此IO所包含的數(shù)據(jù),另外還需要一些額外的管理信息,如果沒有這么大的的空間則不做緩 存,直接寫往慢速存儲設(shè)備即可;如果空間足夠,則寫往高速存儲設(shè)備,做好標(biāo)記后返回。
2.如權(quán)利要求1所述一種基于Linux系統(tǒng)DM層的IO緩存操作方法,其特征在于所述 IO請求中包括一段內(nèi)存中的數(shù)據(jù)以及這段數(shù)據(jù)需要寫入的磁盤地址,并且這段地址在磁盤 上是連續(xù)的。
3.一種基于Linux系統(tǒng)DM層的IO緩存系統(tǒng),其特征在于在物理磁盤設(shè)備之上增加 一個有大量內(nèi)存模塊組成的高速PCIE存儲設(shè)備,該設(shè)備通過PCIE接口連接到系統(tǒng)中。
4.如權(quán)利要求3所述一種基于Linux系統(tǒng)DM層的IO緩存系統(tǒng),其特征在于所述存 儲設(shè)備在安裝驅(qū)動后,在系統(tǒng)中呈現(xiàn)給用戶的是一個標(biāo)準(zhǔn)的塊設(shè)備。
全文摘要
本發(fā)明提供了一種基于Linux系統(tǒng)DM層的IO緩存操作方法和系統(tǒng),采用Linux內(nèi)核實(shí)現(xiàn),包括讀過程和寫過程,本發(fā)明增加了一個高速的存儲設(shè)備作為物理設(shè)備的緩存,通過將常用的數(shù)據(jù)放入高速存儲設(shè)備,用戶對磁盤的訪問性能得到了提升。
文檔編號G06F12/08GK102053929SQ20101059854
公開日2011年5月11日 申請日期2010年12月17日 優(yōu)先權(quán)日2010年12月17日
發(fā)明者劉新春, 許建衛(wèi), 邵宗有 申請人:天津曙光計算機(jī)產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1