CN110447017A - 数据存储装备监视器中基于规则的修改 - Google Patents

数据存储装备监视器中基于规则的修改 Download PDF

Info

Publication number
CN110447017A
CN110447017A CN201880019373.XA CN201880019373A CN110447017A CN 110447017 A CN110447017 A CN 110447017A CN 201880019373 A CN201880019373 A CN 201880019373A CN 110447017 A CN110447017 A CN 110447017A
Authority
CN
China
Prior art keywords
data
cloud
storage
event
equipment
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
CN201880019373.XA
Other languages
English (en)
Other versions
CN110447017B (zh
Inventor
P·B·蒙达
S·维玛
T·基纳什
T·萨胡
夏若凡
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.)
Oracle International Corp
Original Assignee
Oracle International 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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN110447017A publication Critical patent/CN110447017A/zh
Application granted granted Critical
Publication of CN110447017B publication Critical patent/CN110447017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种调整数据存储装备池中的监视参数的方法可以包括从监视***的进程调度器接收事件通知。该事件通知可以包括监视数据存储装备池的进程已经完成的指示。该方法还可以包括确定事件通知的事件类型,以及接收特定于事件通知的事件类型的一个或多个可执行规则。所述一个或多个可执行规则可以调整监视***相对于数据存储装备池的监视参数。该方法还可以包括执行所述一个或多个可执行规则,使得监视***的监视参数被调整。

Description

