用于存储环境中的实时活动跟踪的方法和系统与流程

文档序号:13041716阅读:169来源:国知局
用于存储环境中的实时活动跟踪的方法和系统与流程

本公开涉及存储系统,并且更具体地涉及收集与由存储系统执行的工作负荷相关的信息。



背景技术:

存储服务器是用于代表网络中的一个或多个计算系统(也称为“主机”或主机计算系统)来存储和检索数据的处理系统。存储服务器代表计算机系统操作以存储和管理一组大容量存储设备中的数据,例如基于磁或光存储的盘、固态设备或磁带。一些存储服务器被设计为服务于来自主机的文件级请求,通常如同在网络附接的存储(nas)环境中使用的文件服务器一样。其他存储服务器被设计为服务于来自主机的块级请求,如同在存储区域网络(san)环境中使用的存储控制器。其他存储服务器能够服务于文件级请求和块级请求。

为了评估和改进存储服务器(或存储系统)性能,收集与由存储服务器处理的工作负荷相关的数据是有帮助的。如本文中使用的术语工作负荷表示从存储设备读取信息和向存储设备写入信息的输入/输出(i/o)请求的处理。正在不断努力有效地收集工作负荷信息。



技术实现要素:

本文中公开了用于存储环境中的实时活动跟踪的各种系统、方法和机器可读介质。例如,一方面,一种机器实现的方法包括:打开网络套接字用于侦听来自计算设备的连接请求;通过网络套接字接受来自计算设备的连接请求;基于通过网络套接字与计算设备的网络连接来启用选择性数据收集,其中基于网络连接的选择性数据收集包括获得与多个输入/输出(i/o)请求和响应相关的信息以及用于处理i/o请求的存储服务器的性能信息;对基于网络连接的收集的数据进行子采样;以及通过网络套接字连接,向计算设备发送基于网络连接的收集的数据的至少部分。

根据另一方面,公开了一种其上存储有用于执行方法的指令的非暂态机器可读存储介质,其中指令包括在由至少一个机器执行时引起机器进行以下操作的机器可执行代码:打开网络套接字用于侦听来自计算设备的连接请求;通过网络套接字接受来自计算设备的连接请求;基于通过网络套接字与计算设备的网络连接来启用选择性数据收集,其中基于网络连接的选择性数据收集包括获得与多个输入/输出(i/o)请求和响应相关的信息以及用于处理i/o请求的存储服务器的性能信息;对基于网络连接的收集的数据进行子采样;以及通过网络套接字连接,向计算设备发送基于网络连接的收集的数据的至少部分。

在另一方面,公开了一种系统,其包括:包含机器可读介质的存储器,机器可读介质包括其上存储有指令的机器可执行代码;以及耦合到存储器的处理器模块,处理器模块被配置为执行机器可执行代码以:打开网络套接字用于侦听来自计算设备的连接请求;通过网络套接字接受来自计算设备的连接请求;基于通过网络套接字与计算设备的网络连接来启用选择性数据收集,其中基于网络连接的选择性数据收集包括获得与多个输入/输出(i/o)请求和响应相关的信息以及用于处理i/o请求的存储服务器的性能信息;对基于网络连接的收集的数据进行子采样;以及通过网络套接字连接,向计算设备发送基于网络连接的收集的数据的至少部分。

已经提供了该简要概述,使得可以本公开的本质可以被快速地理解。通过参考以下结合附图对其各个方面的详细描述,可以获得对本公开的更完整的理解。

附图说明

现在将参考各方面的附图来描述前述特征和其他特征。在附图中,相同的部件具有相同的附图标记。所示方面旨在说明而非限制本公开。附图包括以下图:

图1示出了根据本公开的各个方面的所使用的网络存储系统的示例;

图2a是示出根据本公开的各个方面的所使用的存储服务器的示例的框图;

图2b示出了根据本公开的各个方面的所使用的用于生成网络连接的示意图;

图3示出了根据本公开的各个方面的数据收集处理流程;

