CN1786893A - 在逻辑层、物理层和存储设备之间传输数据 - Google Patents

在逻辑层、物理层和存储设备之间传输数据 Download PDF

Info

Publication number
CN1786893A
CN1786893A CN200510099009.3A CN200510099009A CN1786893A CN 1786893 A CN1786893 A CN 1786893A CN 200510099009 A CN200510099009 A CN 200510099009A CN 1786893 A CN1786893 A CN 1786893A
Authority
CN
China
Prior art keywords
physical
layer
buffer zone
skew
physical layer
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.)
Granted
Application number
CN200510099009.3A
Other languages
English (en)
Other versions
CN100337219C (zh
Inventor
马修·约瑟夫·安格林
凯·A.·G.·艾舍
戴维·麦克斯韦·坎农
埃里克·克里斯蒂安·克赛尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1786893A publication Critical patent/CN1786893A/zh
Application granted granted Critical
Publication of CN100337219C publication Critical patent/CN100337219C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了在逻辑层、物理层和存储设备之间传输数据的方法、系统和过程。逻辑层分配了一个用来写数据到存储设备的缓冲区,物理层管理对存储设备的访问。逻辑层基于由物理层写入的物理头的长度确定在缓冲区中的偏移,并且从确定的偏移开始将输入写入缓冲区。物理层写入物理头信息,其中物理头信息不超过缓冲区中的偏移。物理层将内容从缓冲区传输到存储设备。

Description

在逻辑层、物理层和存储设备之间传输数据
技术领域
这个发明涉及在逻辑层、物理层和存储设备之间传输数据的的方法、系统和过程。
背景技术
在一个存储环境中,数据可能会在不同种类的存储设备之间传输,例如顺序访问设备(如,磁带驱动器,光盘驱动器等)或者随机访问存储设备(如,硬盘驱动器,电子存储器,Flash存储器等)。连接到存储设备的系统可能有一个表示了大块数据的逻辑视图的逻辑层,也称为逻辑块,其可能包括在存储设备的物理块中或者跨越物理块。逻辑层通过调用物理层去访问存储设备。在逻辑层和物理层中都可给应用数据加上一个头信息,在这个头信息中包含被用来管理数据和错误校验码的数据。物理头可表示块中要写到存储设备的数据的大小和逻辑块的标识符。
逻辑层可在存储器中分配一个缓冲区,用来包括传送到存储设备的数据。逻辑层执行一个存储器拷贝的操作,将逻辑层缓冲区中的数据传输到物理层输入/输出(I/O)缓冲区中,其中在数据被传输到存储设备前,物理层给数据加上物理头信息。例如,逻辑层用应用数据和逻辑头填充逻辑缓冲区。随后,物理层加物理头到I/O缓冲区中,并且在加到I/O缓冲区中的物理头之后将逻辑层使用的缓冲区中的数据拷贝到I/O缓冲区。
在读操作中,逻辑层维持使在该处存储逻辑对象的物理位置与逻辑块标识符相关联的信息。一个逻辑对象可能跨越多个逻辑和物理块,或者多个逻辑对象被包含在一个块中。为了检索对象,逻辑层请求物理层在和这个对象相关联的物理位置读取该块。物理曾确定在缓冲区中跳过该物理头的包括该物理位置的偏移,其中逻辑层不知道物理头。然后物理层执行两个操作,一个是将包含有逻辑块和物理头的整个一个物理块读到I/O缓冲区中,另一个是从I/O缓冲区中跳过物理头的偏移开始进行存储器拷贝,这个存储器拷贝操作将在I/O缓冲区中的逻辑头和应用数据拷贝到分配给逻辑层的缓冲区中。
发明内容
本发明提供了在逻辑层、物理层和存储设备之间传输数据的方法、系统和过程。逻辑层分配了一个用来写数据到存储设备(storagedevice)的缓冲区(buffer),物理层管理对存储设备的访问。逻辑层基于由物理层写入的物理头(physical header)的长度确定在缓冲区中的偏移(offset),并且从确定的偏移开始将输入写入缓冲区。物理层写入物理头信息,其中物理头信息不超过缓冲区中的偏移。物理层将内容从缓冲区传输到存储设备
附图说明
图1描述了存储计算环境的实现。
图2描述了缓冲区格式的实现。
图3描述了保持的使物理位置和逻辑块相关联的信息。
图4、5和6描述了在逻辑层、物理层和存储设备之间传输数据的操作的实现。
具体实施方式
在下面的描述中,将参考构成本发明一部分并实例化本发明的若干实施例的附图。应当理解,在没有偏离本说明的范围的前提下,可以采用其他的实例或者作出结构和操作上的变化。
图1描述了一个计算环境,在该环境中有一个包含有处理器4和存储器(memory)6的系统2。在存储器6中加载了一个操作系统26和存储管理器8应用。在存储管理器8中包含一个逻辑层10和一个物理层12。逻辑层10向应用20提供存储在存储设备14中的数据的信息。逻辑层10提供存储设备14中数据的视图(view),作为逻辑块,并且可提供文件系统视图。逻辑层知道数据的布局,但和存储设备没有直接的接触。逻辑层10和物理层18之间进行通信,该物理层与设备驱动器(没有显示)和其他能直接访问在存储设备14中数据15的物理块的组件进行交互。物理层12与存储设备直接进行联系,但不了解被存储的数据。逻辑层10将对存储设备14中的数据的I/O请求传递到物理层12来处理。逻辑层10可将存储设备14中的数据看作逻辑块,其中逻辑层可能跨越在存储设备14中组织的数据16的物理块。此外,一个物理块16可能包含多个逻辑块。逻辑层10维持一个对象数据库18,这个数据库提供了关于每一个写到存储设备14的对象的信息,包括对象存储的开始在存储设备14中的物理位置。向前面讨论的一样,一个对象可跨越一个或多个物理块。
在存储器6或一些外部设备中执行的应用20向逻辑层10传递逻辑块数据的读/写请求,逻辑层10向应用20提供了数据的逻辑视图。应用20可以传输应用20产生和保持的数据。另外,应用20也在存储设备14和其他的存储设备(没有显示)之间传输数据,在其中数据可在不同种类的存储设备之间传输。例如,应用20可包含一个备份程序用来在一个或多个硬盘驱动器和磁带或其他顺序访问设备之间备份和存储数据。
逻辑层10在缓冲区池24中分配缓冲区22来存储数据块。在这里描述的实施例中,逻辑层10和物理层12共享缓冲区22。
存储器14可以包括本领域中已知的任何适当的非易失性存储设备,例如顺序存储设备,如磁带,光盘等,或者随机访问存储设备,如硬盘驱动器或非易失性电子存储器(如flash存储器)。系统2可包括本领域中已知的能对存储设备14执行I/O访问的计算机系统,如工作站,服务器,大型机、桌上电脑、膝上型电脑、手持计算机、电话等。系统2和存储设备14之间可通过网络连接,如局域网(LAN)、存储域网(SAN)、无线网络、因特网、企业内部网等。在一个可选的实施例中,系统2和存储设备14之间可通过电缆或总线接口相连,如PCI总线、SCSI总线等。存储设备14可包括和系统2连接的外部存储设备,或者和系统2主板连接的内部存储设备。
图2描述了由逻辑层10和物理层12为每块数据添加到缓冲区22的信息,包括由物理层12写入的物理头50,包括物理层12用来标识和校验数据的信息,如物理块的标识符和用来校验数据的错误校验码;由逻辑层10写入的逻辑头52,包括逻辑层10用来标识和校验数据的信息,如逻辑块的标识符和错误校验码;以及由逻辑层写入的应用数据54。对于描述的实施例,逻辑层10和物理层12彼此传递数据,以通过将指针传递给缓冲区来读取或写入存储设备14。这样,缓冲区22是被逻辑层10和物理层12共享的。逻辑层10和物理层12可在同一块共享的缓冲区22中处理数据和添加头信息和其它的信息,避免了相对于分立的缓冲区进行数据的存储器拷贝操作。
图3描述了对象数据库18的条目70,包括对象标识符(ID)72和表示存储设备14中对象72开始的物理位置的物理位置74。对象72可能被包括在一个物理块16中或跨越多个物理块16。在一个实施例中,逻辑块和物理块的长度是一样的。在存储设备包括顺序存储设备(如磁带)的实施例中,块16可包括在顺序存储介质上的顺序块。
图4描述了一个由逻辑层10和物理层12从应用20传输数据到存储设备14的操作的实施例,其可能从另外一个存储设备(如不同种类的存储设备)传输数据到存储设备。为了初始化一个写操作,逻辑层10在存储器设备中请求安装(mount)一个卷(volume)(在块100)。在存储设备14包括顺序访问设备的实施例中,所述卷可包括物理层12将使之插入磁带驱动器以进行访问的磁带或盘式磁带(cartridge)。所述卷包括含有逻辑块的物理块。或者,存储设备14可包括随机访问存储设备,如硬盘驱动器、flash存储器等。响应于所述安装请求,物理层12发出命令,以安装包括所请求的卷的存储介质,并且向逻辑层10返回一个安装完成的信息(块102)。当一个磁带被安装以进行写入时,假设该卷寻道(seek)到末尾。物理层12还向逻辑层报告消息,指出物理头50(图2)的长度和在存储设备中的块16的大小。响应于接收安装完成和关于物理头50(图2)长度和存储设备块16的大小的信息(块106),逻辑层10向物理层12请求顺序访问设备14的写入对象的当前存储位置(块108)。在一个实施例中,当前存储位置可包括在顺序访问设备中定位存储设备14的读/写头以写入对象的一个物理位置。
作为当前位置的请求的响应,物理层12确定在顺序访问设备中的当前访问位置,并将该确定的当前位置发送到逻辑层10(块110)。在逻辑块数据库18中,逻辑层10将对象写入到的当前位置与被写入的对象(即,具有对象标识符72(图3))关联起来。逻辑层10还分配一个用来写对象到存储设备14的缓冲区22,其大小和设备块的大小一样(块114)。逻辑层10基于物理层12写入的物理头50的长度,确定在缓冲区22中的偏移,所述长度是在块104从物理层报告的长度。然后逻辑层10从确定的偏移开始写入逻辑头52,后跟对象。从偏移开始写将在缓冲区22的顶部为物理头50留出空间(图2)。
在填充了缓冲区22后,逻辑层10通知物理层12去处理包含写入对象的缓冲区22。作为响应,物理层12在缓冲区22的起始位置写入物理头50,其中物理头50信息不超过在其中写入逻辑头52的确定的偏移(块122)。物理层12将对象从缓冲区22传输到存储设备14(块124)。
在图4描述的实施例中,逻辑层10和物理层12共享相同的缓冲区22,以填充应用数据(对象)54和头50、52,以便物理层12将数据直接从共享的缓冲区22写入到存储设备14。
图5描述了由逻辑层10和物理层12从存储设备14检索数据的实施例。控制是从步骤150开始,在这里逻辑层10向物理层12发出一个在存储设备14中安装卷的请求。作为响应,物理层12安装包含由被请求卷的存储设备14,即顺序访问设备;并向逻辑层返回安装完成的信息(块152)。然后逻辑层10请求物理层12从与对象相关联的物理位置开始读取,以便从物理位置的第一偏移处读取,这里第一偏移可以是0或多个字节。逻辑层10请求的物理位置可能在物理块16的中间某个位置,但它代表对象的起始位置。如果逻辑层10想要从对象中的一个位置开始读,则第一偏移可能大于0。和将要检索的对象相关的物理位置可包括和保存在对象数据库18中的对象的标识符72相关的物理位置。这样,当写入逻辑块时,逻辑层10从物理层12获得的当前位置随后被展现给物理层12,用来检索对象或对象中的偏移。这个请求可进一步表明逻辑层为被请求的数据所分配的缓冲区22。
物理层12确定包含有被请求的物理位置和第一偏移的物理块,并且进一步确定定位在确定的物理块的物理头之后确定的物理块的第二偏移。物理层12发出一个命令,使得将物理块16传输到物理层和逻辑层均可访问的缓冲区22。被传输的物理块16可包含除被请求的对象外的数据,如另外的对象或仅是被请求对象的一部分(块156)。物理层12还向逻辑层提供第二偏移(块158)。逻辑层10利用第二偏移在缓冲区中从此第二偏移开始访问对象(块160)。在第二偏移访问的对象可包括逻辑头52和应用数据54(图2)。如果整个被请求的对象都在缓冲区22中,则控制结束(块162)。否则,如果不是整个被请求的对象在缓冲区22中,则逻辑层10请求下一物理块16(块164)。这个请求可包括其中物理层将传输被请求的数据的下一缓冲区22。在这种实施例中,在逻辑层10在一个缓冲区22中读取被请求对象的一部分数据时,可将对象的下一部分读入下一缓冲区22中。
在一个实施例中,如果逻辑层10从一个物理位置的开始和偏移(第一偏移)请求若干字节,则物理层12可确定对象的开始以及被请求的对象是否跨入了下一物理块,例如,被请求对象的长度加上从物理位置的偏移的和没有超过缓冲区的末尾,则所有被请求的对象都在当前缓冲区中。如果对象跨入了下一个物理缓冲区,则物理层12访问下一个物理层,并将检索数据的偏移通知逻辑层,以绕过(bypass)物理头。
作为对请求的响应,物理层12确定下一物理块和物理块中的下一偏移,其中下一偏移在下一物理块中物理头的后面,指向数据54(块168)。下一偏移被提供给逻辑层10(块170),逻辑层10使用下一偏移,在下一缓冲区22中从下一偏移开始访问被请求对象的剩余部分。
图6进一步描述了一个由逻辑层10和物理层12从存储设备14检索数据的实施例。逻辑层10请求物理层12在存储设备中从下一个物理位置的偏移处检索下一个对象(块200)。这个请求可能是来自于应用20的一系列顺序访问请求中的一个。作为响应,物理层12查看(review)缓冲区22中的物理头50,以确定被请求的下一个物理位置是否在缓冲区22中(块202)。当向物理层12请求下一个对象/物理位置时,逻辑层10可将一个指针与请求一起传回缓冲区22,所述指针指向上个对象被访问的位置。如果被请求的物理位置不在缓冲区22中(块202),控制将进入图5中的步骤156(块204),以检索下一块物理块,并将它传输到缓冲区22中。如果被请求的块已经在缓冲区22中(块202),则物理层22向逻辑层10返回在缓冲区22中被请求的下一块的下一偏移(块206)。逻辑层10利用所述下一偏移,在缓冲区中从所述下一偏移开始访问对象(即,逻辑头52和应用数据54)(块208)。在图6所示的操作中,如果被请求的逻辑块的全部或部分已经在缓冲区22中,则可将数据返回到逻辑层10,而不必从存储设备14传输数据。
在另外的实施例中,某些头可能不被写入。例如,如果数据是从磁盘存储设备传到顺序访问设备(如磁带),可以在带有空的物理头50的情况下将数据写入磁盘,所述物理头50的长度等于磁带设备物理头50。当数据从磁盘传向磁带时,这将给顺序访问设备(磁带)的物理层添加物理头50留有余地。此外,如果数据是在不同种类的设备之间进行传输,包括不同的磁带设备,逻辑层10可以总是保留物理头50,使得每个块的创建都有足够的长度,以适应在设备中使用的最大物理头50。用存储在磁盘中的数据为物理头保留空间将允许在不同种类的存储设备之间进行直接的I/O传输。每个受到支持的设备可以有单独的物理层。
在所描述的实施例中,逻辑层10和物理层12共享缓冲区,从这同一个缓冲区中访问数据,向这同一缓冲区中写入头信息,并彼此传递到缓冲区的指针以传输数据。
附加实施例描述
可以使用标准的编程和/或工程技术,将所描述的操作实现为方法、设备或制造产品,以制造软件、固件、硬件或它们的组合。这里所说的“制造产品”是指在硬件逻辑中实现的代码或逻辑(例如,一个集成电路芯片,可编程门阵列(PGA),专用集成电路(ASIC)等)或计算机可读介质,例如磁存储器介质(例如,硬盘驱动器,软盘,磁带等),光存储器(CD-ROM,光盘等),易失性和非易失性存储器(例如,EEPROM,ROM,PROM,RAM,DRAM,SRAM,固件,可编程逻辑等)。在计算机可读存储介质中的代码是由处理器访问并执行的。在其中实现优选实施例的代码还可以通过传输介质或经由网络从文件服务器访问。在这些例子中,用来实现代码的制造产品可包括传输介质(如网络传输线、无线传输介质、通过空间传播的信号、无线电波、红外信号等)。因此,“制造产品”可包含在其中实现代码的介质。另外,“制造产品”可包括在其中实现、处理和执行代码的硬件和软件的组合。当然,本领域技术人员能够理解,可以在不偏离本发明范围的前提下对这些组合配置进行修改,并且所述制造产品可以包括本领域中已知的任何信息承载介质。
在一个实施例中,逻辑层相对于存储设备14传输对象。在另外的实施例中,可以将数据单元或除对象外的其他结构作为传输操作的主体。
在图4-6显示按特定的顺序续执行的特定事件。在另外的实施例中,特定的操作可能按不同的顺序执行、被修改或被删除。此外,可以在以上描述的逻辑中添加步骤而仍然遵从所描述的实施例。此外,在这里描述的操作可以按顺序发生,或者某些操作可以并行执行。而且,可以由单个处理单元或分布式处理单元执行所述操作。
在前面的描述中,出于例示和描述本发明的目的讲述了本发明的不同的实施例。其意图并非穷举的或将本发明限制为公开的精确形式。在上述教导下,可以对本发明作多种修改和变化。本发明的范围不受这里的详细描述的限制,而是由附属的权利要求来限定。前述说明书、例子和数据为制造和使用本发明提供了详细的说明。由于可以在不背离本发明的精神和范围的前提下,对本发明的实施例进行多种变形,因此本发明仅由随附的权利要求所限定。

Claims (33)

1.一种方法,包括:
由逻辑层分配一缓冲区,用来将数据写入到存储设备中,其中物理层管理对存储设备的访问;
由逻辑层基于由物理层写入的物理头的长度确定在缓冲区中的偏移;
由逻辑层从确定的偏移开始将数据写入缓冲区;
由物理层写入物理头信息,其中物理头信息不超过缓冲区中的偏移;以及
由物理层将内容从缓冲区传输到存储设备。
2.权利要求1中的方法,包括:
由逻辑层从物理层接收信息,表明物理头长度和存储设备的块大小,其中被分配的缓冲区的大小是存储设备的块大小,并且其中偏移基于从物理层接收的物理头长度信息。
3.权利要求1中的方法,其中物理层从缓冲区的起始处写入物理头信息。
4.权利要求1中的方法,其中由逻辑层从偏移开始写入的数据包括逻辑头和跟在后面的应用数据。
5.权利要求1中的方法,其中要写入到存储设备的数据包括对象,其中存储设备包括顺序访问设备,进一步包括:
由逻辑层从物理层请求向其写入对象的顺序访问设备中的当前位置;
由逻辑层将所请求的顺序访问设备的当前位置与将要写入的对象关联起来;
当随后从物理层请求对象时,由逻辑层使用与写入的对象相关联的当前位置。
6.权利要求1中的方法,其中存储设备能够包括硬盘驱动器和顺序访问设备,其中如果存储设备包括顺序访问设备,则物理层写入物理头信息,如果存储设备包括随机访问设备,则物理层不向缓冲区写入物理头信息。
7.一种方法,包括:
由逻辑层请求物理层从存储设备中一物理位置开始的第一偏移处检索数据块,其中第一偏移可包括0或多个字节;
由物理层确定包括从物理位置开始的所请求的第一偏移的物理块;
由物理层确定在确定的物理块中的第二偏移,其指向在从物理位置开始的第一偏移处的数据块的起始处;
由物理层将物理块传输到物理层和逻辑层均可访问的缓冲区;
由物理层将第二偏移提供给逻辑层;以及
由逻辑层使用第二偏移在缓冲区中从第二偏移访问数据块。
8.权利要求7中的方法,其中每个物理块包括一物理头,进一步包括:
响应于确定缓冲区中不包括所有要检索的数据块,由逻辑层请求下一物理块;
由物理层确定下一物理块和在物理块中的下一偏移,其中下一偏移跟在下一物理块中的物理头之后;
由物理层将下一物理块传输到物理层和逻辑层均可访问的下一缓冲区;
由物理层将下一偏移提供给逻辑层;以及
由逻辑层使用所述下一偏移,以在下一缓冲区中从下一偏移开始访问所请求数据块的剩余部分。
9.权利要求7中的方法,其中存储设备包括磁带设备,进一步包括:
由逻辑层为每个写入到磁带设备的对象保持在磁带设备中的当前位置,其中所请求的物理位置包括用于要检索对象的所保持的当前位置,并且第二偏移绕过由物理层写入的当前位置处的物理头。
10.权利要求7中的方法,其中存储在存储设备中的每个数据块均包括由物理层添加的物理头,后跟由逻辑层添加的逻辑头,其中第二偏移指向要在传输给缓冲区的物理块中检索的数据块的逻辑头。
11.权利要求7中的方法,其中传输到缓冲区的物理块包括多个对象,进一步包括:
由逻辑层请求物理层从存储设备中下一物理位置开始检索下一对象;
由物理层查看缓冲区中块的物理头,以确定所请求的下一物理位置处的下一对象是否在缓冲区中;
响应于确定所请求的下一数据块在缓冲区中,由物理层向逻辑层返回缓冲区中所请求的下一数据块的第三偏移,其中所请求的下一数据块在缓冲区中对逻辑层可用,而无需从存储设备传输数据。
12.一个系统,包括:
存储设备;
具有可由处理器访问的缓冲区的存储器;
计算机可读介质,包含用来实施逻辑层和物理层的代码,其中由处理器执行代码来实现如下操作:
(i)由逻辑层分配存储器中的一缓冲区,用来将数据写入到存储设备中,其中物理层管理对存储设备的访问;
(ii)由逻辑层基于由物理层写入的物理头的长度确定在缓冲区中的偏移;
(iii)由逻辑层从确定的偏移开始将数据写入缓冲区;
(iv)由物理层写入物理头信息,其中物理头信息不超过缓冲区中的偏移;以及由物理层将内容从缓冲区传输到存储设备。
13.权利要求12中的系统,其中操作进一步包括:
由逻辑层从物理层接收信息,表明物理头长度和存储设备的块大小,其中被分配的缓冲区的大小是存储设备的块大小,并且其中偏移基于从物理层接收的物理头长度信息。
14.权利要求12中的系统,其中物理层从缓冲区的起始处写入物理头信息。
15.权利要求12中的系统,其中由逻辑层从偏移开始写入的数据包括逻辑头和跟在后面的应用数据。
16.权利要求12中的系统,其中要写入到存储设备的数据包括对象,其中存储设备包括顺序访问设备,其中操作进一步包括:
由逻辑层从物理层请求向其写入对象的顺序访问设备中的当前位置;
由逻辑层将所请求的顺序访问设备的当前位置与将要写入的对象关联起来;
当随后从物理层请求对象时,由逻辑层使用与写入的对象相关联的当前位置。
17.权利要求12中的方法,其中存储设备能够包括硬盘驱动器和顺序访问设备,其中如果存储设备包括顺序访问设备,则物理层写入物理头信息,如果存储设备包括随机访问设备,则物理层不向缓冲区写入物理头信息。
18.一个系统,包括:
存储设备;
具有可由处理器访问的缓冲区的存储器;
计算机可读介质,包含用来实施逻辑层和物理层的代码,其中由处理器执行代码来实现如下操作:
(i)由逻辑层请求物理层从存储设备中一物理位置开始的第一偏移处检索数据块,其中第一偏移可包括0或多个字节;
(ii)由物理层确定包括从物理位置开始的所请求的第一偏移的物理块;
(iii)由物理层确定在确定的物理块中的第二偏移,其指向在从物理位置开始的第一偏移处的数据块的起始处;
(iv)由物理层将物理块传输到物理层和逻辑层均可访问的缓冲区;
(v)由物理层将第二偏移提供给逻辑层;以及
(vi)由逻辑层使用第二偏移在缓冲区中从第二偏移访问数据块。
19.权利要求18中的系统,其中每个物理块包括一物理头,其中操作进一步包括:
响应于确定缓冲区中不包括所有要检索的数据块,由逻辑层请求下一物理块;
由物理层确定下一物理块和在物理块中的下一偏移,其中下一偏移跟在下一物理块中的物理头之后;
由物理层将下一物理块传输到物理层和逻辑层均可访问的下一缓冲区;
由物理层将下一偏移提供给逻辑层;以及
由逻辑层使用所述下一偏移,在下一缓冲区中从下一偏移开始访问所请求数据块的剩余部分。
20.权利要求18中的系统,其中存储设备包括磁带设备,其中操作进一步包括:
由逻辑层为每个写入到磁带设备的对象保持在磁带设备中的当前位置,其中所请求的物理位置包括用于要检索对象的所保持的当前位置,并且第二偏移绕过由物理层写入的当前位置处的物理头。
21.权利要求18中的系统,其中存储在存储设备中的每个数据块均包括由物理层添加的物理头,后跟由逻辑层添加的逻辑头,其中第二偏移指向要在传输给缓冲区的物理块中检索的数据块的逻辑头。
22.权利要求18中的系统,其中传输到缓冲区的物理块包括多个对象,其中操作进一步包括:
由逻辑层请求物理层从存储设备中下一物理位置开始检索下一对象;
由物理层查看缓冲区中块的物理头,以确定所请求的下一物理位置处的下一对象是否在缓冲区中;
响应于确定所请求的下一数据块在缓冲区中,由物理层向逻辑层返回缓冲区中所请求的下一数据块的第三偏移,其中所请求的下一数据块在缓冲区中对逻辑层可用,而无需从存储设备传输数据。
23.制造产品,包括用来实现逻辑层和物理层以便与存储设备通信的代码,其中所述代码能够使得执行如下操作:
由逻辑层分配一缓冲区,用来将数据写入到存储设备中,其中物理层管理对存储设备的访问;
由逻辑层基于由物理层写入的物理头的长度确定在缓冲区中的偏移;
由逻辑层从确定的偏移开始将数据写入缓冲区;
由物理层写入物理头信息,其中物理头信息不超过缓冲区中的偏移;以及
由物理层将内容从缓冲区传输到存储设备。
24.权利要求23中的制造产品,由逻辑层从物理层接收信息,表明物理头长度和存储设备的块大小,其中被分配的缓冲区的大小是存储设备的块大小,并且其中偏移基于从物理层接收的物理头长度信息。
25.权利要求23中的制造产品,其中物理层从缓冲区的起始处写入物理头信息。
26.权利要求23中的制造产品,其中由逻辑层从偏移开始写入的数据包括逻辑头和跟在后面的应用数据。
27.权利要求23中的制造产品,其中要写入到存储设备的数据包括对象,其中存储设备包括顺序访问设备,进一步包括:
由逻辑层从物理层请求向其写入对象的顺序访问设备中的当前位置;
由逻辑层将所请求的顺序访问设备的当前位置与将要写入的对象关联起来;
当随后从物理层请求对象时,由逻辑层使用与写入的对象相关联的当前位置。
28.权利要求23中的制造产品,其中存储设备能够包括硬盘驱动器和顺序访问设备,其中如果存储设备包括顺序访问设备,则物理层写入物理头信息,如果存储设备包括随机访问设备,则物理层不向缓冲区写入物理头信息。
29.制造产品,包括用来实现逻辑层和物理层以便与存储设备通信的代码,其中所述代码能够使得执行如下操作:
由逻辑层请求物理层从存储设备中一物理位置开始的第一偏移处检索数据块,其中第一偏移可包括0或多个字节;
由物理层确定包括从物理位置开始的所请求的第一偏移的物理块;
由物理层确定在确定的物理块中的第二偏移,其指向在从物理位置开始的第一偏移处的数据块的起始处;
由物理层将物理块传输到物理层和逻辑层均可访问的缓冲区;
由物理层将第二偏移提供给逻辑层;以及
由逻辑层使用第二偏移在缓冲区中从第二偏移访问数据块。
30.权利要求29中的制造产品,其中每个物理块包括一物理头,进一步包括:
响应于确定缓冲区中不包括所有要检索的数据块,由逻辑层请求下一物理块;
由物理层确定下一物理块和在物理块中的下一偏移,其中下一偏移跟在下一物理块中的物理头之后;
由物理层将下一物理块传输到物理层和逻辑层均可访问的下一缓冲区;
由物理层将下一偏移提供给逻辑层;以及
由逻辑层使用所述下一偏移,在下一缓冲区中从下一偏移开始访问所请求数据块的剩余部分。
31.权利要求29中的制造产品,其中存储设备包括磁带设备,进一步包括:
由逻辑层为每个写入到磁带设备的对象保持在磁带设备中的当前位置,其中所请求的物理位置包括用于要检索对象的所保持的当前位置,并且第二偏移绕过由物理层写入的当前位置处的物理头。
32.权利要求29中的制造产品,其中存储在存储设备中的每个数据块均包括由物理层添加的物理头,后跟由逻辑层添加的逻辑头,其中第二偏移指向要在传输给缓冲区的物理块中检索的数据块的逻辑头。
33.权利要求29中的制造产品,其中传输到缓冲区的物理块包括多个对象,其中操作进一步包括:
由逻辑层请求物理层从存储设备中下一物理位置开始检索下一对象;
由物理层查看缓冲区中块的物理头,以确定所请求的下一物理位置处的下一对象是否在缓冲区中;以及
响应于确定所请求的下一数据块在缓冲区中,由物理层向逻辑层返回缓冲区中所请求的下一数据块的第三偏移,其中所请求的下一数据块在缓冲区中对逻辑层可用,而无需从存储设备传输数据。
CNB2005100990093A 2004-12-10 2005-08-31 在逻辑层、物理层和存储设备之间传输数据 Expired - Fee Related CN100337219C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/009,897 US7512135B2 (en) 2004-12-10 2004-12-10 Method for transferring data among a logical layer, physical layer, and storage device
US11/009,897 2004-12-10

Publications (2)

Publication Number Publication Date
CN1786893A true CN1786893A (zh) 2006-06-14
CN100337219C CN100337219C (zh) 2007-09-12

Family

ID=36583736

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100990093A Expired - Fee Related CN100337219C (zh) 2004-12-10 2005-08-31 在逻辑层、物理层和存储设备之间传输数据

Country Status (2)

Country Link
US (1) US7512135B2 (zh)
CN (1) CN100337219C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103080896A (zh) * 2010-08-24 2013-05-01 国际商业机器公司 对访问重新排序以减少对磁带介质的总查找时间
CN104598161A (zh) * 2013-10-31 2015-05-06 腾讯科技(深圳)有限公司 数据读取、写入方法和装置及数据存储结构

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590777B2 (en) 2004-12-10 2009-09-15 International Business Machines Corporation Transferring data between system and storage in a shared buffer
US20060282643A1 (en) * 2005-06-10 2006-12-14 Subramanyam Chandramouli Transparent low-density mode for multi-level cell flash memory devices
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7827201B1 (en) * 2007-04-27 2010-11-02 Network Appliance, Inc. Merging containers in a multi-container system
US7739312B2 (en) * 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
DE102007021561A1 (de) * 2007-05-08 2009-01-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entwurfswerkzeug für Art und Form einer Schaltungsrealisierung
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
US9268712B2 (en) * 2011-09-30 2016-02-23 Intel Corporation Method, system and apparatus for region access control
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
JP6065695B2 (ja) * 2013-03-26 2017-01-25 富士通株式会社 ストレージ制御方法、ストレージシステム、およびストレージ制御プログラム
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
KR20180041898A (ko) * 2016-10-17 2018-04-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN114691556A (zh) * 2020-12-29 2022-07-01 马来西亚瑞天芯私人有限公司 一种提供与外部存储设备连接的通用物理层及其连接方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3068604A (en) * 1959-02-02 1962-12-18 Nyberg Sven Fish lure
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
US5265207A (en) * 1990-10-03 1993-11-23 Thinking Machines Corporation Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses
US5276878A (en) * 1992-10-07 1994-01-04 International Business Machines Corporation Method and system for task memory management in a multi-tasking data processing system
US5539914A (en) * 1993-06-14 1996-07-23 International Business Machines Corporation Method and system for preprocessing data block headers during access of data in a data storage system
US5490168A (en) * 1994-07-08 1996-02-06 Motorola, Inc. Method and system for automatic optimization of data throughput using variable packet length and code parameters
US5802278A (en) * 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
US5745685A (en) * 1995-12-29 1998-04-28 Mci Communications Corporation Protocol extension in NSPP using an acknowledgment bit
US5897661A (en) * 1997-02-25 1999-04-27 International Business Machines Corporation Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information
US6038604A (en) 1997-08-26 2000-03-14 International Business Machines Corporation Method and apparatus for efficient communications using active messages
US6044079A (en) * 1997-10-03 2000-03-28 International Business Machines Corporation Statistical packet discard
US6038606A (en) * 1997-11-25 2000-03-14 International Business Machines Corp. Method and apparatus for scheduling packet acknowledgements
JP3543649B2 (ja) * 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7107395B1 (en) * 1998-12-31 2006-09-12 Emc Corporation Apparatus and methods for operating a computer storage system
US6397308B1 (en) * 1998-12-31 2002-05-28 Emc Corporation Apparatus and method for differential backup and restoration of data in a computer storage system
US6343341B1 (en) * 1999-08-20 2002-01-29 Microsoft Corporation Efficient access to variable-length data on a sequential access storage medium
US6877127B2 (en) * 2001-07-31 2005-04-05 Hewlett-Packard Development Company, L.P. Quality control in data transfer and storage apparatus
US20040039891A1 (en) * 2001-08-31 2004-02-26 Arkivio, Inc. Optimizing storage capacity utilization based upon data storage costs
US7117324B2 (en) * 2002-10-18 2006-10-03 International Business Machines Corporation Simultaneous data backup in a computer system
US7310337B2 (en) * 2002-12-31 2007-12-18 Intel Corporation Packet header alignment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103080896A (zh) * 2010-08-24 2013-05-01 国际商业机器公司 对访问重新排序以减少对磁带介质的总查找时间
US9021175B2 (en) 2010-08-24 2015-04-28 International Business Machines Corporation Method for reordering access to reduce total seek time on tape media
CN103080896B (zh) * 2010-08-24 2016-01-13 国际商业机器公司 对访问重新排序以减少对磁带介质的总查找时间
CN104598161A (zh) * 2013-10-31 2015-05-06 腾讯科技(深圳)有限公司 数据读取、写入方法和装置及数据存储结构
CN104598161B (zh) * 2013-10-31 2018-10-30 腾讯科技(深圳)有限公司 数据读取、写入方法和装置及数据存储结构

Also Published As

Publication number Publication date
CN100337219C (zh) 2007-09-12
US20060126615A1 (en) 2006-06-15
US7512135B2 (en) 2009-03-31

Similar Documents

Publication Publication Date Title
CN100337219C (zh) 在逻辑层、物理层和存储设备之间传输数据
US6353878B1 (en) Remote control of backup media in a secondary storage subsystem through access to a primary storage subsystem
US7069465B2 (en) Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system
US8959286B2 (en) Hybrid storage subsystem with mixed placement of file contents
US7930474B2 (en) Automated on-line capacity expansion method for storage device
US6823436B2 (en) System for conserving metadata about data snapshots
KR101482285B1 (ko) 복수의 이종의 솔리드 스테이트 저장 위치들의 선택적 이용
US20110161460A1 (en) Information processing system and management device for managing relocation of data based on a change in the characteristics of the data over time
US11269846B2 (en) Efficient database journaling using non-volatile system memory
US20020002658A1 (en) Device and method for input/output control of a computer system for efficient prefetching of data based on lists of data read requests for different computers and time between access requests
US20050268062A1 (en) Hierarchical storage apparatus and control apparatus thereof
US20060085626A1 (en) Updating system configuration information
CN105843753B (zh) 用于硬盘驱动器的逻辑块地址映射
US20060129763A1 (en) Virtual cache for disk cache insertion and eviction policies and recovery from device errors
US20080104150A1 (en) Method and system for priority-based allocation in a storage pool
CN1543605A (zh) 高速缓存器元数据的存储
CN100351767C (zh) 适配器读取和写入系统存储器的方法和系统
CN103207840A (zh) 用于将不完整记录从第一缓存降级至第二缓存的系统和方法
CN113419685B (zh) 基于smr的raid创建、针对raid的数据写入及raid恢复方法
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
US20200104257A1 (en) Method of operating storage device, storage device performing the same and storage system including the same
CN100403269C (zh) 用于管理关于目标卷与源卷之间关系的信息的方法和系统
US20230315646A1 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
JP2001188658A (ja) ディスク制御システムおよびデータ再配置方法
US6732194B1 (en) Method and apparatus for multi-sequential data operations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070912

Termination date: 20200831

CF01 Termination of patent right due to non-payment of annual fee