数据存储装备监视器中基于规则的修改
相关申请的交叉引用
本申请要求于2017年3月26日提交的美国临时申请62/476,854的权益,其通过引用并入本文。
技术领域
本公开一般而言涉及数据存储的***和方法,并且更具体地涉及监视数据存储装备的功能。
背景技术
互联网的不断扩展以及计算网络和***的扩展和复杂化,已经导致通过互联网存储和可访问的内容的激增。这进而推动了对大型复杂数据存储***的需求。随着对数据存储的需求不断增加,正在设计和部署更大和更复杂的存储***。许多大规模数据存储***利用包括物理存储介质阵列的存储设备。这些存储装备能够存储大量数据。例如,当前,Oracle的SUN ZFS Storage ZS5-4装备可以存储高达6.9PB的数据。而且,多个存储装备可以联网在一起以形成存储池,这可以进一步增加存储的数据的量。
通常,诸如这些之类的大型存储***可以包括用于存储和访问文件的文件***。除了存储***文件(操作***文件、设备驱动器文件等)之外,文件***还提供用户数据文件的存储和访问。如果这些文件中的任何一个(***文件和/或用户文件)包含关键数据,那么采用备份存储方案以确保在文件存储设备发生故障时不会丢失该关键数据是有利的。故障、存储器溢出、处理器过载以及其它潜在问题需要持续监视存储装备。但是,现有的监视方案是静态的,并且无论目标装备的状态或监视***自身的状态如何,都以相同的方式进行监视。
发明内容
在一些实施例中,一种调整数据存储装备池中的监视参数的方法可以包括从监视***的进程调度器接收事件通知。事件通知可以包括监视数据存储装备池的进程已经完成的指示。该方法还可以包括确定事件通知的事件类型。该方法可以附加地包括接收特定于事件通知的事件类型的一个或多个可执行规则。这一个或多个可执行规则可以调整监视***相对于数据存储装备池的监视参数。该方法还可以包括执行该一个或多个可执行规则,使得监视***的监视参数被调整。
在一些实施例中,非瞬态计算机可读介质可以包括指令,所述指令在由一个或多个处理器执行时使得一个或多个处理器执行操作,包括从监视***的进程调度器接收事件通知。事件通知可以包括监视数据存储装备池的进程已经完成的指示。操作还可以包括确定事件通知的事件类型。操作可以附加地包括接收特定于事件通知的事件类型的一个或多个可执行规则。这一个或多个可执行规则可以调整监视***相对于数据存储装备池的监视参数。操作还可以包括执行该一个或多个可执行规则,使得监视***的监视参数被调整。
在一些实施例中,一种***可以包括一个或多个处理器和一个或多个存储器设备。一个或多个存储器设备可以包括指令,所述指令在由一个或多个处理器执行时使得一个或多个处理器执行操作,包括从监视***的进程调度器接收事件通知。事件通知可以包括监视数据存储装备池的进程已经完成的指示。操作还可以包括确定事件通知的事件类型。操作可以附加地包括接收特定于事件通知的事件类型的一个或多个可执行规则。这一个或多个可执行规则可以调整监视***相对于数据存储装备池的监视参数。操作还可以包括执行一个或多个可执行规则,使得监视***的监视参数被调整。
在任何实施例中,以下特征中的一个或多个可以以任何组合实现而不加限制。事件通知可以包括已完成的具体收集器进程的指示。可以基于已完成的具体收集器进程来确定事件类型。数据存储装备池可以包括ZFS存储池。事件通知可以从进程调度器的事件接口传递到监视***的规则引擎。一个或多个可执行规则可以包括条件的集合。该条件的集合可以包括与从监视器***的数据储存库检索到的数据进行比较的一个或多个阈值。一个或多个可执行规则可以包括响应于对该条件集合的评估而由监视***的规则引擎执行的一个或多个动作。一个或多个可执行规则可以通过向监视***的进程调度器提交新进程来调整监视***的监视参数。该方法/操作还可以包括接收新的可执行规则,将新的可执行规则存储在监视***的数据储存库的规则目录表中,接收对与新的可执行规则类型相同的可执行规则的请求,以及,响应于接收到对与新的可执行规则类型相同的可执行规则的请求,将新的可执行规则移动到数据储存库的***规则表。该方法/操作可以附加地包括将新的可执行规则发送到中央服务器,在那里中央服务器将新的可执行规则发送到附加的监视***。附加的监视***可以监视与由监视***监视的数据存储装备池类似的数据存储装备池。事件通知可以通过聚合存储装备池的容量信息的收集器进程的完成来触发,并且执行一个或多个可执行规则可以包括响应于确定数据存储装备池中的至少一个数据存储装备的容量超过一个或多个可执行规则的阈值而增加进程调度器执行聚合-容量信息的收集器进程的频率。事件通知可以通过收集存储装备池的可用性信息的收集器进程的完成来触发,并且执行一个或多个可执行规则可以包括响应于确定数据存储装备池中的至少一个数据存储装备不可用而减小进程调度器执行数据收集进程的频率并增加进程调度器执行收集可用性信息的进程的频率。事件通知可以通过从监视***收集健康状况信息的进程的完成来触发,并且执行一个或多个可执行规则可以包括响应于确定监视***的健康状况违反一个或多个阈值而减小监视***从数据存储装备池收集数据的频率。
附图说明
通过结合以下附图参考说明书的其余部分,可以实现对根据本公开的实施例的本质和优点的进一步理解。
图1图示了可以根据本公开的某些实施例使用的一个示例存储网络。
图2图示了根据本公开某些实施例的可以在存储环境中执行的文件***的实例。
图3A-3D图示了根据本公开某些实施例的用于文件***的写时复制(copy-on-write)进程。
图4是图示根据本公开某些实施例的混合云存储***的示例的高级图。
图5是图示根据一些实施例的混合云存储***的云接口装备的附加方面的图。
图6图示了根据一些实施例的用于ZFS存储装备的监视器服务器的简化框图。
图7图示了根据一些实施例的进程调度器与规则引擎之间的交互的图。
图8图示了根据一些实施例的调整数据存储装备池中的监视参数的方法的流程图。
图9图示了分析达到最大阈值的目标存储装备的存储容量的规则和事件组合的图。
图10图示了分析达到最大阈值的目标存储装备的存储容量的规则和事件组合的流程图。
图11图示了根据一些实施例的用于响应目标装备中的可用性事件的事件和规则组合的图。
图12图示了根据一些实施例的用于响应目标装备中的可用性事件的事件和规则组合的流程图。
图13图示了根据一些实施例的用于处置有界进程(bounded process)的规则和事件组合的图。
图14图示了根据一些实施例的用于处置有界进程的规则和事件组合的图。
图15图示了根据一些实施例的用于监视监视器服务器自身的状态的规则和事件组合的图。
图16图示了根据一些实施例的用于监视监视器服务器自身的状态的规则和事件组合的流程图。
图17示出了根据一些实施例的用于在不同监视器服务器之间共享规则的***的框图。
图18描绘了用于实现根据本公开某些实施例的分布式***的简化图。
图19是根据本公开某些实施例的***环境的一个或多个部件的简化框图,通过该***环境,由***的一个或多个部件提供的服务可以作为云服务提供。
图20图示了示例性计算机***,在其中可以实现本发明的各种实施例。
在附图中,类似的部件和/或特征可以具有相同的参考标签。另外,相同类型的各种部件可以通过用短划线和区分相似部件的第二标签跟随参考标签来区分。如果在说明书中仅使用第一参考标签,那么该描述适用于具有相同第一参考标签的任何一个类似部件,而与第二参考标签无关。
具体实施方式
随后的描述仅提供优选的(一个或多个)示例性实施例,并且不旨在限制本公开的范围、适用性或配置。而是,随后对优选的(一个或多个)示例性实施例的描述将为本领域技术人员提供用于实现本公开的优选示例性实施例的使能描述。应该理解的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
图1图示了可以用于实现根据本公开的某些实施例的一个示例存储网络100。图1中描绘的硬件设备的选择和/或布置仅作为示例示出,并不旨在进行限制。图1提供了通过一个或多个交换电路122连接的多个存储装备120。交换电路122可以将多个存储装备120连接到多个I/O服务器136,这些I/O服务器136进而可以为客户端设备(诸如本地计算机***130、通过网络132可用的计算机***和/或云计算***134)提供对多个存储装备120的访问。
每个I/O服务器136可以执行多个独立的文件***实例,每个实例可以负责管理整个存储容量的一部分。如下面将更详细描述的,这些文件***实例可以包括Oracle ZFS文件***。I/O服务器136可以包括刀片和/或独立服务器,刀片和/或独立服务器包括主机端口124以通过接收读取和/或写入数据访问请求来与客户端设备通信。主机端口124可以与外部接口提供器126通信,外部接口提供器126识别用于服务于每个I/O请求的正确的数据存储控制器128。数据存储控制器128可以各自专门管理下面描述的存储装备120中的一个或多个存储装备中的数据内容的一部分。因此,每个数据存储控制器128可以访问存储池的一逻辑部分并通过访问它们自己的数据内容来满足从外部接口提供器126接收的数据请求。通过数据存储控制器128的重定向可以包括将每个I/O请求从主机端口124重定向到在I/O服务器136上执行并负责所请求的块的文件***实例(例如,ZFS实例)。例如,这可以包括从一个I/O服务器136-1上的主机端口124-1到另一个I/O服务器136-n上的ZFS实例的重定向。这种重定向可以允许从任何主机端口124到达可用存储容量的任何部分。然后,ZFS实例可以向存储池中的任何存储设备发出必要的直接I/O事务以完成请求。然后,确认和/或数据可以通过始发主机端口124转发回客户端设备。
低延时的存储器映射网络可以将主机端口124、任何文件***实例和存储装备120绑定在一起。这个网络可以使用一个或多个交换电路122(诸如Oracle的Sun Data CenterInfiniBand Switch 36)来实现,以提供可扩展的高性能集群。总线协议(诸如PCI Express总线)可以在存储网络内路由信号。I/O服务器136和存储装备120可以作为对等体进行通信。重定向流量和ZFS存储器流量都可以使用相同的交换架构。
在各种实施例中,存储装备120的许多不同配置可以用在图1的网络中。在一些实施例中,可以使用Oracle ZFS存储装备系列。ZFS存储装备使用下面描述的Oracle的ZFS文件***(“ZFS”)提供基于Oracle Solaris内核的存储。处理核心114处理实现任何所选择的数据保护(例如,镜像、RAID-Z等)、数据减少(例如,内联压缩、复制等)以及任何其它实现的数据服务(例如,远程复制)所需的任何操作。在一些实施例中,处理核心可以包括2.8GHzXeon处理器的8x15核心。处理核心还处理所存储数据在DRAM和闪存112中的高速缓存。在一些实施例中,DRAM/闪存高速缓存可以包括3TB DRAM高速缓存。
在一些配置中,存储装备120可以包括I/O端口116以从数据存储控制器128接收I/O请求。每个存储装备120可以包括整体的机架安装单元,该单元具有其自己的内部冗余电源和冷却***。集中器板110或其它类似的硬件设备可以用于互连多个存储设备。诸如存储器板、集中器板110、电源和冷却设备之类的有源部件可以是热插拔的。例如,存储装备120可以包括闪存存储器102、非易失性RAM(NVRAM)104、各种配置的硬盘驱动器105、带驱动器、盘驱动器的RAID阵列108等。这些存储单元可以被设计用于高可用性,具有热插拔和存储卡、电源、冷却和互连的内部冗余。在一些实施例中,可以通过在断电时将RAM备份到专用闪存而使RAM变为非易失性的。闪存和NVRAM卡的混合可以是可配置的,并且两者都可以使用相同的连接器和板简档。
虽然没有明确示出,但是每个I/O服务器136可以执行全局管理处理或数据存储***管理器,其可以以伪静态“低触摸”方式监督存储***的操作,当必须在ZFS实例之间重新分配容量时进行干预,用于全局闪存耗损均衡(global Flash wear leveling)、用于配置改变和/或用于故障恢复。在各个ZFS实例之间划分容量的“分而治之”策略可以实现性能、连接性和容量的高可扩展性。通过水平添加更多I/O服务器136,然后为每个ZFS实例指派更少的容量和/或为每个I/O服务器136指派更少的ZFS实例,可以实现附加性能。还可以使用更快的服务器垂直扩展性能。可以通过填充I/O服务器136中的可用插槽然后添加附加服务器来添加附加主机端口。还可以通过添加附加存储装备120并将新容量分配给新的或现有的ZFS实例来实现附加的容量。
图2图示了根据本公开某些实施例的可以在存储环境(包括图1的存储环境)中执行的示例网络文件***200的实例。例如,文件***200可以包括Oracle ZFS文件***(“ZFS”),Oracle ZFS文件***提供非常大的容量(128位)、数据完整性、始终一致的盘上格式、自优化性能,以及实时远程复制。除了其它方式之外,ZFS与传统的文件***的不同在于至少不需要单独的卷管理器。代替地,ZFS文件***共享存储设备的公共存储池,并充当卷管理器和文件***二者。因此,ZFS完全了解物理盘和卷(包括它们的状况、状态和到卷中的逻辑安排,连同存储在它们上的所有文件)。随着文件***容量要求随时间改变,可以从池中添加或删除设备,以按照需要在运行时增长和缩小而无需对底层存储池重新分区。
在某些实施例中,***200可以通过操作***与应用202交互。操作***可以包括与文件***交互的功能,文件***进而与存储池接口。操作***通常经由***调用接口208与文件***200接口。***调用接口208提供传统的文件读取、写入、打开、关闭等操作,以及特定于VFS体系架构的VNODE操作和VFS操作。***调用接口208可以充当用于与作为文件***的ZFS交互的主要接口。这一层位于数据管理单元(DMU)218之间,并呈现存储在其中的文件和目录的文件***抽象。***调用接口208可以负责桥接文件***接口和底层DMU 218接口之间的差距。
除了***调用接口208的POSIX层之外,文件***200的接口层还可以提供分布式文件***接口210,用于与集群/云计算设备204交互。例如,可以提供接口以提供用于计算机集群的文件***,计算机集群的尺寸的范围从小工作组集群到大规模多站点集群。卷模拟器212还可以提供用于创建可以用作块/字符设备的逻辑卷的机制。卷模拟器212不仅允许客户端***区分块与字符,而且还允许客户端***指定期望的块尺寸,从而在称为“瘦配置”的处理中创建较小的稀疏的卷。卷模拟器212提供到外部设备的原始访问206。
接口层下面是事务对象层。这一层提供意图日志214,意图日志214被配置为记录每数据集的事务历史,事务历史可以在***崩溃时重放。在ZFS中,意图日志214将改变文件***的***调用的事务记录和足够的信息保存在存储器中,以便能够重放这些***调用。这些被存储在存储器中,直到DMU 218将它们提交到存储池,并且它们可以被丢弃或者被刷新。在电源故障和/或盘故障的情况下,可以重放意图日志214事务以使存储池保持最新和一致。
事务对象层还提供属性处理器216,属性处理器216可以用于通过在对象内进行任意{键,值}关联来实现***调用接口208的POSIX层内的目录。属性处理器216可以包括位于DMU 218顶部的模块并且可以对ZFS中被称为“ZAP对象”的对象进行操作。ZAP对象可以用于存储数据集的特性、导航文件***对象和/或存储存储池特性。ZAP对象可以有两种形式:“microzap”对象和“fatzap”对象。Microzap对象可以是fatzap对象的轻量级版本,并且可以为少量属性条目提供简单且快速的查找机制。Fatzap对象可能更适合包含大量属性的ZAP对象,诸如更大的目录、更长的键、更长的值等。
事务对象层还提供数据集和快照层220,数据集和快照层220聚合分层名称空间中的DMU对象并提供用于描述和管理对象集的特性之间的关系的机制。这允许特性的继承,以及存储池中的配额和预留强制实施。DMU对象可以包括ZFS文件***对象,克隆对象,CFS卷对象和快照对象。因此,数据和快照层220可以管理快照和克隆。
快照是文件***或卷的只读副本。快照是当文件***处于特定时间点时的文件***的视图。ZFS的快照与其它一些文件***的快照一样有用:通过执行快照的备份,已经创建一致的、不变的目标以供备份程序使用。通过从快照复制损坏的文件,快照还可以用于从最近的错误中恢复。几乎可以即时地创建快照,并且它们最初不会在池内消耗附加的盘空间。然而,当活动的数据集内的数据改变时,快照通过继续引用旧数据而占用盘空间,从而阻止盘空间被释放。只有删除快照时才会释放包含旧数据的块。拍摄快照是定时操作。快照的存在不会减慢任何其他操作。删除快照将花费与删除将释放的块的数量成比例的时间,并且因此效率非常高。ZFS快照可以包括以下特征:它们跨***重新启动保持不变;快照的理论最大数量为264;它们不使用单独的后备存储库;它们直接从与创建它们的文件***或卷相同的存储池中消耗盘空间;递归快照作为一个原子操作被快速创建;以及它们被一起创建(一次全部)或根本不创建。原子的快照操作的好处是,即使在后代文件***中,快照数据也总是在一个一致的时间被拍摄。快照无法被直接访问,但是它们可以被克隆、备份、回滚等等。快照可以用于在时间上“回滚”到拍摄快照时的点。
克隆是初始内容与创建它的数据集相同的可写卷或文件***。在ZFS***中,始终从快照创建克隆。与快照一样,创建克隆几乎是即时的,最初不会消耗附加的盘空间。此外,可以使用克隆来创建快照。也可以从快照创建克隆。在快照被克隆时,会在克隆和快照之间创建隐式依赖关系。即使克隆是在数据集层次结构中的其它位置创建的,只要克隆存在,就不能销毁原始快照。克隆不会继承创建它的数据集的特性。克隆最初与原始快照共享其所有盘空间。随着对克隆做出改变,它会使用更多盘空间。克隆对于开发或故障排除是有用的——并且可以被提升以代替活(live)文件***。克隆还可以用于在多个机器上复制文件***。
DMU 218呈现在由存储池呈现的平坦地址空间的顶部上构建的事务对象模型。上述模块经由对象集、对象和事务与DMU 218交互,其中对象是来自存储池的存储片,诸如数据块的集合。通过DMU 218的每个事务包括作为组提交给存储池的一系列操作。这是在文件***中维护盘一致性的机制。换句话说,DMU 218从接口层获取指令并将它们转化(translate)成事务批次。不是请求数据块和发送单个读取/写入请求,而是DMU 218可以将这些操作组合成基于对象的事务的批次,这些基于对象的事务的批次可以在任何盘活动发生之前被优化。一旦完成此操作,事务的批次就被移交到存储池层,以对检索/写入所请求的数据块所需的原始I/O事务进行调度和聚合。如下面将描述的,这些事务是在写时复制(COW)的基础上编写的,这消除了对事务日志(transaction journaling)的需要。
存储池层或简称为“存储池”可以被称为存储池分配器(SPA)。SPA提供公共接口来操纵存储池配置。这些接口可以创建、销毁、导入、导出和池化各种存储介质,并管理存储池的名称空间。在一些实施例中,SPA可以包括自适应替换高速缓存(ARC)222,自适应替换高速缓存(ARC)222充当用于SPA的存储器管理的中心点。传统上,ARC为高速缓存管理提供基本的最近最少使用(LRU)对象替换算法。在ZFS中,ARC 222包括可以基于I/O工作负载进行调整的自调整高速缓存。此外,ARC 222定义DMU 218使用的数据虚拟地址(DVA)。在一些实施例中,ARC 222具有由于存储器压力而从高速缓存中驱逐存储器缓冲器以维持高吞吐量的能力。
SPA还可以包括I/O管道224或“I/O管理器”,其将来自ARC 222的DVA转化成下面描述的每个虚拟设备(VDEV)226中的逻辑位置。I/O管道224跨活动VDEV驱动运行时条带化、压缩、校验和能力、和数据冗余。虽然未在图2中明确示出,但I/O管道224可以包括可以由SPA用于从存储池读取数据和/或将数据写入存储池的其它模块。例如,I/O管道224可以包括但不限于压缩模块、加密模块、校验和模块和metaslab分配器。例如,可以使用校验和来确保数据没有被损坏。在一些实施例中,SPA可以使用metaslab分配器来管理存储池中的存储空间的分配。
压缩是通常通过利用数据块本身中的冗余来减小数据块(可与叶子节点或数据节点互换地指代)的数据尺寸的处理。ZFS使用许多不同的压缩类型。在启用压缩时,可以为每个数据块分配较少的存储。LZ4算法可以在创建特征标志之后被添加,并且它明显优于LZJB。LZJB是用于ZFS的原始默认压缩算法。LZ4被创建是为了满足适用于文件***的压缩算法的期望。具体而言,它提供公平的压缩、具有高压缩速度、具有高解压速度并且快速检测不可压缩数据检测。其他实施例可以使用GZIP(1至9在经典的Lempel-Ziv实现方案中实现)。它提供高压缩,但它常常使IO是CPU受限的(CPU-bound)。一些实施例也可以使用ZLE(零长度编码),其是一种只压缩零的非常简单的算法。在这些情况中的每种情况下,都存在压缩率与压缩和解压缩数据块所涉及的延时量之间的权衡。通常,数据压缩得越多,压缩和解压缩所需的时间就越长。
加密是通过用密钥加密地对数据块进行编码来向数据块添加端到端安全性的处理。只有拥有密钥的用户才能解密数据块。在ZFS***中使用时,ZFS池可以支持加密和未加密的ZFS数据集(文件***和ZVOL)的混合。数据加密对应用是完全透明的,并提供用于保护静止数据(data at rest)的非常灵活的***,并且它不需要任何应用改变或资格。此外,ZFS加密从密码短语(passphrase)或AES密钥随机生成本地加密密钥,并且所有密钥都存储在客户端本地——而不是像传统文件***那样存储在云对象存储库中。当被启用时,加密对于云对象存储库的应用和存储是透明的。ZFS使得加密数据和管理数据加密是容易的,因为可以在同一存储池中拥有加密和未加密的文件***二者。也可以为不同的***使用不同的加密密钥,并且可以在本地或远程地管理加密——但是随机生成的加密密钥始终保持在本地。ZFS加密对于后代文件***是可继承的。在CCM和GCM操作模式下,可以使用密钥长度为128、192和256的AES(高级加密标准)来加密数据。
去重是辨识要存储在文件***中的数据块已经作为现有数据块存储在文件***上并指向该现有数据块而不是再次存储数据块的处理。ZFS提供块级的去重,因为这是对通用存储***有意义的最精细的粒度。块级去重也自然地映射到ZFS的256位块校验和,只要校验和功能在加密方面很强(例如SHA256),ZFS的256位块校验和就为存储池中的所有块提供唯一的块签名。去重是同步的,并且在数据块被发送到云对象存储库时执行。如果数据块不是复制的,那么启用去重会增加开销而不会带来任何好处。如果存在重复的数据块,那么启用去重将既节省空间又提高性能。节省空间是显而易见的;性能提高是由于在存储重复数据时消除了存储写入,以及由于许多应用共享相同存储器页面而导致存储器占用减少。大多数存储环境包含大多独特的数据和大多被复制的数据的混合。ZFS去重是针对每个数据集的,并且可以在它可能有帮助时被启用。
在ZFS中,存储池可以由VDEV的集合组成。在某些实施例中,存储池的至少一部分可以被表示为自描述的Merkle树,即,其中数据和元数据都通过逻辑树的VDEV存储的逻辑树。有两种类型的虚拟设备:称为叶子VDEV的物理虚拟设备,以及称为内部VDEV的逻辑虚拟设备。物理VDEV可以包括可写介质块设备,诸如硬盘或闪存驱动器。逻辑VDEV是物理VDEV的概念化分组。VDEV可以布置在树中,其中物理VDEV作为树的叶子存在。存储池可以具有称为“根VDEV”的特殊逻辑VDEV,它是树的根。根VDEV的所有直接子节点(物理或逻辑)都被称为“顶级”VDEV。一般而言,VDEV实现数据复制、镜像和体系架构(诸如RAID-Z和RAID-Z2)。每个叶子VDEV表示实际存储由文件***提供的数据的一个或多个物理存储设备228。
在一些实施例中,文件***200可以包括基于对象的文件***,其中数据和元数据都被存储为对象。更具体而言,文件***200可以包括将数据和对应的元数据存储在存储池中的功能。执行特定操作(即,事务)的请求从操作***经由***调用接口208转发到DMU218,DMU 218将对对象执行操作的请求直接转化成在存储池内的物理位置处执行读取或写入操作的请求(即,I/O请求)。SPA从DMU 218接收请求,并使用COW过程将块写入存储池。可以为对文件的数据写请求来执行COW事务。不是在写入操作时覆写现有的块,而是写请求使得为修改后的数据分配新的片段。因此,在提交数据块和元数据的修改版本之前,永远不会覆写检索到的数据块和对应的元数据。因此,DMU 218将所有修改后的数据块都写入存储池内未使用的片段,并且随后将对应的块指针写入存储池内未使用的片段。为了完成COW事务,SPA发出I/O请求以引用修改后的数据块。
在一些实施例中,文件***200可以包括直接集成到ZFS控制堆栈中的云设备管理。文件***200可以包括云接口设备502,其促进充分利用云对象存储库404作为用于文件***200的存储介质。云接口设备502可以至少部分地通过将云存储空间映射到设备抽象来促进云驱动器。
在一些实施例中,云接口设备502可以与ZFS文件***体系架构内的另一VDEV类型的设备驱动器接口的一个或多个VDEV。ZFS可以直接与云接口设备502通信。云接口设备502可以位于文件***200的驱动器层正上方的虚拟设备层。云接口设备502的一些实施例可以与ZFS体系架构内的设备驱动器接口的抽象对应。文件***200的其它部件可以与云接口设备502通信,就好像它是另一设备类型的另一个VDEV,诸如VDEV 226。为了使得能够通过云接口设备502相对于通过其它VDEV 226传递更大量的信息,与云接口设备502相关联的接口可以更宽,以通过I/O管线224和云接口设备502将更多信息向外传递到云对象数据存储库。
在一些实施例中,云接口设备502可以转化客户端上的文件***接口。在一些实施例中,为了提供完整的POSIX文件***语义,云接口设备502可以将文件***接口请求转换成针对云对象存储库的对象接口请求。在一些实施例中,云接口设备502可以能够经由对象协议向云对象存储库进行通信以读取和写入数据。
图3A-3D图示了根据本公开某些实施例的用于文件***(诸如文件***200)的COW进程。例如,上述ZFS***使用COW事务模型,其中文件***内的所有块指针可以包含目标块的256位校验和,该256位校验和在块被读取时被验证。如上所述,包含活动数据的块不会被原地覆写。相反,新的块被分配,修改后的数据被写到新的块,然后引用它的任何元数据块被简单地读取、重新分配和重写。
图3A图示了根据一些实施例的与作为逻辑树300的一个或多个文件对应的数据和元数据的文件***存储的简化图。逻辑树300以及本文描述的其它逻辑树可以是自描述的Merkle树,其中数据和元数据被存储为逻辑树300的块。根块302可以表示逻辑树300的根或“超级块”。逻辑树300可以通过导航通过根302的每个子节点304、306来遍历文件和目录。每个非叶子节点表示目录或文件,诸如节点308、310、312和314。在一些实施例中,可以为每个非叶子节点指派其子节点的值的散列。每个叶子节点316、318、320、322表示文件的数据块。
图3B图示了在写入操作的初始阶段之后的逻辑树300-1的示例。在这个示例中,由节点324和326表示的数据块已由文件***200写入。不是覆写节点316和318中的数据,而是为节点324和326分配新的数据块。因此,在这个操作之后,节点316和318中的旧数据与节点324和326中的新数据一起保留在存储器中。
图3C图示了随着写入操作继续的逻辑树300-2的示例。为了引用节点324和326中新写入的数据块,文件***200确定引用旧节点316和318的节点308和310。新节点328和330被分配为引用节点324、326中的新数据块。递归地向上通过文件***层次结构重复相同的处理,直到引用改变后的节点的每个节点都被重新分配为指向新节点。
当指针块在层次结构中的新节点中被分配时,每个节点中的地址指针被更新为指向所分配的子节点在存储器中的新位置。此外,每个数据块包括校验和,该校验和通过由地址指针引用的数据块来计算。例如,使用节点324中的数据块计算节点328中的校验和。这种布置意味着校验和与从其计算该校验和的数据块分开存储。这防止所谓的“代写(ghostwrite)”,在代写中永远不会写入新数据,但是与数据块一起存储的校验和将指示该块是正确的。可以通过遍历逻辑树300并基于子节点计算每个级别的校验和来快速校验逻辑树300的完整性。
为了完成写入操作,可以重新分配和更新根302。图3D图示了写入操作结束时逻辑树300-3的示例。当根302准备好被更新时,可以分配并初始化新的超级块根336以指向新分配的子节点332和334。然后,根336可以在原子操作中成为逻辑树300-3的根,以最终确定逻辑树300-3的状态。
本文描述的实施例可以在上面在图1-3中描述的***中实现。例如,该***可以包括图1的各种存储装备、交换电路和/或服务器的一个或多个处理器。指令可以存储在***的一个或多个存储器设备中,使得一个或多个处理器执行影响文件***的功能的各种操作。各种方法的步骤可以由图1-2中的***的处理器、存储器设备、接口和/或电路***执行。
图4图示了根据一些实施例的混合云存储***400的示例的高级图。混合云存储***400可以将网络文件***(诸如ZFS文件***)变换为支持云的文件***,在支持云的文件***中,文件***的功能(包括文件***数据服务)在远离文件***的云对象存储库上被分层。如在所描绘的图中,混合云存储***400可以包括网络文件***200(在本文也称为“本地文件***200”)。本地文件***200可以通信地耦合到云对象存储404。在一些实施例中,云对象存储404可以与图2中指示的集群/云204对应。本地文件***200可以通过云接口装备402通信地耦合到云对象存储404。云接口装备402可以由本地文件***200用作针对云对象存储404的接入点。
混合云存储***400提供克服云对象存储的传统限制的解决方案。传统的云对象协议限于受限的数据/对象访问语义。传统上,云对象存储具有有限的接口和原语,并且与POSIX不兼容。例如,一旦对象被写入,此后就不能对其进行修改;它只能被删除并替换为新创建的对象。作为另一个示例,传统云对象存储具有名称空间限制,使得名称空间被简化并且仅限于顶级容器。然而,混合云存储***400不仅可以将数据迁移到云对象存储库404以及从云对象存储库404迁移数据,而且还可以将本地文件***200的文件***功能在到云对象存储库404的云对象接口上分层,以提供基于云的存储。
本地文件***200可以被配置用于POSIX接口和语义。例如,本地文件***200可以向用户提供对作为文件的数据的访问,从而允许修改文件的内容而不重写文件。本地文件***200还可以提供名称层次结构中的数据的组织,如对于ZFS文件***是典型的那样。ZFS文件***的所有功能可以对本地文件***200的用户可用。云接口装备402可以允许在云对象协议之上对文件***语义进行分层——例如,提供构造名称空间、创建文件、创建目录等的能力——并且相对于迁移到云对象存储404和从云对象存储404迁移的数据扩展这样的能力。云接口装备402可以促进即插即用对象存储解决方案,以改进本地文件***200,同时支持ZFS文件***数据服务。
云接口装备402可以被配置为提供对象API(应用编程接口)。在一些实施例中,云接口装备402可以被配置为使用多个API转化简档。根据一些实施例,API转化简档可以集成模块和功能(例如,数据服务和模块)、POSIX接口和语义,以及可能不被本地设计为与云存储交互的其它部件。在一些实施例中,API转化简档可以(例如,通过API调用)转化文件***200的协议、格式和例程以允许与云数据存储库404的交互。用于这种集成的信息可以存储在API转化数据存储库中,该API转化数据存储库可以与云接口装备402共同定位或以其它方式通信地耦合到云接口装备402。云接口装备402可以利用该信息来内聚地集成POSIX接口和语义以与云数据存储库404接口,同时保留这些语义。
混合云存储***400可以允许本地文件***200将云对象存储404用作“驱动器”。在各种情况下,文件410都可以作为具有元数据对象的数据对象存储,和/或作为具有相关联的元数据的数据块。云接口装备402可以从本地文件***200接收文件410并将文件410传送到本地文件***200。在各种实施例中,本地文件***200可以经由NFS(网络文件***)协议、SMB(服务器消息块协议)等收发文件410。在一些实施例中,云接口装备402可以将文件410转化成对象412。文件410的转化可以包括转化数据块和关联元数据和/或与元数据对象相关联的数据对象,其中任何一个都可以与文件410对应。在一些实施例中,转化可以包括云接口装备402利用多个API转化简档执行API转化。根据一些实施例,转化可以包括云接口装备402从文件410、对象和/或块提取数据和/或元数据。云接口装备402可以至少部分地通过使用提取出的数据将文件410、对象和/或块转化成云存储对象。在一些实施例中,云接口装备402可以利用提取出的数据来创建对应的云存储对象,其中提取出的数据被嵌入在指向云对象存储库404的放置请求中。同样,利用由云接口装备402实现的用以向外接口到云数据存储库404的任何转化,在一些实施例中,云接口装备402可以反转转化处理以与本地文件***200的本地部件接口。
云接口装备402可以向云对象存储404传送对象412以及从云对象存储404接收对象412。在一些实施例中,云接口装备402可以经由HTTPS等来收发对象412。在一些实施例中,云接口装备402可以与本地文件***200共同定位。在其它实施例中,云接口装备402可以远离本地文件***200定位,诸如,与促进云对象存储库404的至少一些装备一起或在某个其它通信耦合的站点。
如本文进一步公开的,本地文件***200中的文件可以被存储为“盘块”,其中与文件对应的数据对象和元数据被存储为逻辑树300的虚拟存储块(例如,自描述的Merkle树,其中数据和元数据被存储为块)。云接口装备402可以创建数据的树300中的每个逻辑块直接到云对象存储库404中的云对象414的映射406。一些实施例可以采用一对一的块到对象映射。附加地或可替代地,其它实施例可以采用任何其它合适的块与云对象的比率,例如,将多个块映射到一个云对象。在此类实施例的一些实例中,可以将块的整个逻辑树映射到单个云对象。在其它情况下,块的逻辑树的仅一部分可以被映射到单个云对象。
在一些实施例中,当块被转换成云对象时,更新地址指针。当使用一对一的块到对象转换方案将块转换成云对象时,可以更新地址指针,使得层次结构中的非叶子云对象指向云对象存储库404中的子云对象。举例来说,地址指针可以与子云对象的对象名称和路径规范对应,其可以包括诸如对象名称、桶规范(bucket specification)等参数。相应地,一些实施例可以将逻辑树300的块转化成逻辑树300A的云对象。利用一些实施例,这种转化可以使云接口装备402能够利用云对象的地址指针遍历云对象的逻辑树300A。
在一些实施例中,当使用多对一的块到对象转换方案将块转换成云对象使得逻辑树300A的一部分被转换成一个云对象时,包括逻辑300A的云对象的地址指针可以类似地被更新,但是是在更粗粒度程度上,使得层次结构中的非叶子云对象指向云对象存储库404中的子云对象。这种转化可以使云接口装备402能够利用云对象的地址指针以比通过一对一的块到对象转化方案促进的遍历更粗粒度但更快的方式遍历云对象的逻辑树300A。此外,在一些实施例中,可以利用转换处理来更新校验和。用于各个云对象的校验和可以被更新并分开存储在父云对象中。在采用多对一的块到对象转换方案的转换中,可以针对与一组块对应的云对象来计算单个校验和。
相应地,映射406的实现允许通过一个或多个网络到云对象存储库404的通信,并且与云对象存储库404的接口可以是基于对象的而不是基于块的。如本文进一步公开的,利用本地文件***200和云对象存储库404之间的云接口装备402,混合云存储***400可以拥有与传统ZFS文件***不同的特点和故障模式。云接口装备402可以在客户端侧转化本地文件***202的文件***接口,并且可以能够经由对象协议协调到云对象存储库404以读取和写入数据。通过云接口装备402,云对象414可以保持为能够由本地文件***200通过NFS、SMB等访问。
利用云对象414作为逻辑块的映射406,可以将云对象414的集合分组以形成将ZFS存储池托管为自包含集合的驱动器。驱动器内容可以是弹性的,使得可以仅为已经分配的逻辑块创建云对象。在一些实施例中,云接口装备402可以具有(例如,针对不同数据类型)指派可变对象尺寸的能力,以允许更大的存储灵活性。数据不必限于特定的字节尺寸。可以通过修改元数据来根据需要扩展存储尺寸。在一些实施例中,可以在任何服务器上导入基于云的池。一旦被导入,基于云的池就可以表现为本地存储,并且对基于云的池支持所有ZFS服务。可以将基于云的池指示为新类型的存储池。然而,从用户的角度来看,来自基于云的池的数据可以看起来与本地池无法区分。
图5是图示根据本公开某些实施例的混合云存储***400-1的云接口装备402-1的附加方面的图。如所描绘的示例中所指示的,云接口装备402的一些实施例可以包括虚拟存储池502和云接口守护进程504。虚拟存储池502可以位于文件***200的内核处,并且云接口守护进程504可以位于文件***200的用户空间上。在各种实施例中,云接口守护进程504可以与图2中指示的应用202和/或集群/云204的云接口部件对应。
在一些实施例中,虚拟存储池502可以包括至少一个云接口设备502、意图日志214-2和高速缓存222-1。意图日志214-2和高速缓存222-1可以如上面关于图1-2所述。云接口设备502可以与云接口守护进程504交互,以至少部分地基于映射406来协调关于云对象数据存储库404的操作。云接口守护进程504可以包括云客户端接口508,以与云对象数据存储库404接口。在一些实现方案中,云客户端接口508可以包括提供与云对象数据存储库404的Swift/S3兼容性的端点。云客户端接口508的操作可以至少部分地基于取出和放置整个数据对象412,以便促进对云对象数据存储库404的读取和写入访问。
可以通过文件***200的接口层的***调用接口208从文件***200的应用层处的应用202接收针对一个或多个文件执行一个或多个事务的请求。请求可以是POSIX兼容的,并且可以由文件***200的一个或多个部件转换成针对存储在云对象存储库404中的逻辑树300的基于云的实例化执行一个或多个操作的一个或多个对象接口请求。例如,在一些实施例中,云接口装备402可以将兼容POSIX的请求或由兼容POSIX的请求造成的中间请求转换成对应的对象接口请求。在一些实施例中,DMU 218可以将兼容POSIX的请求转化成执行I/O操作的I/O请求,并且云接口装备402可以将I/O请求转化成对应的对象接口请求,从而使用映射406协调对象接口请求。
在一些情况下,事务可以与导致文件存储在本地的操作对应。在一些实例中,文件***200可以将数据对象和对应的元数据存储在由VDEV 226中的一个或多个和一个或多个物理存储设备228提供的***存储池416中。数据对象可以与一个或多个文件对应。如上面所公开的,与一个或多个文件对应的数据对象和元数据可以存储为逻辑树300。因此,逻辑树300的存储可以本地存储在***存储池416中。
在根据一些实施例的进一步操作中,文件***200可以使得在云对象存储库404中存储逻辑树300的数据对象和对应元数据。虽然在一些实施例中逻辑树300可以在迁移到云存储之前首先存储在本地存储池中,但是在其它实施例中,逻辑树300可以在被存储在云对象存储库404中之前不存储在本地存储池中。例如,一些实施例可以在高速缓存中创建逻辑树300的至少一部分,然后将它迁移到云对象存储库404。因此,应当认识到的是,各种实施例都是可能的。
为了将逻辑树300的数据对象和对应元数据存储在云对象存储库404中,云接口设备502可以创建逻辑树300中的每个逻辑块到云对象存储库404中相应的云对象414的映射406。在一些实施例中,DMU 218可以从***存储池416(例如,从本地池的RAIDZ或RAIDZ2)读取数据以将数据提供给云接口设备502,作为用于创建映射406的基础。在一些实施例中,云接口设备502可以直接或间接地与另一个VDEV 226通信以读取数据作为用于映射406的基础。在一些实施例中,映射406可以将对象直接映射到物理驱动器中表示的块。映射406可以比将文件部分映射到对象更精细;它可以在更低的级别进行映射。相应地,映射406可以是每对象映射406。映射406可以将虚拟存储块映射到云对象存储库404中的对象,使得逻辑树300在云对象存储库404中表示,如逻辑树300A所示。当本地文件***200与云对象存储库404中的数据对象416接口时,逻辑树300A符合本地文件***200能够与之通信的新设备类型。
可以利用对云对象存储库404的每个I/O操作或者仅利用写入操作来更新映射406。在一些实施例中,映射406可以包括索引所有云对象414的对象目录。云对象状态可以保持在索引、表、索引组织的表等等当中,其可以基于每个对象被索引。在一些实施例中,映射406可以包括仅索引云对象414中的一些的对象目录。例如,此类实施例可以仅索引与超级块对应的云对象414。在一些实施例中,可以索引每个对象相对于每个叶子路径的云对象状态。在一些实施例中,对象目录可以通过地址指针来引用云对象414,地址指针可以与对象名称和路径规范对应。在一些实施例中,对象目录可以通过URL来引用云对象414。
在映射406中被索引的云对象状态可以用于路由对象请求。利用索引,云接口设备502可以至少部分地基于超级块来请求云对象。根据第一种方法,此类请求可能需要请求与特定超级块相关联的云对象集合,以便整个逻辑树300由响应于该请求而传送的云对象集合表示。根据第二种方法,此类请求可能需要对与特定超级块相关联的云对象的子集的迭代请求,以便迭代地遍历整个逻辑树300,直到从云对象存储库404读取期望的一个或多个云对象为止。对于某些实施例中,云接口设备502可以至少部分地基于表示各个逻辑树300的云对象的尺寸来选择性地使用这两种方法中的一种。例如,当云对象的尺寸小于聚合尺寸阈值时,云接口设备502可以使用一种方法,并且当云对象的尺寸满足或超过聚合尺寸阈值时,云接口设备502可以过渡到另一种方法。
一些实施例可以采用另一种方法,其中对象目录可以在每个对象的基础上来索引云对象,并且可以用于直接请求云对象而无需在云级别进行树遍历。一些实施例可以保留逻辑树300的元数据的本地快照。此类实施例可以利用本地快照直接或间接地请求云对象。此外,一些实施例可以在对象目录或本地快照中保留逻辑树300A的校验和,该校验和可以用于验证从云数据存储库404检索到的云对象。
因此,文件***200可以维护数据的树并将该树映射到云对象存储库404上。树300的名称空间可以与存储在树300的节点内的元数据对应。文件***200可以继续使用分层树表示,但是将分层树表示映射到云对象存储库中作为存储数据的方式。
再次参考图5,为了实现针对云对象存储库404的I/O操作,云接口设备502可以向云接口守护进程504发送请求。例如,在一些实现方案中,云接口设备502可以通过文件***200的事务对象层和接口层向云接口守护进程504发送请求。云接口设备502发送的请求可以至少部分地基于经由应用202接收的兼容POSIX的请求和/或至少部分地基于由DMU 218(例如,响应于兼容POSIX的请求)创建的I/O请求,云接口设备502可以将这些请求转换成对云接口守护进程504的请求。
在一些实施例中,由云接口设备502发送到云接口守护进程504的请求可以被转化成针对云客户端接口508的取出请求和放置请求。在一些实施例中,由云接口设备502发送的请求可以是取出请求和放置请求;在其它实施例中,云接口守护进程504可以将由云接口设备502发送的请求转化成取出请求和放置请求。在任何情况下,响应于由云接口设备502发送的请求,云接口守护进程504可以经由一个或多个网络上的对象协议与云对象存储库404通信,以执行针对数据对象414的对应I/O操作。
例如,到云对象存储库404的通信可以包括至少部分地基于映射406来指定逻辑树300的数据对象和对应元数据在云对象存储库404中的存储。在一些实施例中,该通信可以例如针对不同的数据类型指定不同的对象尺寸。因此,云接口装备402可以指定某个对象尺寸来存储被识别为具有一定数据类型的某些数据对象,并且可以指定不同的对象尺寸来存储被识别为具有不同数据类型的其它数据对象。
图6图示了根据一些实施例的服务器监视应用的简化框图。在这个具体示例中,监视目标是ZFS存储装备,但是应该理解的是,可以使用具有监视接口的任何硬件部件。当从诸如ZFS集群的数据存储装备622之类的数据存储环境收集信息时,许多***可以使用监视器服务器602来监视在数据存储装备622上/由数据存储装备622执行的操作,以及实时记录在分析数据存储装备622的效率和操作时有用的统计数据和分析信息。监视器服务器602可以将关于数据存储装备622的信息存储在数据储存库626中,并且可以对存储的信息做出决定。在一些实施例中,决定可以是简单的,并且可以包括对存储的数据执行的计算,从中可以导出关于数据存储装备622的附加信息。在一些实施例中,这些计算可以发起附加行为,诸如向用户生成通知、生成IT票证和/或修改监视器***自身的行为。
基于所收集的信息,监视器服务器602可以确定数据存储装备的当前问题并且作为响应而触发适当的动作。例如,如果监视器服务器602确定存储装备集群622-1中的一个或多个目标装备离线,那么监视器服务器602可以生成针对管理计算机***的通知,以及修改存储在监视器服务器602上的管理从该离线的一个或多个目标装备进行数据收集的参数。例如,应用服务器610可以自动降低在该一个或多个目标装备上执行数据收集监视进程的频率,同时增加在该一个或多个目标装备上执行可用性监视进程的频率。因此,本文描述的实施例可以响应于事件通知而操作(该事件通知源自在数据存储装备622上操作的已调度的进程的执行),基于事件类型以“规则”的形式检索一组可执行指令,以及执行这些规则以改变监视器服务器602自身的行为。
监视器服务器602可以在例如Tomcat应用服务器上运行,并且可以包括用于到web层的受管理的***和递送应用模型的信息的逻辑检索/收集。具体而言,监视器服务器610可以包括用于处置来自web应用服务器606的GET请求的模块604。模块604可以是REST服务的一部分,该REST服务在从客户端接收时使用JSON对象进行操作。为了对监视事件进行调度,诸如Quartz作业调度器之类的进程调度器612可以被配置为管理为数据存储装备622执行的一组数据监视进程。进程调度器612可以调度定期的数据收集、一次性数据收集、数据聚合任务,并且可以提供进程完成的通知。
通过进程调度器612调度的进程可以通过多个收集器614访问数据存储装备622。收集器614可以在监视器服务器602上和/或在数据存储装备622中的设备上操作,这取决于收集器类型。收集器可以包括能够访问存储在数据存储装备622中的数据并监视在其上执行的事务的软件进程。在一些实施例中,收集器614可以使用凭证或会话令牌向数据存储装备222进行认证,从目标***检索一个或多个属性,处置由目标***不可用或仅提供部分信息检索导致的任何错误路径,并提供要存储在数据储存库626中的信息。此外,监视器服务器602可以包括SNMP陷阱接收器(trap receiver)628,其监听专用网络以从其它受管理的***接收TRAP信息(SNMPv2/SNMPv3或用于接收警报的一些其它可靠机制(诸如消息队列))。
为了与数据储存库626接口,监视器服务器602还可以包括数据访问对象(DAO)模块624,数据访问对象(DAO)模块624通过提供用于使用JDBC查询来存储数据的Java语义来促进监视器服务器602中的逻辑部件与数据库之间的交互。DAO模块624可以包括用于实现DAO模块624的结构并且管理DAO模块624如何访问客户端的数据储存库626的主库。在一些实施例中,DAO模块624可以提供用于存储对象的经由JDBI的惯用接口。可以使用数据储存库接口和数据储存库数据库实现方案(诸如用于MySQL的JDBC驱动器)从数据储存库626提交或检索对象。
发现模块610可以确定目标主机名是否识别为可操作的存储装备。发现模块610还可以确定所供给的凭证是否有效。发现模块610可以发现用于对等体的第二主机名并核实它是实际的对等体。如果提供了主机和对等体两者,那么发现模块610可以核实节点在其ASN方面相匹配。最重要的是,发现模块610可以从发现的数据存储装备622检索初始集合,并对每个发现的目标配置SNMP。
对于特定于ZFS的实现方案,监视器服务器602可以使用具有对ZFS***库620的访问的ZFS公共库核心618。一些实施例还可以包括SNMP反应性(reactive)部件616,SNMP反应性部件616过滤来自ZFS文件***的SNMP陷阱。反应性部件616可以针对需要更多信息的项开始一次性收集,并且记录具有足以由优化的共享存储器ZFS存储装备(OSM ZFSSA)使用的信息的陷阱的SNMP信息。反应性部件616还可以忽略未知陷阱并且监听用于接收到的陷阱的“进行中”阻塞队列。
当由进程调度器612调度的进程完成时,规则引擎608可以监听进程调度器612以接收事件通知。如下面将更详细描述的,规则引擎680可以基于与完成的事件相关联的类型向数据储存库626查询适用的规则。可以评估这些规则并将其作为新进程提交给进程调度器612。此外,对检索到的规则的评估可以用于更改监视器服务器602对进程进行调度以在具体目标装备上执行以及管理这些进程针对哪些存储装备的方式。
图7图示了根据一些实施例的进程调度器612与规则引擎608之间的交互的图。一些实施例可以在进程调度器612周围提供包装器(SM作业调度器,SMJobScheduler)718,以促进与监视器服务器602的其余部件的交互。当由进程调度器612调度的进程已经完成执行时,进程调度器612可以使用事件接口716向规则引擎608提供通知。例如,进程调度器612可以指示收集器614中具体的一个收集器收集与目标存储装备相关的信息。当进程完成时,事件接口716可以将事件通知712发送到规则引擎608。规则引擎608可以监听事件和/或订阅由事件接口716提供的事件通知。
规则引擎608可以确定与事件通知712相关联的类型。该类型可以是已完成执行并生成事件的收集器614的具体类型。该类型还可以与事件通知712的格式相关联。于此,由规则引擎608确定的类型在本文可以被称为“事件类型”。基于事件类型710,规则引擎608可以通过DAO模块624向数据储存库626查询适用的规则。数据储存库626可以包括至少两个不同的表:rule_catalog(规则目录)表704和system_rule(***规则)表706。可以在运行时将新规则702添加到数据储存库626中的rule_catalog表704中。当指定***类型的收集器614生成对数据储存库626的查询时,新规则702可以从rule_catalog表704移动到system_rule表706。数据储存库626可以响应于该查询而将一个或多个可执行规则708返回到规则引擎608。
规则引擎608可以通过评估规则的条件来执行,以生成可以提交给进程调度器612的新进程714。在一些实施例中,规则可以包括被评估的条件集合,该条件集合与进程调度器612响应于被评估的条件的结果将要采取的动作集合耦合。一些规则还可以向储存库626查询具体信息,诸如已经被改变、收集和/或聚合的信息。一些规则可以包括可以将其与从数据储存库628检索到的数据进行比较的阈值。规则引擎608可以基于被评估的条件而采取的动作可以包括向管理员计算机***发送通知。动作还可以包括将新进程发送到进程调度器612以供执行。其它动作可以包括调整由进程调度器612执行进程的频率。动作还可以包括改变用于进程调度器612的配置文件中的特性,诸如调整可以在一个时间提交给进程调度器612的活动进程的最大数量(例如,15个进程),以及调整可以等待被提交给进程调度器612的新规则进程的最大数量(例如,1000个进程)。这些动作可以用于规定从规则引擎608到进程调度器612的进程提交的限制。示例规则集合在下面列出在表1中。
表1
图8图示了根据一些实施例的调整数据存储装备池中的监视参数的方法的流程图800。该方法可以包括从监视***的进程调度器接收事件通知(802)。事件通知可以由规则引擎接收,并且可以响应于由进程调度器管理的进程的完成而被接收。如上所述,事件可以与从数据存储装备池中的目标存储装备收集信息的收集器进程的完成相关联。事件通知可以包括从目标数据存储装备检索到的信息。数据存储装备可以是使用ZFS文件***的云存储网络或本地存储网络的一部分。
该方法还可以包括确定事件通知的事件类型(804)。事件类型可以与完成其操作从而触发事件通知的收集器的类型相关联。例如,一些事件类型可以包括可用性、容量、硬件、警报、服务、聚合、问题等。通知也可以由周期性地生成对监视***自身的状态检查的定时器生成。例如,事件类型可以指示应当执行对监视服务器的数据储存库的容量的周期性检查。在一些实施例中,事件类型可以由从进程调度器接收的事件通知的一部分指定。换句话说,该类型可以基于凭借存储在事件通知中的信息类型和/或事件的源来确定。规则引擎可以存储已知事件类型的列表,并且可以从已知事件类型的列表中选择最适合接收到的事件通知的事件类型。
该方法还可以包括接收特定于事件通知的事件类型的一个或多个可执行规则(806)。规则引擎可以向数据存储储存库中的一个或多个表提交查询以检索特定于所确定的事件类型的规则。如上所述,规则可以包括与事件相关的对应动作和可执行条件。
该方法还可以包括执行该一个或多个规则,使得监视***的监视参数被调整(808)。规则引擎可以评估规则中的条件语句并基于条件语句评估的结果生成动作。在一些实施例中,这些动作可以组合在发送到进程调度器的集合中。这些动作可以包括调整监视***的监视参数,诸如在目标存储设备上执行特定收集器的频率。在一些实施例中,可以调整监视参数使得监视服务器以不同的存储装备为目标和/或调整存储在监视服务器的数据储存库中的来自目标装备的信息量。
图7-8描述了让规则引擎评估事件通知以调整监视服务器的参数的一般框架。以下讨论提供了可以由规则引擎处理的具体事件和动作的多个说明性示例。图9-10图示了分析达到最大阈值的目标存储装备的存储容量的规则和事件组合。这个方法可以包括接收聚合-容量收集器进程已经完成执行的通知(1002)。事件通知906可以指示已经完成执行的具体收集器连同该收集器在其上执行的目标存储装备。事件通知906还可以包括由收集器从目标存储装备检索到的信息,诸如正在被使用的目标存储装备的存储容量的百分比。
基于事件通知的聚合-容量类型,这个方法可以检索包括针对聚合-容量类型的阈值的规则(1004)。规则904可以包括阈值,作为可以由规则引擎608执行的条件语句的一部分。例如,该规则可以包括针对临界容量事件(7%空闲)、主要容量事件(30%空闲)、次要容量事件(90%空闲)等的阈值。规则904可以由规则引擎608执行,规则引擎608可以评估规则中的条件语句,诸如“Target_Capacity>Critical_Threshold?(目标容量>临界容量?)”和“Target_Capacity>Major_Threshold?(目标容量>主要容量?)”如果没有阈值被违反(1006),那么规则引擎不需要采取任何动作(1008)。
另一方面,如果违反规则中的任何阈值,那么规则引擎可以响应于每个阈值违反而发起一个或多个动作。在一些实施例中,规则引擎608可以发送目标存储装备的容量处于风险中的通知(1010)。在一些实施例中,规则引擎608还可以调整聚合-容量收集器的频率(1012)。例如,规则引擎608可以向进程调度器612发送指令动作908,以调整聚合-容量收集器在特定目标装备上操作的频率。当容量达到目标装备的临界级别时,监视服务器可以增加检查目标装备的容量的频率。相反,当容量低于“次要”阈值时,监视服务器可以降低它检查目标装备的容量的频率。
要注意的是,在这个示例中,由规则引擎采取的动作包括内部动作和外部动作两者。外部动作将通知发送到其它***,诸如管理员计算机***,从而通知外部***在监视服务器内发生了事件。内部动作调整监视服务器自身的操作。因此,监视服务器可以使用规则引擎608和事件接口716在运行时做出智能决定以微调监视服务器的操作。规则引擎608与进程调度器612之间的这种交互表示为改进监视器服务器自身的功能而开发的新技术。以前,监视服务器必须被设计为适用于任何数据存储装备集合的通用型(one-size-fits-all)解决方案。监视服务器被限于仅记录从目标存储装备周期性检索到的数据。因为监视器服务器操作不是针对具体目标存储装备环境定制的,所以监视服务器的操作未被优化,并且如果它运行效率低,那么甚至可能不利地影响整个存储***的操作。通过允许将定制规则提交给数据储存库626,这些实施例允许监视器服务器根据具体数据存储装备集合的需要来定制该监视器服务器的操作。通过修改监视器服务器在运行时在存储装备上执行收集器进程的方式,可以通过仅在必要时执行收集器来显著减少网络带宽。此外,通过基于目标装备的状态调整收集器操作,可以显著优化存储在存储器中的收集器数据以使用更少的存储器资源。因此,本文描述的监视器服务器的实施例解决了在本公开之前的现有监视服务器中存在的具体技术问题。
图11-12图示了根据一些实施例的用于响应目标装备中的可用性事件的事件和规则组合。这个方法可以包括接收可用性收集器进程完成的通知(1202)。事件通知1106可以包括可用性收集器类型,以及由该可用性收集器收集的信息。例如,可用性收集器可以包括目标数据存储装备的状态,其指示目标数据存储装备的可用性,诸如在线、离线、故障、可用、不可用、正常等。事件通知还可以包括指示可用性性级别的定量信息,诸如带宽可用性。
该方法还可以包括基于可用性事件类型检索规则(1204)。可用性事件类型1102可以被用于检索规则1104,规则1104包括基于不同可用性状态的频率设置。规则引擎608可以针对可用性类型中的每个可用性状态执行该规则的条件语句。例如,一个条件语句可以确定目标是否可用(1206)。如果目标数据存储装备可用,那么规则引擎608不需要采取任何具体动作(1208)。
在任何目标装备可用的情况下,该方法可以包括调整不可用的目标装备上的数据收集进程的频率。具体而言,可以生成动作1108,该动作降低在不可用目标装备上执行数据收集进程的频率(1210)。如果目标装备不可用,那么可以通过允许监视器服务器减少从不可用目标收集数据的次数来保留大量带宽和存储资源。通常,不可用目标在该目标不可用的时间间隔期间不会看到存储在该目标上的内容的显著变化。类似地,可以生成动作1110,该动作增加在不可用目标装备上执行可用性收集进程的频率(1212)。当目标装备不可用时,向监视器服务器提供最新的可用性状态信息可能变得更加重要。通过在不可用的目标装备上更经常地运行可用性收集器,监视器服务器将能够非常快速地确定目标装备何时变得可用。一旦目标装备变得可用,就可以执行规则1104的反转,其中可用性收集器的频率在频率上降低,并且收集/容量/聚合收集器可以增加回到正常级别。
图13-14图示了根据一些实施例的用于处置有界进程的规则和事件组合。在目标数据装备上执行的许多进程可能使用不可靠的通信协议,诸如SNMP。有界进程在理想情况下可以与发送到监视服务器的进程开始指示以及发送到监视服务器的进程结束指示相关联。由于这种通信协议的不可靠性,监视服务器可能没有恰当记录来自有界进程的开始指示和/或结束指示。这导致数据储存库626中的不完整记录,这些不完整记录将示出没有对应的开始/结束的进程,这可以例如使得看起来好像进程开始了但从未完成。但是,即使监视器服务器数据储存库626可能具有进程开始/结束指示的不完整记录,目标装备自身也将总是维护这种指示的完整记录。因此,监视器服务器可以通过借由收集器614具体从存储装备查询该信息来使监视器服务器的进程开始/结束的记录完整。换句话说,这个方法允许监视器服务器检查其自己收集的数据的完整性,并在发现数据不完整的情况下修复该数据。
这个方法可以包括接收有界进程已经开始或结束的指示(1402)。事件通知1306可以包括或者进程开始或者进程结束的指示。例如,收集器614中的一个收集器可以被配置为在目标存储装备上运行,直到进程结束。一旦该进程结束,收集器就可以向进程调度器612报告,进程调度器612进而可以生成用于规则引擎608的事件1306。该方法还可以包括基于有界进程事件类型来检索规则(1404)。有界进程事件类型1302可以被数据储存库626用来检索有界进程规则1304。有界进程规则1304可以包括从数据储存库626为目标装备检索开始时间和结束时间的指令。
该方法还可以包括执行这些条件语句以定位没有对应的进程结束的任何进程开始(1406)。如果没有找到不匹配的开始/结束,那么规则引擎608不需要采取任何动作(1408)。可替代地,如果找到不匹配的开始/结束,那么可以生成动作以使数据储存库626中的开始/结束记录完整(1410)。例如,事件可以包括将进程1308添加到进程调度器612,进程1308使得收集器614中的一个收集器收集来自目标数据存储装备的开始/结束通知。
图15-16图示了根据一些实施例的用于监视监视器服务器自身的状态的规则和事件组合。在这种情况下,监视器服务器可以监视其性能并相应地采取动作。该方法可以包括接收指示附加收集器信息存储在监视器数据库中的通知(1602)。当聚合-容量收集器进程完成时,可以生成事件通知1506,从而指示该进程已经将关于目标存储装备的新信息存储在数据储存库626中。当新数据存储在数据储存库626中时,监视器服务器可以确定数据储存库626自身的容量是否违反内部容量阈值。其它实施例还可以在监视器数据库不可用/故障时、在监视器服务器的CPU耗尽循环时、在监视器服务器的内部存储器即将用尽时、在监视器服务器与目标数据库中的一个或多个之间的网络连接断开时、在监视器服务器的CPU用尽存储器时等等生成事件。这些事件类型中的每一个都可以触发补救每个特定事件的动作。
例如,该方法可以包括基于监视器健康状态(SOH)类型来检索规则(1604)。监视器SOH类型1502可以检索测试监视器服务器自身的容量和操作的一个或多个规则1504。例如,规则1504可以包括数据库容量阈值、CPU循环阈值、CPU存储器阈值、网络/数据库状态要求、带宽阈值等,这些可以用于具体地评估监视器服务器的健康状态。继续数据储存库626的容量的示例,该方法可以执行规则中的条件语句以确定数据储存库626是否超过容量阈值(1606)。如果没有违反阈值,那么监视器服务器不需要采取任何动作(1608)。
替代地,如果超过了数据储存库626的容量阈值,那么规则引擎可以生成可以补救该情况的动作,诸如调整监视器使用的收集频率(1610)。例如,如果监视器服务器不能与目标存储装备中的一个或多个连接,那么可以向进程调度器612提交动作,该动作大大降低发起收集进程的频率。一些实施例实际上可以将频率降低到0以基本上关闭收集器,直到可以纠正监视器服务器的问题。例如,可以关闭聚合-容量收集器,直到恢复网络连接、直到容量被添加到数据储存库626、或者直到进程调度器612的吞吐量增加。
图17图示了根据一些实施例的用于在不同监视器服务器之间共享规则的***的框图。如上所述,本文描述的实施例的一个优点是能够在运行时添加新规则以调整监视器服务器的操作从而确保监视器服务器高效地操作,而不管监视器服务器监视的数据存储装备的类型如何。在这个实施例中,第一监视器服务器602-1可以接收新规则1710,新规则1710在内部调整第一监视器服务器602-1的操作以针对第一监视器服务器602-1的对应的数据存储装备池高效地工作。例如,用于聚合-容量收集器的最优频率可以平衡数据收集需求与监视器服务器可用的性能和存储。新规则1710连同对应数据存储装备的特点然后可以被发送到中央服务器1702。
中央服务器1702可以将新规则1710存储在服务器规则储存库1704的rule_catalog表1706中。中央服务器1702可以由监视服务器硬件和/或软件的制造商操作。例如,中央服务器1702和第一监视器服务器602-1可以由操作和/或提供,而数据存储装备可以代表的客户***作。
中央服务器1702可以在服务器规则储存库1704中搜索正在监视与第一监视器服务器602-1类似的存储装备的其它监视器服务器。当中央服务器1702识别出具有类似的被监视存储装备的集合的第二监视器服务器602-2时,中央服务器1702可以将新规则1710发送到第二监视器服务器602-2,其中新规则1710可以由第二监视器服务器602-2的规则引擎执行。这个过程允许将为单个监视器服务器生成的规则分发到整个客户群中的类似监视器服务器。这也允许快速分发新技术,从而在客户已经获得使用监视器服务器的好处之后可以执行技术操作的微调。该***还允许在一些***上以实验方式采用新规则,然后在发现这些新规则有效地提高了监视器服务器的效率时将这些新规则广泛分发。
应当认识到的是,图8、10、12、14和16中所示的具体步骤提供了根据本发明各种实施例的使用事件和规则引擎来控制监视器服务器的行为的特定方法。根据替代实施例,还可以执行其它步骤序列。例如,本发明的替代实施例可以以不同的次序执行上面概述的步骤。而且,图8、10、12、14和16中所示的各个步骤可以包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种次序执行。此外,取决于特定应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变化、修改和替代方案。例如,监视器应用/服务器可以执行针对监视器自身和/或受管理的装备两者所允许的任何管理操作。***还可以基于以临界方式被违反的规则将存储资源(诸如文件***)从一个装备移动到另一个装备。例如,网络接口可能由于硬件问题而出故障,并且装备上存在关键文件***。上述这个***可以将这个文件***移动到可以提供它的另一个位置。根据本说明书,本领域技术人员将清楚其它示例和实现方案。
本文描述的每个方法可以由计算机***实现。这些方法的每个步骤可以由计算机***自动执行,和/或可以提供有涉及用户的输入/输出。例如,用户可以为方法中的每个步骤提供输入,并且这些输入中的每一个可以响应于请求这种输入的具体输出,其中输出由计算机***生成。每个输入可以响应于对应的请求输出而被接收。此外,可以从用户、作为数据流从另一个计算机***、从存储器位置检索、通过网络检索、从web服务请求等来接收输入。同样,输出可以提供给用户、作为数据流提供给另一个计算机***、保存在存储器位置中、通过网络发送、提供给web服务等。简而言之,本文描述的方法的每个步骤可以由计算机***执行,并且可以涉及到计算机***和来自计算机***的任何数量的输入、输出和/或请求,这些可以涉及或可以不涉及用户。可以说不涉及用户的那些步骤是由计算机***自动执行的而无需人为干预。因此,根据本公开将理解的是,可以更改本文描述的每个方法的每个步骤以包括到用户和来自用户的输入和输出,或者可以由计算机***自动完成而无需人为干预,其中任何确定由处理器产生。此外,本文描述的每个方法的一些实施例可以被实现为存储在有形的非瞬态存储介质上的指令集合,以形成有形的软件产品。
图18描绘了用于实现实施例之一的分布式***1800的简化图。在所示实施例中,分布式***1800包括一个或多个客户端计算设备1802、1804、1806和1808,每个客户端计算设备可以被配置为通过一个或多个网络1810执行和操作客户端应用,诸如web浏览器、专有客户端(例如,Oracle Forms)等。服务器1812可以经由网络1810与远程客户端计算设备1802、1804、1806和1808通信地耦合。
在各种实施例中,服务器1812可以适于运行由***的一个或多个部件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务被提供,或者在软件即服务(SaaS)模型下被提供给客户端计算设备1802、1804、1806和/或1808的用户。操作客户端计算设备1802、1804、1806和/或1808的用户又可以利用一个或多个客户端应用来与服务器1812交互以利用由这些部件提供的服务。
在图中绘出的配置中,***1800的软件部件1818、1820和1822被示出为在服务器1812上实现。在其它实施例中,***1800的一个或多个部件和/或由这些部件提供的服务也可以由客户端计算设备1802、1804、1806和/或1808中的一个或多个来实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些部件提供的服务。这些部件可以用硬件、固件、软件或其组合来实现。应该认识到的是,各种不同的***配置是可能的,其可能与分布式***1800不同。图中所示的实施例因此是用于实现实施例***的分布式***的一个示例,而不是要进行限制。
客户端计算设备1802、1804、1806和/或1808可以是便携式手持设备(例如,蜂窝电话、计算平板电脑、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如Microsoft Windows和/或各种移动操作***(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)的软件,并且启用互联网、电子邮件、短消息服务(SMS)、或其它通信协议。客户端计算设备可以是通用个人计算机,作为示例,包括运行各种版本的MicrosoftApple和/或Linux操作***的个人计算机和/或膝上型计算机。客户端计算设备可以是运行任何各种可商业获得的或类UNIX操作***(包括但不限于各种GNU/Linux操作***,诸如例如Google Chrome OS)的工作站计算机。替代地或附加地,客户端计算设备1802、1804、1806和1808可以是能够通过(一个或多个)网络1810通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏***(例如,具有或不具有手势输入设备的微软Xbox游戏控制台)和/或个人消息传送设备。
虽然示例性分布式***1800被示出为具有四个客户端计算设备,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与服务器1812交互。
分布式***1800中的(一个或多个)网络1810可以是本领域技术人员熟悉的、可以利用任何各种可商业获得的协议支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/网际协议)、SNA(***网络体系架构)、IPX(互联网报文交换)、AppleTalk,等等。仅仅作为示例,(一个或多个)网络1810可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络1810可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电子电气学会(IEEE)802.11协议套件、和/或任何其它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
服务器1812可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。在各种实施例中,服务器1812可以适于运行在前述公开中所描述的一个或多个服务或软件应用。例如,服务器1812可以与用于执行以上根据本公开的实施例描述的处理的服务器对应。
服务器1812可以运行包括以上讨论的操作***当中任意一种的操作***,以及任何可商业获得的服务器操作***。服务器1812还可以运行任何各种附加的服务器应用和/或中间层应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器,等等。示例性数据库服务器包括但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等可商业获得的那些数据库服务器。
在一些实现方案中,服务器1812可以包括一个或多个应用,以分析和整合从客户端计算设备1802、1804、1806和1808的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括,但不限于,馈送、更新或者从一个或多个第三方信息源接收到的实时更新和连续数据流,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器1812还可以包括一个或多个应用,以经由客户端计算设备1802、1804、1806和1808的一个或多个显示设备显示数据馈送和/或实时事件。
分布式***1800还可以包括一个或多个数据库1814和1816。数据库1814和1816可以驻留在各种位置中。作为示例,数据库1814和1816中的一个或多个可以驻留在服务器1812本地的(和/或驻留在服务器1812中的)非瞬态存储介质上。替代地,数据库1814和1816可以远离服务器1812,并且经由基于网络的连接或专用的连接与服务器1812通信。在一组实施例中,数据库1814和1816可以驻留在本领域技术人员熟悉的存储区域网络(SAN)中。类似地,用于执行服务器1812所具有的功能的任何必要的文件都可以适当地本地存储在服务器1812上和/或远程存储。在一组实施例中,数据库1814和1816可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图19是根据本公开的实施例的***环境1900的一个或多个部件的简化框图,通过该***环境1900,由实施例***的一个或多个部件提供的服务可以作为云服务提供。在所示实施例中,***环境1900包括可以由用户使用以与提供云服务的云基础设施***1902交互的一个或多个客户端计算设备1904、1906和1908。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,Oracle Forms)或某种其它应用,这些应用可以由客户端计算设备的用户用来与云基础设施***1902交互以使用由云基础设施***1902提供的服务。
应该认识到的是,图中描绘的云基础设施***1902可以具有除了所描绘的那些之外的其它部件。另外,图中所示的实施例仅是可以结合本发明的实施例的云基础设施***的一个示例。在一些其它实施例中,云基础设施***1902可以具有比图中所示更多或更少的部件、可以组合两个或更多个部件、或者可以具有不同的部件配置或布置。
客户端计算设备1904、1906和1908可以是与上面针对1802、1804、1806和1808所描述的设备类似的设备。
虽然示例性***环境1900被示出具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等的其它设备可以与云基础设施***1902交互。
(一个或多个)网络1910可以促进客户端1904、1906和1908与云基础设施***1902之间的数据通信和交换。每个网络可以是本领域技术人员所熟悉的可以使用各种商业上可获得的协议(包括上面针对(一个或多个)网络1810所描述的那些协议)中的任何一种支持数据通信的任何类型的网络。
云基础设施***1902可以包括一个或多个计算机和/或服务器,其可以包括上面针对服务器1812所描述的那些计算机和/或服务器。
在某些实施例中,由云基础设施***提供的服务可以包括按需对云基础设施***的用户可用的许多服务,诸如在线数据存储和备份解决方案、基于Web的电子邮件服务、被托管的办公室(office)套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施***提供的服务可以在运行时扩展以满足云基础设施***的用户的需要。由云基础设施***提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,从云服务提供商的***经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的***的服务器和***与客户自己的本地服务器和***不同。例如,云服务提供商的***可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。
在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、被托管的数据库、被托管的Web服务器、软件应用或由云供应商向用户提供的其它服务的受保护的计算机网络访问,或者如本领域中另外已知的那样。例如,服务可以包括通过互联网对云上的远程存储装置进行密码保护的访问。作为另一个示例,服务可以包括基于Web服务的被托管的关系数据库和脚本语言中间件引擎,以供联网的开发人员私有使用。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施***1902可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式递送给客户的应用、中间件和数据库服务产品的套件。这种云基础设施***的示例是由本受让人提供的Oracle公共云。
在各种实施例中,云基础设施***1902可以适于自动供应、管理和跟踪客户对由云基础设施***1902供给的服务的订阅。云基础设施***1902可以经由不同的部署模型来提供云服务。例如,可以依据公共云模型提供服务,其中云基础设施***1902被销售云服务的组织拥有(例如,被Oracle拥有),并且服务对一般公众或不同行业的企业可用。作为另一个示例,可以依据私有云模型来提供服务,其中云基础设施***1902仅针对单个组织操作,并且可以为该组织内的一个或多个实体提供服务。还可以依据社区云模型来提供云服务,其中云基础设施***1902和由云基础设施***1902提供的服务由相关社区中的若干组织共享。云服务还可以依据混合云模型被提供,该混合云模型是两个或更多个不同模型的组合。
在一些实施例中,由云基础设施***1902提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别或包括混合服务的其它服务类别下提供的一个或多个服务。客户经由订阅订单可以订购由云基础设施***1902提供的一个或多个服务。云基础设施***1902然后执行处理以提供客户的订阅订单中的服务。
在一些实施例中,由云基础设施***1902提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施***经由SaaS平台提供。SaaS平台可以被配置为提供落入SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和递送按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施***上执行的应用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供销售绩效管理、企业集成和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以由云基础设施***经由PaaS平台提供。PaaS平台可以被配置为提供落入PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用以及充分利用平台提供的共享服务来构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获取由云基础架构***提供的PaaS服务,而无需客户购买单独的许可和支持。平台服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施***支持的编程语言和工具,并且还控制所部署的服务。在一些实施例中,由云基础设施***提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle融合中间件服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,该模型使得组织能够汇集数据库资源并且以数据库云的形式向客户供应数据库即服务。在云基础设施***中,中间件云服务可以为客户提供开发和部署各种业务应用的平台,并且Java云服务可以为客户提供部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施***中的IaaS平台提供。基础设施服务促进底层计算资源(诸如存储装置、网络和其它基础计算资源)的管理和控制,以供客户利用由SaaS平台和PaaS平台提供的服务。
在某些实施例中,云基础设施***1902还可以包括基础设施资源1930,用于向云基础设施***的客户提供用于提供各种服务的资源。在一个实施例中,基础设施资源1930可以包括预先集成和优化的硬件(诸如服务器、存储装置和联网资源)的组合,以执行由PaaS平台和SaaS平台提供的服务。
在一些实施例中,云基础设施***1902中的资源可以由多个用户共享并且根据需要在运行时重新分配。此外,可以将资源分配给在不同时区的用户。例如,云基础设施***1930可以使在第一时区中的第一组用户能够在指定的小时数内利用云基础设施***的资源,并且然后使相同资源能够被重新分配给位于不同时区的另一组用户,从而使资源的利用率最大化。
在某些实施例中,可以提供由云基础设施***1902的不同部件或模块以及由云基础设施***1902提供的服务共享的多个内部共享服务1932。这些内部共享服务可以包括但不限于:安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些实施例中,云基础设施***1902可以提供云基础设施***中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施***1902接收到的客户订阅等的能力。
在一个实施例中,如图中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块1920、订单编排模块1922、订单供应模块1924、订单管理和监视模块1926,以及身份管理模块1928。这些模块可以包括一个或多个计算机和/或服务器或者使用一个或多个计算机和/或服务器来提供,这些计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
在示例性操作1934中,使用客户端设备(诸如客户端设备1904、1906或1908)的客户可以通过请求由云基础设施***1902提供的一个或多个服务并且下订阅由云基础设施***1902供应的一个或多个服务来的订单来与云基础设施***1902交互。在某些实施例中,客户可以访问云用户界面(UI)(云UI 1912、云UI 1914和/或云UI 1916)并经由这些UI下订阅订单。云基础设施***1902响应于客户下订单而接收到的订单信息可以包括识别客户以及客户想要订阅的云基础设施***1902供应的一个或多个服务的信息。
在客户下订单之后,经由云UI 1912、1914和/或1916接收订单信息。
在操作1936处,订单存储在订单数据库1918中。订单数据库1918可以是由云基础设施***1918操作和与其它***元件一起操作的若干数据库之一。
在操作1938处,订单信息被转发到订单管理模块1920。在一些情况下,订单管理模块1920可以被配置为执行与订单相关的计费和记账功能,诸如验证订单、以及在验证后预订订单。
在操作1940处,将关于订单的信息传送到订单编排模块1922。订单编排模块1922可以利用订单信息为客户下的订单编排服务和资源的供应。在一些情况下,订单编排模块1922可以使用订单供应模块1924的服务来编排资源的供应以支持所订阅的服务。
在某些实施例中,订单编排模块1922使得能够管理与每个订单相关联的业务过程并应用业务逻辑来确定订单是否应该进行到供应。在操作1942处,在接收到新订阅的订单时,订单编排模块1922向订单供应模块1924发送分配资源并配置履行订阅订单所需的那些资源的请求。订单供应模块1924使得能够为客户订购的服务分配资源。订单供应模块1924提供在由云基础设施***1900提供的云服务和用于供应用于提供所请求的服务的资源的物理实现层之间的抽象层。因此,订单编排模块1922可以与实现细节(诸如服务和资源是否实际上即时供应或预先供应并仅在请求后才分配/指派)隔离。
在操作1944处,一旦供应了服务和资源,就可以通过云基础设施***1902的订单供应模块1924向客户端设备1904、1906和/或1908上的客户发送所提供的服务的通知。
在操作1946处,订单管理和监视模块1926可以管理和跟踪客户的订阅订单。在一些情况下,订单管理和监视模块1926可以被配置为收集订阅订单中的服务的使用统计信息,诸如,所使用的存储量、传输的数据量、用户的数量,以及***运行时间量和***停机时间量。
在某些实施例中,云基础设施***1900可以包括身份管理模块1928。身份管理模块1928可以被配置为提供身份服务,诸如云基础设施***1900中的访问管理和授权服务。在一些实施例中,身份管理模块1928可以控制关于希望利用由云基础设施***1902提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息以及描述这些客户被授权相对于各种***资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块1928还可以包括对关于每个客户的描述性信息以及关于如何和由谁来访问和修改这些描述性信息的管理。
图20示出了其中可以实现本发明的各种实施例的示例性计算机***2000。***2000可以用于实现上述任何计算机***。如图所示,计算机***2000包括经由总线子***2002与多个***子***通信的处理单元2004。这些***子***可以包括处理加速单元2006、I/O子***2008、存储子***2018和通信子***2024。存储子***2018包括有形计算机可读存储介质2022和***存储器2010。
总线子***2002提供用于让计算机***2000的各种部件和子***按意图彼此通信的机制。虽然总线子***2002被示意性地示出为单条总线,但是总线子***的替代实施例可以利用多条总线。总线子***2002可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、***总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和***部件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元2004控制计算机***2000的操作。一个或多个处理器可以被包括在处理单元2004中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元2004可以被实现为一个或多个独立的处理单元2032和/或2034,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元2004也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例中,处理单元2004可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器2004中和/或存储子***2018中。通过适当的编程,(一个或多个)处理器2004可以提供上述各种功能。计算机***2000可以附加地包括处理加速单元2006,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子***2008可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别***的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的Microsoft运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如的Microsoft360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别***(例如,导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子***、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子***可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机***2000向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航***、绘图仪、语音输出设备,以及调制解调器。
计算机***2000可以包括包含软件元件、被示为当前位于***存储器2010中的存储子***2018。***存储器2010可以存储可加载并且可在处理单元2004上执行的程序指令,以及在这些程序的执行期间所产生的数据。
取决于计算机***2000的配置和类型,***存储器2010可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元2004立即访问和/或目前正被处理单元2004操作和执行的数据和/或程序模块。在一些实现方案中,***存储器2010可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现方案中,诸如包含有助于在启动期间在计算机***2000的元件之间传送信息的基本例程的基本输入/输出***(BIOS),通常可以被存储在ROM中。作为示例,但不是限制,***存储器2010也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理***(RDBMS)等的应用程序2012,程序数据2014,以及操作***2016。作为示例,操作***2016可以包括各种版本的MicrosoftApple和/或Linux操作***、各种可商业获得的或类UNIX操作***(包括但不限于各种GNU/Linux操作***、Google操作***等)和/或诸如iOS、Phone、OS、10OS和OS操作***的移动操作***。
存储子***2018也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子***2018中。这些软件模块或指令可以被处理单元2004执行。存储子***2018也可以提供用于存储根据本发明被使用的数据的储存库。
存储子***2000也可以包括可被进一步连接到计算机可读存储介质2022的计算机可读存储介质读取器2020。与***存储器2010一起并且,可选地,与其相结合,计算机可读存储介质2022可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质2022也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。这也可以包括非有形的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算***2000访问的任何其它介质。
作为示例,计算机可读存储介质2022可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质2022可以包括,但不限于,驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质2022也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM)、基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机***2000提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子***2024提供到其它计算机***和网络的接口。通信子***2024用作用于从其它***接收数据和从计算机***2000向其它***发送数据的接口。例如,通信子***2024可以使计算机***2000能够经由互联网连接到一个或多个设备。在一些实施例中,通信子***2024可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE 802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位***(GPS)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或者替代,通信子***2024可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子***2024也可以代表可以使用计算机***2000的一个或多个用户接收结构化和/或非结构化数据馈送2026、事件流2028、事件更新2030等形式的输入通信。
作为示例,通信子***2024可被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送2026,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子***2024也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流2028和/或事件更新2030。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子***2024也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送2026、事件流2028、事件更新2030,等等,这一个或多个数据库可以与耦合到计算机***2000的一个或多个流式数据源计算机通信。
计算机***2000可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板电脑、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站、服务器机架、或任何其它数据处理***。
由于计算机和网络的不断变化的本质,在图中绘出的计算机***2000的描述仅仅要作为具体的示例。具有比图中绘出的***更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
在前面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的各种实施例的透彻理解。然而,对于本领域技术人员清楚的是,可以在没有这些具体细节中的一些的情况下实践本发明的实施例。在其它情况下,以框图形式示出了众所周知的结构和设备。
以上描述仅提供示例性实施例,并且不旨在限制本公开的范围、适用性或配置。更确切地说,示例性实施例的前述描述将为本领域技术人员提供用于实现示例性实施例的使能描述。应当理解的是,在不脱离所附权利要求中阐述的本发明的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
在前面的描述中给出了具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实践这些实施例。例如,电路、***、网络、处理和其它部件可能已经以框图形式示出为部件,以免用不必要的细节模糊实施例。在其它情况下,可能已经示出了众所周知的电路、处理、算法、结构和技术而没有不必要的细节,以避免模糊实施例。
而且,要注意的是,各个实施例可能已被描述为处理,该处理被描绘为流程图、数据流程图、结构图或框图。虽然流程图可能已将操作描述为顺序处理,但许多操作可以并行或同时执行。此外,可以重新布置操作的次序。处理在其操作完成时终止,但可以有其它未包含在图中的步骤。处理可以与方法、函数、过程、子例程、子程序等对应。当处理与函数对应时,其终止可以与函数返回到调用函数或主函数对应。
术语“计算机可读介质”包括但不限于便携式或固定存储设备、光学存储设备、无线信道以及能够存储、包含或携带(一个或多个)指令和/或数据的各种其它介质。代码段或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段传递、转发或发送,包括存储器共享、消息传递、令牌传递、网络传输等。
此外,实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当在软件、固件、中间件或微代码中实现时,用于执行必要任务的程序代码或代码段可以存储在机器可读介质中。处理器可以执行必要的任务。
在前述说明书中,参考其具体实施例对本发明的各方面进行了描述,但是本领域技术人员将认识到的是,本发明不限于此。上述公开的各个特征和方面可以被单独使用或联合使用。另外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些环境和应用之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性的而不是限制性的。
此外,出于说明的目的,以特定顺序描述了方法。应该认识到的是,在替代实施例中,可以以与所描述的顺序不同的顺序执行方法。还应该认识到的是,上述方法可以由硬件部件执行,或者可以以机器可执行指令的序列被实施,机器可执行指令可以用于使机器(诸如编程有指令的通用或专用处理器或逻辑电路)执行方法。这些机器可执行指令可以被存储在一个或多个机器可读介质上,诸如CD-ROM或其它类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪存、或适合于存储电子指令的其它类型的机器可读介质。替代地,可以通过硬件和软件的组合来执行方法。
而且,权利要求中的术语具有其普通的普遍含义,除非专利权人另有明确和清晰的定义。如权利要求中所使用的,不定冠词“一”或“一个”在本文中被定义为表示特定物品引入的元件中的一个或多于一个;而定冠词“该”的后续使用并不是要否定那个含义。此外,阐明权利要求中的不同元素的诸如“第一”、“第二”等序数术语的使用并不旨在向已向其应用该序数术语的元素赋予系列中的特定位置、或任何其它顺序项或次序。

