CN116954484A - 指定数据的仅属性读取 - Google Patents
指定数据的仅属性读取 Download PDFInfo
- Publication number
- CN116954484A CN116954484A CN202210676863.5A CN202210676863A CN116954484A CN 116954484 A CN116954484 A CN 116954484A CN 202210676863 A CN202210676863 A CN 202210676863A CN 116954484 A CN116954484 A CN 116954484A
- Authority
- CN
- China
- Prior art keywords
- attributes
- read request
- data element
- specified data
- attribute
- 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
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000013500 data storage Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007906 compression Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种获得与数据相关联的属性的技术包括:提供针对指定数据元素的仅属性读取请求;访问存储与所述指定数据元素相关联的一个或多个属性的元数据结构;以及响应于所述请求而返回所述属性(或多个属性)而不是所述数据本身。
Description
技术领域
本发明涉及数据存储领域。
发明背景
数据存储***是硬件和软件的布置,其中存储处理器耦合到非易失性存储装置的阵列,诸如磁盘驱动器、电子闪存驱动器和/或光驱动器。存储处理器为来自宿主机(“主机”)的存储请求提供服务,所述存储请求指定要写入、读取、创建、删除等的块、文件和/或其他数据元素。在存储处理器上运行的软件管理传入的存储请求并执行各种数据处理任务以组织和保护非易失性存储装置上的数据元素。
在宿主机上运行的应用程序通常向由数据存储***服务的数据对象发出读取请求。例如,主机应用程序可以发出读取请求以获得包含在LUN(逻辑单元)的指定范围内的数据。读取请求可以通过逻辑单元号来标识LUN,并且可以将范围指定为到LUN的偏移量和长度。主机应用程序还可以发出读取请求以例如通过标识文件***、文件名和所指示文件内的范围获得特定文件的指定数据范围。
除了从主机接收读取请求之外,数据存储***还可以发出自己的内部读取请求。例如,存储***可以读取数据作为执行数据去重、迁移、复制、重定位或碎片整理的一部分。
发明内容
不幸的是,读取请求可能涉及显著的延迟。例如,处理读取请求通常需要指示磁盘控制器从后端存储装置(例如,一个或多个磁盘驱动器或闪存驱动器)获得所请求的数据,这可能需要大量时间。如果数据被压缩,则解压缩数据可能需要附加的延迟。有时,与要执行的操作相关的不是数据本身,而是数据的属性。但是发出习惯的读取请求并不会返回期望属性。因此,需要一种在不获得数据本身的情况下读取指定数据的属性的方式。
上述需求至少部分地通过一种改进方法来解决,所述方法包括:提供针对指定数据元素的仅属性读取请求;访问存储与所述指定数据元素相关联的一个或多个属性的元数据结构;以及响应于所述请求而返回所述属性(或多个属性)而不是所述数据本身。有利地,改进的技术获得期望操作的属性,而不会遭受通常与数据读取相关联的延迟或处理负担。由于受访问的元数据结构经常被高速缓存,因此通常可以以最小的延迟处理仅属性读取请求,而无需对后端存储装置进行许多(如果有)读取。
某些实施方案涉及一种获得与数据相关联的属性的方法。所述方法包括形成针对指定数据元素的读取请求。所述读取请求指示与所述指定数据元素相关联的属性集合的仅属性读取。响应于所述读取请求,所述方法还包括访问存储所述属性集合的元数据结构集合。所述方法仍进一步包括响应于所述读取请求而返回所述属性集合而不是所述指定数据元素本身。
其他实施方案涉及一种计算机化设备,其被构造和布置成执行获得与数据相关联的属性的方法,诸如上述方法。还有其他实施方案涉及一种计算机程序产品。所述计算机程序产品存储指令,所述指令在由计算机化设备的控制电路执行时使所述计算机化设备执行获得与数据相关联的属性的方法,诸如上述方法。
以上概述是为了说明目的而呈现的以帮助读者容易地掌握本文呈现的示例性特征;然而,本概述并非意图阐述所需元素或以任何方式限制其实施方案。应理解,上述特征可以以具有技术意义的任何方式组合,并且所有这样的组合都意图在本文中公开,而不管此类组合是否被明确标识。
附图说明
如附图中所示,从特定实施方案的以下描述得出,前述和其他特征和优点将变得显而易见,在附图中,相同的附图标记在不同的视图中指代相同或类似的部分。
图1是可以在其中实践改进技术的某些实施方案的示例性环境的框图。
图2是可以从中获得指定数据元素的属性的示例性数据路径的框图。
图3是示出仅属性读取请求的示例性格式的框图。
图4是示出获得一个或多个属性并应用此类属性来确定是否怀疑受到勒索软件攻击的示例性方法的流程图。
图5是示出获得一个或多个属性并应用此类属性来执行存储分层的示例性方法的流程图。
图6是示出获得一个或多个属性并应用此类属性来执行基于指纹的数据匹配的示例性方法的流程图。
图7是示出获得一个或多个属性并应用此类属性来标识序列数据的示例性方法的流程图。
图8是示出获得与数据相关联的属性的示例性方法的流程图。
具体实施方式
现在将描述改进技术的实施方案。应理解,此类实施方案是通过示例的方式提供以示出本公开的某些特征和原理,但不意图限制。
一种获得与数据相关联的属性的改进技术包括:提供针对指定数据元素的仅属性读取请求;访问存储与所述指定数据元素相关联的一个或多个属性的元数据结构;以及响应于所述请求而返回所述属性而不是所述数据本身。
图1示出了可以在其中实践改进技术的实施方案的示例性环境100。这里,多个主机110被配置为通过网络114访问数据存储***116。数据存储***116包括:一个或多个存储处理器120,在本文被称为“节点”(例如,节点120a和节点120b);以及存储装置190,诸如磁盘驱动器、电子闪存驱动器等。节点120可以被提供作为电路板总成或刀片,其***封闭并冷却节点的机箱(未示出)中。机箱具有用于互连节点120的背板或中间板,并且可以使用电缆在节点120之间进行附加连接。在一些示例中,节点120是存储集群的一部分,诸如包含任意数量的存储设备的存储集群,其中每个设备包括连接到共享存储装置的一对节点120。在一些布置中,主机应用程序直接在节点120上运行,使得不需要存在单独的宿主机110。然而,不需要特定的硬件配置,因为可以以任何布置提供任意数量的节点120,包括单个节点,并且一个或多个节点120可以是能够运行软件和处理主机I/O的任何一种或多种类型的计算装置。
网络114可以是任何类型的网络或网络的组合,诸如例如存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、互联网和/或某一其他类型的网络或网络组合。在其中提供主机110的情况下,此类主机110可以使用各种技术连接到节点120,所述技术诸如例如光纤通道、iSCSI(互联网小型计算机***接口)、NVMeOF(非易失性存储器快速(NVMe)通过网络结构(over Fabrics))、NFS(网络文件***)和CIFS(通用互联网文件***)。众所周知,光纤通道、iSCSI和NVMeOF是基于块的协议,而NFS和CIFS是基于文件的协议。节点120可以各自被配置为根据基于块和/或基于文件的协议接收I/O请求112,并通过读取或写入存储190来响应此类I/O请求112。
对节点120a的描绘意图表示所有节点120。如图所示,节点120a包括一个或多个通信接口122、处理单元124的集合以及存储器130。通信接口122包括例如SCSI目标适配器和/或网络接口适配器以用于将通过网络114接收的电子和/或光学信号转换成电子形式以供节点120a使用。处理单元124的集合包括一个或多个处理芯片和/或总成,诸如多个多核CPU(中央处理单元)。存储器130包括易失性存储器,例如RAM(随机存取存储器),以及非易失性存储器,诸如一个或多个ROM(只读存储器)、磁盘驱动器、固态驱动器等。处理单元124的集合以及存储器130一起形成控制电路,所述控制电路被构造和布置成执行如本文所述的各种方法和功能。而且,存储器130包括以可执行指令的形式实现的多种软件结构。当可执行指令由处理单元124的集合运行时,处理单元124的集合用于执行软件结构的操作。尽管具体地示出和描述了某些软件结构,但是应理解,存储器130通常包括未示出的许多其他软件组件,诸如操作***、各种应用程序、进程和守护程序。
如图1进一步所示,存储器130“包括”(即,通过执行软件指令来实现)高速缓存140和许多设施,诸如去重设施150、压缩设施152、存储分层设施154以及勒索软件保护设施156。这些设施在各种实施方案中可能是有用的,但不应被认为是必需的。存储器130可以进一步实现数据路径160和任意数量的数据对象,诸如数据对象180。数据对象180可以是任何类型的对象,诸如LUN(逻辑单元)、文件***、虚拟机磁盘等。
数据对象180可以由块组成,其中“块”是可分配存储空间的单位。块的大小通常是统一的,例如,典型的块大小为4kB(千字节)、8kB或16kB。然而,不需要特定的块大小,并且实施方案可以支持非统一的块大小。数据存储***116被配置为例如通过指定要创建、读取、更新或删除的数据对象180的块来访问数据对象180。
高速缓存140被配置为从主机110接收传入的写入请求112w的数据并将数据布置到例如可以具有块大小的页面142中。高速缓存140还可以存储数据对象的最近读取的数据,例如响应于针对指定数据的读取请求而从存储器190获得的块。高速缓存140可以进一步存储各种元数据结构144,诸如作为最近访问以读取或写入数据的数据路径160的一部分的那些元数据结构。
去重设施150被配置为执行去重,即,冗余块被替换为指向这些块的较少数量的保留副本的指针的过程。可以以内联或近内联方式执行去重,其中例如使用基于指纹的匹配将高速缓存140中的页142与数据存储***116中的现有块集合进行比较,并且在被写入到持久数据对象结构之前避免重复副本。在一些示例中,也可以在后台执行去重,即,与传入写入的初始处理一起在带外执行。去重有时缩写为“dedupe”,对数据对象的数据执行去重的能力可以被描述为所述数据对象的“去重能力”。在一个示例中,元数据可以用于例如经由去重标记来跟踪特定块是重复的还是原始的。
压缩设施152被配置为执行数据压缩。与去重一样,压缩可以内联或近内联地执行,高速缓存140中的页142在被写入到持久数据对象结构之前被压缩。在一个示例中,数据对象的元数据跟踪块的压缩大小。一些块比其他块更容易压缩。通常,在尝试去重之后,按块执行压缩。
存储分层设施154被配置为执行存储分层,即,将数据放置到存储装置190内的存储层中。存储“层”是指提供相应性能级别的相应存储类别。例如,数据存储***116可以支持提供例如“最高”、“高”和“中等”性能级别的多个存储层,每个层包括能够满足相应级别的性能要求的存储驱动器(例如,磁盘驱动器或固态驱动器)。在一些实施方式中,数据存储***116跟踪数据的访问模式并且随着访问模式的改变而将数据从一层移动到另一层。例如,先前被标识为“冷”的数据单元(意味着它被不频繁地访问以进行读取和/或写入)在其访问频率增加时可以从中层提升到高层。同样,先前标识为“热”的数据单元在其访问频率降低时可以从最高层移动到高层。
勒索软件设施156被配置为例如基于由数据存储***116接收的块中的模式来检测可疑的勒索软件攻击,并防止此类攻击。勒索软件检测和保护的示例可以在2022年4月6日提交的共同未决的美国专利申请号17/714,689中找到,本专利申请的内容和教导通过引用整体并入本文。
数据路径160被配置为提供用于访问数据对象(诸如数据对象180)的元数据。如下文更详细描述的,数据路径160可以包括各种逻辑块、映射指针和块虚拟化结构,其中一些可以跟踪块的各种属性170。此类属性170可以用于使用本文所述的仅属性读取请求来读取。
在示例性操作中,主机110向数据存储***116发出I/O请求112。节点120a在通信接口122处接收I/O请求112并发起进一步处理。这种处理可以涉及读取和/或写入数据对象,诸如数据对象180。在写入数据对象和/或执行其他活动的过程中,节点120a可以生成和存储与数据相关联的属性170,诸如与各个数据块相关联的属性。
例如,节点120a可以在写请求112w中接收新数据块并尝试对新块进行去重。为此,去重设施150可以计算表示新块的指纹(诸如哈希值)并且可以尝试将所述指纹与为先前处理的其他块计算的指纹匹配。如果找到匹配,则可以避免新块的冗余存储。当这种处理发生时,节点120a可以存储“指纹”属性,所述属性在与新块相关联的元数据中提供计算的指纹。节点120a还可以存储“去重标志”属性(例如,布尔值)以指示新块是否被成功地去重。如果不能对新块进行去重(例如,没有找到匹配的指纹),则可以改为压缩新块。例如,压缩设施152压缩新块。节点120a然后将压缩块放置在存储装置190中。节点120a可以在数据路径160中布置映射指针以指向新块并且可以在元数据中存储“压缩大小”属性。例如,压缩大小属性以字节或扇区(512字节为单位)提供压缩块的大小。当将新块放置在存储装置190中时,存储分层设施154可以将新块分配给特定的存储层。节点120a还可以将“分层级别”属性写入与新块相关联的元数据。分层级别可以被表达为明确表示分配的存储层的值(例如,最高、高或中等)和/或以某种其他形式(诸如通过使用数据温度(例如,热、暖或冷))表达。
一些属性170(诸如指纹属性)可以随时间保持不变,而其他属性170可能会改变。例如,如果新块的数据温度改变和/或如果新块移动到不同的存储层,分层级属性可能会改变。同样,如果稍后执行的去重程序(诸如后台程序)设法对新块进行去重,则去重标志属性可能会改变。
根据其改进,仅属性读取请求可以获得与指定数据相关联的属性170,而无需检索或返回指定数据本身。例如,数据路径160可以接收仅属性读取请求112ao。请求112ao是针对指定数据元素,诸如特定块或块集合。响应于接收到请求112ao,数据路径160可以访问与指定数据元素相关联的一个或多个元数据结构,从元数据结构获得一个或多个属性170,并在响应112a中返回属性170。然而,数据路径160不检索指定数据元素。因此,响应112a包括指定数据元素的一个或多个属性170,而不是指定数据元素本身。
仅属性读取请求112ao可以在某些背景中提供有用且有效的选项。例如,勒索软件检测设施156可以发出针对最近写入的块的仅属性读取请求112ao,以访问与检测勒索软件攻击相关的属性170。例如,此类属性可以包括压缩大小和去重标志。重要的是,可以快速读取属性170,而不会遭受通常与读取请求相关联的延迟,这将涉及从后端存储装置中检索数据并且可以包括对数据进行解压缩。而且,存储属性170的元数据可能经常在高速缓存140中找到,使得通常可以仅通过从高速缓存140读取来实现仅属性读取请求112ao,这比从后端存储装置190读取要快得多。
作为另一个示例,例如出于块匹配目的,去重设施150可以发出仅属性读取请求112ao以快速且有效地获得块的指纹。作为又一示例,存储分层设施154可以发出仅属性读取请求112ao以获得指定块的分层级别。作为又一示例,文件***(未示出)可以向指定文件的块发出仅属性读取请求,以例如通过检查文件块的压缩大小属性来确定例如通过删除文件可以回收多少存储空间。设想了许多其他用例。
图2更详细地示出了图1的示例性数据路径160。如图所示,数据路径160以诸如指针等映射结构的形式提供元数据的布置,可以遍历所述映射结构来定位数据存储***116的数据。如本文所述,数据路径160的映射结构还执行存储属性170的角色,所述属性可以使用仅属性读取请求112ao来访问。
如图所示,数据路径160包括命名空间210、映射结构(“映射器”)220和物理块层230。命名空间210被配置为组织逻辑数据,诸如LUN、文件***、虚拟机磁盘、快照、克隆等的逻辑数据。在一个示例中,命名空间210提供大的逻辑地址空间并以逻辑块212命名。
映射器220被配置为将命名空间210中的逻辑块212映射到物理块层230中的对应物理块232。物理块232通常被压缩并且因此可能具有非均匀大小。映射器320可以包括以树状布置的多级映射结构,诸如指针。这些级别包括顶层222、中层224和叶226,它们一起能够映射大量数据。映射器220还可以包括用于在叶226与物理块232之间提供间接性的虚拟层228,即,块虚拟化结构,因此使得物理块232能够在不干扰叶226的情况下移动。顶层222、中层224、叶226和虚拟层228描绘了各个指针结构。此类指针结构可以在数组(未示出)中组合在一起,它们本身可以存储在块中。
通常,命名空间210中的逻辑块212经由映射器220中的映射结构指向物理块层230中的相应物理块232。例如,命名空间210中的逻辑块212a可以经由路径216指向特定顶层222a,所述顶层指向特定中层224a,所述中层指向特定叶226a。叶226a然后指向特定虚拟层228a,所述虚拟层指向特定物理块232a。通过这种布置,叶228表示命名空间210中的对应逻辑块212,例如,每个分配的叶指针226与相应逻辑地址214处的相应逻辑块212一一对应。然而,由于块共享,叶226与虚拟层228之间的关系不一定是一对一的。例如,多个叶指针226可以指向同一个虚拟层(参见虚拟层228a)。
如图2右侧所示,叶指针结构226可以存储各种属性170。例如,叶指针226可以存储分层级别的属性170a。该分层级别170a可以特定于叶所对应的逻辑块(例如,逻辑块212a)并且因此可以独立于其他逻辑块的分层级别,包括映射到同一物理块232a的那些逻辑块。叶指针226还包括指向虚拟层228(诸如虚拟层228a)的指针250。
虚拟指针结构228还可以存储各种属性170。例如,虚拟层228可以存储其自身用于分层的属性170b。与特定于特定逻辑块212的属性170a不同,属性170b可以为共享同一物理块232的所有逻辑块所共有。虚拟层228还可以存储指纹170c,例如,在压缩之前根据物理块232a计算的哈希值。虚拟层228可以进一步存储压缩大小(例如,压缩块232a的大小)的属性170d,以及去重标记170e的属性,其指示相关联的物理块(例如,232a)是否被去重复。如图所示,虚拟层228包括指向物理块232(诸如物理块232a)的指针260。虚拟层228还可以包括虚拟地址262,即,虚拟层228在虚拟地址空间(组织虚拟层228的空间)内的地址。
特定属性170a至170e是有用的示例,但是它们不意图进行限制。例如,可以提供附加属性170,并且可以用不同的属性替换所指示的属性。
在一些示例中,属性170在处理用于写入的数据块时或在其他合适的时间被放置在映射结构中。然后可以经由仅属性读取请求来获得属性170。例如,仅属性读取请求112ao可以针对逻辑块212a,所述逻辑块可以由逻辑地址214标识。逻辑地址214可以简单地被表达为表示一个或多个逻辑块212的数字或数字范围。
一旦已经标识出逻辑地址214,仅属性读取请求112ao就可以跟随指针通过相关联的映射结构朝向(但不接触)物理数据,例如,物理块232a。例如,读取请求112ao从逻辑块212a行进到顶层222a,然后到中层224a,然后到叶226a。如果在叶226a中找到期望的一个或多个属性,则读取请求112ao可以不再继续读取那些属性并将它们返回给请求者。否则,读取请求112ao可以继续到指向的虚拟层228a,在那里它可以检索期望的属性或附加的期望属性,并将所有获得的属性返回给请求者,不再沿着数据路径160继续下去。
图3示出了仅属性读取请求112ao的示例性格式。示例性格式包括以下字段:
·逻辑地址字段310。指定要读取其一个或多个属性的数据元素的逻辑地址。可以如上所述或者以明确标识指定数据元素的任何其他方式提供提供逻辑地址。
·大小320。指定数据元素的长度。例如,可以被表达为多个块。
·操作码330。标识读取请求的类型(在这种情况下,是仅属性读取请求)的代码,诸如数字值。可以为不同类型的读取请求提供不同的操作码,诸如正常读取(例如,用户数据的主机读取)、复制读取(用于执行复制)或仅属性读取。
·属性参数340。要为指定数据元素或多个数据元素返回的属性列表170。可以为可供读取的每个属性170提供参数340。参数340可以被表达为例如其中不同位位置对应于相应属性的数字字。例如,位位置中的“真”值可以指示应返回分配给所述位位置的属性,而“假”值可以指示不应返回所述属性。参数340可以应用于各个块的属性,如针对属性170a至170e所述。参数340也可以应用于块组。例如,“序列性”参数可以适用于多个块。
图3中所示的格式意图说明性而非限制性的。例如,可以提供附加的或不同的字段,并且可以省略某些字段。另外,可以以任何合适的方式来对各个字段进行结构化。
在一个示例中,仅属性读取请求112ao通过在计算机指令中指定所指示的字段来形成。上述格式可以由API(应用程序编程接口)(诸如为数据I/O提供的API)定义。在一个示例中,格式定义一个或多个返回值。在一个示例中,使用上述格式形成的指令可以返回数据结构或多个数据结构,其提供为指定数据元素检索的请求属性170。如果指定多个块(例如,大小>1),则可以返回单独的数据结构或单个数据结构的单独部分以提供相应块的属性。
图4至图8示出了可以结合环境100执行的示例性方法400、500、600、700和800。方法400、500、600、700和800通常例如通过结合图1描述的软件结构来执行,所述软件结构驻留在节点120a的存储器130中并由处理单元124的集合运行。可以以任何合适的方式对所描绘的方法的各种动作进行排序。因此,可以构造以与所示顺序不同的顺序执行动作的实施方案,这可以包括同时执行一些动作。
图4示出了获得一个或多个属性170并应用此类属性来确定是否怀疑受到勒索软件攻击的示例性方法400。例如,在410处,勒索软件保护设施152向指定数据元素(诸如在特定逻辑地址处的块)发出仅属性读取请求112ao。例如,请求112ao可以指定压缩大小(170d)和去重标志(170e)的参数340。读取请求112ao然后通过数据路径160跟踪从由请求指定的逻辑块212到相关联的顶层222、中层224、叶226和虚拟层228的路径。在420处,读取请求112ao从虚拟层228获得属性170d和170e并将它们返回给请求者,即,勒索软件保护设施152,其接收属性170d和170e并将它们应用为用于确定是否怀疑受到勒索软件攻击的过程的一部分。
图5示出获得一个或多个属性170并应用此类属性来执行存储分层的示例性方法500。例如,在510处,存储分层设施154向指定数据元素发出仅属性读取请求112ao,标识任何期望参数,诸如按逻辑分层级别170a或按虚拟分层级别170b。读取请求112ao然后通过数据路径160跟踪从由请求指定的逻辑块212到相关联的叶226或虚拟层228的路径216,获得属性170a或170b,并将属性返回给存储分层设施154。在520处,存储分层设施154应用属性来执行存储分层。例如,存储分层设施154可以聚合为多个块获得的分层级别,并确定块是否应当一起移动到不同的存储层。
图6示出获得一个或多个属性170并应用此类属性来执行基于指纹的数据匹配的示例性方法600。例如,在610处,去重设施150向指定数据元素发出仅属性读取请求112ao,标识任何期望参数340,诸如指纹170c。读取请求112ao然后通过数据路径160跟踪从由请求指定的逻辑块212到相关联的虚拟层228的路径,获得属性170c,并将属性170c返回给去重设施150。在620处,去重设施150应用属性170c来执行块匹配。例如,去重设施150可以将指纹170c与根据某个其他数据块计算的指纹进行比较。这两个指纹之间的匹配指示数据块之间的匹配,并且去重设施150可以使用这种匹配来去除重复块。应理解,基于指纹的块匹配可以由除去重设施150之外的其他组件来执行,并且涉及指纹的实施方案不限于去重。
图7示出了获得一个或多个属性并应用此类属性来标识序列数据的示例性方法700。在710处,在节点120a上运行的软件组件向诸如逻辑块等指定数据元素发出仅属性读取请求112ao,标识参数340,诸如用于指示序列模式的参数。在720处,读取请求112ao确定指定数据元素是否是序列模式的一部分。例如,读取请求112ao从命名空间210中的指定逻辑块向前和/或向后查找以标识逻辑块的连续范围,通过到相应虚拟层228的数据路径160跟踪逻辑块,并(例如,基于虚拟地址262)确定虚拟层228本身是否是连续的。在730处,如果虚拟层228中的一者或多者与指定数据元素的虚拟层邻接,则读取请求112ao可以返回指示序列模式的值;否则,读取请求112ao可以返回指示没有序列模式的值。作为返回指示是否找到序列模式的值的替代或补充,读取请求112ao可以返回检测到的序列模式的长度,例如,序列块的数量。
在一些示例中,仅属性读取请求112ao可以指定逻辑块的范围,而不是单个块,并且节点120a可以返回指示逻辑块的范围是否形成序列模式(例如,所述范围的逻辑块是否映射到序列虚拟地址262处的虚拟层)的值。返回的信息还可以指示部分序列模式。例如,如果逻辑块的指定范围包括16个块但只有前8个块映射到序列虚拟层,则读取请求112ao可以在其响应中指示序列范围。
图8示出了获得与数据相关联的属性的示例性方法800并且提供对上述一些特征的概要。在810处,形成读取请求112ao。例如,在节点120a上运行的软件组件使用诸如图3中所示的格式来创建读取请求112ao。读取请求112ao针对指定数据元素并且例如通过提供参数340指示与指定数据元素相关联的属性集合170的仅属性读取。例如,指定数据元素可以是逻辑块212或多个逻辑块212。
在820处,响应于读取请求112ao,访问存储属性170的集合的元数据结构集合。例如,读取请求112ao跟踪从指定数据元素到相关联的叶226和/或虚拟层228的路径216。然后读取请求112ao从相关联的叶226和/或虚拟层228访问指定数据的一个或多个属性170。
在830处,响应于读取请求112ao而返回属性集合而不是指定数据元素本身。例如,从叶226和/或虚拟层228获得的属性以一个或多个数据结构返回给读取请求112ao的请求者。然而,不返回一个或多个物理块232的数据。
已经描述了一种用于获得与数据相关联的属性170的改进技术。所述技术包括:提供针对指定数据元素的仅属性读取请求112ao;访问存储与指定数据元素相关联的一个或多个属性170的元数据结构226和/或228;以及响应于请求112ao而返回属性(或多个属性)而不是数据本身。
在已经描述了某些实施方案后,可以做出许多替代实施方案或变体。例如,已经描述了其中读取请求返回属性170而不是数据的实施方案。然而,也可以构造其中读取请求返回属性和数据两者的实施方案。此类实施方案可以与上述实施方案类似地布置,不同的是,除了访问和返回属性170之外,它们还访问和返回一个或多个相关联的物理块232,这可以包括对此类块进行解压缩。
而且,已经描述了其中从叶226和/或虚拟层228访问属性170的实施方案。然而,这仅仅是示例,因为一些实施方案可以从中层224、顶层222或其他元数据结构获得属性。
而且,尽管已经描述了其中仅属性读取请求源自在数据存储***内操作的组件的实施方案,但是这仅是示例,因为仅属性读取请求112ao也可以源自主机110。
此外,尽管已经描述了涉及一个或多个数据存储***的实施方案,但是其他实施方案可以涉及计算机,包括通常不被视为数据存储***的那些计算机。此类计算机可以包括服务器,诸如在数据中心和企业中使用的服务器,以及通用计算机、个人计算机和许多装置,诸如智能电话、平板计算机、个人数据助理等。
此外,尽管特征已经参考其特定实施方案进行了示出和描述,但是此类特征可以被包括在内并且因此被包括在任何公开的实施方案及其变体中。因此,应理解,结合任何实施方案公开的特征包括在任何其他实施方案中。
更进一步地,改进或其部分可以被体现为包括一个或多个非暂时性计算机可读存储介质的计算机程序产品,所述非暂时性计算机可读存储介质诸如磁盘、磁带、光盘、DVD、光盘、闪存驱动器、固态驱动器、SD(安全数字)芯片或装置、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等(在图8中以示例方式示出为介质850)。可以使用任意数量的计算机可读介质。介质可以用指令编码,所述指令在一个或多个计算机或其他处理器上执行时执行本文描述的一个或多个过程。这样的介质可以被认为是制品或机器,并且可以从一个机器运输到另一个机器。
本文档通篇使用的词语“包括(comprising/including)”、“包含”和“具有”意图以开放式的方式阐述某些项目、步骤、元素或某物的各方面。而且,如本文所使用并且除非有相反的具体陈述,否则词语“集合”是指某物中的一者或多者。无论短语“……的集合”后面是单数还是复数对象并且不管它是与单数动词还是复数动词连用,情况都是如此。而且,元素“集合”可以描述少于所有存在的元素。因此,可能存在不属于所述集合的相同类型的附加元素。此外,诸如“第一”、“第二”、“第三”等序数表达可以用作本文的形容词以用于标识目的。除非特别指示,否则这些序数表达并不意图暗示任何排序或顺序。因此,例如,“第二”事件可能发生在“第一事件”之前或之后,或者即使没有第一事件发生,仍会发生第二事件。另外,本文对特定元素、特征或行为作为“第一”这样的元素、特征或行为的标识不应被解释为要求还必须存在“第二”或其他这样的元素、特征或行为。相反,“第一”项目可能是唯一的。而且,除非有明确相反的陈述,否则“基于”意图是非排他性的。因此,除非另有明确指示,否则“基于”应被解释为意指“至少部分地基于”。尽管本文公开了某些实施方案,但是应理解,这些仅以示例的方式提供并且不应被解释为限制性的。
因此,本领域技术人员将理解,在不脱离所附权利要求的范围的情况下,可以对本文公开的实施方案进行形式和细节上的各种改变。
Claims (20)
1.一种获得与数据相关联的属性的方法,其包括:
形成针对指定数据元素的读取请求,所述读取请求指示与所述指定数据元素相关联的属性集合的仅属性读取;
响应于所述读取请求而访问存储所述属性集合的元数据结构集合;以及
响应于所述读取请求而返回所述属性集合而不是所述指定数据元素本身。
2.根据权利要求1所述的方法,其中形成所述读取请求包括至少部分地基于所述指定数据元素的逻辑地址来指定所述数据元素。
3.根据权利要求2所述的方法,其中访问所述元数据结构集合包括访问与所述逻辑地址相关联的逻辑地址数据之间的路径中的映射结构。
4.根据权利要求3所述的方法,其中所述映射结构包括块虚拟化结构,所述块虚拟化结构设置在叶指针结构与和所述逻辑地址相关联的所述数据之间的路径中。
5.根据权利要求3所述的方法,其中所述映射结构包括叶指针结构,所述叶指针结构设置在通向与所述逻辑地址相关联的所述数据的路径中。
6.根据权利要求3所述的方法,其还包括
访问逻辑地址与所述指定数据元素的所述逻辑地址相邻的多个数据元素的元数据结构;以及
确定所述指定数据元素是否是按顺序写入到数据存储***的数据元素的序列模式的一部分,
其中返回所述属性集合包括提供指示所述指定数据元素是否是序列模式的一部分的属性。
7.根据权利要求6所述的方法,其中返回所述属性集合包括提供所述序列模式的长度。
8.根据权利要求3所述的方法,其中所述指定数据元素存储在第一数据存储***中,其中所述属性集合包括存储分层属性,所述存储分层属性指示所述指定数据元素在所述第一数据存储***中的分层级别,并且其中所述方法还包括将所述指定数据元素复制到存储层中的第二数据存储***,所述存储层提供由所述分层属性指示的所述分层级别。
9.根据权利要求8所述的方法,其中访问所述元数据结构集合包括从所述元数据路径中的叶指针结构获得所述分层属性。
10.根据权利要求8所述的方法,其中访问所述元数据结构集合包括从所述元数据路径中的块虚拟化结构获得所述分层属性。
11.根据权利要求1所述的方法,其中形成所述读取请求包括指定将所述读取请求标识为仅属性读取请求的操作码,并且其中响应于所述操作码而执行返回所述属性集合而不是所述指定数据元素。
12.根据权利要求1所述的方法,其中形成所述读取请求包括指定参数集合,所述参数集合单独地标识要响应于所述读取请求而返回的属性,并且其中所述方法还包括从所述元数据结构集合获得所述单独标识的属性。
13.根据权利要求1所述的方法,其中所述属性集合包括以下至少一者:(i)对所述指定数据元素的压缩大小的指示;以及(ii)对所述指定数据元素是否已经被去重的指示。
14.根据权利要求1所述的方法,其还包括应用所述属性集合中的一者或多者来确定是否怀疑受到勒索软件攻击。
15.根据权利要求1所述的方法,其中所述属性集合包括根据所述指定数据元素计算的指纹,并且其中所述方法还包括将来自所述指定数据元素的所述指纹与根据另一个数据元素计算的指纹进行比较以确定所述指定数据元素是否与所述另一数据元素匹配。
16.根据权利要求1所述的方法,其中访问存储所述属性集合的所述元数据结构集合包括从高速缓存获得所述元数据结构集合。
17.一种计算机化设备,其包括控制电路,所述控制电路包括耦合到存储器的处理单元集合,所述控制电路被构造和布置成:
形成针对指定数据元素的读取请求,所述读取请求指示与所述指定数据元素相关联的属性集合的仅属性读取;
响应于所述读取请求而访问存储所述属性集合的元数据结构集合;以及
响应于所述读取请求而返回所述属性集合而不是所述指定数据元素本身。
18.一种计算机程序产品,其包括具有指令的非暂时性计算机可读介质集合,所述指令在由计算机化设备的控制电路执行时使所述计算机化设备执行获得与数据相关联的属性的方法,所述方法包括:
形成针对指定数据元素的读取请求,所述读取请求指示与所述指定数据元素相关联的属性集合的仅属性读取;
响应于所述读取请求而访问存储所述属性集合的元数据结构集合;以及
响应于所述读取请求而返回所述属性集合而不是所述指定数据元素本身。
19.根据权利要求18所述的计算机程序产品,其中访问所述元数据结构集合包括访问与所述逻辑地址相关联的逻辑地址数据之间的路径中的映射结构。
20.根据权利要求18所述的计算机程序产品,其中形成所述读取请求包括指定参数集合,所述参数集合单独地标识要响应于所述读取请求而返回的属性,并且其中所述方法还包括从所述元数据结构集合获得所述单独标识的属性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/723,533 | 2022-04-19 | ||
US17/723,533 US20230333771A1 (en) | 2022-04-19 | 2022-04-19 | Attribute-only reading of specified data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116954484A true CN116954484A (zh) | 2023-10-27 |
Family
ID=81851123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210676863.5A Pending CN116954484A (zh) | 2022-04-19 | 2022-06-14 | 指定数据的仅属性读取 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230333771A1 (zh) |
EP (1) | EP4266165A1 (zh) |
CN (1) | CN116954484A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023173753A (ja) * | 2022-05-26 | 2023-12-07 | 株式会社日立製作所 | 情報管理装置、情報管理方法およびプログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890014A (en) * | 1996-08-05 | 1999-03-30 | Micronet Technology, Inc. | System for transparently identifying and matching an input/output profile to optimal input/output device parameters |
JP4181193B2 (ja) * | 2006-08-01 | 2008-11-12 | 株式会社東芝 | 時系列パターン検出装置及び方法 |
US9772787B2 (en) * | 2014-03-31 | 2017-09-26 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
US10585654B2 (en) * | 2015-12-04 | 2020-03-10 | Vmware, Inc. | Deployment of processing components of computing infrastructure using annotated command objects |
US10108547B2 (en) * | 2016-01-06 | 2018-10-23 | Netapp, Inc. | High performance and memory efficient metadata caching |
US9798496B2 (en) * | 2016-01-13 | 2017-10-24 | Netapp, Inc. | Methods and systems for efficiently storing data |
US20190370225A1 (en) * | 2017-08-16 | 2019-12-05 | Mapr Technologies, Inc. | Tiered storage in a distributed file system |
US11762566B2 (en) * | 2018-01-22 | 2023-09-19 | Arm Limited | Programmable mapping of guard tag storage locations |
US10769278B2 (en) * | 2018-03-30 | 2020-09-08 | Microsoft Technology Licensing, Llc | Service identification of ransomware impact at account level |
US10997127B2 (en) * | 2018-07-18 | 2021-05-04 | International Business Machines Corporation | Preventing inefficient recalls in a hierarchical storage management (HSM) system |
US10719252B2 (en) * | 2018-08-03 | 2020-07-21 | EMC IP Holding Company LLC | Managing deduplication characteristics in a storage system |
US11199990B2 (en) * | 2018-11-02 | 2021-12-14 | EMC IP Holding Company LLC | Data reduction reporting in storage systems |
US11010059B2 (en) * | 2019-07-30 | 2021-05-18 | EMC IP Holding Company LLC | Techniques for obtaining metadata and user data |
US11467906B2 (en) * | 2019-08-02 | 2022-10-11 | EMC IP Holding Company LLC | Storage system resource rebuild based on input-output operation indicator |
US11119914B2 (en) * | 2019-11-15 | 2021-09-14 | Micron Technology, Inc. | Method of operating a memory with dynamically changeable attributes |
-
2022
- 2022-04-19 US US17/723,533 patent/US20230333771A1/en active Pending
- 2022-05-27 EP EP22175866.7A patent/EP4266165A1/en active Pending
- 2022-06-14 CN CN202210676863.5A patent/CN116954484A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230333771A1 (en) | 2023-10-19 |
EP4266165A1 (en) | 2023-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190018605A1 (en) | Use of predefined block pointers to reduce duplicate storage of certain data in a storage subsystem of a storage server | |
US10402096B2 (en) | Unaligned IO cache for inline compression optimization | |
US8423733B1 (en) | Single-copy implicit sharing among clones | |
US9612768B2 (en) | Methods and systems for storing data at different storage tiers of a storage system | |
US9720928B2 (en) | Removing overlapping ranges from a flat sorted data structure | |
US10268381B1 (en) | Tagging write requests to avoid data-log bypass and promote inline deduplication during copies | |
US10372687B1 (en) | Speeding de-duplication using a temporal digest cache | |
US9846718B1 (en) | Deduplicating sets of data blocks | |
US10614038B1 (en) | Inline deduplication of compressed data | |
US9933945B1 (en) | Efficiently shrinking a dynamically-sized volume | |
US10824359B2 (en) | Optimizing inline deduplication during copies | |
US11216199B2 (en) | Applying deduplication digests to avoid same-data writes | |
US11960458B2 (en) | Deduplicating data at sub-block granularity | |
US9256603B1 (en) | File system over fully provisioned volume file in direct mode | |
US9965195B2 (en) | Methods and systems for efficiently storing data at a plurality of storage tiers using a transfer data structure | |
US20230333771A1 (en) | Attribute-only reading of specified data | |
US11016884B2 (en) | Virtual block redirection clean-up | |
US9329803B1 (en) | File system over thinly provisioned volume file in mapped mode | |
US10140307B1 (en) | Efficiently managing reference weights for write splits | |
US9792043B2 (en) | Methods and systems for efficiently storing data | |
US10614036B1 (en) | Techniques for de-duplicating data storage systems using a segmented index | |
US10970259B1 (en) | Selective application of block virtualization structures in a file system | |
US11144533B1 (en) | Inline deduplication using log based storage | |
US11074232B1 (en) | Managing deduplication of data in storage systems | |
US10089032B1 (en) | Controlling write sizes to reduce flash wear |
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 |