CN103262034B - 将数据分区至虚拟机 - Google Patents
将数据分区至虚拟机 Download PDFInfo
- Publication number
- CN103262034B CN103262034B CN201080070998.2A CN201080070998A CN103262034B CN 103262034 B CN103262034 B CN 103262034B CN 201080070998 A CN201080070998 A CN 201080070998A CN 103262034 B CN103262034 B CN 103262034B
- Authority
- CN
- China
- Prior art keywords
- virtual
- controller
- physical
- expander
- phy
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在用于将数据分区至虚拟机的方法[300]中,在物理控制器与扩充器之间交换[302]支持信息,支持信息包括对物理控制器和扩充器分别在其上支持虚拟控制器的集合和虚拟物理层(虚拟PHY)的集合的能力的指示。响应于肯定指示将SAS地址的列表发送至扩充器,SAS地址的列表被发送[306]至扩充器。然后,将SAS地址的列表中的第一SAS地址指派[308]给虚拟PHY的集合中的第一虚拟PHY,其中,该指派由扩充器执行,以及其中,所指派的SAS地址处的第一虚拟PHY与虚拟控制器的集合中的第一虚拟控制器相对应。
Description
背景技术
一般地,虚拟机是实机的高效隔离复制品。虚拟机可以被分为两个主要类别:系统虚拟机和进程虚拟机。简而言之,系统虚拟机提供了支持完整操作系统的执行的完整系统平台。进程虚拟机被设计为运行单个程序,这意味着其支持单个进程。
系统虚拟机允许在不同虚拟机之间共享下层的物理机资源,每个虚拟机运行其自身的操作系统。提供虚拟化的软件层被称为虚拟机监视器或超级监督器(hypervisor)。超级监督器可以基于其使用和与实机的对应程度来在裸硬件(本机VM)上或者在操作系统(被托管的VM)之上运行。利用超级监督器使多个操作系统环境能够驻留在单个计算机上。
附图说明
图1A是根据本技术的一个实施例的用于将数据分区至虚拟机的系统的框图。
图1B是根据本技术的一个实施例的用于将数据分区至虚拟机的系统的框图。
图2是根据本技术的一个实施例的用于将硬盘驱动器分区至虚拟机的设备的框图。
图3是根据本技术的一个实施例的用于将数据分区至虚拟机的方法的流程图。
图4是根据本技术的一个实施例的用于将数据分区至虚拟机的示例计算机系统的图。
该描述中提及的附图不应被解释为按比例绘制,除非特别说明。
具体实施方式
现在将详细地对本技术的实施例进行参照,这些实施例的示例被示意在附图中。尽管将结合(一个或多个)各种实施例来描述该技术,但是将理解的是,其并不意在将本技术限制于这些实施例。相反,本技术意在覆盖可被包括在如所附权利要求限定的各个实施例的精神和范围内的替换、修改和等同物。
此外,在以下详细描述中,阐述了许多具体细节,以提供对本技术的透彻理解。然而,可以在没有这些具体细节的情况下实施本技术。在其他实例中,未详细描述公知的方法、过程、组件和电路,以便不会不必要地使目前实施例的方面模糊。
除非如从以下讨论中显而易见的那样另有特别声明,否则应当意识到,遍及本详细描述,利用诸如“交换”、“发送”、“指派”、“接收”、“耦合”、“存取”、“确定”、“利用”等的术语的讨论指代计算机系统或类似电子计算设备的动作和处理。该计算机系统或类似电子计算设备操控被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据,并将该数据变换为被类似地表示为计算机系统存储器或寄存器或者其他这种信息存储、传输或显示设备内的物理量的其他数据。本技术还非常适合于使用其他计算机系统(诸如例如光学计算机)。
该讨论将开始于利用输入/输出虚拟化的单根联合体SR-IOV和与将硬盘驱动器分区至与SAS拓扑相关联的虚拟机相关的串行附着的小型计算机系统接口(SAS)系统的简要概述。然后,该讨论将聚焦于本技术的在SAS拓扑内提供用于将数据分区至虚拟机的系统的实施例。
概述
一般地,单根拓扑涉及支持虚拟化技术的单个计算机。SR-IOV是使在单个计算机内同时运行的多个虚拟机能够本机地共享一个或多个设备(诸如,计算机扩充卡(PCIe设备))的规范。通过虚拟化技术,超级监督器、计算机的硬件平台上的软件或计算机的硬件平台中嵌入的固件管理虚拟机上的操作系统。因此,例如,SR-IOV与超级监督器相结合允许PCIe设备作为利用物理功能(PF)和虚拟功能(VF)的多个物理PCIe设备而出现。可以结合SAS使用SR-IOV。
简要地,SAS是用于向和从计算机存储设备(诸如,硬盘驱动器)移动数据的计算机总线。SAS一般包括启动器设备、目标设备和服务递送子系统。
启动器设备,也被称作控制器,产生针对目标设备要执行的处理的设备服务和任务管理请求。启动器设备从一个或多个目标设备接收这些相同请求的响应。启动器设备可以是母板上的机载组件。
目标设备包含逻辑单元和目标端口。其接收针对处理的设备服务和任务管理请求,并将对这些请求的响应发送至启动器设备。目标设备可以是硬盘驱动器。
服务递送子系统是在启动器设备与目标设备之间传输信息的输入/输出系统的部分。扩充器设备形成服务递送子系统的部分,并便于在SAS拓扑内的设备之间的通信。例如,扩充器便于SAS拓扑中的多个终端设备连接至启动器设备的端口。
当前,为了将硬盘驱动器的组分区至SAS拓扑中的虚拟机,SR-IOV需要基本输入输出系统(BIOS)和操作系统(OS)或超级监督器这两者中的支持。例如,有SR-IOV能力的SAS虚拟控制器将其自身呈现为作为多个VF,从而对超级监督器来说作为多个虚拟控制器而出现,每个VF一个虚拟控制器。为了将硬盘驱动器的组分区至虚拟机,首先将硬盘驱动器的组分区至PF。其次,然后使用诸如超级监督器之类的主机侧软件,将这些硬盘驱动器的子集映射至特定VF。然后,硬盘驱动器出现在使用该特定VF的OS上。
本技术的实施例在不使用主机侧软件或固件的情况下,使用SAS技术将硬盘驱动器直接分区至特定VF,从而通过消除当前方法的配置步骤来提高效率。此外,由于每个虚拟控制器与唯一SAS地址相对应,因此SAS交换机管理软件可以确定被分区至虚拟控制器的驱动器或存储器封装是否可以被下电。例如,根据本技术的实施例,如果超级监督器关闭虚拟机,则SAS交换机可以确定已被指派给该虚拟机上的虚拟控制器的硬盘驱动器不再需要被旋转加速(spin up)。然后,SAS交换机将使硬盘驱动器旋转减速(spin down),直到虚拟机被再次上电为止。该功率节约技术适用于SAS扩充器设备、SAS扩充器PHY、硬盘驱动器和存储器封装。
以下讨论将开始于本技术的组件的结构的描述。然后,该讨论之后将紧跟操作中的组件的描述。
结构
图1A是根据本技术的一个实施例的用于将数据分区至虚拟机的系统的框图。图1B也是根据本技术的另一实施例的用于将数据分区至虚拟机的系统的框图。现在参照图1A和1B,在一个实施例中,系统100包括物理控制器102、至少一个物理控制器物理层(物理控制器PHY)106a、106b、106c和106n……、扩充器110、以及扩充器虚拟PHY 118a、118b、118c和118n…的集合和扩充器物理层(扩充器PHY)126a、126b、126c和126n…的集合,这两个集合均与扩充器110耦合。
在一个实施例中,物理控制器102与服务器104耦合。在另一实施例中,至少一个物理控制器PHY 106a、106b、106c和106n……(以下称为至少一个物理控制器PHY 106)与物理控制器102耦合。应当理解,系统100可以包括从一个物理控制器PHY至物理控制器102可支持的那样多的物理控制器PHY(物理控制器PHY 106n……)不等(anywhere)。以下出于清楚和简要的目的,当一般参照至少一个物理控制器PHY时,将参考物理控制器PHY 106。至少一个物理控制器PHY 106与物理控制器102的外边缘耦合。
在一个实施例中,系统100包括与SAS交换机112耦合的扩充器110,并进一步以通信方式与物理控制器102耦合。在一个实施例中,SAS交换机处于SAS拓扑170内。通过以通信方式耦合,意味着以使扩充器110和物理控制器102能够交换信息的方式将扩充器110与物理控制器102耦合。
在一个实施例中,以通信方式耦合通过物理连接(诸如,电缆)来进行。例如,在一个实施例中,系统100利用每电缆4个物理层(PHY)通道。应当意识到,每电缆更多或更少PHY通道可以被使用,并取决于电缆的大小和封装PHY通道的能力。在另一实施例中,通过布线来实现以通信方式耦合。例如,在刀片服务器系统中,刀片封装内的内部布线将服务器104和与之耦合的物理控制器102与扩充器110连接。
在一个实施例中,扩充器110包括虚拟至物理映射表114。虚拟至物理映射表114包括虚拟物理层(虚拟PHY)至物理控制器PHY映射信息116。虚拟PHY至物理控制器PHY映射信息116指代用于将来自如本文将说明的与扩充器110耦合的虚拟PHY的数据路由至与物理控制器102耦合的至少一个物理控制器PHY 106的信息。
在一个实施例中,系统100的虚拟PHY 118a、118b、118c和118n……的集合(以下称为虚拟PHY 的集合118,除非以其他方式指定)被配置为接收要被路由至第一虚拟机124a的数据122。应当理解,虚拟PHY 的集合118可以包括扩充器110可物理地支持的仅一个虚拟PHY或多于一个的任何量的虚拟PHY。在一个实施例中,虚拟PHY 的集合118与扩充器110的外边缘耦合。应当意识到,可以将来自虚拟PHY 的集合118中的多于一个虚拟PHY的数据122路由到至少一个物理控制器PHY 106中的相同物理控制器PHY。附加地,尽管虚拟机124a在图1A、1B和2中被示出并驻留在物理控制器102上,但是应当理解,虚拟机124a、124b、124c和124n的组的部分可以与物理控制器102分离地驻留并与物理控制器102耦合。
在一个实施例中以及如本文在以下操作部分中将说明的那样,数据122使存储驱动器以通信方式与虚拟PHY 的集合118中的虚拟PHY耦合。数据122可以是用于将设备168(诸如但不限于特定存储器封装)分区至服务器104和/或该服务器104上的特定物理控制器的指令。
在一个实施例中,扩充器PHY 126a、126b、126c和126n……(以下称为扩充器PHY126,除非以其他方式指定)的集合与扩充器110耦合。应当理解,扩充器PHY 126的集合可以包括扩充器110可物理地支持的仅一个扩充器PHY或多于一个的任何量的扩充器PHY。在一个实施例中,扩充器PHY 的集合126被配置为将接收数据130中继到至少一个物理控制器PHY 106中的物理控制器PHY。在一个实施例中,物理控制器102和扩充器110被配置为交换支持信息132。支持信息132包括对物理控制器102和扩充器110分别在其上支持虚拟控制器的集合124和虚拟PHY 的集合118的能力的指示。在一个实施例中,物理控制器102向扩充器110询问扩充器110是否被使得能够支持虚拟PHY 的集合118。在另一实施例中,扩充器110向物理控制器102询问物理控制器102是否被使得能够支持虚拟控制器的集合124。应当理解,虚拟控制器的集合124可以包括一个或多于一个虚拟控制器。此外,应当意识到,多于一个物理控制器102可以与在其上具有物理控制器PHY的服务器104耦合。
在一个实施例中,系统100进一步包括SAS地址列表发送器136和SAS地址列表指派器144。在一个实施例中,SAS地址列表发送器136与物理控制器102耦合。在一个实施例中,SAS地址列表发送器136被配置为向扩充器110发送包括SAS地址140a、140b、140c和140n……(以下称为SAS地址140,除非以其他方式指定)的SAS地址的列表138。SAS地址的列表138中的每个SAS地址表示虚拟控制器的集合142中的一个虚拟控制器。此外,在一个实施例中,可以在SAS地址存储器172中找到SAS地址的列表138。虚拟控制器的集合142包括虚拟控制器142a、142b、142c和142n……。应当理解,虚拟控制器的集合142可以包括能够被系统100及其组件支持的多于一个的任何数目的虚拟控制器。此外,如图1A和1B以及本文要描述的图2中所示,示出了四个虚拟机:虚拟机124a、124b、124c和124n……。应当理解,在系统100中可以存在能够被系统100及其组件支持的多于一个的任何数目的虚拟机。此外,本文可以将虚拟机124a、124b、124c和124n表示为虚拟机的集合124。
尽管在图1A和1B中将虚拟机的集合124示作物理控制器102的部分,并且将虚拟控制器的集合142示作虚拟机的集合124的部分,但是应当注意,虚拟机的集合124可以处于物理控制器102外,但与可作为物理控制器102的部分的虚拟控制器的集合142中的虚拟控制器相关联。
在另一实施例中,SAS地址列表指派器144与扩充器110耦合。SAS地址列表指派器144被配置为将SAS地址的列表138中的第一SAS地址140a指派给虚拟PHY 的集合118中的第一虚拟PHY 118a。所指派的SAS地址140a处的第一虚拟PHY 118a将扩充器PHY的集合 126中的扩充器PHY表示为连接至虚拟控制器的集合142中的虚拟控制器。应当理解,虚拟PHY 的集合118、虚拟控制器的集合142和虚拟机124中的任一个可以被分别指定为“第一”虚拟PHY、虚拟控制器和虚拟机。
在一个实施例中,系统100进一步包括虚拟至物理映射表信息存取器146和目标PHY确定器148。在一个实施例中,虚拟至物理映射表信息存取器146与扩充器110耦合。虚拟至物理映射表信息存取器146被配置为存取虚拟PHY至物理控制器PHY映射信息116。
在一个实施例中,目标PHY确定器148与虚拟至物理映射表信息存取器146耦合。在一个实施例中,目标PHY确定器148被配置为基于虚拟PHY至物理控制器PHY映射信息116来确定至少一个物理控制器PHY 106中的要将接收数据130发送至的目标物理控制器PHY150。例如以及如本文在操作部分中说明的那样,虚拟PHY至物理控制器PHY映射信息116提供关于要将接收数据130路由至哪个物理控制器PHY的信息。
在一个实施例中,系统100进一步包括与扩充器110耦合的扩充器数据发送器152。在一个实施例中,扩充器数据发送器152被配置为将接收数据130发送至目标物理控制器PHY 150。目标物理控制器PHY 150可以是至少一个物理控制器PHY 106中的任一个。一旦接收数据130如所指定的那样被发送至目标物理控制器PHY 150,接收数据130就变为“目标物理控制器PHY数据”154。例如,可以将目标物理控制器PHY 150确定为物理控制器PHY 106a。
本技术的实施例进一步包括目标物理控制器PHY存取器156和物理控制器数据发送器158。在一个实施例中,目标物理控制器PHY存取器156与物理控制器102耦合。目标物理控制器PHY存取器156被配置为在目标物理控制器PHY(诸如,目标物理控制器PHY 106a)处存取目标物理控制器PHY数据154。
在一个实施例中,系统100进一步包括与扩充器110耦合的指令管理器160。在一个实施例中,指令管理器160被配置为经由图形用户界面164来接收扩充器分区指令162。在一个实施例中,在扩充器110处接收扩充器分区指令162。扩充器分区指令162包括至少一个虚拟PHY至虚拟控制器映射方向166。
图2示出了根据本技术的实施例的用于将硬盘驱动器分区至虚拟机的设备200的框图。现在参照图1A、1B和2,在一个实施例中,设备200包括物理控制器102和至少一个物理控制器PHY 106。在一个实施例中,物理控制器102与服务器104耦合。
在一个实施例中,物理控制器102包括支持确定器202和SAS地址列表发送器136。在一个实施例中,支持确定器202被配置为与同SAS交换机112耦合的扩充器110进行通信。该通信包括:确定扩充器110是否被使得能够在其上支持虚拟PHY的集合 118,如本文所说明的那样。
在一个实施例中,SAS地址列表发送器136被配置为在扩充器110被确定为被使得能够在其上支持虚拟PHY的集合 118的情况下将SAS地址的列表138发送至扩充器110。在一个实施例中,SAS地址的列表138中的每个SAS地址140a、140b、140c和140n……表示虚拟控制器,诸如虚拟控制器142a。
在另一实施例中,物理控制器102进一步包括目标物理控制器PHY存取器156和物理控制器数据发送器158。在一个实施例中,目标物理控制器PHY存取器156被配置为在目标物理控制器PHY 150处存取目标物理控制器PHY数据154。
在另一实施例中,物理控制器数据发送器158被配置为向虚拟控制器(诸如虚拟控制器142a)发送目标物理控制器PHY数据154。
在一个实施例中,至少一个物理控制器PHY 106与物理控制器102耦合。在一个实施例中,至少一个物理控制器PHY 106被配置为实现与扩充器110的通信。该通信包括发送SAS地址的列表138和在目标物理控制器PHY 150处接收目标物理控制器PHY数据154。
因此,本技术的实施例将虚拟控制器暴露于SAS拓扑,从而使得能够直接将硬盘驱动器指派给与虚拟控制器相关联的虚拟机。例如,实施例不遵照利用主机固件对SAS存储器进行分区的当前方法;采用控制器以及SAS交换机上的扩充器固件。因此,实施例提供了用于将硬盘驱动器分区至虚拟机的更直接且高效的系统。
操作
在本技术的实施例中,扩充器将虚拟控制器公开为与虚拟PHY连接。以这种方式,实施例提供了用于在不利用主机固件的情况下直接将数据分区至虚拟机的方法。
图3是方法300的流程图。在一个实施例中,将方法300体现在被存储在非瞬变计算机可读存储介质上的指令中,该指令在由计算机系统(参见图4的400)执行时使该计算机系统执行用于将数据分区至虚拟机的方法300。以下参照图1A、1B、2以及3这两者来描述方法300。
在302处,在一个实施例中以及如本文所描述,方法300包括用于在物理控制器102与扩充器110之间交换支持信息132的指令,物理控制器102与服务器104耦合,以及扩充器110与SAS交换机112耦合。在一个实施例中,支持信息132包括对物理控制器102和扩充器110分别在其上支持虚拟控制器的集合124和虚拟PHY 的集合118的能力的指示。
在304处,在一个实施例中,302处的交换包括确定扩充器110上的扩充器PHY,其中,扩充器PHY包括扩充器物理PHY的集合和虚拟PHY 的集合118中的至少一个。附加地,在304处,302处的交换进一步包括存取与同扩充器PHY之一耦合的设备168有关的信息。
例如以及如本领域中已知,物理控制器102尝试确定在SAS拓扑中存在什么设备。为了确定这一点,物理控制器102将与扩充器110进行通信,并发现被附着至扩充器110的所有内容,不论其是否是另一扩充器和/或设备,诸如但不限于存储器封装。如本文所描述,虚拟PHY的集合 118与扩充器110耦合。从物理控制器102的角度来看,虚拟PHY 的集合118看上去十分像是扩充器物理PHY的集合。物理控制器102向所有PHY(扩充器物理PHY以及虚拟PHY的集合118)询问以确定如果任何设备被附着至扩充器PHY将会怎么样。扩充器PHY将通过描述什么设备被附着至其来对物理控制器102作出响应。
在本技术的实施例中,物理控制器102将命令发送至扩充器110以确定扩充器是否支持虚拟PHY 的集合118。这些命令的内容可以是卖方专用的和/或针对用户/拥有者定制的。在一个实施例中,虚拟控制器的集合124与虚拟PHY的集合 118耦合。因此,虚拟PHY 的集合118可以描述被附着至其的虚拟控制器的集合124。从物理控制器102的角度来看,虚拟控制器的集合124看起来好像是物理控制器的集合。因此,如果物理控制器102发现被附着至虚拟PHY 的集合118的设备(诸如设备168(其可以是SAS存储器)),那么物理控制器102开启与设备168的连接,使得设备168与物理控制器102之间的通信是可能的。如本文将描述的那样,然后,物理控制器102可以将设备168引导为被分区至虚拟机上的虚拟控制器的集合124中的一个虚拟控制器。
在306处,方法300包括用于响应于302处的能力被肯定地指示,将SAS地址的列表138发送至扩充器110的指令,其中,SAS地址的列表138是从物理控制器102发送的。此外,在一个实施例中,SAS地址的列表138中的每个SAS地址表示虚拟控制器124。换言之,物理控制器102提供物理控制器102想要使用以表示虚拟控制器的集合124的SAS地址的列表138。扩充器110接收该SAS地址列表138。对于虚拟PHY 的集合118中的每个虚拟PHY,扩充器110会将SAS地址的列表138中的一个SAS地址指定给该虚拟PHY。相应地,具有所指定的SAS地址的每个虚拟PHY看上去相似于物理控制器,同时,与虚拟控制器的集合124相关联。扩充器110接收针对虚拟控制器的集合124的SAS地址,并使用这些SAS地址将虚拟PHY的集合 118设置为看起来好像虚拟控制器的集合124。
在308处,方法300包括用于将SAS地址的列表138中的第一SAS地址(诸如,140a)指派给虚拟PHY 的集合118中的第一虚拟PHY 118a的指令。该指派308由扩充器110执行。所指派的SAS地址140a处的第一虚拟PHY 118a表示虚拟控制器的集合124中的第一虚拟控制器142a。
在310处,在一个实施例中,方法300进一步包括用于在第一虚拟PHY(诸如,虚拟PHY 118a)处接收数据的指令。在312处,在另一实施例中,308处的接收数据包括以通信方式将存储驱动器与第一虚拟PHY(诸如,虚拟PHY 118a)耦合。通过在308处以通信方式耦合,意味着经由电缆(利用PHY通道)和/或内部布线(在刀片封装内)将存储驱动器与第一虚拟PHY耦合。
在314处,在一个实施例中以及如本文所描述,方法300进一步包括用于存取虚拟至物理映射表114的指令,其中,虚拟至物理映射表114的虚拟至物理映射表信息包括虚拟PHY至物理控制器PHY映射信息116。
在316处,在一个实施例中以及如本文所描述,方法300进一步包括用于基于虚拟PHY至物理控制器PHY映射信息116来针对接收数据130确定至少一个物理控制器PHY 106中的目标物理控制器PHY 150的指令,其中,该至少一个物理控制器PHY 106与物理控制器102耦合。
在318处,在一个实施例中以及如本文所描述,该方法进一步包括用于将来自扩充器110的接收数据130发送至目标物理控制器PHY 150的指令。
在320处,在一个实施例中以及如本文所描述,该方法进一步包括用于利用物理控制器102来存取在目标物理控制器PHY 150处接收到的目标物理控制器PHY数据154的指令。此外,在320处,物理控制器102将所存取的目标物理控制器PHY数据154发送至第一虚拟控制器(诸如,虚拟控制器142a)。
在322处,在一个实施例中以及如本文所描述,该方法进一步包括用于经由图形用户界面164接收扩充器分区指令162的指令,其中,扩充器分区指令162包括至少一个虚拟PHY至物理控制器映射方向166。在另一实施例中,扩充器分区指令162可以是与对设备168(诸如但不限于硬盘驱动器)进行分区相关联的任何指令。
在324处,在一个实施例中,方法300进一步包括用于将第二SAS地址(诸如SAS地址140b)指派给虚拟PHY 的集合118中的第二虚拟PHY 118b的指令,其中,该指派由扩充器110执行。附加地,第二所指派的SAS地址140b处的第二虚拟PHY 118b表示虚拟控制器的集合124中的第二虚拟控制器142b。此外,在326处,在一个实施例中,324处的方法300进一步包括在第二虚拟PHY 118b处接收数据。例如,该数据可以是用于将硬盘驱动器耦合至虚拟控制器并因此耦合至虚拟机的指令。
因此,在一个实施例中,将来自虚拟控制器142的任何输出请求直接发送至存储设备(例如,硬盘驱动器)。同时,来自存储设备的任何输入响应被扩充器110拦截,并且,使用虚拟至物理映射表116将来自存储设备的任何输入响应重定向至物理控制器PHY 106。
当前,不存在以仅影响物理控制器和SAS交换机扩充器固件的方式将SAS存储器直接指派给虚拟机的标准方式。本技术的实施例提供了用于直接将SAS存储器分区至虚拟机的方法,其减少了主机固件参与并从而提高了分区的总体效率。此外,实施例提供了用于更高效功率管理的方法。
示例计算机系统环境
现在参照图4,用于执行用于将数据分区至虚拟机的方法的技术的部分由驻留在例如计算机系统的计算机可读存储介质中的计算机可读和计算机可执行指令组成。即,图4示意了可以用于实现本技术的以下讨论的实施例的一种类型的计算机的一个示例。
图4示意了根据本技术的实施例使用的示例计算机系统400。应当意识到,图4的系统400仅是示例,并且本技术可以在多种不同计算机系统上或内操作,该不同计算机系统包括通用联网计算机系统、嵌入式计算机系统、路由器、交换机、服务器设备、用户设备、各种中间设备/人工制品、独立计算机系统等。如图4中所示,图4的计算机系统400被完好地适配为具有外围计算机可读介质402,诸如例如与之耦合的软盘、紧凑盘等。
图4的系统400包括用于传送信息的地址/数据总线404以及用于处理信息和指令的被耦合至总线404的处理器406A。如图4中所描绘,系统400还非常适合于在其中存在多个处理器406A、406B和406C的多处理器环境。相反,系统400还非常适合于具有单个处理器,诸如例如处理器406A。处理器406A、406B和406C可以是各种类型的微处理器中的任一种。系统400还包括诸如用于针对处理器406A、406B和406C存储信息和指令的被耦合至总线404的计算机可使用易失性存储器408(例如,随机存取存储器(RAM))之类的数据存储部件。
系统400还包括用于针对处理器406A、406B和406C存储静态信息和指令的被耦合至总线404的计算机可使用非易失性存储器410(例如,只读存储器(ROM))。在系统400中还存在的是用于存储信息和指令的被耦合至总线404的数据存储单元412(例如,磁或光盘和盘驱动器)。系统400还包括可选的字母数字输入设备414,字母数字输入设备414包括用于将信息和命令选择传送至处理器406A或者处理器406A、406B和406C的被耦合至总线404的字母数字和功能键。系统400还包括用于将用户输入信息和命令选择传送至处理器406A或者处理器406A、406B和406C的被耦合至总线404的可选光标控制设备416。本实施例的系统400还包括用于显示信息的被耦合至总线404的可选显示设备418。
仍参照图4,图4的可选显示设备418可以是液晶设备、阴极射线管、等离子体显示设备、或者适于创建对用户来说可识别的图形图像和字母数字字符的其他显示设备。可选的光标控制设备416允许计算机用户动态地发信号通知可视符号(光标)在显示设备418的显示屏上的移动。在本领域中已知光标控制设备416的许多实现,包括轨迹球、鼠标、触摸板、操作杆、或者能够发信号通知位移的给定方向或方式的移动的字母数字输入设备414上的特殊按键。可替换地,将意识到的是,可以经由来自字母数字输入设备414的使用特殊按键和按键序列命令的输入来引导和/或激活光标。
系统400还非常适合于具有由其他手段(诸如例如,语音命令)引导的光标。系统400还包括用于将系统400与外部实体耦合的I/O设备420。例如,在一个实施例中,I/O设备420是用于实现系统400与外部网络(诸如但不限于互联网)之间的有线或无线通信的调制解调器。本技术的更详细讨论见于下文。
仍参照图4,针对系统400描绘了各种其他组件。具体地,当存在时,操作系统422、应用424、模块426和数据428被示作典型地驻留在计算机可使用易失性存储器408(例如,随机存取存储器(RAM))和数据存储单元412的一个或一些组合中。然而,应当意识到,在一些实施例中,操作系统422可以被存储在其他位置处,诸如被存储在网络上或闪存驱动器上;以及进一步地,可以经由例如与互联网的耦合从远程位置访问操作系统422。在一个实施例中,例如,本技术作为应用424或模块426而被存储在RAM 408内的存储位置中和数据存储单元412内的存储区域中。本技术可以适用于所描述的系统400的一个或多个元件。例如,用于标识与内容的传送相关联的设备的方法可以适用于操作系统422、应用424、模块426和/或数据428。
计算系统400仅是合适的计算环境的一个示例,并且其并不意在暗示关于本技术的使用或功能的范围的任何限制。计算环境400也不应被解释为具有与示例计算系统400中示意的组件中的任一个或其组合相关的任何依赖性或需求。
可以在由计算机执行的计算机可执行指令(诸如,程序模块)的一般上下文中描述本技术。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。还可以在分布式计算环境中实施本技术,其中,任务由通过通信网络而链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储储存设备的本地和远程这两者的计算机储存介质中。
可以在由计算机执行的计算机可执行指令(诸如,程序模块)的一般上下文中描述本技术。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。还可以在分布式计算环境中实施本技术,其中,任务由通过通信网络而链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储储存设备的本地和远程这两者的计算机储存介质中。
本文的记载本发明的原理、方面和实施例以及其具体示例的所有声明意在涵盖其结构和功能这两方面的等同物。附加地,意图是,这种等同物包括当前已知的等同物和未来开发的等同物(即,执行相同功能的所开发的任何元件)二者,而不论结构如何。因此,本发明的范围不意在受限于本文示出和描述的示例性实施例。而是,本发明的范围和精神由所附权利要求体现。
Claims (15)
1.一种用于将数据分区至虚拟机的方法,所述方法包括:
在物理控制器与扩充器之间交换支持信息,所述物理控制器与服务器耦合,以及所述扩充器与串行附着的小型计算机系统接口(SAS)交换机耦合,所述支持信息包括对所述物理控制器和所述扩充器分别在其上支持虚拟控制器的集合和虚拟物理层的集合的能力的指示;
响应于所述能力被肯定地指示,将SAS地址的列表发送至所述扩充器,其中,所述SAS地址的列表是从所述物理控制器发送的,以及其中,所述SAS地址的列表中的每个SAS地址表示所述虚拟控制器的集合中的虚拟控制器;以及
将所述SAS地址的列表中的第一SAS地址指派给所述虚拟物理层的集合中的第一虚拟物理层,其中,所述指派由所述扩充器执行,以及其中,所指派的SAS地址处的所述第一虚拟物理层与所述虚拟控制器的集合中的第一虚拟控制器相对应。
2.根据权利要求1所述的方法,其中,所述方法进一步包括在所述第一虚拟物理层处接收数据。
3.根据权利要求2所述的方法,其中,所述在所述第一虚拟物理层处接收数据包括以通信方式将存储驱动器与所述第一虚拟物理层耦合。
4.根据权利要求1所述的方法,其中,所述方法进一步包括存取虚拟至物理映射表,其中,所述虚拟至物理映射表的虚拟至物理映射表信息包括虚拟物理层至物理控制器物理层映射信息。
5.根据权利要求4所述的方法,其中,所述方法进一步包括基于所述虚拟物理层至物理控制器物理层映射信息来针对接收数据确定至少一个物理控制器物理层中的目标物理控制器物理层,所述至少一个物理控制器物理层与所述物理控制器耦合。
6.根据权利要求5所述的方法,其中,所述方法进一步包括将来自所述扩充器的所述接收数据发送至所述目标物理控制器物理层,其中,发送数据变为目标物理控制器物理层数据。
7.根据权利要求6所述的方法,其中,所述方法进一步包括利用所述物理控制器来存取在所述目标物理控制器物理层处接收到的所述目标物理控制器物理层数据;以及
将来自所述物理控制器的所存取的目标物理控制器物理层数据发送至所述第一虚拟控制器。
8.根据权利要求1所述的方法,其中,所述方法进一步包括经由图形用户界面在所述扩充器处接收扩充器分区指令,其中,所述分区指令包括至少一个虚拟物理层至物理控制器映射方向。
9.根据权利要求1所述的方法,其中,所述方法进一步包括将所述SAS地址的列表中的第二SAS地址指派给所述虚拟物理层的集合中的第二虚拟物理层,其中,所述将所述SAS地址的列表中的第二SAS地址指派给所述虚拟物理层的集合中的第二虚拟物理层由所述扩充器执行,以及其中,第二所指派的SAS地址处的所述第二虚拟物理层表示所述虚拟控制器的集合中的第二虚拟控制器。
10.根据权利要求9所述的方法,其中,所述方法进一步包括在所述第二虚拟物理层处接收数据。
11.根据权利要求1所述的方法,其中,所述在物理控制器与扩充器之间交换支持信息包括确定所述扩充器上的扩充器物理层,其中,所述扩充器物理层包括扩充器物理物理层的集合和所述虚拟物理层的集合中的至少一个;以及
存取与同所述扩充器物理层之一耦合的设备有关的信息。
12.一种用于将数据分区至虚拟机的系统,包括:
与服务器耦合的物理控制器;
至少一个物理控制器物理层,其与所述物理控制器耦合;
扩充器,其与串行附着的小型计算机系统接口(SAS)交换机耦合,并进一步以通信方式与所述物理控制器耦合,所述扩充器包括:
虚拟至物理映射表,包括虚拟物理层至物理控制器物理层映射信息,所述虚拟至物理映射表基于来自图形用户界面的用于扩充器的分区指令,所述分区指令包括至少一个虚拟物理层到物理控制器映射方向;以及
虚拟物理层的集合,其被配置为接收要被路由至第一虚拟机的数据;以及
扩充器物理层的集合,其与所述扩充器耦合,并被配置为将接收数据中继至所述至少一个物理控制器物理层中的物理控制器物理层,其中,所述物理控制器和所述扩充器被配置用于交换支持信息,所述支持信息包括对所述物理控制器和所述扩充器分别在其上支持虚拟控制器的集合和所述虚拟物理层的集合的能力的指示。
13.根据权利要求12所述的系统,进一步包括:
SAS地址列表发送器,其与所述物理控制器耦合,所述SAS地址列表发送器被配置用于将SAS地址的列表发送至所述扩充器,所述SAS地址的列表中的每个SAS地址表示所述虚拟控制器的集合中的虚拟控制器;以及
SAS地址列表指派器,其与所述扩充器耦合,所述SAS地址列表指派器被配置用于将所述SAS地址的列表中的第一SAS地址指派给所述虚拟物理层的集合中的第一虚拟物理层,其中,所指派的SAS地址处的所述第一虚拟物理层与所述第一虚拟机上的所述虚拟控制器的集合中的第一虚拟控制器相对应。
14.根据权利要求13所述的系统,进一步包括:
虚拟至物理映射表信息存取器,其与所述扩充器耦合,所述虚拟至物理映射表信息存取器被配置用于存取所述虚拟物理层至物理控制器物理层映射信息;以及
目标物理层确定器,其与所述虚拟至物理映射表信息存取器耦合,所述目标物理层确定器被配置用于基于所述虚拟物理层至物理控制器物理层映射信息来确定所述至少一个物理控制器物理层中的要将所述接收数据发送至的目标物理控制器物理层。
15.一种用于将硬盘驱动器分区至虚拟机的设备,所述设备包括:
与服务器耦合的物理控制器,所述物理控制器包括:
支持确定器,被配置用于与同串行附着的小型计算机系统接口(SAS)交换机耦合的扩充器进行通信,其中,所述通信包括确定所述扩充器是否被使得能够在其上支持虚拟物理层的集合;以及
SAS地址列表发送器,被配置用于:在所述扩充器被确定为是所述被使得能够的情况下,将SAS地址的列表发送至所述扩充器,所述SAS地址的列表中的每个SAS地址表示虚拟控制器;以及
至少一个物理控制器物理层,其与所述物理控制器耦合,所述至少一个物理控制器物理层被配置用于实现与所述扩充器的通信,所述通信包括所述发送所述SAS地址的列表和在目标物理控制器物理层处接收目标物理控制器物理层数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2010/054540 WO2012057769A1 (en) | 2010-10-28 | 2010-10-28 | Zoning data to a virtual machine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103262034A CN103262034A (zh) | 2013-08-21 |
CN103262034B true CN103262034B (zh) | 2016-08-17 |
Family
ID=45994237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080070998.2A Active CN103262034B (zh) | 2010-10-28 | 2010-10-28 | 将数据分区至虚拟机 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9336032B2 (zh) |
EP (1) | EP2633402A4 (zh) |
CN (1) | CN103262034B (zh) |
WO (1) | WO2012057769A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130283264A1 (en) * | 2012-04-20 | 2013-10-24 | Lsi Corporation | Method for selective replication of physical devices on a virtual self-configuring zoning expander |
US20140029467A1 (en) * | 2012-07-25 | 2014-01-30 | Balaji Natrajan | Zoning record update |
US8788724B2 (en) * | 2012-11-30 | 2014-07-22 | Hewlett-Packard Development Company, L.P. | Storage device to provide access to storage resources over a data storage fabric |
US9733845B2 (en) * | 2014-09-29 | 2017-08-15 | Cisco Technology, Inc. | Shared virtualized local storage |
US10191877B2 (en) * | 2015-12-22 | 2019-01-29 | Intel Corporation | Architecture for software defined interconnect switch |
US10061662B2 (en) * | 2016-05-10 | 2018-08-28 | International Business Machines Corporation | Routing data streams around faults in strands |
US10635154B2 (en) * | 2016-12-19 | 2020-04-28 | Western Digital Technologies, Inc. | Intelligent SAS phy power management |
US11029986B2 (en) * | 2018-05-25 | 2021-06-08 | Microsoft Technology Licensing, Llc | Processor feature ID response for virtualization |
US10726865B2 (en) * | 2018-10-11 | 2020-07-28 | Western Digital Technologies, Inc. | Zoned block command to stream command translator |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655540A (zh) * | 2003-11-13 | 2005-08-17 | 戴尔产品有限公司 | 在串行连接scsi存储网络中进行通讯的系统和方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353302B2 (en) | 2003-12-31 | 2008-04-01 | Intel Corporation | Selectable communication control between devices communicating using a serial attached SCSI (SAS) protocol |
US7996206B2 (en) * | 2004-11-03 | 2011-08-09 | Lsi Corporation | Serial attached small computer system interface (SAS) connection emulation for direct attached serial advanced technology attachment (SATA) |
US7644168B2 (en) * | 2004-11-05 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | SAS expander |
US8301810B2 (en) | 2004-12-21 | 2012-10-30 | Infortrend Technology, Inc. | SAS storage virtualization controller, subsystem and system using the same, and method therefor |
US7437462B2 (en) | 2006-01-06 | 2008-10-14 | Dell Products L.P. | Method for zoning data storage network using SAS addressing |
US7921431B2 (en) * | 2006-01-20 | 2011-04-05 | Emulex Design & Manufacturing Corporation | N-port virtualization driver-based application programming interface and split driver implementation |
US8051436B2 (en) | 2007-06-29 | 2011-11-01 | Emulex Design & Manufacturing Corporation | SAS expander-side optimization for the re-discovery process |
US8798056B2 (en) * | 2007-09-24 | 2014-08-05 | Intel Corporation | Method and system for virtual port communications |
JP5056334B2 (ja) | 2007-10-15 | 2012-10-24 | 富士通株式会社 | 管理プログラム、管理装置、および管理方法 |
CA2702756A1 (en) | 2007-11-07 | 2009-05-14 | Avocent Corporation | System and method for managing virtual hard drives in a virtual machine environment |
US7882281B2 (en) * | 2007-12-10 | 2011-02-01 | Emulex Design & Manufacturing Corporation | SAS reference Phys for virtualization and traffic isolation |
GB2460841B (en) * | 2008-06-10 | 2012-01-11 | Virtensys Ltd | Methods of providing access to I/O devices |
WO2010030996A1 (en) | 2008-09-15 | 2010-03-18 | Virsto Software | Storage management system for virtual machines |
JP4809413B2 (ja) * | 2008-10-08 | 2011-11-09 | 株式会社日立製作所 | ストレージシステム |
US8321878B2 (en) | 2008-10-09 | 2012-11-27 | Microsoft Corporation | Virtualized storage assignment method |
-
2010
- 2010-10-28 CN CN201080070998.2A patent/CN103262034B/zh active Active
- 2010-10-28 US US13/879,805 patent/US9336032B2/en active Active
- 2010-10-28 EP EP10859082.9A patent/EP2633402A4/en not_active Withdrawn
- 2010-10-28 WO PCT/US2010/054540 patent/WO2012057769A1/en active Application Filing
-
2016
- 2016-04-11 US US15/095,788 patent/US20160224369A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655540A (zh) * | 2003-11-13 | 2005-08-17 | 戴尔产品有限公司 | 在串行连接scsi存储网络中进行通讯的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012057769A1 (en) | 2012-05-03 |
EP2633402A1 (en) | 2013-09-04 |
US20160224369A1 (en) | 2016-08-04 |
EP2633402A4 (en) | 2014-12-17 |
CN103262034A (zh) | 2013-08-21 |
US9336032B2 (en) | 2016-05-10 |
US20130219393A1 (en) | 2013-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103262034B (zh) | 将数据分区至虚拟机 | |
WO2017066944A1 (zh) | 一种存储设备访问方法、装置和系统 | |
US9965826B2 (en) | Resource management | |
US8738815B2 (en) | System and method for virtualizing the peripherals in a terminal device to enable remote management via removable portable media with processing capability | |
US9086907B2 (en) | Apparatus and method for managing virtual machine addresses | |
CN103034524B (zh) | 半虚拟化的虚拟gpu | |
CN104239238B (zh) | 用于管理转换旁视缓冲的方法和装置 | |
US8645594B2 (en) | Driver-assisted base address register mapping | |
CN104954451B (zh) | 一种虚拟化环境下usb设备的访问控制方法 | |
CN102968331B (zh) | 一种虚拟机管理系统及其文件访问方法 | |
CN106796507A (zh) | 无需内容转换支持计算设备中的多操作系统环境 | |
CN110770708A (zh) | 用于硬件虚拟化的方法和装置 | |
RU2595909C2 (ru) | Способ и аппарат для отображения образа прикладного объекта | |
US20140214922A1 (en) | Method of providing virtual machine and service gateway for real-time virtual desktop service | |
CN107491354B (zh) | 一种基于共享内存的虚拟机间通信方法及装置 | |
CN106874128A (zh) | 数据传输方法及装置 | |
US10540294B2 (en) | Secure zero-copy packet forwarding | |
CN104636076A (zh) | 一种用于云存储的分布式块设备驱动方法和系统 | |
US7958293B2 (en) | Virtualized serial attached SCSI adapter | |
US8880582B2 (en) | User access to a partitionable server | |
CN101211270A (zh) | 显卡、应用该显卡的虚拟机系统及显示处理方法 | |
WO2013095562A1 (en) | Method, device and system for aggregation of shared address devices | |
CN104503825A (zh) | 一种基于kvm混合式设备虚拟化方法 | |
CN102193816A (zh) | 一种设备分配方法及系统 | |
US9450910B2 (en) | Network address allocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200605 Address after: American Texas Patentee after: HEWLETT-PACKARD DEVELOPMENT Co.,L.P. Address before: American Texas Patentee before: HEWLETT-PACKARD DEVELOPMENT Co.,L.P. |