图4示出了根据本公开的各个方面的所使用的存储操作系统架构的示例;以及

图5是在本公开的各个方面中使用的计算机系统的框图。

具体实施方式

作为初步说明,在本公开中使用的术语“部件”、“模块”、“系统”等旨在表示计算机相关实体,其是可编程指令执行通用处理器、硬件、固件及其组合。例如,部件可以是但不限于在处理器上运行的过程、处理器、对象、可执行文件、执行线程、程序和/或计算机。

作为说明,在服务器上运行的应用和服务器二者都可以是部件。一个或多个部件可以驻留在过程和/或执行线程内,并且部件可以被本地化在一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可以从其上存储有各种数据结构的各种计算机可读介质来执行。部件可以经由本地和/或远程过程进行通信,诸如根据具有一个或多个数据分组的信号(例如,来自与本地系统中的另一部件、分布式系统、和/或经由信号跨网络(诸如因特网)与其他系统交互的一个部件的数据)。

根据所要求保护的主题,计算机可执行部件可以例如存储在非暂态计算机可读介质上,包括但不限于asic(专用集成电路)、cd(光盘)、dvd(数字视频盘)、rom(只读存储器)、软盘、硬盘、eeprom(电可擦除可编程只读存储器)、记忆棒、闪存设备或任何其他非易失性存储器设备、或者任何其他存储设备。

期望活动的存储服务器被尽可能少地中断,使得大多数资源专用于存储服务器的存储和检索信息的主要任务。跟踪和分析存储服务器(或系统)的实时或近实时工作负荷数据也非常有用。因此,本文中公开了一种使存储服务器侧设置和开销最小化并且足够灵活以支持敏捷实时分析和调节的工作负荷捕获机制。

为存储服务器(也可以称为存储控制器)提供了系统和方法,以有效地捕获用于管理控制台或其他客户端的工作负荷数据用于分析。在一些方面,对需要收集的数据进行子采样,这减少了数据收集对诸如网络通信等计算资源的影响。各种其他方面有助于提供高完整性数据跟踪,同时限制对存储服务器资源的资源负担。通常,希望在尝试减少活动的存储服务器的资源(包括存储空间、缓冲区高速缓存、和输入/输出(i/o)带宽)的消耗的同时,具有“永远开启的”工作负荷捕获能力,如下面详细地描述的。

本文中的公开的各方面也可以应用于在多个存储服务器环境中合并工作负荷数据。通常,提供了捕获i/o工作负荷数据并且通过网络连接将其传递到管理控制台或其他感兴趣的客户端设备的系统和方法,其中该网络连接优选地避免了对由存储服务器处理的标准i/o操作的干扰。

系统100:图1是示出其中可以实现本文中介绍的技术的联网系统(或配置)100的示例的框图。关于图1描述的配置用于其中可以实现本文中描述的技术的配置类型的说明。如本领域技术人员将认识到的,其他网络存储配置可以用于实现本文中公开的技术。

如图1的示例所示,网络存储系统100包括多个客户端计算系统(也可以称为客户端或客户端系统)104、存储服务器108、管理控制台110、和连接它们的网络106。存储服务器108耦合到大容量存储子系统105中的多个大容量存储设备(或存储容器)112a-112n(可以称为存储设备或多个存储设备112)。大容量存储设备112中的一些或全部可以是各种类型的存储设备,例如硬盘驱动器(hdd)、闪存、固态驱动器(ssd)、混合存储驱动器(有时称为sshd)、光驱、磁带存储装置等。为了易于描述中,存储设备112在本文中被讨论为磁盘。然而,如本领域技术人员将认识到的,可以使用其他类型的存储设备。

