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

      應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的共享磁盤(pán)文件系統(tǒng)同步方法

      文檔序號(hào):7650377閱讀:334來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的共享磁盤(pán)文件系統(tǒng)同步方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及不同計(jì)算機(jī)上文件系統(tǒng)之間進(jìn)行同步的方法,特別涉及存儲(chǔ)區(qū)域網(wǎng)絡(luò)(Storage Area Networ, SAN)中,不同計(jì)算機(jī)上運(yùn)行的共享磁盤(pán)文件系統(tǒng)之間進(jìn)行同步的方法。
      背景技術(shù)
      隨著多媒體,互聯(lián)網(wǎng)應(yīng)用的不斷發(fā)展,以網(wǎng)絡(luò)為中心的存儲(chǔ)結(jié)構(gòu)和存儲(chǔ)技術(shù)得到快速的發(fā)展,在這種 背景下,出現(xiàn)了 SAN (Storage Area Network,存儲(chǔ)區(qū)域網(wǎng)絡(luò))。SAN是由并行SCSI應(yīng)用演化而來(lái)的,并 且從SCS1的替代者進(jìn)化為更復(fù)雜的、基于環(huán)路基礎(chǔ)的存儲(chǔ)共享,進(jìn)而發(fā)展成為目前具有高可擴(kuò)展性、高 可靠性的交換fabric網(wǎng)絡(luò)。SAN現(xiàn)在絕大多數(shù)被部署在企業(yè)的關(guān)鍵應(yīng)用和重要領(lǐng)域。典型的應(yīng)用SAN的場(chǎng) 合是絕大多數(shù)關(guān)鍵業(yè)務(wù)以及需要高級(jí)存儲(chǔ)技術(shù)才能解決的地方。SAN -方面能為網(wǎng)絡(luò)上的應(yīng)用系統(tǒng)提供豐 富,快速,簡(jiǎn)便的存儲(chǔ)資源,另一方面又能對(duì)網(wǎng)上的存儲(chǔ)資源實(shí)施集中統(tǒng)一的管理,成為當(dāng)今理想的存 儲(chǔ)應(yīng)用模式。在SAN中,應(yīng)用服務(wù)器通過(guò)存儲(chǔ)網(wǎng)絡(luò)(可以是光纖網(wǎng)絡(luò)或者TCP/IP網(wǎng)絡(luò))訪問(wèn)存儲(chǔ)服務(wù)器上的存儲(chǔ)資 源。存儲(chǔ)服務(wù)器上的存儲(chǔ)資源為組織成邏輯巻(Logical Volume)的共享磁盤(pán),向應(yīng)用服務(wù)器表現(xiàn)為塊級(jí) (block-level)的接口。應(yīng)用服務(wù)器在共享磁盤(pán)之上自行建立文件系統(tǒng)以供上層應(yīng)用使用。由于文件系統(tǒng) 由應(yīng)用服務(wù)器各自分別建立,在存在兩個(gè)或以上應(yīng)用服務(wù)器同時(shí)使用一個(gè)邏輯巻的情況時(shí),不同應(yīng)用服務(wù) 器上的文件系統(tǒng)之間不能同步,不能看到別的應(yīng)用服務(wù)器對(duì)文件的更新。因此,需耍一個(gè)共享磁盤(pán)文件系 統(tǒng)的同步方法,來(lái)解決SAN中文件系統(tǒng)之間同步的問(wèn)題。S前,具有同步功能的文件系統(tǒng)可以被粗略地分為三類(lèi)并行文件系統(tǒng),分布式文件系統(tǒng),以及共享 磁盤(pán)文件系統(tǒng)。第一類(lèi)是并行文件系統(tǒng),例如用于Intel Paragon系統(tǒng)的PFS、用于HP公^]的Exempla的HFS、用于 IBM公司的SP系列計(jì)算機(jī)的PIOFS以及用于CMU NASD集群的PFS。并行文件系統(tǒng)主要用于大規(guī)模科學(xué)計(jì) 算集群,并且大多只能在自己公司的特定的平臺(tái)上才能使用,并不使用與SAN環(huán)境F。第二類(lèi)分布式文件系統(tǒng)主要以NFS, AFS/Coda, InterMezzo, xFS和CIFS為代表。這些文件系統(tǒng)被設(shè) 計(jì)用來(lái)提供多個(gè)客戶機(jī)對(duì)文件的分布式讀寫(xiě)訪問(wèn),通過(guò)網(wǎng)絡(luò)(一般是IP網(wǎng)絡(luò))提供基于文件級(jí)語(yǔ)義的共享, 它們的一致性語(yǔ)義和緩存策略也是為了這種訪問(wèn)設(shè)計(jì)的。而SAN中使用基于塊級(jí)語(yǔ)義的共享,與此有較 大差別。第三類(lèi)共享磁盤(pán)文件系統(tǒng),使用在SAN環(huán)境中,主要有IBM的GPFS和Storage Tank,用于SGI公司 的IRIX集群的CXFS, Sistina公司的Global filesystem(GFS)等。共享磁盤(pán)文件系統(tǒng)能夠在塊級(jí)別提供 數(shù)據(jù)的共享和并發(fā)訪問(wèn),減少了協(xié)議開(kāi)銷(xiāo)。但與之相應(yīng),其設(shè)計(jì)和實(shí)現(xiàn)十分復(fù)雜。以GFS為例,為了保證 多個(gè)客戶機(jī)對(duì)文件的共享訪問(wèn),設(shè)計(jì)了復(fù)雜的鎖機(jī)制,而且為了避免死鎖的發(fā)生作了很多性能上和功能上 的犧牲。鑒于已有實(shí)現(xiàn)的以上不足,需要一個(gè)應(yīng)用于SAN的共享磁盤(pán)文件系統(tǒng)同步方法。 發(fā)明內(nèi)容本發(fā)明的內(nèi)容為應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的共享磁盤(pán)文件系統(tǒng)同步方法,具體包括以下步驟(1) 在不同應(yīng)用服務(wù)器之間建立TCP/IP連接;(2) 在有一個(gè)應(yīng)用服務(wù)器進(jìn)行寫(xiě)操作的時(shí)候,通過(guò)TCP/IP連接通知應(yīng)用服務(wù)器;(3〉其他應(yīng)用服務(wù)器此時(shí)若需要讀取數(shù)據(jù),則去掉文件系統(tǒng)的各級(jí)緩存(cache),改為直接從磁盤(pán)讀取。由于在SAN系統(tǒng)中磁盤(pán)是共享的,所以磁盤(pán)上的數(shù)據(jù)對(duì)于各個(gè)服務(wù)器都是一致的; (4〉進(jìn)行寫(xiě)操作的應(yīng)用服務(wù)器的寫(xiě)操作完成后,通過(guò)TCP/IP連接通知其他應(yīng)用服務(wù)器。 本發(fā)明無(wú)需復(fù)雜的鎖機(jī)制,僅在有寫(xiě)操作時(shí)會(huì)對(duì)讀操作產(chǎn)生影響,大部分時(shí)間對(duì)系統(tǒng)性能影響很小。 通過(guò)本發(fā)明,可以保證SAN環(huán)境下共享磁盤(pán)文件系統(tǒng)的同步。


      圖1為存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)結(jié)構(gòu)圖。圖2為應(yīng)用于SAN的共享磁盤(pán)文件系統(tǒng)同步方法示意圖。
      具體實(shí)施方式
      Linux操作系統(tǒng)使用的VFS(Virtual File System,虛擬文件系統(tǒng))和EXT2文件系統(tǒng)中,都用索引節(jié)點(diǎn) (inode)來(lái)描述一個(gè)文件的存儲(chǔ)位置,并包含存儲(chǔ)權(quán)限,文件所有者,文件存取修改時(shí)間和文件類(lèi)型等信 息。索引節(jié)點(diǎn)存儲(chǔ)在磁盤(pán)上,核心把inode讀進(jìn)內(nèi)存索引節(jié)點(diǎn)來(lái)操作它和它所對(duì)應(yīng)的文件。在本文中,把 存儲(chǔ)于磁盤(pán)上的inode稱(chēng)作磁盤(pán)索引節(jié)點(diǎn),而把它在內(nèi)存中的映像稱(chēng)為內(nèi)存索引節(jié)點(diǎn)。為了使文件操作速 度變快,Limix在這里使用了緩存的概念。系統(tǒng)將磁盤(pán)上的索引節(jié)點(diǎn)讀入內(nèi)存,不僅加快了文件的操作的 速度,而且便于實(shí)現(xiàn)文件操作的同步與互斥。內(nèi)存中的索引節(jié)點(diǎn)有索引節(jié)點(diǎn)號(hào),用來(lái)指出內(nèi)存索引節(jié)點(diǎn)對(duì) 應(yīng)的磁盤(pán)索引節(jié)點(diǎn)在磁盤(pán)上的位置。還有指向其他索引節(jié)點(diǎn)的指針,這個(gè)指針是為了將一系列索引節(jié)點(diǎn)構(gòu) 造成隊(duì)列,方便査找,尤其分成兩個(gè)隊(duì)列, 一個(gè)是使用中的cache隊(duì)列, 一個(gè)是空閑隊(duì)列,這樣使用緩存 的思想是為了可以減少讀盤(pán)次數(shù),提高內(nèi)核效率。而在VFS和EXT2文件系統(tǒng)中,還使用目錄cache(即 d-cache),以便對(duì)經(jīng)常使用的目錄對(duì)應(yīng)的inode進(jìn)行快速査找。而正是由于inode cache和directory cache (緩存的是detitry)的存在,使得不同服務(wù)器上各自的文 件系統(tǒng)出現(xiàn)了不同步。本發(fā)明的實(shí)施方式就是,在有一個(gè)應(yīng)用服務(wù)器進(jìn)行寫(xiě)操作的時(shí)候,在其他的應(yīng)用服 務(wù)器上去掉這些cache,而改為直接從磁盤(pán)讀取。由于在SAN系統(tǒng)中磁盤(pán)是共享的,所以磁盤(pán)上的數(shù)據(jù)對(duì)T-各個(gè)服務(wù)器都是一致的,不存在同步問(wèn)題。于是,通過(guò)直接到共享磁盤(pán)讀取數(shù)據(jù),就可以實(shí)現(xiàn)同步。要做的第一步是使dentry cache無(wú)效,第二步需要使Tnode Cadie無(wú)效,最后還要Lh底層塊設(shè)備的 Buffer Cache無(wú)效。具體地說(shuō),就是在每次讀操作的時(shí)候,判斷是否需要同步,如果不需要同步,仍然肖 先從緩存中査找。如果需要同步,就使inode cache , dentry cache和buffer cache都失效,從而達(dá)到 直接從磁盤(pán)讀取,實(shí)現(xiàn)同步。具體地,通過(guò)三部分程序來(lái)實(shí)現(xiàn)本發(fā)明所述的方法(1) 第一部分是寫(xiě)者端程序。寫(xiě)者端程序運(yùn)行在操作系統(tǒng)的內(nèi)核空間,截獲寫(xiě)操作。在每次寫(xiě)操作發(fā) 生時(shí),記錄下相關(guān)的信息,并保存在/proc./irrfo文件。同時(shí)在Zproc/rw文件里下入一個(gè)l表示這是 本機(jī)正在進(jìn)行寫(xiě)操作。寫(xiě)者端完成寫(xiě)操作之后,需要將所有臟頁(yè)面(dirty page)同步至磁盤(pán)。(2) 第二部分是通訊程序。通訊程序運(yùn)行在操作系統(tǒng)的用戶空間,它定期讀入/proc/info文件,并 將其中內(nèi)容通過(guò)LAN發(fā)送到其它應(yīng)用服務(wù)器上運(yùn)行的通訊程序。其他應(yīng)用服務(wù)器上的通訊程序在收到 寫(xiě)者端發(fā)來(lái)的訊息的時(shí)候,將在/proc/rw文件里寫(xiě)入一個(gè)0,并且保存下發(fā)過(guò)來(lái)的info文件中的內(nèi) 容。(3) 第三部分是讀者端程序。讀者端程序運(yùn)行在操作系統(tǒng)的內(nèi)核空間,它在每次進(jìn)行讀操作的時(shí)候, 通過(guò)判斷/proc/rw文件是l或是0來(lái)決定是否需要同步地讀。若需要同步地讀,則調(diào)用EXT2文件系 統(tǒng)提供的接口,禁用dentry cache, Inode Cache和Buffer Cache。其中,讀者端程序是本方法的關(guān)鍵,進(jìn)一歩闡述如下讀者端要做的第一步,就是在每次讀操作的時(shí)候判斷是否需要同步。因此,在Linux內(nèi)核源碼中的 proc.c和proc.h文件中,加入了 sfs—is—reader (void)函數(shù),通過(guò)讀取/proc/rw的內(nèi)容來(lái)判斷是否需要 同步的讀。如果/proc/rw文件的內(nèi)容為0,則是需要同步的讀,否則,說(shuō)明不需要同步的讀。在Linux內(nèi)核源碼中的inode. c文件中,增加了 sfs—revalidate函數(shù)。該函數(shù)原形如下int sfs_jevalidate (struct dentry* dentry)在對(duì)文件操作時(shí),以及讀取文件信息時(shí),如果用sfs—is一reader函數(shù)判斷需要進(jìn)行同步,會(huì)調(diào)用該函 數(shù)。該函數(shù)通過(guò)調(diào)用系統(tǒng)提供的接口 shrink—dcache—sb(sb) , int i,lidate一inodes(struct super—block以及void —invalidate—buffers (kdev—t dev, int)三個(gè)函數(shù)。其中,shrink—dcache—sb(sb) 函數(shù)使去除該文件系統(tǒng)上的全部dentry cache , invalidate—inodes函數(shù)將該文件系統(tǒng)上的全部inode 緩存設(shè)為無(wú)效,而—invalidate—buffers函數(shù)去除該塊設(shè)備對(duì)應(yīng)的的全部buffer。然后從共享磁盤(pán)重新 讀入該inode結(jié)構(gòu),這樣就實(shí)現(xiàn)了同步。
      權(quán)利要求
      1. 一種應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的共享磁盤(pán)文件系統(tǒng)同步方法,包括以下內(nèi)容(1)在不同應(yīng)用服務(wù)器之間建立TCP/IP連接;(2)在有一個(gè)應(yīng)用服務(wù)器進(jìn)行寫(xiě)操作的時(shí)候,通過(guò)TCP/IP連接通知應(yīng)用服務(wù)器;(3)其他應(yīng)用服務(wù)器此時(shí)若需要讀取數(shù)據(jù),則去掉文件系統(tǒng)的各級(jí)緩存(cache),改為直接從磁盤(pán)讀取。由于在存儲(chǔ)區(qū)域網(wǎng)絡(luò)中磁盤(pán)是共享的,所以磁盤(pán)上的數(shù)據(jù)對(duì)于各個(gè)服務(wù)器都是一致的;(4)進(jìn)行寫(xiě)操作的應(yīng)用服務(wù)器的寫(xiě)操作完成后,通過(guò)TCP/IP連接通知其他應(yīng)用服務(wù)器。
      全文摘要
      本發(fā)明公開(kāi)了一種應(yīng)用于存儲(chǔ)區(qū)域網(wǎng)絡(luò)的共享磁盤(pán)文件系統(tǒng)的同步方法,可以使存儲(chǔ)區(qū)域網(wǎng)絡(luò)中使用同一個(gè)共享磁盤(pán)的不同應(yīng)用服務(wù)器上的文件系統(tǒng)實(shí)現(xiàn)同步,從而解決文件系統(tǒng)的一致性問(wèn)題。本方法具體通過(guò)以下措施實(shí)現(xiàn)存儲(chǔ)區(qū)域網(wǎng)絡(luò)中共享磁盤(pán)文件系統(tǒng)的同步在有一個(gè)應(yīng)用服務(wù)器進(jìn)行寫(xiě)操作的時(shí)候,在其他的服務(wù)器上去掉文件系統(tǒng)的各級(jí)緩存,而改為直接從磁盤(pán)讀取。由于在存儲(chǔ)區(qū)域網(wǎng)絡(luò)中磁盤(pán)是共享的,因此,通過(guò)直接到共享磁盤(pán)讀取數(shù)據(jù),就可以實(shí)現(xiàn)不同應(yīng)用服務(wù)器上文件系統(tǒng)之間的同步。
      文檔編號(hào)H04L12/46GK101272312SQ20071008729
      公開(kāi)日2008年9月24日 申請(qǐng)日期2007年3月23日 優(yōu)先權(quán)日2007年3月23日
      發(fā)明者健 宋 申請(qǐng)人:健 宋
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1