WO2012170033A1 - Initiateur virtuel - Google Patents

Initiateur virtuel Download PDF

Info

Publication number
WO2012170033A1
WO2012170033A1 PCT/US2011/039988 US2011039988W WO2012170033A1 WO 2012170033 A1 WO2012170033 A1 WO 2012170033A1 US 2011039988 W US2011039988 W US 2011039988W WO 2012170033 A1 WO2012170033 A1 WO 2012170033A1
Authority
WO
WIPO (PCT)
Prior art keywords
sas
virtual
virtual machine
host bus
bus adapter
Prior art date
Application number
PCT/US2011/039988
Other languages
English (en)
Inventor
Robert C. Elliott
Original Assignee
Hewlett-Packard Development Company, L.P.
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 Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2011/039988 priority Critical patent/WO2012170033A1/fr
Publication of WO2012170033A1 publication Critical patent/WO2012170033A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0058Bus-related hardware virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Definitions

  • Data centers are used to house computer systems that are specifically designed for storing large amounts of data. These computer systems often make use of multiple storage devices such as disk drives and disk arrays. These storage devices may be either internal or external to these computer systems. Such computer systems use a storage transport protocol and physical interconnect as defined by a bus standard in order to connect to each of these disk drives.
  • SAS Serial Attached SCSI (Small Computer Serial Interface)
  • the SAS standard defines physical standards and protocols for transferring data between a computing system and the various storage devices available to that computing system.
  • the computing system and the storage devices are assigned unique SAS addresses. Through use of these unique addresses, data can be routed in a point-to-point manner in accordance with SAS protocol standards. That is, data is routed directly from its source to its destination.
  • SAS allows a computing system to have access to multiple storage devices and multiple computing systems to have access to the same storage device.
  • the network of computing systems and storage devices using the SAS standard is often referred to as the SAS fabric.
  • Data centers often employ virtualization of computing systems, in which a single physical machine performs logically like two or more separate devices. Thus, several virtual machines may run on a single physical computing system.
  • the SAS standard has no special provisions for
  • Each virtual machine will thus have to use the host bus adapter of the physical computing device running that virtual machine in order to connect to the SAS fabric.
  • the virtual machines are indistinguishable in the SAS fabric because they are sharing the same host bus adapter.
  • FIG. 1 is a diagram showing an illustrative SAS bus fabric, according to one example of principles described herein.
  • FIG. 2 is a diagram showing an illustrative virtual machine implementation, according to one example of principles described herein.
  • FIG. 3 is a diagram showing an illustrative virtualization of SAS initiator ports, according to one example of principles described herein.
  • FIG. 4 is a diagram showing an illustrative addressing for virtual initiator ports, according to one example of principles described herein.
  • FIG. 5 is a flowchart showing an illustrative method for initiator port virtualization, according to one example of principles described herein.
  • the present specification discloses methods and systems for the virtualization of components within the SAS standard so that multiple virtual machines can run on a single physical machine and be addressed uniquely without making any changes to the SAS standard.
  • the components within the SAS standard include initiators, targets, and expanders.
  • An initiator is a device that initiates the transfer of data to or from a target.
  • SAS initiators are often built into the host bus adapter of computing systems and SAS targets are built into storage devices such as hard disks or tape drives.
  • An expander is a device that acts similarly to a network switch. Several target devices and several initiator devices may be connected to a set of expanders. The expanders route data between the various devices.
  • the host bus adapter of a physical computing system can present itself to the SAS fabric as an expander (a virtual expander) rather than an initiator, with a number of initiators (virtual initiators)behind the virtual expander. Each of those virtual initiators is associated with a virtual machine running on the physical computing system.
  • multiple virtual machines running on the same physical computing system may be addressed uniquely on the SAS fabric without making changes to the SAS standard. Specifically, no modifications are made to the SAS routing protocols or to the firmware of the various SAS components. Furthermore, a virtual machine running on one computing system may be moved to another computing system without having to change its SAS address.
  • Fig. 1 is a diagram showing an illustrative SAS fabric (100).
  • the SAS fabric (100) includes an initiator (102), an expander (104), and a number of targets (106).
  • the initiator (102) is typically part of a host bus adapter (108) of a computing system.
  • the targets (106) are typically associated with storage devices such as hard disks (1 10) and disk arrays (112).
  • Various types of cables may be used as the transmission medium to transfer data between the SAS components.
  • An initiator (102) is a component that initiates service and task management requests that are to be processed by target devices (106). In response to those requests, the initiator also receives data from the target devices (106).
  • the SAS fabric may include multiple initiators (102), each initiator (102) initiating task management requests to targets (106).
  • the SAS initiator (102) may use a variety of protocols to communicate with devices on the SAS fabric.
  • Serial SCSI Protocol SSP
  • SATA Serial Advanced Technology Attachment
  • STP Serial ATA Tunneling Protocol
  • SATA is a type of computer bus interface that is used to connect host bus adapters to storage devices and optical drives.
  • SMP Serial Management Protocol
  • Various SMP requests may be sent to configure the SAS fabric. For example, when an initiator first connects to the SAS fabric, it sends an IDENTIFY address frame identifying itself as an initiator, target, or expander. If it detects that it is attached to an expander, it sends out a SMP REPORT GENERAL request and multiple SMP DISCOVER requests or SMP DISCOVER LIST requests to determine what other devices are in the SAS fabric. With the devices on the SAS fabric being aware of the other devices to which they are connected, data may be routed accordingly through the fabric. For example, a computing system may store large amounts of data to a disk array (1 12). [0022] Fig. 2 is a diagram showing an illustrative virtual machine implementation (200).
  • virtual machines As mentioned above, physical computing systems (202) within a datacenter often run multiple virtual machines (208).
  • the use of virtual machines allows (208) multiple operating systems (210) to run on the same physical computing system.
  • Virtual machines are managed by a hypervisor (206) which manages the access of each virtual machine (208) to the physical processor and physical memory.
  • the operating systems of the virtual machines (210) run various programs and applications on the virtualized hardware.
  • the implementation of virtual machines includes a physical computing system (202) with a processor (212) and a memory (214).
  • memory There are many types of memory (214) available. Some types of memory, such as solid state drives and disk drives, are designed for storage. These types of memory typically have large storage volume but relatively slow performance. Other types of memory, such as those used for Random Access Memory (RAM), are optimized for speed and are often referred to as "working memory.”
  • RAM Random Access Memory
  • the various forms of memory may store information in the form of software and data.
  • the processor (208) executes software (204) that is stored in memory (214).
  • This software includes an operating system (204).
  • An operating system (204) allows other applications to interact properly with the hardware of the physical computing system (202).
  • One such application run by the operating system (204) is a hypervisor (206).
  • a hypervisor (206) is a piece of software that allows multiple virtual machines (208) to be run on the same physical computing system (202). Each of those virtual machines is used to run an operating system (210).
  • Utilizing virtual machines in a data center can provide a number of benefits. Multiple virtual machines are able to run on the same physical hardware, each virtual machine being strongly isolated from the others. Additionally, virtual machines are readily transferable to different physical computing systems. Virtual machines may also be easily replicated.
  • virtual machines can isolate crashes or software bugs in one virtual machine from the other virtual machines.
  • virtual machines may also provide for better maintenance and system availability.
  • FIG. 3 is a diagram showing an illustrative virtualization (300) of SAS initiators.
  • a physical computing system (302) including a processor (303), memory (305) and host bus adaptor (340).
  • the physical computing system (302) hosts a number of virtual machines (308).
  • Each virtual machine (308) includes a virtual initiator (308).
  • the host bus adapter (304) of a physical computing system (302) will present itself to the SAS fabric (310) as an expander rather than an initiator.
  • the host bus adapter When the host bus adapter is connected to the fabric, it sends out an IDENTIFY address frame identifying itself as an expander rather than as an initiator.
  • the host bus adapter (304) responds to an SMP REPORT GENERAL request indicating that a number of virtual initiators are attached (at least one per virtual machine) and responds to SMP DISCOVER requests indicating the SAS addresses of the virtual initiators.
  • the host bus adapter (304) will be seen by the SAS fabric (310) as several initiators behind an expander. The components within the SAS fabric will not have to be modified to handle an initiator that operates on behalf of several virtual machines, each virtual machine with its own SAS address.
  • the host bus adapter of the physical system running that virtual machine which is acting as an expander, sends a signal to the SAS fabric indicating that there is a change in the fabric. This signal is referred to as a Broadcast (Change) signal.
  • the host bus adapter will then report through SMP DISCOVER responses that a new SAS address has been added to the SAS fabric for the virtual machine that was recently started.
  • the expander sends out a Broadcast (Change) signal and reports in the SMP DISCOVER responses that the virtual initiator associated with that virtual machine no longer has an SAS address attached
  • Fig. 4 is a diagram showing an illustrative addressing (400) for virtual initiators.
  • each virtual initiator (408) of each virtual machine (406) may be assigned an SAS address (414).
  • an SAS address (414) is a 64 bit value that uniquely identifies an SAS device.
  • the SAS address (414) for physical devices is typically encoded into the hardware of those devices.
  • the SAS address (414) is arbitrarily assigned by software.
  • the SAS address (414) examples illustrated in Fig. 4 do not necessarily comport with the provision of an actual SAS address but are used for illustrative purposes.
  • the host bus adapter determines which virtual machine sent that message so it can be forwarded over the SAS fabric appropriately.
  • the host bus adapter may employ the use of a virtual machine identification field for the data sent over the internal bus (401 ) of the physical system running the virtual machines (406).
  • Computing systems use an internal bus such as a Peripheral Component Interface Express (PCIe) bus to transfer data between various pieces of hardware within the computing system.
  • PCIe Peripheral Component Interface Express
  • virtual machine 1 (406-1 ) initiates
  • target device 1 (414-1 ). This is done by first sending the proper SMP request to the host bus adapter (402).
  • the hypervisor that manages the virtual machines (406) will first receive that request from one of the virtual machines.
  • the device driver for the host bus adapter as used by the hypervisor can be designed to fill in the virtual machine identification field. This informs the host bus adapter which virtual machine is initiating the message.
  • the host bus adapter then utilizes a table (404) to determine the appropriate SAS address for that virtual machine, e.g., virtual machine 1 (406-1 ).
  • the table (404) maintains a listing that correlates the SAS address of each virtual machine (406-1 , 406-2, 406-3) running on the physical computing system with the virtual machine identification field used by the internal bus.
  • the host bus adapter (402) can then send the message to the SAS fabric with the SAS address of virtual machine 1 as the source address. Consequently, the host bus adapter does not have to use place the address into the frames sent to the virtual machines. Rather, the host bus adapter uses the much smaller identification field which is translated by the table (404) of the host bus adapter.
  • the host bus adapter (402) thus acts as if it is forwarding that request from a real initiator behind an expander. That SMP message will then be sent to the real expander (412), which, in turn, will forward the message to target device 1 (414-1 ).
  • the host bus adapter (402), which acts as a virtual expander, is designed to produce and respond to all SAS protocols from the SAS fabric, whether they were initiated by the virtual devices running on the virtual system or they were initiated by real devices on the SAS fabric.
  • the Peripheral Component Interface (PCI) Single Root Input/Output Virtualization (SR-IOV) standard may be used to determine which virtual machine running on the physical computing system is communicating with the SAS fabric.
  • the hypervisor assigns a PCIe virtual function in the configuration space of the HBA for each virtual machine.
  • the configurations space is a portion of memory within the hardware of the HBA that is used for configuration of devices on the bus.
  • a virtual machine running on the physical computing system sends a message to the SAS fabric.
  • the hypervisor running that virtual machine places that message into the virtual function that
  • Fig. 5 is a flowchart showing an illustrative method (500) for initiator port virtualization.
  • the method includes, with a physical computing system, running (block 502) a virtual system including a virtual machine, with the physical computing system, presenting (block 504) a host bus adapter as an expander to an SAS fabric, and with the virtual system, presenting (block 506) a virtual SAS initiator that is communicatively coupled to the host bus adapter.
  • multiple virtual machines running on the same physical computing system may be addressed uniquely on the SAS fabric without making changes to the SAS standard. Specifically, no modifications are made to the SAS routing protocols or to the firmware of the various SAS components. Furthermore, a virtual machine running on one computing system may be moved to another computing system without having to change its SAS address.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