尽管被示出为分布式系统,但是在一些方面,存储服务器108和大容量存储子系统105可以被物理地包含和/或以其他方式位于相同的外壳中。例如,存储服务器108和大容量存储子系统105可以一起作为从本申请的受让人inc.可获得的e系列存储系统产品之一。e系列存储系统产品可以包括一个或多个嵌入式控制器(或存储服务器)和盘。此外,在一些方面,存储系统可以包括可以位于与盘相同的物理外壳内的冗余的控制器对。在另一方面,存储服务器108可以是例如从inc.可获得的fas系列存储服务器产品之一。

存储服务器108还可以经由串行附接的scsi(sas)/光纤信道(fc)协议连接到在外壳内部或外部的其他存储系统和/或盘。用于通信的其他协议也是可能的,包括其组合和/或变体。

客户端计算系统104可以经由网络106连接到存储服务器108,网络106可以是分组交换网络,例如局域网(lan)或广域网(wan)、存储区域网络(san)、融合网络、上述的组合等。本公开的各个方面不限于任何特定的网络类型。

此外,存储服务器108可以经由例如可以是光纤分布式数据接口(fddi)网络的交换结构(未示出)连接到存储设备112。注意,在网络数据存储环境中,可以采用任何其他合适数目的存储服务器和/或大容量存储设备、和/或任何其他合适的网络技术。

存储服务器108可以以传统方式使存储设备112上的某些或全部存储空间可用于客户端系统104。例如,每个存储设备112可以被实现为单个盘、多个盘(例如,独立(或廉价)磁盘冗余阵列(raid)组)或任何其他合适的大容量存储设备,包括其组合和/或变体。信息在大容量存储子系统105中的存储可以被实现为包括物理存储设备112的集合的一个或多个存储卷,物理存储设备112的集合协作以定义卷上的卷块号(vbn)空间的整体逻辑布置。每个逻辑卷虽然不必需但是通常与其在san设备的客户端中或在nas设备的存储服务器108中的自己的文件系统相关联。

逻辑卷/文件系统中的存储设备通常被组织为一个或多个组,其中每个组可以作为raid来操作。大多数raid实现(例如,raid-6级实现)通过在raid组中的给定数目的物理磁盘上的数据“条带”的冗余写入、以及关于条带数据的数据保护信息的适当存储来提高数据存储的可靠性/完整性。

存储服务器108可以接收并且响应于来自由客户端系统104执行的应用103的读取和写入请求(即,i/o请求),其涉及存储或要存储在存储子系统105中的数据。应用103可以是电子邮件应用、数据库应用、管理应用和任何其他应用类型。

虽然存储服务器108在图1中被示出为单个单元,但是它可以具有分布式架构。例如,存储服务器108可以被设计为物理上分离的网络模块(例如,“n刀片”)和盘模块(例如,“d刀片”)(未示出),这两个模块通过物理互连彼此通信。这样的架构允许方便地缩放,例如通过部署都能够通过物理互连来彼此通信的两个或更多个n刀片和d刀片。

存储服务器108可以被配置为实现一个或多个虚拟存储服务器。虚拟存储服务器允许潜在的物理存储控制器资源(例如,虚拟存储服务器之间的处理器和存储器,同时允许每个虚拟存储服务器运行其自己的操作系统)的共享,从而提供功能隔离。通过这种配置,先前在各个服务器上运行的多个服务器操作系统(例如,为了避免干扰)由于由虚拟存储服务器实现提供的功能隔离而能够在同一物理服务器上运行。与为每个客户提供单独的物理服务器相比,这可以是为多个客户提供存储服务器解决方案的一种成本有效的方法。

如图1的示例所示,网络存储系统100还包括管理控制台110,管理控制台110执行一个或多个管理应用111以配置、监测、升级和/或改正存储服务器108和任何系统100的资源的错误。例如,系统管理员可以利用管理应用111来获得有关存储服务器活动的信息。由管理应用111收集的信息可以用于采取纠正式或前摄的(pro-active)动作。

此外,在一个方面,存储服务器108包括被配置为收集与传入i/o请求和其他工作负荷数据相关的信息的数据收集模块107。在一个方面,数据收集模块107与管理应用111接合,并且提供收集的数据用于分析,如本文中所述。

