CN106874212A - 一种基于ipsan的存储器的通信方法和系统 - Google Patents
一种基于ipsan的存储器的通信方法和系统 Download PDFInfo
- Publication number
- CN106874212A CN106874212A CN201611262891.3A CN201611262891A CN106874212A CN 106874212 A CN106874212 A CN 106874212A CN 201611262891 A CN201611262891 A CN 201611262891A CN 106874212 A CN106874212 A CN 106874212A
- Authority
- CN
- China
- Prior art keywords
- memory
- mapping
- default application
- ipsan
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于IPSAN的存储器的通信方法和系统,该方法包括:通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射;通过IPSAN获取预设应用的交互数据;解析交互数据对应映射内存的指针;将指针传递至存储器的目标功能模块;控制目标功能模块从IPSAN中根据指针复制对应的交互数据并进行存储。在本技术方案中,通过IPSAN建立存储器和预设应用的映射,存储器中的各功能模块之间只需传递映射内存的指针即可,无需重复拷贝数据,从而避免了复杂的内核协议处理,减少了存储系统调用开销和内存拷贝开销,大大提升了数据报文的传输能力,提升了存储端系统的性能。
Description
技术领域
本发明涉及信息技术领域,特别是涉及一种基于IPSAN的存储器的通信方法和系统。
背景技术
随着社会的发展和PC的普及,产生了越来越多的数字化信息。信息量呈爆炸性增长,因而,引发了以存储技术为中心的新一轮数据技术浪潮。
传统的信息存储方法已经不能满足新的需要,存储的网络化成为IT技术的亮点。网络存储中的存储区域网SAN技术在服务器机器、存储合并以及磁带备份等方面均具有重要的应用价值,且得到了广泛应用。在存储领域,SCSI的重要性不言而喻,作为成熟的技术,其满足了块级数据快速传输的需求。IP技术特点在网络开发性上有强大的优势,将两者的优势相结合,实现了IPSAN,其具有广阔的应用前景。
但是,在IPSAN通信的环境中,存储端系统会花费大量的资源用于中断开销、数据复制开销、系统调用开销和协议处理开销,当数据通过存储端系统中的各个模块复制时会严重影响存储端的系统性能。
因此,如何在IPSAN通信的环境中,降低存储端系统的开销,以提升存储端系统的性能,是本领域技术人员目前需要解决的技术问题。
发明内容
本发明的目的是提供一种基于IPSAN的存储器的通信方法和系统,可以在IPSAN通信的环境中,降低存储端系统的开销,以提升存储端系统的性能。
为解决上述技术问题,本发明提供了如下技术方案:
一种基于IPSAN的存储器的通信方法,包括:
通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射;
通过所述IPSAN获取所述预设应用的交互数据;
解析所述交互数据对应映射内存的指针;
将所述指针传递至所述存储器的目标功能模块;
控制所述目标功能模块从所述IPSAN中根据所述指针复制对应的交互数据并进行存储。
优选地,所述通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射,包括:
选取存储器的物理内存的设备文件作为映射对象;
调用预设的映射函数,将所述映射对象映射到所述预设应用的地址空间。
优选地,所述调用预设的映射函数,将所述映射对象映射到所述预设应用的地址空间,包括:
调用mmap函数将所述映射对象映射到所述预设应用的地址空间。
优选地,所述调用mmap函数将所述映射对象映射到所述预设应用的地址空间,包括:
调用所述mmap函数将所述映射对象映射到多个页面上;
判断所述映射对象的文件大小是否等于所有页面的大小之和;
若否,则将最后一个页面未被映射占用的空间清零。
优选地,还包括:
判断所述预设应用和所述存储器的通信是否结束;
若是,则解除所述存储器的物理内存和预设应用的地址空间之间的映射;
若否,则保持所述映射,直至所述预设应用和所述存储器的通信结束。
一种基于IPSAN的存储器的通信系统,包括:
映射建立模块,用于通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射;
数据获取模块,用于通过所述IPSAN获取所述预设应用的交互数据;
指针解析模块,用于解析所述交互数据对应映射内存的指针;
指针传递模块,用于将所述指针传递至所述存储器的目标功能模块;
拷贝模块,用于控制所述目标功能模块从所述IPSAN中根据所述指针复制对应的交互数据并进行存储。
优选地,所述映射建立模块包括:
映射对象选取单元,用于选取存储器的物理内存的设备文件作为映射对象;
映射建立单元,用于调用预设的映射函数,将所述映射对象映射到所述预设应用的地址空间。
优选地,所述映射建立单元为mmap函数调用单元,用于调用mmap函数将所述映射对象映射到所述预设应用的地址空间。
优选地,所述mmap函数调用单元包括:
页面映射子单元,用于调用所述mmap函数将所述映射对象映射到多个页面上;
判断子单元,用于判断所述映射对象的文件大小是否等于所有页面的大小之和;
执行子单元,用于在所述判断子单元判定所述映射对象的文件大小不等于所有页面的大小之和时,将最后一个页面未被映射占用的空间清零。
优选地,还包括:
判断模块,用于判断所述预设应用和所述存储器的通信是否结束;
映射解除模块,用于在所述判断模块判定所述预设应用和所述存储器的通信结束时,解除所述存储器的物理内存和预设应用的地址空间之间的映射;
映射保持模块,用于在所述判断模块判定所述预设应用和所述存储器的通信未结束时,保持所述映射,直至所述预设应用和所述存储器的通信结束。
与现有技术相比,上述技术方案具有以下优点:
本发明所提供的一种基于IPSAN的存储器的通信方法,包括:通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射;通过IPSAN获取预设应用的交互数据;解析交互数据对应映射内存的指针;将指针传递至存储器的目标功能模块;控制目标功能模块从IPSAN中根据指针复制对应的交互数据并进行存储。在本技术方案中,通过IPSAN建立存储器和预设应用的映射,存储器中的各功能模块之间只需传递映射内存的指针即可,无需重复拷贝数据,从而避免了复杂的内核协议处理,减少了存储系统调用开销和内存拷贝开销,大大提升了数据报文的传输能力,提升了存储端系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种具体实施方式所提供的基于IPSAN的存储器的通信方法流程图;
图2为本发明一种具体实施方式所提供的基于IPSAN的存储器的通信系统结构示意图。
具体实施方式
本发明的核心是提供一种基于IPSAN的存储器的通信方法和系统,可以在IPSAN通信的环境中,降低存储端系统的开销,以提升存储端系统的性能。
为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。
请参考图1,图1为本发明一种具体实施方式所提供的基于IPSAN的存储器的通信方法流程图。
本发明的一种具体实施方式提供了一种基于IPSAN的存储器的通信方法,包括:
S11:通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射。
在本发明的一种实施方式中,通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射,包括:选取存储器的物理内存的设备文件作为映射对象;调用预设的映射函数,将映射对象映射到预设应用的地址空间。
优选调用mmap函数将映射对象映射到预设应用的地址空间。即调用mmap函数将映射对象映射到多个页面上;判断映射对象的文件大小是否等于所有页面的大小之和;若否,则将最后一个页面未被映射占用的空间清零。
在本实施方式中,通过ISSAN将存储器的物理内存映射到预设应用的地址空间中,此时,这些应用就可以直接使用输入输出的地址空间,从而提高读写的效率。其中,在本实施方式中,映射可以基于Linux,Linux提供了mmap函数,以用来映射物理内存。在存储器的驱动程序中,应用程序以设备文件为对象,调用mmap函数,内核进行内存映射的准备工作,然后调用内存设备驱动程序中定义的mmap函数。
mmap函数将一根文件或其他对象映射到内存,实现用户态和内核态之间共享用户空间,其中,文件被映射到多个页面上,如果文件的大小不是所有页面的大小之和,最后一个页面不被使用的空间将会被清零。
当使用mmap函数映射文件到应用程序后,用户空间的应用程序就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read、write等系统调用。但是直接对该段内存写时不要写入超过当前映射长度的内容。
S12:通过IPSAN获取预设应用的交互数据。
S13:解析交互数据对应映射内存的指针。
S14:将指针传递至存储器的目标功能模块。
存储器中除却包括IPSAN模块之外,还包括内存镜像、控制管理、read等功能模块。
S15:控制目标功能模块从IPSAN中根据指针复制对应的交互数据并进行存储。
在本实施方式中,内存映射是在内核与用户的应用程序之间建立的,这样用户的应用程序就可以直接读取linux核心的内存内容而不必进行数据的拷贝操作,这样提高了数据的传输效率。即在本实施方式中在ipsan协议中采用内存零拷贝的策略,通过减少操作系统内核缓冲区和应用地址空间数据的拷贝次数,降低对文件读取和写入时带给的CPU使用和带宽的开销。
通过IPSAN建立存储器和预设应用的映射,当数据通过IPSAN传输到存储器,存储器中的各功能模块之间只需传递映射内存的指针即可,无需重复拷贝数据,从而避免了复杂的内核协议处理,减少了存储系统调用开销和内存拷贝开销,大大提升了数据报文的传输能力,提升了存储端系统的性能。
在本发明的一种实施方式中,该方法还包括:判断预设应用和存储器的通信是否结束;若是,则解除存储器的物理内存和预设应用的地址空间之间的映射;若否,则保持映射,直至预设应用和存储器的通信结束。
在本实施方式中,在通信进程中,保持共享区域,直到通信完毕,这样交互数据内容一直保存在共享内存中,并没有写回文件,共享内存中的内容往往是在解除映射时才会写回文件的。因此,保持映射直至预设应用和存储器的通信结束,极大地提高了通信效率。
请参考图2,图2为本发明一种具体实施方式所提供的基于IPSAN的存储器的通信系统结构示意图。
相应地,本发明还提供了一种基于IPSAN的存储器的通信系统,包括:
映射建立模块1,用于通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射;
数据获取模块2,用于通过IPSAN获取预设应用的交互数据;
指针解析模块3,用于解析交互数据对应映射内存的指针;
指针传递模块4,用于将指针传递至存储器的目标功能模块;
拷贝模块5,用于控制目标功能模块从IPSAN中根据指针复制对应的交互数据并进行存储。
进一步地,映射建立模块包括:映射对象选取单元,用于选取存储器的物理内存的设备文件作为映射对象;映射建立单元,用于调用预设的映射函数,将映射对象映射到预设应用的地址空间。更进一步地,映射建立单元为mmap函数调用单元,用于调用mmap函数将映射对象映射到预设应用的地址空间。mmap函数调用单元包括:页面映射子单元,用于调用mmap函数将映射对象映射到多个页面上;判断子单元,用于判断映射对象的文件大小是否等于所有页面的大小之和;执行子单元,用于在判断子单元判定映射对象的文件大小不等于所有页面的大小之和时,将最后一个页面未被映射占用的空间清零。
在本实施方式中,通过ISSAN将存储器的物理内存映射到预设应用的地址空间中,此时,这些应用就可以直接使用输入输出的地址空间,从而提高读写的效率。其中,在本实施方式中,映射可以基于Linux,Linux提供了mmap函数,以用来映射物理内存。在存储器的驱动程序中,应用程序以设备文件为对象,调用mmap函数,内核进行内存映射的准备工作,然后调用内存设备驱动程序中定义的mmap函数。通过IPSAN建立存储器和预设应用的映射,当数据通过IPSAN传输到存储器,存储器中的各功能模块之间只需传递映射内存的指针即可,无需重复拷贝数据,从而避免了复杂的内核协议处理,减少了存储系统调用开销和内存拷贝开销,大大提升了数据报文的传输能力,提升了存储端系统的性能。
在本发明的一种实施方式中,还包括:判断模块,用于判断预设应用和存储器的通信是否结束;映射解除模块,用于在判断模块判定预设应用和存储器的通信结束时,解除存储器的物理内存和预设应用的地址空间之间的映射;映射保持模块,用于在判断模块判定预设应用和存储器的通信未结束时,保持映射,直至预设应用和存储器的通信结束。
在本实施方式中,在通信进程中,保持共享区域,直到通信完毕,这样交互数据内容一直保存在共享内存中,并没有写回文件,共享内存中的内容往往是在解除映射时才会写回文件的。因此,保持映射直至预设应用和存储器的通信结束,极大地提高了通信效率。
综上所述,本发明所提供的基于IPSAN的存储器的通信方法和系统,通过IPSAN建立存储器和预设应用的映射,存储器中的各功能模块之间只需传递映射内存的指针即可,无需重复拷贝数据,从而避免了复杂的内核协议处理,减少了存储系统调用开销和内存拷贝开销,大大提升了数据报文的传输能力,提升了存储端系统的性能。
以上对本发明所提供的一种基于IPSAN的存储器的通信方法和系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种基于IPSAN的存储器的通信方法,其特征在于,包括:
通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射;
通过所述IPSAN获取所述预设应用的交互数据;
解析所述交互数据对应映射内存的指针;
将所述指针传递至所述存储器的目标功能模块;
控制所述目标功能模块从所述IPSAN中根据所述指针复制对应的交互数据并进行存储。
2.根据权利要求1所述的方法,其特征在于,所述通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射,包括:
选取存储器的物理内存的设备文件作为映射对象;
调用预设的映射函数,将所述映射对象映射到所述预设应用的地址空间。
3.根据权利要求2所述的方法,其特征在于,所述调用预设的映射函数,将所述映射对象映射到所述预设应用的地址空间,包括:
调用mmap函数将所述映射对象映射到所述预设应用的地址空间。
4.根据权利要求3所述的方法,其特征在于,所述调用mmap函数将所述映射对象映射到所述预设应用的地址空间,包括:
调用所述mmap函数将所述映射对象映射到多个页面上;
判断所述映射对象的文件大小是否等于所有页面的大小之和;
若否,则将最后一个页面未被映射占用的空间清零。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断所述预设应用和所述存储器的通信是否结束;
若是,则解除所述存储器的物理内存和预设应用的地址空间之间的映射;
若否,则保持所述映射,直至所述预设应用和所述存储器的通信结束。
6.一种基于IPSAN的存储器的通信系统,其特征在于,包括:
映射建立模块,用于通过IPSAN建立存储器的物理内存和预设应用的地址空间之间的映射;
数据获取模块,用于通过所述IPSAN获取所述预设应用的交互数据;
指针解析模块,用于解析所述交互数据对应映射内存的指针;
指针传递模块,用于将所述指针传递至所述存储器的目标功能模块;
拷贝模块,用于控制所述目标功能模块从所述IPSAN中根据所述指针复制对应的交互数据并进行存储。
7.根据权利要求6所述的系统,其特征在于,所述映射建立模块包括:
映射对象选取单元,用于选取存储器的物理内存的设备文件作为映射对象;
映射建立单元,用于调用预设的映射函数,将所述映射对象映射到所述预设应用的地址空间。
8.根据权利要求7所述的系统,其特征在于,所述映射建立单元为mmap函数调用单元,用于调用mmap函数将所述映射对象映射到所述预设应用的地址空间。
9.根据权利要求8所述的系统,其特征在于,所述mmap函数调用单元包括:
页面映射子单元,用于调用所述mmap函数将所述映射对象映射到多个页面上;
判断子单元,用于判断所述映射对象的文件大小是否等于所有页面的大小之和;
执行子单元,用于在所述判断子单元判定所述映射对象的文件大小不等于所有页面的大小之和时,将最后一个页面未被映射占用的空间清零。
10.根据权利要求8所述的系统,其特征在于,还包括:
判断模块,用于判断所述预设应用和所述存储器的通信是否结束;
映射解除模块,用于在所述判断模块判定所述预设应用和所述存储器的通信结束时,解除所述存储器的物理内存和预设应用的地址空间之间的映射;
映射保持模块,用于在所述判断模块判定所述预设应用和所述存储器的通信未结束时,保持所述映射,直至所述预设应用和所述存储器的通信结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611262891.3A CN106874212A (zh) | 2016-12-30 | 2016-12-30 | 一种基于ipsan的存储器的通信方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611262891.3A CN106874212A (zh) | 2016-12-30 | 2016-12-30 | 一种基于ipsan的存储器的通信方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106874212A true CN106874212A (zh) | 2017-06-20 |
Family
ID=59164342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611262891.3A Pending CN106874212A (zh) | 2016-12-30 | 2016-12-30 | 一种基于ipsan的存储器的通信方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874212A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658329A (zh) * | 2022-12-22 | 2023-01-31 | 杭州欧若数网科技有限公司 | 一种图数据结构的内存优化方法、系统和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855092A (zh) * | 2012-08-10 | 2013-01-02 | 浪潮(北京)电子信息产业有限公司 | 存储局域网中存储空间的管理方法和装置 |
CN103036914A (zh) * | 2011-09-29 | 2013-04-10 | 北京飞杰信息技术有限公司 | 一种避免高并发下数据读写瓶颈的方法 |
CN104040518A (zh) * | 2011-11-30 | 2014-09-10 | 超威半导体公司 | 高效存储器和资源管理 |
-
2016
- 2016-12-30 CN CN201611262891.3A patent/CN106874212A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036914A (zh) * | 2011-09-29 | 2013-04-10 | 北京飞杰信息技术有限公司 | 一种避免高并发下数据读写瓶颈的方法 |
CN104040518A (zh) * | 2011-11-30 | 2014-09-10 | 超威半导体公司 | 高效存储器和资源管理 |
CN102855092A (zh) * | 2012-08-10 | 2013-01-02 | 浪潮(北京)电子信息产业有限公司 | 存储局域网中存储空间的管理方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115658329A (zh) * | 2022-12-22 | 2023-01-31 | 杭州欧若数网科技有限公司 | 一种图数据结构的内存优化方法、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5884313A (en) | System and method for efficient remote disk I/O | |
CN106874128B (zh) | 数据传输方法及装置 | |
KR101497516B1 (ko) | 디렉토리 기반의 멀티코어 아키텍처 상에서 캐시 상태 전송의 가속화 | |
CN103312720B (zh) | 一种数据传输方法、设备及系统 | |
CN112054963A (zh) | 用于异构计算环境中的数据传输的网络接口 | |
CN110377436A (zh) | 持久性内存的数据存储访问方法、设备及装置 | |
JP6211579B2 (ja) | テーブル・オブ・コンテンツエントリを使用してデータを格納するためのシステムおよび方法 | |
CN103902467B (zh) | 压缩内存访问控制方法、装置及系统 | |
CN106598752B (zh) | 远程零拷贝方法 | |
TW200900927A (en) | Wear leveling | |
ITRM20120094A1 (it) | Scheda di interfaccia di rete per nodo di rete di calcolo parallelo su gpu, e relativo metodo di comunicazione internodale | |
CN103959255A (zh) | 跨多个内存口使用选择性复制降低内存访问延迟的系统及方法 | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN105677597A (zh) | 数据写入方法及装置 | |
CN109803016A (zh) | 一种利用虚拟交换机转发数据包的方法及设备 | |
US8380923B2 (en) | Queue arrays in network devices | |
CN106789734B (zh) | 在交换控制电路中巨帧的控制系统及方法 | |
CA3173088A1 (en) | Utilizing coherently attached interfaces in a network stack framework | |
CN103678573A (zh) | 一种实现缓存加速的方法及系统 | |
CN101197675B (zh) | 访问控制列表配置方法及装置 | |
CN110519180A (zh) | 网卡虚拟化队列调度方法及系统 | |
CN106254270A (zh) | 一种队列管理方法及装置 | |
CN106874212A (zh) | 一种基于ipsan的存储器的通信方法和系统 | |
CN105765542B (zh) | 访问文件的方法、分布式存储系统和存储节点 | |
CN109117288B (zh) | 一种低延迟旁路的消息优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |
|
RJ01 | Rejection of invention patent application after publication |