Selon l'invention, un système informatique physique (302) comportant un initiateur virtuel (308) comprend un processeur (303) ; une mémoire (305) couplée pour communiquer avec le processeur (303) ; et un adaptateur de bus hôte (304). Le processeur (303) pourvoit l'initiateur virtuel (308) en ce que le processeur (303) sert à : faire tourner une machine virtuelle (306) ; présenter l'adaptateur de bus hôte (304) sous la forme d'un expandeur d'interface de petit système informatique (SCSI) à connexion série (SAS) à une matrice de commutation SAS (310) ; et envoyer du trafic depuis l'adaptateur de bus hôte (304) comme s'il provenait d'un initiateur SAS (308) derrière l'expandeur, l'initiateur SAS (308) correspondant à la machine virtuelle (306).
PCT/US2011/039988 2011-06-10 2011-06-10 Initiateur virtuel WO2012170033A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2011/039988 WO2012170033A1 (fr) 2011-06-10 2011-06-10 Initiateur virtuel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/039988 WO2012170033A1 (fr) 2011-06-10 2011-06-10 Initiateur virtuel

Publications (1)

Publication Number Publication Date
WO2012170033A1 true WO2012170033A1 (fr) 2012-12-13

Family

ID=47296339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/039988 WO2012170033A1 (fr) 2011-06-10 2011-06-10 Initiateur virtuel