存储控制器:图2a是示出可以实现一个或多个网络存储服务器(例如,图1的存储服务器108)的存储控制器200的架构的示例的框图。如上所述,存储服务器108是提供与大容量存储子系统105的存储设备112处的信息的组织相关的存储服务的处理系统。在说明性方面,存储控制器200包括具有一个或多个处理器的处理器子系统210。存储控制器200还包括存储器220、网络适配器240和存储适配器250,其中的至少一些可以通过互连260(例如,物理互连)来被互连。互连260可以包括例如总线。

互连260是表示通过适当的桥接器、适配器或控制器连接的任何一个或多个单独的物理总线、点到点连接或两者的抽象。因此,互连260可以包括例如系统总线、外围组件互连高速(pcie)形式总线、超传输或工业标准架构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)、iic(12c)总线、或电气和电子工程师协会(ieee)标准1394总线(也称为“火线”)、光纤信道、雷电、和/或任何其他合适形式的物理连接,包括其组合和/或变体。

存储器220示例性地包括由(多个)处理器210以及适配器240和250可寻址用于存储与这里介绍的技术相关联的软件程序代码和数据的存储位置。例如,存储器220的一些存储位置可以用于存储操作系统(也可以称为控制器固件)222,操作系统222优选地实现被称为存储管理器的高级模块,以在逻辑上将数据组织为存储设备112上的命名的卷、目录、文件和/或数据“块”的分层结构。块可以是具有规定长度的字节序列。

另外,存储器可以包括数据收集模块224(类似于图1中的数据收集模块107)和连接模块225。在另一方面,数据收集模块224和连接模块225被集成为单个模块。在一个方面,这些模块包括用于执行本文中描述的系统和方法的各个方面的计算机指令。例如,连接模块225与网络适配器240通信,并且连接模块225管理用于传达i/o(输入/输出)操作或跟踪数据用于评估的一个或多个连接。在一个方面,数据收集模块224可以收集或存储网络启用的收集的数据223和存储器内的收集的数据226。

在一个方面,收集的数据包括i/o统计数据,即例如读取和写入请求的数目、从高速缓存服务的i/o操作的数目、或与存储服务器对i/o操作的处理相关的其他统计信息。在一个方面,收集的数据包括i/o跟踪数据,即例如i/o命令列表,包括源和目标数据或与命令相关的其他元数据,诸如序列标识符。i/o跟踪数据通常不包括i/o命令的数据有效载荷。i/o跟踪数据在本文中也可以称为i/o消息数据。

在一个方面,存储器收集的数据226被收集而不管网络启用的收集的数据,而网络启用的收集数据223在客户端已经建立网络连接时被收集,如下所述。网络启用的收集的数据233可以在通过网络连接被发送之前被存储在存储器缓冲器中,如本文中所述。

在一个方面,数据收集模块224可以利用双缓冲或其他多重缓冲技术来将i/o消息数据存储为网络启用的收集的数据223和存储器内的收集的数据226。还值得注意的是,在一个方面,数据收集模块224可以仅管理一个数据收集,诸如存储器内的收集的数据226,但是仍然使用该数据用于不同的功能,如本文中所述地,例如用于网络启用的收集的数据223和存储器内的收集的数据226。

在一个方面,存储操作系统222、数据收集模块224、连接模块225和收集的数据223、224中的一些或全部可以被存储在长期存储装置中,长期存储装置驻留在存储控制器200(未示出)上或例如在连接的大容量存储子系统105中。然后,例如,这些模块和数据的一部分或全部可以被加载到存储器220中用于由(多个)处理器210操作。

存储操作系统222(其部分通常驻留在存储器中并且由处理元件执行)通过(以及其他功能)调用存储操作以支持由存储服务器108提供的存储服务来在功能上组织存储服务器108。对于本领域技术人员显而易见的是,其他处理和存储器实现(包括各种其他非暂态介质,例如计算机可读介质)可以用于存储和执行与这里介绍的技术有关的程序指令。在一个方面,可以分配存储操作系统222,存储系统的模块在单独的物理资源上运行。