Claims (20)

1.一种调整数据存储装备池中的监视参数的方法,所述方法包括:
从监视***的进程调度器接收事件通知,其中所述事件通知包括监视所述数据存储装备池的进程已经完成的指示;
确定所述事件通知的事件类型;
接收特定于所述事件通知的所述事件类型的一个或多个可执行规则,其中所述一个或多个可执行规则调整所述监视***相对于所述数据存储装备池的监视参数;以及
执行所述一个或多个可执行规则,使得所述监视***的所述监视参数被调整。
2.如权利要求1所述的方法,其中所述事件通知包括已完成的具体收集器进程的指示。
3.如权利要求2所述的方法,其中所述事件类型是基于已完成的所述具体收集器进程来确定的。
4.如权利要求1所述的方法,其中所述数据存储装备池包括ZFS存储池。
5.如权利要求1所述的方法,其中所述事件通知从所述进程调度器的事件接口传递到所述监视***的规则引擎。
6.如权利要求1所述的方法,其中所述一个或多个可执行规则包括条件集合。
7.如权利要求6所述的方法,其中所述条件集包括与从所述监视器***的数据储存库检索到的数据进行比较的一个或多个阈值。
8.如权利要求6所述的方法,其中所述一个或多个可执行规则包括响应于对所述条件集合的评估而要由所述监视***的规则引擎执行的一个或多个动作。
9.一种包括指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行包括以下各项的操作:
从监视***的进程调度器接收事件通知,其中所述事件通知包括监视数据存储装备池的进程已经完成的指示;
确定所述事件通知的事件类型;
接收特定于所述事件通知的所述事件类型的一个或多个可执行规则,其中所述一个或多个可执行规则调整所述监视***相对于所述数据存储装备池的监视参数;以及
执行所述一个或多个可执行规则,使得所述监视***的所述监视参数被调整。
10.如权利要求9所述的非瞬态计算机可读介质,其中所述一个或多个可执行规则通过向所述监视***的所述进程调度器提交新的进程来调整所述监视***的所述监视参数。
11.如权利要求9所述的非瞬态计算机可读介质,包括使所述一个或多个处理器执行附加操作的附加指令,所述附加操作包括:
接收新的可执行规则;
将所述新的可执行规则存储在所述监视***的数据储存库的规则目录表中;
接收对与所述新的可执行规则类型相同的可执行规则的请求;以及
响应于接收到对与所述新的可执行规则类型相同的可执行规则的请求,将所述新的可执行规则移动到所述数据储存库的***规则表。
12.如权利要求11所述的非瞬态计算机可读介质,包括使所述一个或多个处理器执行附加操作的附加指令,所述附加操作包括:
将所述新的可执行规则发送到中央服务器,其中所述中央服务器将所述新的可执行规则发送到附加的监视***。
13.如权利要求12所述的非瞬态计算机可读介质,其中所述附加的监视***监视与由所述监视***监视的所述数据存储装备池类似的数据存储装备池。
14.一种***,包括:
一个或多个处理器;以及
包括指令的一个或多个存储器设备,所述指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行包括以下各项的操作:
从监视***的进程调度器接收事件通知,其中所述事件通知包括监视数据存储装备池的进程已经完成的指示;
确定所述事件通知的事件类型;
接收特定于所述事件通知的所述事件类型的一个或多个可执行规则,其中所述一个或多个可执行规则调整所述监视***相对于所述数据存储装备池的监视参数;以及
执行所述一个或多个可执行规则,使得所述监视***的所述监视参数被调整。
15.如权利要求14所述的***,其中所述事件通知通过收集器进程的完成来触发,所述收集器进程聚合所述存储装备池的容量信息。
16.如权利要求15所述的***,其中执行所述一个或多个可执行规则包括:响应于确定所述数据存储装备池中的至少一个数据存储装备的容量超过所述一个或多个可执行规则的阈值,增加所述进程调度器执行聚合所述容量信息的所述收集器进程的频率。
17.如权利要求14所述的***,其中所述事件通知通过收集器进程的完成来触发,所述收集器进程收集所述存储装备池的可用性信息。
18.如权利要求17所述的***,其中执行所述一个或多个可执行规则包括:响应于确定所述数据存储装备池中的至少一个数据存储装备不可用而进行以下操作:
减小所述进程调度器执行数据收集进程的频率;以及
增加所述进程调度器执行收集可用性信息的所述进程的频率。
19.如权利要求14所述的***,其中所述事件通知通过从所述监视***收集健康状况信息的进程的完成来触发。
20.如权利要求19所述的***,其中执行所述一个或多个可执行规则包括:响应于确定所述监视***的健康状况违反一个或多个阈值而进行以下操作:
减小所述监视***从所述数据存储设备池收集数据的频率。
CN201880019373.XA 2017-03-26 2018-03-21 数据存储装备监视器中基于规则的修改 Active CN110447017B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762476854P 2017-03-26 2017-03-26
US62/476,854 2017-03-26
US15/486,568 US11036408B2 (en) 2017-03-26 2017-04-13 Rule-based modifications in a data storage appliance monitor
US15/486,568 2017-04-13
PCT/US2018/023599 WO2018183058A1 (en) 2017-03-26 2018-03-21 Rule-based modifications in a data storage appliance monitor