Country Status (1)

Country Link
WO (1) WO2012170033A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070165660A1 (en) * 2005-11-23 2007-07-19 Ching-Hua Fang Storage virtualization subsystem and system with host-side redundancy via SAS connectivity
US20070226451A1 (en) * 2006-03-22 2007-09-27 Cheng Antonio S Method and apparatus for full volume mass storage device virtualization
US20090150643A1 (en) * 2007-12-10 2009-06-11 Emulex Design & Manufacturing Corporation SAS reference Phys for virtualization and traffic isolation
US20090157942A1 (en) * 2007-12-18 2009-06-18 Hitachi Global Storage Technologies Netherlands, B.V. Techniques For Data Storage Device Virtualization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070165660A1 (en) * 2005-11-23 2007-07-19 Ching-Hua Fang Storage virtualization subsystem and system with host-side redundancy via SAS connectivity
US20070226451A1 (en) * 2006-03-22 2007-09-27 Cheng Antonio S Method and apparatus for full volume mass storage device virtualization
US20090150643A1 (en) * 2007-12-10 2009-06-11 Emulex Design & Manufacturing Corporation SAS reference Phys for virtualization and traffic isolation
US20090157942A1 (en) * 2007-12-18 2009-06-18 Hitachi Global Storage Technologies Netherlands, B.V. Techniques For Data Storage Device Virtualization

