本發明涉及數據訪問技術領域,特別是涉及一種分布式SAN塊存儲的高效能數據訪問系統及方法。
背景技術:
隨著社會多元化的發展,各種存儲被應用在方方面面,應用場景多元化,數據存儲標簽化,都要求一種存儲應用的產生,而塊存儲可以滿足這一要求,一方面,塊存儲要求數據分布式存儲,可以實現多種服務器的結合,數據集中化,在加快數據處理速度的同時,又可以方便數據的統一管理。另一方面,塊存儲可以通過集中式數據管理,劃分多個不同的塊,然后通過相應的技術處理,映射給多個用戶使用,滿足了存儲多元化的要求。為了更好的達到上述目的,這時就特別需要一種分布式SAN塊存儲數據訪問系統對數據進行統一有效的高效率管理。
如圖1所示,圖1為現有技術中的一種分布式SAN塊存儲數據訪問系統的結構示意圖。該訪問系統的工作原理為:分布式SAN存儲池提供統一的塊存儲服務,在存儲池中劃分出多個不同的塊存儲,然后根據實際需要提供給不同的目標端使用,而目標端通過iscsi協議,被客戶端發現,最終存儲池中的塊存儲被映射到不同的客戶端,被客戶端使用,而在客戶端,用戶可以像使用本地設備一樣進行數據的存儲使用。但該分布式SAN塊存儲數據訪問系統中,一方面,客戶端要讀取一定量的數據時需要分多次將數據從存儲池中讀出來,而存儲池讀取數據是比較慢的,因此容易造成數據訪問效率偏低;另一方面,當目標端出現意外掉電等突發情況時,此時會造成目標端正在處理的客戶端要讀寫的數據丟失,安全性能低。
因此,如何提供一種解決上述技術問題的分布式SAN塊存儲的高效能數據訪問系統及方法是本領域技術人員目前需要解決的問題。
技術實現要素:
本發明的目的是提供一種分布式SAN塊存儲的高效能數據訪問系統,極大地提高了數據訪問的效率,減少了讀取數據的時延。另外,本申請將要讀取或者寫入的數據填入共享內存中,即便遇到目標端停電等突發情況也能夠利用目標端的殘余電量將共享內存中的數據返回至客戶端或者落入分布式SAN存儲池,保證了數據的高質量存儲,提升了數據的安全性;本發明的另一目的是提供一種分布式SAN塊存儲的高效能數據訪問方法。
為解決上述技術問題,本發明提供了一種分布式SAN塊存儲的高效能數據訪問系統,包括客戶端、目標端、塊存儲接口、分布式SAN存儲池以及設置在所述塊存儲接口和所述分布式SAN存儲池之間的全局緩存保護模塊,所述目標端包括從其本地內存中劃分出來的共享內存,其中:
所述共享內存用于存儲從所述分布式SAN存儲池中獲得的、供所述客戶端讀取的數據以及從所述客戶端獲得的、待落入所述分布式SAN存儲池的數據;
所述目標端,用于接收所述客戶端發送的數據讀指令,并判斷待讀取的數據是否已經存在于之前讀取時已被填入所述共享內存中的數據中,如果是,則所述客戶端直接從所述共享內存已存在的數據中讀取,否則,發送所述數據讀指令至所述全局緩存保護模塊;
所述全局緩存保護模塊,用于接收所述數據讀指令,并依據所述數據讀指令實時調整所述共享內存的配額,并將從所述分布式SAN存儲池中獲得的數據填入所述共享內存中。
優選地,所述全局緩存保護模塊包括:
內存申請模塊,用于當接收到所述數據讀指令時向控制模塊發送共享內存地址申請消息;
所述控制模塊,用于接收所述共享內存地址申請消息并確定所述目標端的共享內存;
配額更新模塊,用于依據所述數據讀指令實時調整所述共享內存的配額;
內存更新模塊,用于將從所述分布式SAN存儲池中獲得的目標讀數據填入所述共享內存中,并向所述控制模塊發送內存狀態更新消息。
優選地,該系統還包括:
內存釋放模塊,用于當所述客戶端結束一定量的數據讀寫時,釋放掉占用的所述共享內存;
則所述配額更新模塊,還用于當所述內存釋放模塊將所述共享內存釋放后,更新所述共享內存的配額。
優選地,所述目標端為標準x86服務器。
為解決上述技術問題,本發明還提供了一種分布式SAN塊存儲的高效能數據訪問方法,基于如上述所述的高效能數據訪問系統,該方法包括:
步驟S101:目標端接收客戶端發送的數據操作指令;
步驟S102:所述目標端判斷待讀取的數據是否已經存在于之前讀取時已被填入共享內存中的數據中,如果是,則所述客戶端直接從所述共享內存已存在的數據中讀取,否則,發送所述數據讀指令至全局緩存保護模塊;
步驟S103:所述全局緩存保護模塊接收所述數據讀指令,并依據所述數據讀指令實時調整所述共享內存的配額,再將從所述分布式SAN存儲池中獲得的數據填入所述共享內存中。
優選地,所述全局緩存保護模塊包括內存申請模塊、控制模塊、配額更新模塊以及內存更新模塊,則步驟S103具體包括:
所述內存申請模塊在接收到所述數據讀指令時向控制模塊發送共享內存地址申請消息;
所述控制模塊接收所述共享內存地址申請消息并確定所述目標端的共享內存;
配額更新模塊依據所述數據讀指令實時調整所述共享內存的配額;
內存更新模塊將從所述分布式SAN存儲池中獲得的目標讀數據填入所述共享內存中,并向所述控制模塊發送內存狀態更新消息。
優選地,該方法還包括:
內存釋放模塊在所述客戶端結束一定量的數據讀寫時,釋放掉占用的所述共享內存。
本發明提供了一種分布式SAN塊存儲的高效能數據訪問系統及方法,本申請中,將目標端的共享內存作為緩存,客戶端要讀取數據時,首先查看要讀取的數據是否已經存在于共享內存中之前讀取時被填入的數據中,如果是,則客戶端直接從共享內存中讀取,否則再從分布式SAN存儲池中讀取。
可見,本申請在讀取數據時,無需每次都從分布式SAN存儲池中讀取,而是充分利用一些已存在于共享內存中還未被釋放的數據中進行直接讀取,極大地提高了數據訪問的效率,減少了讀取數據的時延。另外,本申請將要讀寫的數據填入共享內存中,即便遇到目標端停電等突發情況也能夠利用目標端的殘余電量將共享內存中的數據返回至客戶端或者落入分布式SAN存儲池,保證了數據的高質量存儲,提升了數據的安全性。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對現有技術和實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有技術中的一種分布式SAN塊存儲數據訪問系統的結構示意圖;
圖2為本發明提供的一種分布式SAN塊存儲的高效能數據訪問系統的結構示意圖;
圖3為本發明提供的一種分布式SAN塊存儲的高效能數據訪問方法的流程圖。
具體實施方式
本發明的核心是提供一種分布式SAN塊存儲的高效能數據訪問系統,極大地提高了數據訪問的效率,減少了讀取數據的時延。另外,本申請將要讀取或者寫入的數據填入共享內存中,即便遇到目標端停電等突發情況也能夠利用目標端的殘余電量將共享內存中的數據返回至客戶端或者落入分布式SAN存儲池,保證了數據的高質量存儲,提升了數據的安全性;本發明的另一核心是提供一種分布式SAN塊存儲的高效能數據訪問方法。
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參照圖2,圖2為本發明提供的一種分布式SAN塊存儲的高效能數據訪問系統的結構示意圖,該系統包括:
客戶端1、目標端2、塊存儲接口3、分布式SAN存儲池5以及設置在塊存儲接口3和分布式SAN存儲池5之間的全局緩存保護模塊4,目標端2包括從其本地內存中劃分出來的共享內存,其中:
共享內存用于存儲從分布式SAN存儲池5中獲得的、供客戶端1讀取的數據以及從客戶端1獲得的、待落入分布式SAN存儲池5的數據;
可以理解的是,目標端2(也即服務器)的本地內存被劃分出一個區域作為共享內存,也是作為客戶端1在進行數據讀取和寫入時的緩存。這里的客戶端1和目標端2的個數均可以為多個,每個客戶端1和目標端2在進行基于分布式SAN塊存儲的高效能數據訪問時的工作原理是一樣的。
目標端2,用于接收客戶端1發送的數據讀指令,并判斷待讀取的數據是否已經存在于之前讀取時已被填入共享內存中的數據中,如果是,則客戶端1直接從共享內存已存在的數據中讀取,否則,發送數據讀指令至全局緩存保護模塊4;
需要說明的是,客戶端1在進行數據讀取或者寫入時,可能要讀取或者寫入的數據量比較大,因此,客戶端1一般會分多次讀取或者寫入。而在客戶端1沒有結束這一定量的數據讀取或者寫入前,這期間讀取或者寫入的數據均被保存在共享內存中。
具體地,客戶端1進行第一次數據讀取時,共享內存中沒有數據,這時全局緩存保護模塊4會從分布式SAN存儲池5中獲取數據并將該數據填入共享內存中供客戶端1讀取。客戶端1在讀取到數據后會繼續進行第二數據讀取,但目標端2會判斷客戶端1要讀取的數據是否存在于客戶端1第一次讀取時已被填入共享內存中的數據中,如果是全部或者部分,則首先將已存在的數據返回給客戶,如果不是或者部分沒有,則發送數據讀指令至全局緩存保護模塊4。
全局緩存保護模塊4,用于接收數據讀指令,并依據數據讀指令實時調整共享內存的配額,并將從分布式SAN存儲池5中獲得的數據填入共享內存中。
作為優選地,全局緩存保護模塊4包括:
內存申請模塊,用于當接收到數據讀指令時向控制模塊發送共享內存地址申請消息;
控制模塊,用于接收共享內存地址申請消息并確定目標端2的共享內存;
配額更新模塊,用于依據數據讀指令實時調整共享內存的配額;
具體地,配額更新模塊保證配額的數據更新,用于維護目標端2的本地內存和共享內存模式下的兩種配額值,以便切換時將影響降到最小。
內存更新模塊,用于將從分布式SAN存儲池5中獲得的目標讀數據填入共享內存中,并向控制模塊發送內存狀態更新消息。
作為優選地,該系統還包括:
內存釋放模塊,用于當客戶端1結束一定量的數據讀寫時,釋放掉占用的共享內存;
則配額更新模塊,還用于當內存釋放模塊將共享內存釋放后,更新共享內存的配額。
可以理解的是,這里的內存釋放模塊的操作周期是人為可調的,例如在客戶端1結束一定量的數據讀取或者寫入時或者定個周期,例如一天等。及時的將共享內存釋放掉從而避免出現其他塊存儲無可用內存的情況。
作為優選地,目標端2為標準x86服務器。
當然,這里的目標端2還可以為其他類型的服務器,本發明在此不做特別的限定。
綜上,本申請通過發送消息從控制模塊申請共享內存地址,然后使用該地址構建存放數據的數據區域。當數據區域內容進行數據重寫改變時,向控制模塊進行申請數據狀態變更,等待數據徹底返回前端后,把短時間內不再使用的冷數據向全局緩存保護機制及時發送消息釋放掉所占用的共享內存,及時的等待填充新的數據,保證塊存儲服務接口數據的高效能數據利用。
另外,需要說明的是,當出現目標端2意外掉電等突發情況時,全局緩存保護模塊4因為會把待讀取或者待寫入的數據保存到共享內存中,然后返回客戶端1或者落到磁盤中去,由于目標端2即便主電斷了,但因為目標端2仍會存在一些例如電容產生的殘余電量,從而極大的保證了數據不丟失。
本發明提供了一種分布式SAN塊存儲的高效能數據訪問系統,本申請中,將目標端的共享內存作為緩存,客戶端要讀取數據時,首先查看要讀取的數據是否已經存在于共享內存中之前讀取時被填入的數據中,如果是,則客戶端直接從共享內存中讀取,否則再從分布式SAN存儲池中讀取。
可見,本申請在讀取數據時,無需每次都從分布式SAN存儲池中讀取,而是充分利用一些已存在于共享內存中還未被釋放的數據中進行直接讀取,極大地提高了數據訪問的效率,減少了讀取數據的時延。另外,本申請中要讀寫的數據填入共享內存中,即便遇到目標端停電等突發情況也能夠利用目標端的殘余電量將共享內存中的數據返回至客戶端或者落入分布式SAN存儲池,保證了數據的高質量存儲,提升了數據的安全性。
請參照圖3,圖3為本發明提供的一種分布式SAN塊存儲的高效能數據訪問方法的流程圖,基于如上述的高效能數據訪問系統,該方法包括:
步驟S101:目標端接收客戶端發送的數據操作指令;
步驟S102:目標端判斷待讀取的數據是否已經存在于之前讀取時已被填入共享內存中的數據中,如果是,則客戶端直接從共享內存已存在的數據中讀取,否則,發送數據讀指令至全局緩存保護模塊;
步驟S103:全局緩存保護模塊接收數據讀指令,并依據數據讀指令實時調整共享內存的配額,再將從分布式SAN存儲池中獲得的數據填入共享內存中。
作為優選地,全局緩存保護模塊包括內存申請模塊、控制模塊、配額更新模塊以及內存更新模塊,則步驟S103具體包括:
內存申請模塊在接收到數據讀指令時向控制模塊發送共享內存地址申請消息;
控制模塊接收共享內存地址申請消息并確定目標端的共享內存;
配額更新模塊依據數據讀指令實時調整共享內存的配額;
內存更新模塊將從分布式SAN存儲池中獲得的目標讀數據填入共享內存中,并向控制模塊發送內存狀態更新消息。
作為優選地,該方法還包括:
內存釋放模塊在客戶端結束一定量的數據讀寫時,釋放掉占用的共享內存。
對于本發明提供的高效能數據訪問方法的介紹請參照上述系統實施例,本發明在此不再贅述。
本發明提供了一種分布式SAN塊存儲的高效能數據訪問方法,本申請中,將目標端的共享內存作為緩存,客戶端要讀取數據時,首先查看要讀取的數據是否已經存在于共享內存中之前讀取時被填入的數據中,如果是,則客戶端直接從共享內存中讀取,否則再從分布式SAN存儲池中讀取,同理,客戶端要寫入數據時,也首先查看要寫入的數據是否已經存在于共享內存中之前寫入時被填入的數據中,如果是,則直接將共享內存中的待寫入數據落入分布式SAN存儲池。
可見,本申請在讀取數據時,無需每次都從分布式SAN存儲池中讀取或者寫入,而是充分利用一些已存在于共享內存中還未被釋放的數據中進行直接讀取或者寫入,極大地提高了數據訪問的效率,減少了讀取或者寫入數據的時延。另外,本申請將要讀取或者寫入的數據填入共享內存中,即便遇到目標端停電等突發情況也能夠利用目標端的殘余電量將共享內存中的數據返回至客戶端或者落入分布式SAN存儲池,保證了數據的高質量存儲,提升了數據的安全性。
需要說明的是,在本說明書中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其他實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。