网络适配器240可以包括多个端口,多个端口用于通过点对点链路、广域网、通过公共网络(例如,因特网)实现的虚拟私人网络、或共享的局域网将存储服务器108耦合到一个或多个客户端104、一个或多个管理控制台110或其他存储服务器。端口之一可以用于与管理控制台110通信,用于发送由数据收集模块224收集的数据(在一个方面是网络启用的收集的数据223)。

网络适配器240包括机械部件以及将存储服务器108连接到网络106所需要的电气和信号电路。说明性地,网络106可以被实施为以太网、光纤信道网络或任何其他网络类型。每个客户端104可以通过根据预定义的协议(例如,传输控制协议/因特网协议(tcp/ip))交换数据分组或数据帧来通过网络106与存储服务器108通信。值得注意的是,客户端104可以被直接地耦合到存储服务器108而不必经过网络适配器或网络106。本文中描述的各个方面不限于网络或直接连接。

存储适配器250与存储操作系统222协作以访问由客户端104请求的信息。该信息可以被存储在可写存储介质的任何类型的附接阵列上,例如磁盘或磁带、光盘(例如,cd-rom或dvd)、闪存、ssd、hdd、sshd、ram、微机电、和/或适于存储信息的任何其他类似介质,包括数据和数据保护信息。然而,如本文中所示,信息存储在存储设备112上。存储适配器250包括具有i/o接口电路的多个端口,i/o接口电路通过i/o互连布置与盘耦合,例如传统的高性能光纤信道链路拓扑或串行附接scsi(sas)拓扑。

存储操作系统222促进客户端对存储在存储设备112上的数据的访问。在一些方面,存储操作系统222实现与一个或多个虚拟化模块协作以“虚拟化”由存储设备112提供的存储空间的随处写文件系统。在一些方面,存储操作系统222的存储管理器元件(例如,图4的410)将信息逻辑地组织为存储设备112上的命名的目录和文件的分层结构。每个“盘上”文件可以被实现为被配置为存储信息的一组盘块。如本文中使用的,术语“文件”是指数据的任何逻辑容器。虚拟化模块可以使得存储管理器410能够进一步将信息在逻辑上组织为作为命名的逻辑单元被导出的盘上的块的分层结构。

如上所述,存储服务器108可以捕获i/o跟踪信息,并且通过网络连接进行连接来将其提供给管理控制台110、管理应用111或客户端104。在一个方面,由存储服务器108执行或与存储服务器108接口的连接模块225管理这些连接。在一个方面,可以执行连接和数据传递任务的连接层级262在图2b中示出。

连接模块225工作使用连接套接字230通过网络适配器240端口来建立通信链路。在一个方面,连接套接字230的特征在于存储服务器108的ip(因特网协议或任何其他地址类型)地址和网络适配器240端口的端口号,并且侦听来自例如客户端104或管理控制台110的连接请求。在一个方面,连接套接字230使用专用管理网络端口用于发送收集的数据。通常,连接套接字将遵循特定的传输协议,诸如例如tcp/ip协议。然而,应当理解,其他协议也可以用于实现本文中描述的教导。

当对连接的请求通过网络适配器240进入时,连接套接字230接受请求。在一些方面,连接管理器225可以启动新的连接套接字230,使得其可以继续侦听附加的连接请求。下面关于图3的处理流程来描述使用连接套接字230和图2b的层次结构。

数据收集过程:在图3中,描述了由数据收集模块224收集数据的示例过程。该过程开始于与配置有数据收集模块224并且与数据收集模块224一起操作的存储服务器108以及在其上操作的连接模块225。

在框b304,数据收集模块224开始在存储器220中收集(或记录)i/o活动数据作为存储器内的收集的数据226。在一个方面,i/o活动数据可以包括i/o跟踪数据,在一个方面包括标识发给控制器200(或存储服务器108)的i/o操作的序列的数据和i/o操作的响应。