Similar Documents

Publication Publication Date Title
JP6871957B2 (ja) エミュレートされたエンドポイントコンフィグレーション
US10127170B2 (en) High density serial over LAN management system
KR101196547B1 (ko) 결정론적 sas 검색 및 구성을 위한 방법
US10423332B2 (en) Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands
US9213500B2 (en) Data processing method and device
US9652182B2 (en) Shareable virtual non-volatile storage device for a server
US9081818B2 (en) SAS fabric discovery
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
US10509758B1 (en) Emulated switch with hot-plugging
US20180225254A1 (en) Network communications using pooled memory in rack-scale architecture
WO2016073073A1 (fr) Procédés et systèmes pour accéder à un stockage utilisant une carte d'interface réseau
CN103828332B (zh) 数据处理方法、装置、存储控制器和机柜
US10599600B2 (en) Peripheral Component Interconnect Express (PCIe) switching for multi-host computing system deployments
WO2006110844A2 (fr) Tunnellisation de cibles sata via des canaux de fibres.
TW200925878A (en) System and method for management of an IOV adapter through a virtual intermediary in an IOV management partition
US20120284435A1 (en) Zone group manager virtual phy
CN111988230B (zh) 虚拟机通信方法、装置、系统及电子设备
US9378103B2 (en) Coordination techniques for redundant array of independent disks storage controllers
US10073805B2 (en) Virtual expansion ROM in a PCIe environment
WO2017023612A1 (fr) Émulation d'un lien d'accès direct à la mémoire à distance (« rdma ») entre des contrôleurs dans une matrice de stockage
US10063425B1 (en) Event-based in-band host registration
JP2012519340A (ja) 仮想ネットワーク環境におけるコピーの迂回
US9425912B2 (en) Lane-based multiplexing for physical links in serial attached small computer system interface architectures
US10795846B1 (en) Scalable NVMe storage management over system management bus
JP5280342B2 (ja) 小型コンピューター用周辺機器インターフェース入出力リファラルのスケーリング

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11867534

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11867534

Country of ref document: EP

Kind code of ref document: A1