Publications (2)

Publication Number Publication Date
CN110447017A true CN110447017A (zh) 2019-11-12
CN110447017B CN110447017B (zh) 2023-08-22

Family

ID=63582646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880019373.XA Active CN110447017B (zh) 2017-03-26 2018-03-21 数据存储装备监视器中基于规则的修改

Country Status (4)

Country Link
US (1) US11036408B2 (zh)
EP (1) EP3602305B1 (zh)
CN (1) CN110447017B (zh)
WO (1) WO2018183058A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652330B2 (en) 2017-01-15 2020-05-12 Google Llc Object storage in cloud with reference counting using versions
US10387271B2 (en) * 2017-05-10 2019-08-20 Elastifile Ltd. File system storage in cloud using data and metadata merkle trees
US11436087B2 (en) * 2017-05-31 2022-09-06 Everspin Technologies, Inc. Systems and methods for implementing and managing persistent memory
US10534566B1 (en) * 2017-07-19 2020-01-14 EMC IP Holding Company LLC Cloud storage tiering using application programming interface
US20190155985A1 (en) * 2017-11-22 2019-05-23 Mentor Graphics Corporation Communication protocols design verification through database systems for hardware-based emulation platforms
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US20200125540A1 (en) * 2018-10-19 2020-04-23 Oracle International Corporation Self-correcting pipeline flows for schema drift
US20190097900A1 (en) * 2018-11-26 2019-03-28 Bryan J. Rodriguez Zero-configuration cluster and provisioning pipeline for heterogeneous computing nodes
CN110659178B (zh) * 2019-08-30 2023-03-28 中国人民财产保险股份有限公司 ***运行状态调节方法、装置及存储介质、电子设备
CN110955642A (zh) * 2019-10-12 2020-04-03 平安科技(深圳)有限公司 数据采集优化方法、装置、设备及可读存储介质
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11520907B1 (en) * 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US20210382992A1 (en) * 2019-11-22 2021-12-09 Pure Storage, Inc. Remote Analysis of Potentially Corrupt Data Written to a Storage System
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11740977B2 (en) * 2020-01-27 2023-08-29 EMC IP Holding Company LLC Efficient deduplication based file movement for load balancing in a scaled-out backup system
US11782600B2 (en) * 2020-10-26 2023-10-10 EMC IP Holding Company LLC Storage device health status controller
CN112507013B (zh) * 2021-02-07 2021-07-02 北京工业大数据创新中心有限公司 一种工业设备数据的存储方法及装置
US11537634B2 (en) * 2021-03-30 2022-12-27 Netapp, Inc. Methods for hierarchical propagation in tree structures and devices thereof
US20230367786A1 (en) * 2022-05-11 2023-11-16 Sap Se Unified cloud storage data processing framework for multi-source systems
US11977519B1 (en) * 2022-11-17 2024-05-07 Dell Products L.P. Multistream metadata verification for a deduplication system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390340A (zh) * 2006-02-27 2009-03-18 国际商业机器公司 动态确定一组存储区域网络组件以进行性能监视的装置、***和方法
US7925606B1 (en) * 2007-09-18 2011-04-12 Sprint Communications Company L.P. Monitoring physical locations using rules and events processing
US20140215624A1 (en) * 2005-02-22 2014-07-31 International Business Machines Corporation Method and System for Analysis of Security Events in a Managed Computer Network
US20140344222A1 (en) * 2013-05-16 2014-11-20 Oracle International Corporation Method and apparatus for replication size estimation and progress monitoring
US20150163121A1 (en) * 2013-12-06 2015-06-11 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7159105B2 (en) 2003-06-30 2007-01-02 Intel Corporation Platform-based optimization routines provided by firmware of a computer system
US7448030B2 (en) 2004-03-18 2008-11-04 Intel Corporation Optimized ordering of firmware modules in pre-boot environment
US20060112155A1 (en) 2004-11-24 2006-05-25 Agami Systems, Inc. System and method for managing quality of service for a storage system
US8583908B2 (en) 2007-12-31 2013-11-12 Intel Corporation Enhanced network and local boot of Unified Extensible Firmware Interface images
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8082436B2 (en) 2008-07-08 2011-12-20 Dell Products L.P. Enhanced UEFI framework layer
US8201163B2 (en) 2008-07-16 2012-06-12 Dell Products, Lp Input/output transaction management during platform initiation
US8086838B2 (en) 2008-08-13 2011-12-27 Dell Products L.P. Methods and systems for providing manufacturing mode detection and functionality in a UEFI BIOS
US20100083002A1 (en) 2008-09-30 2010-04-01 Liang Cui Method and System for Secure Booting Unified Extensible Firmware Interface Executables
US8321655B2 (en) 2009-06-13 2012-11-27 Phoenix Technologies Ltd. Execution parallelism in extensible firmware interface compliant systems
CN102236621B (zh) 2010-04-28 2014-12-24 国网浙江富阳市供电公司 计算机接口信息配置***及方法
US9721101B2 (en) 2013-06-24 2017-08-01 Red Hat, Inc. System wide root of trust chaining via signed applications
US8386618B2 (en) 2010-09-24 2013-02-26 Intel Corporation System and method for facilitating wireless communication during a pre-boot phase of a computing device
US10558544B2 (en) * 2011-02-14 2020-02-11 International Business Machines Corporation Multiple modeling paradigm for predictive analytics
US8484631B2 (en) 2011-03-30 2013-07-09 Phoenix Technologies Ltd. Supporting hardware configuration changes in a UEFI firmware component
US8726258B2 (en) 2011-04-14 2014-05-13 Phoenix Technologies Ltd. Supporting multiple hardware components in UEFI
US8745214B2 (en) 2011-06-03 2014-06-03 Oracle International Corporation System and method for collecting request metrics in an application server environment
US9881158B2 (en) 2011-10-21 2018-01-30 Insyde Software Corp. Secure option ROM control
TWI559167B (zh) 2011-11-04 2016-11-21 系微股份有限公司 統一可延伸韌體介面(uefi)相容計算裝置和用於在uefi相容計算裝置中管控一安全啓動之方法
US9069881B2 (en) 2012-01-09 2015-06-30 International Business Machines Corporation Adaptation of probing frequency for resource consumption
TWI464583B (zh) 2012-03-02 2014-12-11 Wistron Corp 取得觸發功能之指令的方法
CN103377063B (zh) 2012-04-28 2016-06-22 国际商业机器公司 从遗留操作***环境恢复到uefi预启动环境的方法和***
US9824226B2 (en) 2012-10-25 2017-11-21 Intel Corporation Anti-theft in firmware
US10572267B2 (en) 2012-11-09 2020-02-25 Insyde Software Corp. Bios user interface control using mobile device
US9594567B2 (en) 2013-02-21 2017-03-14 Dell Products, Lp Configuring a trusted platform module
US9477848B2 (en) 2013-03-15 2016-10-25 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (UEFI)-compliant firmware
KR20140117932A (ko) 2013-03-27 2014-10-08 삼성전자주식회사 Acpi 정보를 제어하는 방법 및 이를 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체
US9870474B2 (en) 2013-04-08 2018-01-16 Insyde Software Corp. Detection of secure variable alteration in a computing device equipped with unified extensible firmware interface (UEFI)-compliant firmware
US11194586B2 (en) 2013-05-01 2021-12-07 Insyde Software Corp. Secure boot override in a computing device equipped with unified-extensible firmware interface (UEFI)-compliant firmware
US9208105B2 (en) 2013-05-30 2015-12-08 Dell Products, Lp System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support
CN105378689B (zh) 2013-06-14 2019-01-18 惠普发展公司,有限责任合伙企业 用于统一可扩展固件接口(uefi)驱动器和协议的方法和装置
TWI492153B (zh) 2013-07-11 2015-07-11 Insyde Software Corp System platform for supporting infrared receiver / transmitter and method of operation thereof
US9411605B2 (en) 2013-08-29 2016-08-09 Samsung Electronics Co., Ltd. Device-less and system agnostic unified extensible firmware interface (UEFI) driver
TWI525542B (zh) 2013-09-09 2016-03-11 Insyde Software Corp Uefi bios開機及更新之系統及方法、記錄媒體及電腦程式產品
TWI480802B (zh) 2013-11-18 2015-04-11 Insyde Software Corp Platform system, universal extension firmware interface Basic input and output system Support for hardware configuration changes, recording media and computer program products
US9842210B2 (en) 2014-01-16 2017-12-12 Raytheon Company Universal extensible firmware interface module identification and analysis
US9575791B2 (en) 2014-02-12 2017-02-21 Dell Products, Lp Unified extensible firmware interface system management mode initialization protections with system management interrupt transfer monitor sandboxing
US9569620B2 (en) 2014-02-18 2017-02-14 Dell Products, Lp Method for processing UEFI protocols and system therefor
JP6054908B2 (ja) 2014-05-22 2016-12-27 レノボ・シンガポール・プライベート・リミテッド 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
US9582393B2 (en) 2014-06-20 2017-02-28 Dell Products, Lp Method to facilitate rapid deployment and rapid redeployment of an information handling system
US9703346B2 (en) 2014-06-23 2017-07-11 Intel Corporation Firmware interface with backup non-volatile memory storage
US9524390B2 (en) 2014-09-09 2016-12-20 Dell Products, Lp Method for authenticating firmware volume and system therefor
US9767118B2 (en) 2014-12-01 2017-09-19 Dell Products, Lp Optimized UEFI file system with network file system compound statements
US9886580B2 (en) 2014-12-23 2018-02-06 Dell Products, L.P. Method for optimizing boot time of an information handling system
US9507581B2 (en) 2015-01-14 2016-11-29 Dell Products Lp Systems and methods of device firmware delivery for pre-boot updates
US20160253501A1 (en) 2015-02-26 2016-09-01 Dell Products, Lp Method for Detecting a Unified Extensible Firmware Interface Protocol Reload Attack and System Therefor
US9639700B2 (en) 2015-03-20 2017-05-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Unified extensible firmware interface (UEFI) database for secure bootstrap of a computer
US9563439B2 (en) 2015-04-27 2017-02-07 Dell Products, L.P. Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
US9830457B2 (en) 2015-05-05 2017-11-28 Dell Products, L.P. Unified extensible firmware interface (UEFI) credential-based access of hardware resources
US9612846B2 (en) 2015-06-10 2017-04-04 Dell Products, L.P. Out-of-band (OOB) real-time inventory and configuration of original equipment manufacturer (OEM) devices using advanced configuration and power interface (ACPI) and unified extensible firmware interface (UEFI) services
US10467015B2 (en) 2015-09-08 2019-11-05 Dell Products, Lp Method for out of band device configuration deployment and system therefor
US10185828B2 (en) 2016-03-15 2019-01-22 Dell Products L.P. Systems and methods using virtual UEFI path for secure firmware handling in multi-tenant or server information handling system environments
US10303487B2 (en) 2016-05-18 2019-05-28 Dell Products, L.P. System and method for booting an information handling system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140215624A1 (en) * 2005-02-22 2014-07-31 International Business Machines Corporation Method and System for Analysis of Security Events in a Managed Computer Network
CN101390340A (zh) * 2006-02-27 2009-03-18 国际商业机器公司 动态确定一组存储区域网络组件以进行性能监视的装置、***和方法
US7925606B1 (en) * 2007-09-18 2011-04-12 Sprint Communications Company L.P. Monitoring physical locations using rules and events processing
US20140344222A1 (en) * 2013-05-16 2014-11-20 Oracle International Corporation Method and apparatus for replication size estimation and progress monitoring
US20150163121A1 (en) * 2013-12-06 2015-06-11 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. ZOLOTOREV等: "Development of a longitudinal density monitor for storage rings", 《PROCEEDINGS OF THE 2003 PARTICLE ACCELERATOR CONFERENCE》, pages 2530 - 2532 *