在框b306,当卷收集被启用时,为存储卷写入跟踪和i/o统计信息。在一个方面,统计信息可以包括性能数据,诸如例如iops(每秒处理的输入/输出操作的数目)、cpu利用率、高速缓存统计信息等。在各个方面,可以从i/o活动导出的其他相关统计信息也可以被存储和/或报告。在一个方面,i/o统计数据可以从存储操作系统222来获得。

卷收集是可选功能,其在被启用时用于存储存储卷的i/o跟踪数据和统计信息,而不是在网络连接上将它们发送出去。这个特征可以经由管理应用来启用。在一个方面,当卷收集被启用时,两个附加卷在永久存储子系统105内被创建,一个用于i/o跟踪数据,一个用于统计数据。在各个方面,该数据在经由存储连接被传送到永久存储子系统之前可以缓冲在存储器中,诸如存储器内的收集的数据226,或者其可以被更加立即地传送。在一个方面,存储器内的收集的数据226被盖写以限制所需要的存储量和资源量。在一个方面,在已经收集阈值量的数据之后,存储器中的数据被盖写。

在框b308,连接模块225打开网络连接套接字230以实现“网络启用”收集。网络连接套接字230“侦听”诸如来自管理控制台110的连接请求。作为示例,网络连接套接字230是由连接模块225维持以检测来自卸载实体的连接请求的逻辑实体(例如,客户端系统104和/或管理控制台110)。网络连接套接字230的结构可以由网络适配器240使用用于经由网络106来通信的传输协议(例如,tcp协议)来定义。

在框b310,网络连接套接字230接受来自卸载实体的经由网络106连接到存储服务器108的连接请求。打开所请求连接的专用套接字,例如tcp套接字。一方面,客户端系统104;管理控制台110或任何其他附接的计算机系统可以经由网络106或任何其他方式连接。一旦建立连接,连接模块225可以开始通过套接字连接来发送所捕获的i/o跟踪数据(如下面关于框b314所述)。

在一个方面,收集的数据存储在存储器220处的一个或多个存储器缓冲器处。连接模块225可以超限缓冲器,并且如果收集的数据未被立即处理,即套接字没有被高效地排出,则数据收集模块107可以丢弃信息。为了缓解这个问题,在框b312,当被启用时,收集的i/o跟踪数据可以被子采样。子采样表示只有某个i/o操作和响应的子集在存储器缓冲器处被维持为i/o跟踪数据,而其他的在处理过程中被忽略或丢弃。

在一个方面,可以通过掩蔽i/o操作的序列标识符(id)值来对i/o跟踪数据进行子采样。每个i/o操作包括或被分配有使得存储服务器108能够将响应与原始的i/o请求相关联的序列id。作为示例,在一个方面,当跨网络的传输不能确保i/o分组一起到达或处于正确的顺序时,序列id也可以与用于分组排序的i/o操作相关联。以这种方式,捕获(或丢弃)了i/o操作的请求和答复,这有助于确保更多可用的i/o跟踪数据。掩蔽序列id也是有用的,因为可以在不需要查找操作的情况下捕获请求和答复。这降低了对数据收集模块224并且因此对存储服务器108的整体的处理负担。在各个方面,子采样可以将数据跟踪大小减少2λn。已经发现,以这种方式的通过序列掩蔽实现的子采样仍然可以至少在n<=3时保留序列模式。因此,在一个方面,子采样跟踪可以减少多达8倍,同时仍保留i/o序列模式,并且为管理控制台的评估提供高质量的跟踪数据。

