CN107105021A - 一种数据读写方法和装置 - Google Patents
一种数据读写方法和装置 Download PDFInfo
- Publication number
- CN107105021A CN107105021A CN201710221863.5A CN201710221863A CN107105021A CN 107105021 A CN107105021 A CN 107105021A CN 201710221863 A CN201710221863 A CN 201710221863A CN 107105021 A CN107105021 A CN 107105021A
- Authority
- CN
- China
- Prior art keywords
- data
- disk block
- determined
- sector
- write
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供了一种数据读写方法和装置,所述方法包括:接收基于网络直连存储协议传输的用户请求;判断所述用户请求为读数据请求还是写数据请求;在确定所述用户请求为所述读数据请求后,根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,从所述至少一个第一磁盘块中读取所述第一数据,传输所述第一数据;在确定用户请求为所述写数据请求后,接收基于网络直连存储协议传输的第二数据,根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,将所述第二数据写入所述至少一个第二磁盘块中。本发明还公开了相应的数据读写装置。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据读写方法和装置。
背景技术
目前,常用的存储技术包括存储区域网络(SAN)技术和网络接入(NAS)技术。其中,存储区域网络(Storage Area Network,简称SAN)采用网状通道(FibreChanne,简称FC技术),通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络,SAN的结构允许任何服务器连接到任何存储阵列,这样不管数据置放在那里,服务器都可直接存取所需的数据。网络存储技术(Network Attached Storage,简称NAS)是基于标准网络协议(TCP/IP协议)实现数据传输,为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份,由于这些设备都分配有IP地址,所以客户机通过充当数据网关的服务器可以对其进行存取访问,甚至在某些情况下,不需要任何中间介质客户机也可以直接访问这些设备。但是,采用SAN技术需要连接服务器主机,占用系统资源,读写效率低下,而采用NAS技术无法使所有的数字存储设备直接(不通过TCP/IP)连接到标准网络中。
发明内容
有鉴于此,本发明的目的在于提供一种数据读写方法和装置,用于解决现有技术无法直接连接标准网络、读写效率低下的问题。
第一方面,本发明的实施例提供一种数据读写方法,包括:
接收基于网络直连存储协议传输的用户请求;
判断所述用户请求为读数据请求还是写数据请求,其中,所述读数据请求为读取第一数据的请求,所述写数据请求为写入第二数据的请求;
在确定所述用户请求为所述读数据请求后,根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,从所述至少一个第一磁盘块中读取所述第一数据,基于网络直连存储协议传输所述第一数据;
在确定所述用户请求为所述写数据请求后,接收基于网络直连存储协议传输的第二数据,根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,将所述第二数据写入所述至少一个第二磁盘块中。
可选地,所述根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,包括:
根据所述用于确定存储第一数据的磁盘块标识的参数,确定至少一个第一磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个所述第一磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第一磁盘块。
可选地,从所述至少一个第一磁盘块中读取所述第一数据,包括:
针对所述至少一个第一磁盘块,根据读数据请求中包含的存储在每个第一磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定存储每个数据片段的起始扇区号,所述偏移量为存储在磁盘中的每个数据片段的起始位置相对于读数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段连续占用第一扇区的数目;
根据确定出的每个数据片段的起始扇区号和每个数据片段连续占用第一扇区的数目,从每个第一磁盘块中的相应的第一扇区读取所述第一数据。
可选地,所述根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,包括:
根据所述用于确定存储所述第二数据的磁盘块标识的参数,确定至少一个第二磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个第二磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第二磁盘块。
可选地,将所述第二数据写入所述第二磁盘块中,包括:
针对所述至少一个第二磁盘块,根据写数据请求中包含将存储在每个第二磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定将存储每个数据片段的起始扇区号,所述偏移量为每个数据片段将写入磁盘的起始位置相对于写数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段将连续占用第二扇区的数目;
根据确定出的将存储每个数据片段起始扇区号和每个数据片段连续占用第二扇区的数目,将所述第二数据写入第二磁盘块中的相应的第二扇区中。
第二方面,本发明的实施例提供一种数据读写装置,包括:
接收单元,用于接收基于网络直连存储协议传输的用户请求;
判断单元,用于判断所述用户请求为读数据请求还是写数据请求,其中,所述读数据请求为读取第一数据的请求,所述写数据请求为写入第二数据的请求;
读取单元,用于在确定所述用户请求为所述读数据请求后,根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,从所述至少一个第一磁盘块中读取所述第一数据,基于网络直连存储协议传输所述第一数据;
写入单元,用于在确定所述用户请求为所述写数据请求后,接收基于网络直连存储协议传输的第二数据,根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,将所述第二数据写入所述至少一个第二磁盘块中。
可选地,所述读取单元具体用于:
根据所述用于确定存储第一数据的磁盘块标识的参数,确定至少一个第一磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个所述第一磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第一磁盘块。
可选地,所述读取单元具体用于:
针对所述至少一个第一磁盘块,根据读数据请求中包含的存储在每个第一磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定存储每个数据片段的起始扇区号,所述偏移量为存储在磁盘中的每个数据片段的起始位置相对于读数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段连续占用第一扇区的数目;
根据确定出的每个数据片段的起始扇区号和每个数据片段连续占用第一扇区的数目,从每个第一磁盘块中的相应的第一扇区读取所述第一数据。
可选地,所述写入单元具体用于:
根据所述用于确定存储所述第二数据的磁盘块标识的参数,确定至少一个第二磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个第二磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第二磁盘块。
可选地,所述写入单元具体用于:
针对所述至少一个第二磁盘块,根据写数据请求中包含将存储在每个第二磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定将存储每个数据片段的起始扇区号,所述偏移量为每个数据片段将写入磁盘的起始位置相对于写数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段将连续占用第二扇区的数目;
根据确定出的将存储每个数据片段起始扇区号和每个数据片段连续占用第二扇区的数目,将所述第二数据写入第二磁盘块中的相应的第二扇区中。
根据本发明的技术方案,基于网络直接存储协议接收用户请求以及数据时,使得各种电子设备无需配置IP可以直接接入标准网络。在进行数据读写时,先确定磁盘块在依次查找读写数据的扇区中,提高了数据的读取或写入效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种数据读写方法的流程图;
图2示出了本发明实施例所提供的磁盘盘面区域的划分侧视示意图;
图3示出了本发明实施例所提供的磁盘盘面区域的划分俯视示意图;
图4示出了本发明实施例所提供的一种数据读写装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种数据读写方法和装置。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1为本发明实施例提供的一种数据读写方法的流程图,参考图1,包括:
S110,接收基于网络直连存储协议传输的用户请求。
其中,用户请求包括读数据请求和写数据请求。
网络直连存储(Network Direct Attach Storage,简称NDAS)是一种能使所有的数字存储设备直接(不通过TCP/IP)连接到标准网络中技术,无需设置IP即可使用,可以无限添加网络直连存储设备(即本发明中的数据读写装置),能够存储海量数据,所有网络中的用户和系统能直接的使用、共享和控制网络直连存储设备。
S120,判断所述用户请求为读数据请求还是写数据请求,其中,所述读数据请求为读取第一数据的请求,所述写数据请求为写入第二数据的请求。
其中,第一数据与第二数据为相同或不相同的数据,第一数据和第二数据分别包括至少一个数据片段。
在接收到用户请求后,先对读数据请求或写数据请求进行解析,解析过程包括验证读数据请求或写数据请求是否合法、判断是读数据请求还是写数据请求、第一数据或第二数据的起始偏移量offset、第一数据或第二数据的长度值length等,本发明对此不予限制。
S130,在确定所述用户请求为所述读数据请求后,根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,从所述至少一个第一磁盘块中读取所述第一数据,基于网络直连存储协议传输所述第一数据。
S140,在确定所述用户请求为所述写数据请求后,接收基于网络直连存储协议传输的第二数据,根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,将所述第二数据写入所述至少一个第二磁盘块中。
下面给出本申请实施例中确定扇区号sector_id值的具体实施方案:
具体地,根据读数据请求或者写数据请求中包含的偏移量offset信息,按照下述公式就可以计算出第一数据或第二数据在磁盘块中占用的磁盘空间中的起始扇区号start_sector_id:
start_sector_id=offset/sector_size;
其中,sector_size为单位扇区的存储容量大小值,一般默认情况下是512字节。
具体地,再根据第一数据或第二数据的长度值length信息,按照下述公式就可以计算出第一数据或第二数据在第一磁盘块或第二磁盘块中占用的磁盘空间中所连续占用的扇区个数sector_num:
sector_num=length/sector_size;
根据上述已经计算出的start_sector_id与sector_num,就可以计算出第一数据或第二数据在对第一磁盘块或第二磁盘块占用的磁盘空间中所连续占用的扇区对应的扇区号集合sector_set,即:
sector set=(start sector id,……,start sector id+sector num-1}。
可选地,在执行步骤S130时,所述根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,包括:
根据所述用于确定存储第一数据的磁盘块标识的参数,确定至少一个第一磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个所述第一磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第一磁盘块。
具体地,磁盘块标识和磁盘块的映射关系一般存储在磁盘块标识表中,在确定用户请求为读数据请求并确定存储第一数据的第一磁盘块标识后,遍历磁盘块标识表中的每一个磁盘块标识,确定与每个第一磁盘块标识匹配的磁盘块标识,根据与确定的上述磁盘块标识对应的磁盘块地址确定至少一个第一磁盘块。其中,磁盘块标识可以是为各个磁盘块设置的编号或者序列号等等,磁盘块地址一般为磁盘块的逻辑地址,本发明磁盘块标识和磁盘块地址不予限制。
可选地,在执行步骤S130时,从所述至少一个第一磁盘块中读取所述第一数据,包括:
针对所述至少一个第一磁盘块,根据读数据请求中包含的存储在每个第一磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定存储每个数据片段的起始扇区号,所述偏移量为存储在磁盘中的每个数据片段的起始位置相对于读数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段连续占用第一扇区的数目;
根据确定出的每个数据片段的起始扇区号和每个数据片段连续占用第一扇区的数目,从每个第一磁盘块中的相应的第一扇区读取所述第一数据。
其中,单位扇区的存储容量值一般为固定值。
具体地,由于存储在磁盘块中数据不一定是连续的,因此需要依次读取每个磁盘块中的数据片段。以读取某个第一磁盘块(如A磁盘块)中的数据片段为例说明,在读取数据片段时,根据读数据请求中包含的存储在该数据片段的起始扇区号。再根据该数据片段的长度值和单位扇区的存储容量值,确定存储该数据片段连续占用第一扇区的数目,该数目可通过数据片段的长度值与单位扇区的存储容量值的比值求得。随后,根据确定出的该数据片段的起始扇区号和该数据片段连续占用第一扇区的数目,从A磁盘块中的相应的第一扇区中读取上述数据片段。
可选地,在执行步骤S140时,所述根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,包括:
根据所述用于确定存储所述第二数据的磁盘块标识的参数,确定至少一个第二磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个第二磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第二磁盘块。
具体地,在确定用户请求为读数据请求并确定存储第二数据的第一磁盘块标识后,遍历磁盘块标识表中的每一个磁盘块标识,确定与每个第二磁盘块标识匹配的磁盘块标识,根据与确定的该磁盘块标识对应的磁盘块地址确定至少一个第二磁盘块。其中,磁盘块标识可以是为各个磁盘块设置的编号或者序列号等等,磁盘块地址一般为磁盘块的逻辑地址,本发明磁盘块标识和磁盘块地址不予限制。
可选地,在执行步骤S140时,将所述第二数据写入所述第二磁盘块中,包括:
针对所述至少一个第二磁盘块,根据写数据请求中包含将存储在每个第二磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定将存储每个数据片段的起始扇区号,所述偏移量为每个数据片段将写入磁盘的起始位置相对于写数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段将连续占用第二扇区的数目;
根据确定出的将存储每个数据片段起始扇区号和每个数据片段连续占用第二扇区的数目,将所述第二数据写入第二磁盘块中的相应的第二扇区中。
具体地,由于磁盘会定时进行删除,因此第二数据将写入磁盘中的扇区不是连续的,需要依次进行写入。以写入某个第二磁盘块(如B磁盘块)为例进行说明,根据写数据请求中包含将存储在B磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定将存储该数据片段的起始扇区号;根据该数据片段的长度值和单位扇区的存储容量值,确定存储该数据片段将连续占用第二扇区的数目。根据确定出的将存储该数据片段起始扇区号和该数据片段连续占用第二扇区的数目,将上述数据片段写入相应的第二扇区中。
在一个实施例中,磁盘块是一个抽象的概念,磁盘块block由一个或多个扇区sector组成,是文件系统中最小的操作单位,从硬件设备上读取一个block,实际为从硬件设备读取一个或多个sector,磁盘块必然要映射到具体的物理块上去,因此,磁盘块的大小必须是物理块大小的整数倍。以读取数据为例,在确定第一数据的磁盘块后,从磁盘中读取第一数据。参考图3和图4,当需要从磁盘读取数据时,系统会根据确定的磁盘块,查找存储第一数据的扇区的物理地址,即确定要读的数据在哪个磁道,哪个扇区,在找到存储第一数据的扇区后,该扇区旋转到磁头下,完成数据读取。写入数据与该过程相似,不再进行过多叙述。
根据本发明的技术方案,基于网络直接存储协议接收用户请求以及数据时,使得各种电子设备无需配置IP可以直接接入标准网络。在进行数据读写时,先确定磁盘块在依次查找读写数据的扇区中,提高了数据的读取或写入效率。
图4示出了根据本发明实施例提供的一种数据读写装置的结构示意图。参考图4,该装置包括:接收单元410、判断单元420、读取单元430和写入单元440。
接收单元410用于接收基于网络直连存储协议传输的用户请求。
判断单元420用于判断所述用户请求为读数据请求还是写数据请求,其中,所述读数据请求为读取第一数据的请求,所述写数据请求为写入第二数据的请求;
读取单元430用于在确定所述用户请求为所述读数据请求后,根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,从所述至少一个第一磁盘块中读取所述第一数据,基于网络直连存储协议传输所述第一数据;
写入单元440用于在确定所述用户请求为所述写数据请求后,接收基于网络直连存储协议传输的第二数据,根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,将所述第二数据写入所述至少一个第二磁盘块中。
可选地,所述读取单元430具体用于:
根据所述用于确定存储第一数据的磁盘块标识的参数,确定至少一个第一磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个所述第一磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第一磁盘块。
可选地,所述读取单元430具体用于:
针对所述至少一个第一磁盘块,根据读数据请求中包含的存储在每个第一磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定存储每个数据片段的起始扇区号,所述偏移量为存储在磁盘中的每个数据片段的起始位置相对于读数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段连续占用第一扇区的数目;
根据确定出的每个数据片段的起始扇区号和每个数据片段连续占用第一扇区的数目,从每个第一磁盘块中的相应的第一扇区读取所述第一数据。
可选地,所述写入单元440具体用于:
根据所述用于确定存储所述第二数据的磁盘块标识的参数,确定至少一个第二磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个第二磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第二磁盘块。
可选地,所述写入单元440具体用于:
针对所述至少一个第二磁盘块,根据写数据请求中包含将存储在每个第二磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定将存储每个数据片段的起始扇区号,所述偏移量为每个数据片段将写入磁盘的起始位置相对于写数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段将连续占用第二扇区的数目;
根据确定出的将存储每个数据片段起始扇区号和每个数据片段连续占用第二扇区的数目,将所述第二数据写入第二磁盘块中的相应的第二扇区中。
在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据读写方法,其特征在于,包括:
接收基于网络直连存储协议传输的用户请求;
判断所述用户请求为读数据请求还是写数据请求,其中,所述读数据请求为读取第一数据的请求,所述写数据请求为写入第二数据的请求;
在确定所述用户请求为所述读数据请求后,根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,从所述至少一个第一磁盘块中读取所述第一数据,基于网络直连存储协议传输所述第一数据;
在确定所述用户请求为所述写数据请求后,接收基于网络直连存储协议传输的第二数据,根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,将所述第二数据写入所述至少一个第二磁盘块中。
2.如权利要求1所述的方法,其特征在于,所述根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,包括:
根据所述用于确定存储第一数据的磁盘块标识的参数,确定至少一个第一磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个所述第一磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第一磁盘块。
3.如权利要求1所述的方法,其特征在于,从所述至少一个第一磁盘块中读取所述第一数据,包括:
针对所述至少一个第一磁盘块,根据读数据请求中包含的存储在每个第一磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定存储每个数据片段的起始扇区号,所述偏移量为存储在磁盘中的每个数据片段的起始位置相对于读数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段连续占用第一扇区的数目;
根据确定出的每个数据片段的起始扇区号和每个数据片段连续占用第一扇区的数目,从每个第一磁盘块中的相应的第一扇区读取所述第一数据。
4.如权利要求1所述的方法,其特征在于,所述根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,包括:
根据所述用于确定存储所述第二数据的磁盘块标识的参数,确定至少一个第二磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个第二磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第二磁盘块。
5.如权利要求1所述的方法,其特征在于,将所述第二数据写入所述第二磁盘块中,包括:
针对所述至少一个第二磁盘块,根据写数据请求中包含将存储在每个第二磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定将存储每个数据片段的起始扇区号,所述偏移量为每个数据片段将写入磁盘的起始位置相对于写数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段将连续占用第二扇区的数目;
根据确定出的将存储每个数据片段起始扇区号和每个数据片段连续占用第二扇区的数目,将所述第二数据写入第二磁盘块中的相应的第二扇区中。
6.一种数据读写装置,其特征在于,包括:
接收单元,用于接收基于网络直连存储协议传输的用户请求;
判断单元,用于判断所述用户请求为读数据请求还是写数据请求,其中,所述读数据请求为读取第一数据的请求,所述写数据请求为写入第二数据的请求;
读取单元,用于在确定所述用户请求为所述读数据请求后,根据所述读数据请求中携带的用于确定存储第一数据的磁盘块标识的标识,确定存储第一数据的至少一个第一磁盘块,从所述至少一个第一磁盘块中读取所述第一数据,基于网络直连存储协议传输所述第一数据;
写入单元,用于在确定所述用户请求为所述写数据请求后,接收基于网络直连存储协议传输的第二数据,根据所述写数据请求中携带的用于确定存储所述第二数据的磁盘块标识的参数,确定存储第二数据的至少一个第二磁盘块,将所述第二数据写入所述至少一个第二磁盘块中。
7.如权利要求6所述的装置,其特征在于,所述读取单元具体用于:
根据所述用于确定存储第一数据的磁盘块标识的参数,确定至少一个第一磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个所述第一磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第一磁盘块。
8.如权利要求6所述的装置,其特征在于,所述读取单元具体用于:
针对所述至少一个第一磁盘块,根据读数据请求中包含的存储在每个第一磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定存储每个数据片段的起始扇区号,所述偏移量为存储在磁盘中的每个数据片段的起始位置相对于读数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段连续占用第一扇区的数目;
根据确定出的每个数据片段的起始扇区号和每个数据片段连续占用第一扇区的数目,从每个第一磁盘块中的相应的第一扇区读取所述第一数据。
9.如权利要求6所述的装置,其特征在于,所述写入单元具体用于:
根据所述用于确定存储所述第二数据的磁盘块标识的参数,确定至少一个第二磁盘块标识;
基于预设的磁盘块标识和磁盘块地址的对应关系,在磁盘块标识中确定与每个第二磁盘块标识匹配的磁盘块标识对应的磁盘块地址,根据确定的磁盘块地址确定至少一个第二磁盘块。
10.如权利要求6所述的装置,其特征在于,所述写入单元具体用于:
针对所述至少一个第二磁盘块,根据写数据请求中包含将存储在每个第二磁盘块中的数据片段的偏移量,以及单位扇区的存储容量值,确定将存储每个数据片段的起始扇区号,所述偏移量为每个数据片段将写入磁盘的起始位置相对于写数据请求中包含的扇区起始位置的偏移量;
根据每个数据片段的长度值和单位扇区的存储容量值,确定存储每个数据片段将连续占用第二扇区的数目;
根据确定出的将存储每个数据片段起始扇区号和每个数据片段连续占用第二扇区的数目,将所述第二数据写入第二磁盘块中的相应的第二扇区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710221863.5A CN107105021A (zh) | 2017-04-06 | 2017-04-06 | 一种数据读写方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710221863.5A CN107105021A (zh) | 2017-04-06 | 2017-04-06 | 一种数据读写方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107105021A true CN107105021A (zh) | 2017-08-29 |
Family
ID=59676121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710221863.5A Pending CN107105021A (zh) | 2017-04-06 | 2017-04-06 | 一种数据读写方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107105021A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704733A (zh) * | 2019-09-20 | 2020-01-17 | 北京三快在线科技有限公司 | 一种发送数据的方法及装置 |
CN110727639A (zh) * | 2019-10-08 | 2020-01-24 | 深圳市网心科技有限公司 | 碎片数据读取方法、电子设备、系统及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1900935A (zh) * | 2005-07-14 | 2007-01-24 | 国际商业机器公司 | 访问扇区数据的方法和系统 |
US7746900B2 (en) * | 2004-07-22 | 2010-06-29 | Zhe Khi Pak | Low-level communication layers and device employing same |
KR20110030002A (ko) * | 2009-09-17 | 2011-03-23 | 장 페트러스 | 활성-활성 멀티플렉싱 유닛 또는 포트 선택자 유닛을 가지는 네트워크 직접 연결 저장 장치 |
CN102594849A (zh) * | 2011-01-06 | 2012-07-18 | 阿里巴巴集团控股有限公司 | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 |
CN103281520A (zh) * | 2013-05-30 | 2013-09-04 | 山东卡尔电气股份有限公司 | 一种高清视频监控存储系统 |
CN106104500A (zh) * | 2013-11-26 | 2016-11-09 | 英特尔公司 | 存储数据的方法和设备 |
-
2017
- 2017-04-06 CN CN201710221863.5A patent/CN107105021A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7746900B2 (en) * | 2004-07-22 | 2010-06-29 | Zhe Khi Pak | Low-level communication layers and device employing same |
CN1900935A (zh) * | 2005-07-14 | 2007-01-24 | 国际商业机器公司 | 访问扇区数据的方法和系统 |
KR20110030002A (ko) * | 2009-09-17 | 2011-03-23 | 장 페트러스 | 활성-활성 멀티플렉싱 유닛 또는 포트 선택자 유닛을 가지는 네트워크 직접 연결 저장 장치 |
CN102594849A (zh) * | 2011-01-06 | 2012-07-18 | 阿里巴巴集团控股有限公司 | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 |
CN103281520A (zh) * | 2013-05-30 | 2013-09-04 | 山东卡尔电气股份有限公司 | 一种高清视频监控存储系统 |
CN106104500A (zh) * | 2013-11-26 | 2016-11-09 | 英特尔公司 | 存储数据的方法和设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704733A (zh) * | 2019-09-20 | 2020-01-17 | 北京三快在线科技有限公司 | 一种发送数据的方法及装置 |
CN110704733B (zh) * | 2019-09-20 | 2020-10-02 | 北京三快在线科技有限公司 | 一种发送数据的方法及装置 |
CN110727639A (zh) * | 2019-10-08 | 2020-01-24 | 深圳市网心科技有限公司 | 碎片数据读取方法、电子设备、系统及介质 |
CN110727639B (zh) * | 2019-10-08 | 2023-09-19 | 深圳市网心科技有限公司 | 碎片数据读取方法、电子设备、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103324533B (zh) | 分布式数据处理方法、装置及系统 | |
CN101741730B (zh) | 文件下载方法及设备、提供文件下载服务的方法及系统 | |
CN107436725A (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
CN109428913B (zh) | 一种存储扩容方法及装置 | |
CN107911249B (zh) | 一种网络设备的命令行发送方法、装置和设备 | |
CN107404481B (zh) | 用户信息识别方法及装置 | |
CN103475682B (zh) | 文件迁移方法及设备 | |
CN105915650B (zh) | 负载均衡方法和装置 | |
CN103049355B (zh) | 一种数据库系统恢复方法及设备 | |
CN106095337A (zh) | 一种基于san网络存储的云盘快速共享方法 | |
CN104811473B (zh) | 一种创建虚拟非易失性存储介质的方法、系统及管理系统 | |
CN106789363A (zh) | 一种向虚拟机配置网卡的方法及装置 | |
CN103995674A (zh) | 访问请求处理方法、装置和设备 | |
CN107506145B (zh) | 一种物理存储调度方法及云主机创建方法 | |
CN108399050B (zh) | 一种数据处理方法及装置 | |
CN114039875B (zh) | 一种基于eBPF技术的数据采集方法、装置及系统 | |
CN110113393A (zh) | 一种消息推送方法、装置、电子设备及介质 | |
CN103458004A (zh) | 物联网设备签约信息变更方法和设备 | |
CN109597903B (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN108206750A (zh) | 虚拟机网卡的配置方法及装置 | |
CN108347459A (zh) | 一种云端数据快速存储方法及装置 | |
CN103595720B (zh) | 卸载数据传输方法、装置和客户端 | |
CN107105021A (zh) | 一种数据读写方法和装置 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN101630332B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170829 |