Also Published As

Publication number Publication date
US11036408B2 (en) 2021-06-15
CN110447017B (zh) 2023-08-22
EP3602305A1 (en) 2020-02-05
EP3602305B1 (en) 2021-11-10
WO2018183058A1 (en) 2018-10-04
US20180275902A1 (en) 2018-09-27

Similar Documents

Publication Publication Date Title
CN110447017A (zh) 数据存储装备监视器中基于规则的修改
CN110100229A (zh) 利用文件***层次结构和语义的低延时直接云访问
US12001688B2 (en) Utilizing data views to optimize secure data access in a storage system
US9251183B2 (en) Managing tenant-specific data sets in a multi-tenant environment
CN105917627A (zh) 云服务定制执行环境
JP2016524255A (ja) シャードのオンライン追加によるナイーブなクライアント側シャーディング
US20210055885A1 (en) Enhanced data access using composite data views
US20230020268A1 (en) Evaluating Recommended Changes To A Storage System
US20230205899A1 (en) Just-in-time data object permission restriction
KR101563292B1 (ko) 가상 세션 관리자를 이용한 클라우드 가상화 시스템 및 방법
Ahmed et al. Big Data Analytics and Cloud Computing: A Beginner's Guide
CN117321581A (zh) 用于加速sql查询的确定性分布式高速缓存的技术
Yan Cloud storage services
KR101428749B1 (ko) 클라우드서비스와 일괄등재프로그램을 이용한 전자문서관리시스템 및 전자문서관리방법
US12020128B2 (en) Multi-party machine learning using a database cleanroom
US20230205900A1 (en) Just-in-time data object permission restriction and action implementation
Diaz et al. Working with NoSQL Alternatives

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
GR01 Patent grant
GR01 Patent grant