US20010002478A1 - Raid striping using multiple virtual channels - Google Patents

Raid striping using multiple virtual channels Download PDF

Info

Publication number
US20010002478A1
US20010002478A1 US09/174,580 US17458098A US2001002478A1 US 20010002478 A1 US20010002478 A1 US 20010002478A1 US 17458098 A US17458098 A US 17458098A US 2001002478 A1 US2001002478 A1 US 2001002478A1
Authority
US
United States
Prior art keywords
raid
data block
vi
nth
host computer
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
US09/174,580
Other versions
US6272591B2 (en
Inventor
Paul A. Grun
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Priority to US09/174,580 priority Critical patent/US6272591B2/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GRUN, PAUL A.
Publication of US20010002478A1 publication Critical patent/US20010002478A1/en
Application granted granted Critical
Publication of US6272591B2 publication Critical patent/US6272591B2/en
Anticipated expiration legal-status Critical
Application status is Expired - Fee Related legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0602Dedicated interfaces to storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0668Dedicated interfaces to storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

A RAID device stripes a data block across N disk drives. The RAID device receives a storage request from a host computer for the data block, and creates N virtual interface (“VI”) queue pairs. The queue pairs form N virtual channels to the host computer. Further, the RAID device posts a descriptor to each of the queue pairs, with each descriptor referring to 1/Nth of the data block. Further, the RAID device receives 1/Nth of the data block over each of the virtual channels and writes each received 1/Nth data block to a different one of the N disk drives.

Description

    FIELD OF THE INVENTION
  • The present invention is directed to RAID devices. More particularly, the present invention is directed to striping data on a RAID device using multiple virtual channels. [0001]
  • BACKGROUND OF THE INVENTION
  • Redundant Array of Inexpensive or Independent Disks (“RAID”) devices are an increasingly popular way to store large amounts of computer data. RAID devices typically consist of a RAID controller and multiple low capacity personal computer type disk drives that are bundled together to form a single high capacity drive. A RAID device is usually less expensive than conventional high capacity drives because the personal computer type drives are relatively inexpensive based on their high volume of production. [0002]
  • Because RAID devices include multiple disk drives, the probability that one of the drives will fail at any given time is relatively high. An issue with RAID devices is how to avoid the loss of data when one or more of the drives fail. One solution to this issue is to “stripe” a single data block across multiple disk drives in the RAID device. The data block is striped by breaking the block into multiple pieces or portions and storing each portion on a different disk drive. Frequently, parity information for the entire block is stored on one of the drives. If a single drive fails, the piece of the data block that was stored on the failed drive can be reassembled based on the remaining portions of the data block and the parity information stored on the other drives. U.S. Pat. No. 4,761,785 discloses an example of a RAID device that performs striping. [0003]
  • In most RAID devices, a host computer sends an entire data block in one piece to the RAID controller. The RAID controller must then partition the data block into multiple sub-blocks, calculate a parity block, and then write the sub-blocks and parity block to the disk drives. Because the RAID controller is required to perform all of these steps each time a data block is stored, the RAID controller causes some delay when data is stored on a RAID device. The delay can detrimentally slow the process of striping data on a RAID device. [0004]
  • Based on the foregoing, there is a need for an method and apparatus to more efficiently stripe data on a RAID device. [0005]
  • SUMMARY OF THE INVENTION
  • One embodiment of the present invention is a RAID device for striping a data block across N disk drives. The RAID device receives a storage request from a host computer for the data block, and creates N virtual interface (“VI”) queue pairs. The queue pairs form N virtual channels to the host computer. Further, the RAID device posts a descriptor to each of the queue pairs, with each descriptor referring to 1/Nth of the data block. Further, the RAID device receives 1/Nth of the data block over each of the virtual channels and writes each received 1/Nth data block to a different one of the N disk drives. [0006]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is block diagram of a computer system in accordance with one embodiment of the present invention. [0007]
  • FIG. 2 is a flowchart of the steps executed by a RAID device in one embodiment of the present invention when a request is received from a host computer to store a data block in the RAID device. [0008]
  • DETAILED DESCRIPTION
  • One embodiment of the present invention is a RAID device that transfers a data block over multiple virtual channels using a virtual interface. The multiple virtual channels each transfer a portion of the data block, and the portions are striped across multiple disk drives. [0009]
  • FIG. 1 is a block diagram of a computer system in accordance with one embodiment of the present invention. The computer system [0010] 100 includes a host computer 10 coupled to a RAID device 40. Host computer 10 is coupled to RAID device 40 in FIG. 1 via a direct connection 30 such as a single wire or multiple wires. However, in other embodiments, host computer 10 can be coupled to RAID device 40 using any known manner to transfer data, including switches, a computer network, and wireless techniques. Further, additional computers and other devices may be coupled to RAID device 40.
  • Host computer [0011] 10 includes a processor 12. Processor 12 executes a software application that includes a driver 14. Host computer 10 further includes a memory 16 and a transport 20. Host computer 10 further includes a network interface card (“NIC”) 25 that couples host computer 10 to RAID device 40.
  • Host computer [0012] 10 communicates with devices coupled to it such as RAID device 40 using a Virtual Interface (“VI”) architecture. A VI architecture provides the illusion of a dedicated network interface to multiple applications and processes simultaneously, thus “virtualizing” the interface. Further, a VI architecture defines a standard interface between a VI consumer and one or more networks. In the present invention, driver 14 can function as a VI consumer.
  • In one embodiment, the VI architecture used to implemented the present invention is disclosed in the [0013] Virtual Interface Architecture Specification, Version 1.0, (the “VI Specification”) announced Dec. 19, 1997 by Compaq Corp., Intel Corp., and Microsoft Corp. The VI Specification is available at Web site http://www.viarch.org/ on the Internet. The VI Specification defines mechanisms for low-latency, high-bandwidth message-passing between interconnected nodes and interconnected storage devices. Low latency and sustained high bandwidth are achieved by avoiding intermediate copies of data and bypassing the operating system when sending and receiving messages. Other architectures that perform a similar function as the VI architecture disclosed in the VI Specification can also be used to implement the present invention, and therefore the present invention is not limited to a single VI architecture.
  • Transport [0014] 20 includes a plurality of VIs 21-24. Each VI 21-24 includes a queue pair (“QP”). In accordance with the VI Specification, a QP includes a send queue and a receive queue.
  • RAID device [0015] 40 includes a plurality of disk drives 60-63. Disk drives 60-63 are coupled to a RAID controller 70. RAID controller 70 executes steps in connection with storing and retrieving data to and from disk drives 60-63. RAID controller 70 includes a memory storage area 45 that includes a number of memory storage locations 46-49.
  • RAID device [0016] 40 further includes a transport 50 coupled to a NIC 42. NIC 42 couples RAID device 40 to host computer 10. Transport 50 includes a number of QPs 51-54. A QP in RAID device 40 and a corresponding VI in host computer 10 form endpoints of a virtual channel between RAID device 40 and host computer 10. In one embodiment, when storing a data block on RAID device 40, the number of disk drives 60-63 (referred to as “N”) equals the number of memory locations 46-49, the number of QPs 51-54 and the number of VIs 21-24. Therefore, if the data block is being striped across N disk drives, RAID controller will have N memory locations, transport 50 will have N QPs, and transport 20 will have N corresponding VIs. The N QPs and the N VIs form endpoints of N virtual channels.
  • Within computer system [0017] 100, driver 14 is referred to as an “initiator” because it initiates requests for storing or retrieving data. In contrast, RAID device 40 is referred to as a “target” because it responds to requests from initiators within computer system 100. RAID device 40 responds to requests by, for example, storing data on drives 60-63 or retrieving data from drives 60-63.
  • FIG. 2 is a flowchart of the steps executed by RAID device [0018] 40 in one embodiment of the present invention when an I/O request is received from host computer 10 to store a data block in RAID device 40. It is assumed that RAID device 40 stripes data blocks across “N” disk drives.
  • The request is received at step [0019] 110 and includes the location in memory 16 of host computer 10 where the data block is stored. Driver 14 stores the I/O request in a location of memory 16. In accordance with the VI specification, driver 14 posts a descriptor that refers to the I/O request (i.e., specifies the location in memory 16 where the I/O request is stored) to a send queue in transport 20. Driver 14 then rings a doorbell in NIC 25. The doorbell tells NIC 25 to look in the send queue for the descriptor. NIC 25 then fetches the descriptor and performs the task. The task places an I/O request message on connection 30 to be transmitted. The receiving device (i.e., RAID device 40) of the I/O request also has a NIC (i.e., NIC 42) that receives the I/O request message from connection 30.
  • The I/O request message contains information specifying the location in host memory [0020] 16 from which the data is to be moved, and specifies where in RAID device 40 the data is to be stored. The location in host memory 16 is specified with a virtual address memory handle pair in accordance with the VI specification. RAID device 40 uses the information contained in the I/O request message to build descriptors to accomplish the actual data movement from host computer 10 to RAID device 40. For example, in response to receiving the request from host computer 10, in one embodiment RAID device 40 initiates a data transfer from host computer 10. The data transfer is initiated using a VI Remote Direct Memory Access (“RDMA”) transfer facility.
  • At step [0021] 120, in one embodiment RAID device 40 generates N virtual channels across direct connection 30. The virtual channels are generated by creating N QPs 5154 in transport 50, and requesting host computer 10 to create N VIs 21-24 in transport 20. In another embodiment, the N virtual channels were previously generated before the request at step 110 was received.
  • At step [0022] 130, RAID device 40 posts descriptors to each QP 51-54. The descriptors specify that each QP 51-54 should move 1/Nth of the data block stored in memory 16 across the virtual channel associated with each QP 51-54. The data is then moved across the virtual channels in accordance with the VI specification.
  • At step [0023] 140, the 1/Nth data blocks moved by each QP 51-54 are stored in memory locations 46-49 of memory 45. Each 1/Nth data block is stored in a separate memory location 46-49.
  • Finally, at step [0024] 150, RAID controller 70 writes each 1/Nth data block stored in memory 45 to a different disk drive 60-63. Therefore, the original data block is striped across disk drives 60-63 because portions of the data block are written to each drive 60-63.
  • Parity data may also be generated and stored in disk drives [0025] 60-63. The parity data may be generated by RAID controller 70, or by host computer 10.
  • As described, the RAID device in accordance with the present invention uses the services of the VI transport to partition a single data block into N sub-blocks at the same time that the data block is being transported from the host computer to the RAID device. Therefore, the RAID controller in the RAID device does not have to partition the data block in order to stripe the data block across N disk drives. [0026]
  • The present invention allows the benefits of RAID (e.g., low costs disks, high performance and high reliability) without requiring a sophisticated RAID controller, or without requiring a RAID controller at all (since the responsibilities of RAID controller [0027] 70 are merely to write the data from “N” memory locations to the “N” devices). Further, the latency that is caused by the RAID controller is reduced, and the entire functionality of the RAID controller can be implemented in software.
  • The present invention also provides benefits when data is read from RAID device [0028] 40 by host computer 10. For example, when reading data, RAID controller 70 does not have to wait to finish reading data off all of disks 60-63 and into memory 45 before it begins writing the 1/Nth blocks into host memory 16. Thus, as soon as any one of disks 60-63 has finished returning its 1/Nth to one of the N memory locations in memory 45, RAID controller 70 can begin moving that part of the block to host memory 45.
  • Several embodiments of the present invention are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the present invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention. [0029]
  • For example, although memory [0030] 45 is located within RAID controller 70, it can be located anywhere it can be coupled to RAID controller 70.

Claims (19)

What is claimed is:
1. A method of striping a data block across N disk drives, said method comprising:
(a) receiving a storage request from a host computer for the data block;
(b) creating N virtual interface (VI) queue pairs, wherein the queue pairs form N virtual channels to the host computer;
(c) posting a descriptor to each of the queue pairs, each descriptor referring to 1/Nth of the data block;
(d) receiving 1/Nth of the data block over each of the virtual channels; and
(e) writing each received 1/Nth data block to a different one of the N disk drives.
2. The method of
claim 1
, wherein the N virtual channels comprise one or more physical connections.
3. The method of
claim 1
, wherein the storage request is a VI send.
4. The method of
claim 1
, further comprising:
initiating a VI Remote Direct Memory Access in response to the request.
5. The method of
claim 4
, wherein the VI Remote Direct Memory Access is initiated by the host computer.
6. The method of
claim 4
, wherein the VI Remote Direct Memory Access is initiated by a Redundant Array of Inexpensive Disks device.
7. The method of
claim 1
, further comprising:
storing each 1/Nth data block in a memory coupled to a Redundant Array of Inexpensive Disks controller.
8. A Redundant Array of Inexpensive Disks (RAID) device for storing a data block received from a host computer, said RAID device comprising:
a RAID controller;
N disk drives coupled to said RAID controller;
a transport coupled to said RAID controller; and
a network interface controller coupled to said RAID controller;
wherein when the data block is being stored, said transport comprises N virtual interface (VI) queue pairs that form N virtual channels to the host computer, wherein said queue pairs received 1/Nth of the data block over the N virtual channels;
wherein said RAID controller is adapted to write each of the 1/Nth data blocks to a different one of said N disk drives.
9. The RAID device of
claim 8
, wherein said RAID controller is further adapted to:
receive a storage request from the host computer for the data block; and
post a descriptor to each of the queue pairs, each descriptor referring to 1/Nth of the data block.
10. The RAID device of
claim 8
, wherein the N virtual channels comprise one or more physical connections.
11. The RAID device of
claim 9
, wherein the storage request is a VI send.
12. The RAID device of
claim 9
, wherein said RAID controller is further adapted to initiate a VI Remote Direct Memory Access in response to the storage request.
13. A Redundant Array of Inexpensive Disks (RAID) system for striping a data block across N disk drives, said RAID system comprising:
means for receiving a storage request from a host computer for the data block;
means for creating N virtual interface (VI) queue pairs, wherein the queue pairs form N virtual channels to the host computer;
means for posting a descriptor to each of the queue pairs, each descriptor referring to 1/Nth of the data block;
means for receiving 1/Nth of the data block over each of the virtual channels; and
means for writing each received 1/Nth data block to a different one of the N disk drives.
14. The RAID system of
claim 13
, wherein the N virtual channels comprise one or more physical connections.
15. The RAID system of
claim 13
, wherein the storage request is a VI send.
16. The RAID system of
claim 13
, further comprising:
means for initiating a VI Remote Direct Memory Access in response to the request.
17. The RAID system of
claim 16
, wherein the VI Remote Direct Memory Access is initiated by the host computer.
18. The RAID system of
claim 16
, wherein the VI Remote Direct Memory Access is initiated by a RAID device.
19. The RAID system of
claim 13
, further comprising:
means for storing each 1/Nth data block in a memory coupled to a RAID controller.
US09/174,580 1998-10-19 1998-10-19 Raid striping using multiple virtual channels Expired - Fee Related US6272591B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/174,580 US6272591B2 (en) 1998-10-19 1998-10-19 Raid striping using multiple virtual channels

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US09/174,580 US6272591B2 (en) 1998-10-19 1998-10-19 Raid striping using multiple virtual channels
TW88117880A TW460792B (en) 1998-10-19 1999-10-15 Raid striping using multiple virtual channels
CNB998123374A CN1169061C (en) 1998-10-19 1999-10-19 Raid striping using multiple virtual channels
PCT/US1999/024434 WO2000023901A1 (en) 1998-10-19 1999-10-19 Raid striping using multiple virtual channels
EP99952030A EP1141843A4 (en) 1998-10-19 1999-10-19 Raid striping using multiple virtual channels
AU64335/99A AU6433599A (en) 1998-10-19 1999-10-19 Raid striping using multiple virtual channels
HK02103704A HK1041948A1 (en) 1998-10-19 2002-05-16 Raid striping using multiple virtual channels.

Publications (2)

Publication Number Publication Date
US20010002478A1 true US20010002478A1 (en) 2001-05-31
US6272591B2 US6272591B2 (en) 2001-08-07

Family

ID=22636689

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/174,580 Expired - Fee Related US6272591B2 (en) 1998-10-19 1998-10-19 Raid striping using multiple virtual channels

Country Status (7)

Country Link
US (1) US6272591B2 (en)
EP (1) EP1141843A4 (en)
CN (1) CN1169061C (en)
AU (1) AU6433599A (en)
HK (1) HK1041948A1 (en)
TW (1) TW460792B (en)
WO (1) WO2000023901A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041177A1 (en) * 2000-02-29 2003-02-27 Thomas Warschko Method for controlling the communication of individual computers in a multicomputer system
US20030043794A1 (en) * 2001-09-06 2003-03-06 Cayton Phil C. Data stream multiplexing in data network
US7990994B1 (en) * 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
WO2012135234A2 (en) * 2011-03-31 2012-10-04 Intel Corporation Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
US8443066B1 (en) 2004-02-13 2013-05-14 Oracle International Corporation Programmatic instantiation, and provisioning of servers
US8458390B2 (en) 2004-02-13 2013-06-04 Oracle International Corporation Methods and systems for handling inter-process and inter-module communications in servers and server clusters
US8601053B2 (en) 2004-02-13 2013-12-03 Oracle International Corporation Multi-chassis fabric-backplane enterprise servers
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US8743872B2 (en) 2004-02-13 2014-06-03 Oracle International Corporation Storage traffic communication via a switch fabric in accordance with a VLAN
US8848727B2 (en) 2004-02-13 2014-09-30 Oracle International Corporation Hierarchical transport protocol stack for data transfer between enterprise servers
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493343B1 (en) * 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
US6545981B1 (en) 1998-01-07 2003-04-08 Compaq Computer Corporation System and method for implementing error detection and recovery in a system area network
US6539451B1 (en) * 1998-12-30 2003-03-25 Emc Corporation Data storage system having master-slave arbiters
US7010614B2 (en) * 2000-07-05 2006-03-07 International Business Machines Corporation System for computing cumulative amount of data received by all RDMA to determine when a complete data transfer has arrived at receiving device
US8051212B2 (en) * 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
US6839706B2 (en) 2001-08-06 2005-01-04 Lefthand Networks, Inc. Block data storage within a computer network
US6877011B2 (en) * 2001-10-10 2005-04-05 Sun Microsystems, Inc. System and method for host based storage virtualization
CN1302392C (en) * 2003-01-24 2007-02-28 华为技术有限公司 Online method for reorganizing magnetic disk
US7676600B2 (en) 2003-04-23 2010-03-09 Dot Hill Systems Corporation Network, storage appliance, and method for externalizing an internal I/O link between a server and a storage controller integrated within the storage appliance chassis
US7565566B2 (en) * 2003-04-23 2009-07-21 Dot Hill Systems Corporation Network storage appliance with an integrated switch
US7401254B2 (en) * 2003-04-23 2008-07-15 Dot Hill Systems Corporation Apparatus and method for a server deterministically killing a redundant server integrated within the same network storage appliance chassis
US7627780B2 (en) * 2003-04-23 2009-12-01 Dot Hill Systems Corporation Apparatus and method for deterministically performing active-active failover of redundant servers in a network storage appliance
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
JP4486348B2 (en) * 2003-11-26 2010-06-23 株式会社日立製作所 Disk array to suppress the drive uptime
CN100414908C (en) 2005-11-22 2008-08-27 华中科技大学 Storage network adapter of supporting virtual interface
US8046629B1 (en) 2006-07-24 2011-10-25 Marvell World Trade Ltd. File server for redundant array of independent disks (RAID) system
JP4792361B2 (en) 2006-09-27 2011-10-12 富士通株式会社 Response device, how to respond and response program
US20090006743A1 (en) * 2007-06-27 2009-01-01 Chee Keong Sim Writing data to multiple storage devices
JP5080201B2 (en) 2007-10-22 2012-11-21 京セラドキュメントソリューションズ株式会社 Information processing apparatus and device driver provided in this
CN101655773B (en) 2008-08-18 2011-10-26 中兴通讯股份有限公司 Disk array miniature computer system interface target device and data transmission method
CN102053800A (en) * 2010-11-26 2011-05-11 华为技术有限公司 Data access method, message receiving resolver and system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993023810A1 (en) * 1992-05-12 1993-11-25 Seiko Epson Corporation Scalable coprocessor
US5631897A (en) * 1993-10-01 1997-05-20 Nec America, Inc. Apparatus and method for incorporating a large number of destinations over circuit-switched wide area network connections
JPH07226019A (en) * 1994-02-15 1995-08-22 Matsushita Electric Ind Co Ltd Disk striping device
US5613071A (en) * 1995-07-14 1997-03-18 Intel Corporation Method and apparatus for providing remote memory access in a distributed memory multiprocessor system
US5870538A (en) * 1995-07-19 1999-02-09 Fujitsu Network Communications, Inc. Switch fabric controller comparator system and method
US6081848A (en) * 1998-08-14 2000-06-27 Intel Corporation Striping packets of data across multiple virtual channels

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308509B2 (en) * 2000-02-29 2007-12-11 Partec Ag Method for controlling the communication of single computers in a computer network
US20030041177A1 (en) * 2000-02-29 2003-02-27 Thomas Warschko Method for controlling the communication of individual computers in a multicomputer system
US20030043794A1 (en) * 2001-09-06 2003-03-06 Cayton Phil C. Data stream multiplexing in data network
US8743872B2 (en) 2004-02-13 2014-06-03 Oracle International Corporation Storage traffic communication via a switch fabric in accordance with a VLAN
US7990994B1 (en) * 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US8848727B2 (en) 2004-02-13 2014-09-30 Oracle International Corporation Hierarchical transport protocol stack for data transfer between enterprise servers
US8443066B1 (en) 2004-02-13 2013-05-14 Oracle International Corporation Programmatic instantiation, and provisioning of servers
US8458390B2 (en) 2004-02-13 2013-06-04 Oracle International Corporation Methods and systems for handling inter-process and inter-module communications in servers and server clusters
US8601053B2 (en) 2004-02-13 2013-12-03 Oracle International Corporation Multi-chassis fabric-backplane enterprise servers
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US8677031B2 (en) 2011-03-31 2014-03-18 Intel Corporation Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
WO2012135234A3 (en) * 2011-03-31 2013-03-14 Intel Corporation Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
WO2012135234A2 (en) * 2011-03-31 2012-10-04 Intel Corporation Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
US8996755B2 (en) 2011-03-31 2015-03-31 Intel Corporation Facilitating, at least in part, by circuitry, accessing of at least one controller command interface
US9244881B2 (en) * 2011-03-31 2016-01-26 Intel Corporation Facilitating, at least in part, by circuitry, accessing of at least one controller command interface

Also Published As

Publication number Publication date
AU6433599A (en) 2000-05-08
TW460792B (en) 2001-10-21
US6272591B2 (en) 2001-08-07
WO2000023901A1 (en) 2000-04-27
HK1041948A1 (en) 2005-05-13
WO2000023901A9 (en) 2000-08-31
EP1141843A1 (en) 2001-10-10
CN1169061C (en) 2004-09-29
CN1324462A (en) 2001-11-28
EP1141843A4 (en) 2005-02-23

Similar Documents

Publication Publication Date Title
US5721880A (en) Small computer system emulator for non-local SCSI devices
US7596642B2 (en) System and program for determining the availability of paths to a device
KR100201574B1 (en) Parallel i/o network file server architecture
CN100573485C (en) Method and system promoting the input/output process for processing surroundings
US6754768B2 (en) Library of hard disk drives with transparent emulating interface
US6009481A (en) Mass storage system using internal system-level mirroring
US7548975B2 (en) Methods and apparatus for implementing virtualization of storage within a storage area network through a virtual enclosure
US6385681B1 (en) Disk array control device with two different internal connection systems
US6728832B2 (en) Distribution of I/O requests across multiple disk units
EP0744697A1 (en) Method and apparatus for transferring data between computer devices
US20060004935A1 (en) Multi-protocol bridge
JP3895677B2 (en) System for managing moveable media library using the library division
US7467283B2 (en) System and method for addressing protocol translation in a storage environment
US5388108A (en) Delayed initiation of read-modify-write parity operations in a raid level 5 disk array
CN1902585B (en) Method, system, and program for interfacing with a network adaptor supporting a plurality of devices
EP1023658B1 (en) Integrated single chip dual mode raid controller
US7213104B2 (en) Disk array control device with an internal connection system for efficient data transfer
US20080059699A1 (en) System and method of mirrored raid array write management
US5333277A (en) Data buss interface and expansion system
US7899996B1 (en) Full track read for adaptive pre-fetching of data
CN100481043C (en) Method, system, and program for handling input/output commands
US9767058B2 (en) Method and apparatus for scalable low latency solid state drive interface
US20100095059A1 (en) Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed
US6523088B2 (en) Disk array controller with connection path formed on connection request queue basis
US6839706B2 (en) Block data storage within a computer network

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GRUN, PAUL A.;REEL/FRAME:009523/0960

Effective date: 19981016

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Expired due to failure to pay maintenance fee

Effective date: 20130807