在框b314,连接模块225开始同步地发送所捕获的i/o业务。在网络连接建立的情况下,数据收集模块224可以将跟踪数据保存为“网络启用的”收集的数据223,其可以是由连接模块225发送的数据。在一个方面,这可以是网络冲刷操作,其将有效的缓冲区中的现有的i/o跟踪数据和统计数据清空,并且然后经由网络发送数据。该数据可以在限定的时间间隔(例如,每2分钟)内周期性地发送,允许将网络启用的收集的数据223的一些建立在存储器220中。在其他方面,以有限的延迟或在没有延迟的情况下将收集的数据223流式传输到客户端或管理控制台。然后,管理控制台110或其他连接的设备可以保存i/o跟踪数据,并且使用它来例如测试存储服务器108的性能,确定效率以及如何更好地配置系统。在一个方面,也可以通过网络连接来冲刷统计数据。

在一个方面,客户端可以将跟踪/统计数据223存储在系统可读文件中,系统可读文件可以经由标准方法被交换到其他系统用于存档目的。这使得能够根据需要来使用跟踪数据进行重放和分析。客户端还可以在更适合处理的环境中实时地分析数据。

在一个方面,在框b316,连接模块225关闭正在其上传输i/o跟踪数据的连接套接字。这可以基于来自客户端的“关闭”命令、来自系统管理员的“网络停用”命令等。在一个方面,套接字230可以保持打开或被重新打开以侦听其他连接。

在框b318,数据收集模块224在等待新的网络连接的同时收集存储器内的数据226(也称为存储器内的记录)。

该数据收集过程为存储系统产生了很多优点。它允许实时地捕获i/o跟踪数据,并且使用现实世界的生产数据来对存储系统设置进行近实时测试,而对生产中的存储服务器108具有很小或几乎没有影响。如上所述,该过程使用i/o跟踪数据而不是带有有效载荷的完整i/o命令,以减少处理和网络流量,并且将计算密集型任务从存储服务器推送到管理控制台或其他感兴趣的客户端系统。系统管理员可以使用实际的生产i/o工作负荷数据来更准确地规划存储服务器容量、故障排除和服务质量评估。

存储操作系统:图4是示出用于在存储服务器108处使用的存储操作系统222的架构400的示例的示意图。在一些方面,存储操作系统222可以包括从加利福尼亚州桑尼维尔市的netapp,inc.可获得的e系列控制器固件或data操作系统,其实现随处写文件布局()文件系统(而没有损害任何商标权)。然而,另一存储操作系统可以替代地被设计或增强用于根据本文中描述的技术来使用。数据收集模块224可以包括存储操作系统222的部分或与存储操作系统接口的应用。在一个方面,存储操作系统222生成并且维持上述的i/o性能统计信息并且将其提供给数据收集模块224。

存储操作系统222可以被实现为用软件和/或固件编程的可编程电路,或者被实现为专门设计的不可编程电路(即,硬件),或其组合和/或变体。在所示方面,存储操作系统222包括若干模块或层。这些层包括存储管理器(或文件系统管理器)410,其是存储操作系统222的功能元件。存储管理器410在由存储服务器108管理的数据上施加结构(例如,一个或多个文件系统)并且服务于来自客户端104的读取和写入请求。在一个方面,数据收集模块224与存储操作系统222的存储管理器410层交互以查看i/o请求和响应流量。

为了使得存储服务器能够通过网络106(例如,与客户端104)通信,存储操作系统222还可以包括逻辑地在存储管理器410之下的多协议层420和网络接入层430。多协议层420实现各种高层网络协议,例如网络文件系统(nfs)、公共因特网文件系统(cifs)、超文本传输协议(http)、光纤信道、无限带宽技术、串行附接小型计算机系统接口(sas)、和/或因特网小型计算机系统接口(iscsi),以使存储在存储设备112上的数据可用于用户和/或应用程序。网络接入层430包括一个或多个网络驱动器,其实现通过网络进行通信的一个或多个低级协议,例如以太网、因特网协议(ip)、tcp/ip、光纤信道协议和/或用户数据报协议/互联网协议(udp/ip)。

