本發(fā)明涉及信息技術領域,特別是涉及一種基于IPSAN的存儲器的通信方法和系統(tǒng)。
背景技術:
隨著社會的發(fā)展和PC的普及,產(chǎn)生了越來越多的數(shù)字化信息。信息量呈爆炸性增長,因而,引發(fā)了以存儲技術為中心的新一輪數(shù)據(jù)技術浪潮。
傳統(tǒng)的信息存儲方法已經(jīng)不能滿足新的需要,存儲的網(wǎng)絡化成為IT技術的亮點。網(wǎng)絡存儲中的存儲區(qū)域網(wǎng)SAN技術在服務器機器、存儲合并以及磁帶備份等方面均具有重要的應用價值,且得到了廣泛應用。在存儲領域,SCSI的重要性不言而喻,作為成熟的技術,其滿足了塊級數(shù)據(jù)快速傳輸?shù)男枨?。IP技術特點在網(wǎng)絡開發(fā)性上有強大的優(yōu)勢,將兩者的優(yōu)勢相結合,實現(xiàn)了IPSAN,其具有廣闊的應用前景。
但是,在IPSAN通信的環(huán)境中,存儲端系統(tǒng)會花費大量的資源用于中斷開銷、數(shù)據(jù)復制開銷、系統(tǒng)調用開銷和協(xié)議處理開銷,當數(shù)據(jù)通過存儲端系統(tǒng)中的各個模塊復制時會嚴重影響存儲端的系統(tǒng)性能。
因此,如何在IPSAN通信的環(huán)境中,降低存儲端系統(tǒng)的開銷,以提升存儲端系統(tǒng)的性能,是本領域技術人員目前需要解決的技術問題。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種基于IPSAN的存儲器的通信方法和系統(tǒng),可以在IPSAN通信的環(huán)境中,降低存儲端系統(tǒng)的開銷,以提升存儲端系統(tǒng)的性能。
為解決上述技術問題,本發(fā)明提供了如下技術方案:
一種基于IPSAN的存儲器的通信方法,包括:
通過IPSAN建立存儲器的物理內存和預設應用的地址空間之間的映射;
通過所述IPSAN獲取所述預設應用的交互數(shù)據(jù);
解析所述交互數(shù)據(jù)對應映射內存的指針;
將所述指針傳遞至所述存儲器的目標功能模塊;
控制所述目標功能模塊從所述IPSAN中根據(jù)所述指針復制對應的交互數(shù)據(jù)并進行存儲。
優(yōu)選地,所述通過IPSAN建立存儲器的物理內存和預設應用的地址空間之間的映射,包括:
選取存儲器的物理內存的設備文件作為映射對象;
調用預設的映射函數(shù),將所述映射對象映射到所述預設應用的地址空間。
優(yōu)選地,所述調用預設的映射函數(shù),將所述映射對象映射到所述預設應用的地址空間,包括:
調用mmap函數(shù)將所述映射對象映射到所述預設應用的地址空間。
優(yōu)選地,所述調用mmap函數(shù)將所述映射對象映射到所述預設應用的地址空間,包括:
調用所述mmap函數(shù)將所述映射對象映射到多個頁面上;
判斷所述映射對象的文件大小是否等于所有頁面的大小之和;
若否,則將最后一個頁面未被映射占用的空間清零。
優(yōu)選地,還包括:
判斷所述預設應用和所述存儲器的通信是否結束;
若是,則解除所述存儲器的物理內存和預設應用的地址空間之間的映射;
若否,則保持所述映射,直至所述預設應用和所述存儲器的通信結束。
一種基于IPSAN的存儲器的通信系統(tǒng),包括:
映射建立模塊,用于通過IPSAN建立存儲器的物理內存和預設應用的地址空間之間的映射;
數(shù)據(jù)獲取模塊,用于通過所述IPSAN獲取所述預設應用的交互數(shù)據(jù);
指針解析模塊,用于解析所述交互數(shù)據(jù)對應映射內存的指針;
指針傳遞模塊,用于將所述指針傳遞至所述存儲器的目標功能模塊;
拷貝模塊,用于控制所述目標功能模塊從所述IPSAN中根據(jù)所述指針復制對應的交互數(shù)據(jù)并進行存儲。
優(yōu)選地,所述映射建立模塊包括:
映射對象選取單元,用于選取存儲器的物理內存的設備文件作為映射對象;
映射建立單元,用于調用預設的映射函數(shù),將所述映射對象映射到所述預設應用的地址空間。
優(yōu)選地,所述映射建立單元為mmap函數(shù)調用單元,用于調用mmap函數(shù)將所述映射對象映射到所述預設應用的地址空間。
優(yōu)選地,所述mmap函數(shù)調用單元包括:
頁面映射子單元,用于調用所述mmap函數(shù)將所述映射對象映射到多個頁面上;
判斷子單元,用于判斷所述映射對象的文件大小是否等于所有頁面的大小之和;
執(zhí)行子單元,用于在所述判斷子單元判定所述映射對象的文件大小不等于所有頁面的大小之和時,將最后一個頁面未被映射占用的空間清零。
優(yōu)選地,還包括:
判斷模塊,用于判斷所述預設應用和所述存儲器的通信是否結束;
映射解除模塊,用于在所述判斷模塊判定所述預設應用和所述存儲器的通信結束時,解除所述存儲器的物理內存和預設應用的地址空間之間的映射;
映射保持模塊,用于在所述判斷模塊判定所述預設應用和所述存儲器的通信未結束時,保持所述映射,直至所述預設應用和所述存儲器的通信結束。
與現(xiàn)有技術相比,上述技術方案具有以下優(yōu)點:
本發(fā)明所提供的一種基于IPSAN的存儲器的通信方法,包括:通過IPSAN建立存儲器的物理內存和預設應用的地址空間之間的映射;通過IPSAN獲取預設應用的交互數(shù)據(jù);解析交互數(shù)據(jù)對應映射內存的指針;將指針傳遞至存儲器的目標功能模塊;控制目標功能模塊從IPSAN中根據(jù)指針復制對應的交互數(shù)據(jù)并進行存儲。在本技術方案中,通過IPSAN建立存儲器和預設應用的映射,存儲器中的各功能模塊之間只需傳遞映射內存的指針即可,無需重復拷貝數(shù)據(jù),從而避免了復雜的內核協(xié)議處理,減少了存儲系統(tǒng)調用開銷和內存拷貝開銷,大大提升了數(shù)據(jù)報文的傳輸能力,提升了存儲端系統(tǒng)的性能。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一種具體實施方式所提供的基于IPSAN的存儲器的通信方法流程圖;
圖2為本發(fā)明一種具體實施方式所提供的基于IPSAN的存儲器的通信系統(tǒng)結構示意圖。
具體實施方式
本發(fā)明的核心是提供一種基于IPSAN的存儲器的通信方法和系統(tǒng),可以在IPSAN通信的環(huán)境中,降低存儲端系統(tǒng)的開銷,以提升存儲端系統(tǒng)的性能。
為了使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結合附圖對本發(fā)明的具體實施方式做詳細的說明。
在以下描述中闡述了具體細節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本發(fā)明內涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實施的限制。
請參考圖1,圖1為本發(fā)明一種具體實施方式所提供的基于IPSAN的存儲器的通信方法流程圖。
本發(fā)明的一種具體實施方式提供了一種基于IPSAN的存儲器的通信方法,包括:
S11:通過IPSAN建立存儲器的物理內存和預設應用的地址空間之間的映射。
在本發(fā)明的一種實施方式中,通過IPSAN建立存儲器的物理內存和預設應用的地址空間之間的映射,包括:選取存儲器的物理內存的設備文件作為映射對象;調用預設的映射函數(shù),將映射對象映射到預設應用的地址空間。
優(yōu)選調用mmap函數(shù)將映射對象映射到預設應用的地址空間。即調用mmap函數(shù)將映射對象映射到多個頁面上;判斷映射對象的文件大小是否等于所有頁面的大小之和;若否,則將最后一個頁面未被映射占用的空間清零。
在本實施方式中,通過ISSAN將存儲器的物理內存映射到預設應用的地址空間中,此時,這些應用就可以直接使用輸入輸出的地址空間,從而提高讀寫的效率。其中,在本實施方式中,映射可以基于Linux,Linux提供了mmap函數(shù),以用來映射物理內存。在存儲器的驅動程序中,應用程序以設備文件為對象,調用mmap函數(shù),內核進行內存映射的準備工作,然后調用內存設備驅動程序中定義的mmap函數(shù)。
mmap函數(shù)將一根文件或其他對象映射到內存,實現(xiàn)用戶態(tài)和內核態(tài)之間共享用戶空間,其中,文件被映射到多個頁面上,如果文件的大小不是所有頁面的大小之和,最后一個頁面不被使用的空間將會被清零。
當使用mmap函數(shù)映射文件到應用程序后,用戶空間的應用程序就可以直接操作這段虛擬地址進行文件的讀寫等操作,不必再調用read、write等系統(tǒng)調用。但是直接對該段內存寫時不要寫入超過當前映射長度的內容。
S12:通過IPSAN獲取預設應用的交互數(shù)據(jù)。
S13:解析交互數(shù)據(jù)對應映射內存的指針。
S14:將指針傳遞至存儲器的目標功能模塊。
存儲器中除卻包括IPSAN模塊之外,還包括內存鏡像、控制管理、read等功能模塊。
S15:控制目標功能模塊從IPSAN中根據(jù)指針復制對應的交互數(shù)據(jù)并進行存儲。
在本實施方式中,內存映射是在內核與用戶的應用程序之間建立的,這樣用戶的應用程序就可以直接讀取linux核心的內存內容而不必進行數(shù)據(jù)的拷貝操作,這樣提高了數(shù)據(jù)的傳輸效率。即在本實施方式中在ipsan協(xié)議中采用內存零拷貝的策略,通過減少操作系統(tǒng)內核緩沖區(qū)和應用地址空間數(shù)據(jù)的拷貝次數(shù),降低對文件讀取和寫入時帶給的CPU使用和帶寬的開銷。
通過IPSAN建立存儲器和預設應用的映射,當數(shù)據(jù)通過IPSAN傳輸?shù)酱鎯ζ?,存儲器中的各功能模塊之間只需傳遞映射內存的指針即可,無需重復拷貝數(shù)據(jù),從而避免了復雜的內核協(xié)議處理,減少了存儲系統(tǒng)調用開銷和內存拷貝開銷,大大提升了數(shù)據(jù)報文的傳輸能力,提升了存儲端系統(tǒng)的性能。
在本發(fā)明的一種實施方式中,該方法還包括:判斷預設應用和存儲器的通信是否結束;若是,則解除存儲器的物理內存和預設應用的地址空間之間的映射;若否,則保持映射,直至預設應用和存儲器的通信結束。
在本實施方式中,在通信進程中,保持共享區(qū)域,直到通信完畢,這樣交互數(shù)據(jù)內容一直保存在共享內存中,并沒有寫回文件,共享內存中的內容往往是在解除映射時才會寫回文件的。因此,保持映射直至預設應用和存儲器的通信結束,極大地提高了通信效率。
請參考圖2,圖2為本發(fā)明一種具體實施方式所提供的基于IPSAN的存儲器的通信系統(tǒng)結構示意圖。
相應地,本發(fā)明還提供了一種基于IPSAN的存儲器的通信系統(tǒng),包括:
映射建立模塊1,用于通過IPSAN建立存儲器的物理內存和預設應用的地址空間之間的映射;
數(shù)據(jù)獲取模塊2,用于通過IPSAN獲取預設應用的交互數(shù)據(jù);
指針解析模塊3,用于解析交互數(shù)據(jù)對應映射內存的指針;
指針傳遞模塊4,用于將指針傳遞至存儲器的目標功能模塊;
拷貝模塊5,用于控制目標功能模塊從IPSAN中根據(jù)指針復制對應的交互數(shù)據(jù)并進行存儲。
進一步地,映射建立模塊包括:映射對象選取單元,用于選取存儲器的物理內存的設備文件作為映射對象;映射建立單元,用于調用預設的映射函數(shù),將映射對象映射到預設應用的地址空間。更進一步地,映射建立單元為mmap函數(shù)調用單元,用于調用mmap函數(shù)將映射對象映射到預設應用的地址空間。mmap函數(shù)調用單元包括:頁面映射子單元,用于調用mmap函數(shù)將映射對象映射到多個頁面上;判斷子單元,用于判斷映射對象的文件大小是否等于所有頁面的大小之和;執(zhí)行子單元,用于在判斷子單元判定映射對象的文件大小不等于所有頁面的大小之和時,將最后一個頁面未被映射占用的空間清零。
在本實施方式中,通過ISSAN將存儲器的物理內存映射到預設應用的地址空間中,此時,這些應用就可以直接使用輸入輸出的地址空間,從而提高讀寫的效率。其中,在本實施方式中,映射可以基于Linux,Linux提供了mmap函數(shù),以用來映射物理內存。在存儲器的驅動程序中,應用程序以設備文件為對象,調用mmap函數(shù),內核進行內存映射的準備工作,然后調用內存設備驅動程序中定義的mmap函數(shù)。通過IPSAN建立存儲器和預設應用的映射,當數(shù)據(jù)通過IPSAN傳輸?shù)酱鎯ζ?,存儲器中的各功能模塊之間只需傳遞映射內存的指針即可,無需重復拷貝數(shù)據(jù),從而避免了復雜的內核協(xié)議處理,減少了存儲系統(tǒng)調用開銷和內存拷貝開銷,大大提升了數(shù)據(jù)報文的傳輸能力,提升了存儲端系統(tǒng)的性能。
在本發(fā)明的一種實施方式中,還包括:判斷模塊,用于判斷預設應用和存儲器的通信是否結束;映射解除模塊,用于在判斷模塊判定預設應用和存儲器的通信結束時,解除存儲器的物理內存和預設應用的地址空間之間的映射;映射保持模塊,用于在判斷模塊判定預設應用和存儲器的通信未結束時,保持映射,直至預設應用和存儲器的通信結束。
在本實施方式中,在通信進程中,保持共享區(qū)域,直到通信完畢,這樣交互數(shù)據(jù)內容一直保存在共享內存中,并沒有寫回文件,共享內存中的內容往往是在解除映射時才會寫回文件的。因此,保持映射直至預設應用和存儲器的通信結束,極大地提高了通信效率。
綜上所述,本發(fā)明所提供的基于IPSAN的存儲器的通信方法和系統(tǒng),通過IPSAN建立存儲器和預設應用的映射,存儲器中的各功能模塊之間只需傳遞映射內存的指針即可,無需重復拷貝數(shù)據(jù),從而避免了復雜的內核協(xié)議處理,減少了存儲系統(tǒng)調用開銷和內存拷貝開銷,大大提升了數(shù)據(jù)報文的傳輸能力,提升了存儲端系統(tǒng)的性能。
以上對本發(fā)明所提供的一種基于IPSAN的存儲器的通信方法和系統(tǒng)進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權利要求的保護范圍內。