而且,为了使得设备能够与存储子系统(例如,图1的存储子系统)通信,存储操作系统222包括在逻辑上在存储管理器410之下的存储访问层440和相关联的存储驱动器层450。存储访问层440实现高级存储冗余算法,例如raid-4、raid-5、raid-6或raid存储驱动器层450实现低级存储设备访问协议,例如光纤信道协议或sas。

图4中还示出了从客户端接口到存储接口的通过存储操作系统222的与读或写操作相关联的数据流的路径415。因此,存储管理器410通过存储访问层440和存储驱动器层450来访问存储子系统,例如图1的存储系统105。客户端104可以根据客户端/服务器信息传递模型与存储服务器108交互。也就是说,客户端104请求存储服务器108的服务,并且存储服务器可以通过在网络106上交换分组来返回由客户端请求的服务的结果。在访问文件和目录形式的信息时,客户端可以通过tcp/ip发布包括基于文件的访问协议(诸如cifs或nfs)的分组。或者,在访问块形式的信息时,客户端可以发布包括基于块的访问协议(诸如iscsi和scsi)的分组。

在一个方面,数据收集模块224“侦听”读取和写入操作路径415以收集用于i/o操作和响应的跟踪数据。然后可以通过多协议420和网络访问430传递该跟踪数据作为网络启用的收集的数据223。在另一方面,数据收集模块224制作i/o请求和响应的副本,并且然后可以通过多协议420和网络访问430批量地发送它们以通过网络套接字连接将它们发送到跟踪客户端或管理控制台,如本文中所述。

计算机系统500:图5示出了可以在各个方面用于客户端系统104和/或管理控制台110的计算机系统500的计算机架构。计算机系统500包括通过互连505(例如,物理互连)互连的至少一个处理器502、存储器504、至少一个i/o设备508、大容量存储设备510和网络适配器512。互连505可以包括例如类似于上述互连260的总线。

在一个方面,存储器504示例性地包括由处理器502和网络适配器512可寻址,以存储软件程序代码(指令506)和数据的存储位置。例如,指令506可以包括客户端系统104的应用103或管理控制台110的管理应用111。在一个方面,至少一个i/o设备包括显示器、键盘、鼠标、扬声器等,用于接受来自诸如网络管理员等用户的输入或向诸如网络管理员等用户呈现输出。因此,大多数计算机系统500可能具有多个i/o设备508。

如参考存储服务器和永久存储子系统所描述的,大容量存储器510可以是用于存储数据的各种易失性或非易失性存储器设备(诸如hdd、ssd等)中的任何一种。此外,网络适配器512实现跨网络的通信,诸如起始和结束与存储服务器108的套接字连接,用于跟踪如i/o数据,本文中所述。

本文中描述的过程在流程图中被组织为操作序列。然而,应当理解,与这些过程相关联的至少一些操作潜在地可以被重新排序、补充或代替,同时仍然执行相同的整体技术。

上面介绍的技术可以通过由软件和/或固件编程或配置的可编程电路来实现,或者它们可以完全由专用“硬连线”电路或这些形式的组合来实现。这样的专用电路(如果有的话)可以是例如一个或多个专用集成电路(asic)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)等的形式。

用于实现这里介绍的技术的软件或固件可以存储在机器可读存储介质上,并且可以由一个或多个通用或专用可编程微处理器来执行。如本文中使用的术语“机器可读介质”包括可以以机器可访问的形式来存储信息的任何机制(机器可以是例如计算机、网络设备、蜂窝电话、个人数字助理(pda)、制造工具、具有一个或多个处理器的任何设备等)。例如,机器可访问介质包括可记录/不可记录介质(例如,只读存储器(rom);随机存取存储器(ram);磁盘存储介质;光存储介质;闪存设备等)等。如本文中使用的术语“逻辑”可以包括例如结合可编程电路的专用硬连线电路、软件和/或固件、或其组合。

虽然以上关于当前被认为是其优选方面的内容来描述本公开,但是应当理解,本公开不限于以上描述。相反,本公开旨在覆盖在所附权利要求的精神和范围内的各种修改和等同布置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1