Method and apparatus for transferring information between different streaming protocols at wire speed
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-003/06
G06F-012/0804
G06F-012/0813
G06F-012/0862
G06F-012/0866
G06F-012/1081
G06F-012/126
출원번호
US-0952025
(2013-07-26)
등록번호
US-9804788
(2017-10-31)
발명자
/ 주소
Ibrahim, Rahim
Tran, Nghiep
Nguyen, Tuan
Ng, Chan
Cihla, James L.
출원인 / 주소
NetApp, Inc.
대리인 / 주소
LeClairRyan, a Professional Corporation
인용정보
피인용 횟수 :
0인용 특허 :
75
초록▼
The present invention provides a mechanism for fast routing of data in a Storage Area Network. A protocol interface module (PIM) interfaces with outside networks and the storage devices, such as over fiber channel (FC). The PIM encapsulates received data into a streaming protocol, enabling storage p
The present invention provides a mechanism for fast routing of data in a Storage Area Network. A protocol interface module (PIM) interfaces with outside networks and the storage devices, such as over fiber channel (FC). The PIM encapsulates received data into a streaming protocol, enabling storage processors to direct data to/from the appropriate physical disk in a similar manner to the directing of network messages over the Internet or other network.
대표청구항▼
1. A computing device comprising: protocol interface hardware logic configured to communicate data between an external host and an external storage device and is separate from a processor having a classifier coupled to the protocol interface hardware logic and a memory, wherein the protocol interfac
1. A computing device comprising: protocol interface hardware logic configured to communicate data between an external host and an external storage device and is separate from a processor having a classifier coupled to the protocol interface hardware logic and a memory, wherein the protocol interface hardware logic is configured to:receive, from an external host, data in a first streaming protocol,inspect a frame of the received data in the first streaming protocol, determine a type of action for the received data, and insert a frame type code corresponding to the determined type of action into a header field of a frame of a second streaming protocol encapsulating at least a portion of the received data; andthe processor having the classifier coupled to the protocol interface hardware logic and the memory and configured to execute programmed instructions stored in the memory to:receive, from a protocol interface hardware logic, the data encapsulated in the second streaming protocol, and direct the encapsulated data to the external storage device wherein the classifier is configured to read the frame type code in the header field of the frame of the second streaming protocol and assign the frame of the second streaming protocol to another processor based upon the frame type code. 2. The device of claim 1, wherein the classifier of the storage processor comprises a hardware classifier. 3. The device of claim 1, wherein the processor is configured to manage an address space of the external storage device. 4. The device of claim 3, wherein the processor is further configured to execute the programmed instructions to translate between virtual addresses used by the external host and physical addresses used by the external storage device. 5. The device of claim 1, wherein the classifier of the processor is further configured to: determine that the type code corresponds to a read or write operation; andassign the frame of the second streaming protocol to the another processor comprising a protocol processor based on determining that the type code corresponds to the read or write operation. 6. The device of claim 5, wherein the classifier of the processor is further configured to: determine that the type code corresponds to any operation other than read or write; andassign the frame of the second streaming protocol to the another processor comprising a general purpose processor based on determining that the type code corresponds to any operation other than read or write. 7. The device of claim 1, wherein a plurality of protocol interface hardware logic are coupled to the storage processor. 8. The device of claim 1, wherein the protocol interface hardware logic is further configured to inspect a header of a received frame of the first streaming protocol and identify contextual information and determine frame destination information using the contextual information, and wherein the another processor is further configured to route the frame of the second streaming protocol based on the frame destination information. 9. The device of claim 8, wherein the another processor comprises a plurality of protocol processors, wherein the another processor is further configured to route the frame of the second streaming protocol to a particular protocol processor of the plurality of protocol processors using the frame destination information. 10. The device of claim 8, further comprising: a storage controller configured to communicate the data between the external host and the external storage device and further configured to provide control of a plurality of physical storage devices comprising the external storage device, wherein the storage controller is configured to routes the frame of the second streaming protocol to the external storage device using the frame destination information. 11. The device of claim 8, wherein protocol interface hardware logic is configured to generate a descriptor from the frame destination information and to encapsulate the descriptor within the frame of the second streaming protocol encapsulating the portion of the received data, and wherein the processor is configured to use the descriptor to route the frame of the second streaming protocol. 12. The device of claim 11, wherein the memory further comprises: a look up table correlating providing correlation between frame contextual information and the frame destination information, wherein the protocol interface hardware logic is further configured to use the look up table to determine the frame destination information using the contextual information. 13. The device of claim 12, wherein the protocol interface hardware logic is further configured to avoid buffering of an entire incoming frame of the first streaming protocol by using the look up table and the frame destination information. 14. A method comprising: receiving, by a protocol interface hardware logic disposed in a communication path between an external host and an external storage device and that is separate from a processor having a classifier coupled to the protocol interface hardware logic and a memory, data frames from the external host in a first streaming protocol;inspecting, by the protocol interface hardware logic, a frame received in the first streaming protocol;determining, by the protocol interface hardware logic, a type of action for data of the received frame;encapsulating, by the protocol interface hardware logic, at least a portion of the data of the received frame into a second streaming protocol;inserting, by the protocol interface hardware logic, a frame type code corresponding to the determined type of action into a header field of a frame of the second streaming protocol encapsulating the portion of the received data;receiving, by the processor, the frame of the second streaming protocol, wherein the processor includes one or more other processors;reading, by the processor, the frame type code in the header field of the frame of the second streaming protocol; andassigning, by the processor, the frame of the second streaming protocol to one of the other processors based upon the frame type code to thereby direct the data received from the protocol interface module in the second streaming protocol to the external storage device. 15. The method of claim 14, wherein the classifier of the processor comprises a hardware classifier. 16. The method of claim 14, further comprising: managing, by the processor, an address space of the external storage device. 17. The method of claim 16, wherein the managing the address space comprises: translating, by the processor, between virtual addresses used by the external host and physical addresses used by the external storage device. 18. The method of claim 14, wherein the assigning the frame of the second streaming protocol comprises: determining, by the processor, that the type code corresponds to a read or write operation; andassigning, by the processor, the frame of the second streaming protocol to the one of the other processors comprising a protocol processor based on determining that the type code corresponds to a read or write operation. 19. The method of claim 18, wherein the one of the other processors determines which virtual logical unit number is associated with the data in the frame having the type code corresponding to the read or write operation, wherein the method further comprises: receiving, by the protocol interface hardware logic, an additional data frame from the external host in the first streaming protocol;inspecting, by the protocol interface hardware logic, the additional data frame received in the first streaming protocol;determining, by the protocol interface hardware logic, an additional type of action for data of the received additional data frame, wherein the additional type of action is not a read operation and is not a write operation;encapsulating, by the protocol interface hardware logic, at least a portion of the data of the received additional data frame into the second streaming protocol;inserting, by the protocol interface hardware logic, an additional frame type code corresponding to the determined additional type of action into an additional header field of an additional frame of the second streaming protocol that encapsulates the portion of the data of the received additional data frame;receiving, by the processor, the additional frame of the second streaming protocol;reading, by the processor, the additional frame type code in the additional header field of the additional frame; andassigning, by the processor, the additional frame of the second streaming protocol to the one of the other processors based upon the additional frame type code corresponding to the determined additional type of action,wherein the one of the other processors performs one or more operations other than determining which virtual logical unit number is associated with the data in the additional frame having the additional type code. 20. The method of claim 14, wherein the assigning the frame of the second streaming protocol further comprises: determining, by the processor, that the type code corresponds to any operation other than read or write; andassigning, by the processor, the frame of the second streaming protocol to the one of the other processors comprising a general purpose processor based on determining that the type code corresponds to any operation other than read or write. 21. The method of claim 14, further comprising: identifying, by the protocol interface hardware logic, contextual information from an inspection of a header of a received frame of the first streaming protocol:determining, by the protocol interface hardware logic, frame destination information using the contextual information; androuting, by the one of the other processors, the frame of the second streaming protocol based on the frame destination information. 22. The method of claim 21, wherein the other processors comprise a plurality of protocol processors, and wherein the routing comprises: routing the frame of the second streaming protocol to a particular protocol processor of the plurality of protocol processors using the frame destination information. 23. The method of claim 21, wherein the routing comprises: routing the frame of the second streaming protocol to a storage controller using the frame destination information. 24. The method of claim 21, further comprising: generating, by the protocol interface hardware logic, a descriptor from the frame destination information; andencapsulating the descriptor within the frame of the second streaming protocol encapsulating a portion of the received data, wherein the one of the other processors is configured to use the descriptor to route the frame of the second streaming protocol. 25. The method of claim 24, further comprising: correlating, by the protocol interface hardware logic, frame contextual information and the frame destination information using a look up table, wherein the protocol interface hardware logic uses the look up table to determine the frame destination information using the contextual information. 26. The non-transitory machine-readable medium of claim 24, wherein the machine-executable code wherein the protocol interface hardware logic: correlated frame contextual information and the frame destination information using a look up table; andused the look up table to determine the frame destination information using the contextual information. 27. A non-transitory machine-readable medium having stored thereon instructions for performing a method, the instructions comprising machine-executable code that, when executed by one or more machines, causes the one or more machines to: receive a frame of a second streaming protocol, wherein protocol interface hardware logic disposed in a communication path between an external host and an external storage device and that is separate from a processor having a classifier coupled to the protocol interface hardware logic and a memory received data frames from an external host in a first streaming protocol, inspected a frame received in the first streaming protocol, determined a type of action for data of the received frame, encapsulated at least a portion of the data of the received frame into the second streaming protocol, and inserted a frame type code corresponding to the determined type of action into a header field of a frame of the second streaming protocol encapsulating the portion of the received data;read the frame type code in the header field of the frame of the second streaming protocol; andassign the frame of the second streaming protocol to one of one or more processors based upon the frame type code to thereby direct the data received in the second streaming protocol to the storage device. 28. The non-transitory machine-readable medium of claim 27, wherein the machine-executable code further comprises additional code that, when executed by the one or more machines, causes the one or more machines to: manage an address space of the external storage device by translating between virtual addresses used by the external host and physical addresses used by the external storage device. 29. The non-transitory machine-readable medium of claim 27, wherein the assigning the frame of the second streaming protocol comprises: determining that the type code corresponds to a read or write operation; andassigning the frame of the second streaming protocol to the one of the one or more processors comprising a protocol processor based on determining that the type code corresponds to a read or write operation. 30. The non-transitory machine-readable medium of claim 27, wherein the assigning the frame of the second streaming protocol further comprises: determining that the type code corresponds to any operation other than read or write; andassigning the frame of the second streaming protocol to the one of the one or more processors comprising a general purpose processor based on determining that the type code corresponds to any operation other than read or write. 31. The non-transitory machine-readable medium of claim 27, wherein the machine-executable code further comprises additional code that, when executed by the one or more machines, causes the one or more machines to: route the frame of the second streaming protocol based on frame destination information, wherein the protocol interface hardware logic identified contextual information from an inspection of a header of a received frame of the first streaming protocol and determined frame destination information using the contextual information. 32. The non-transitory machine-readable medium of claim 31, wherein the one or more protocol processors comprise a plurality of protocol processors, and wherein the routing comprises: routing the frame of the second streaming protocol to a particular one of the one or more processors using the frame destination information. 33. The non-transitory machine-readable medium of claim 31, wherein the routing comprises: routing the frame of the second streaming protocol to a storage controller using the frame destination information. 34. The non-transitory machine-readable medium of claim 31, wherein the machine-executable code further comprises additional code that, when executed by the one or more machines, causes the one or more machines to: encapsulate a descriptor within the frame of the second streaming protocol encapsulating the portion of the received data, wherein the one of one or more processors is configured to use the descriptor to route the frame of the second streaming protocol and wherein the protocol interface hardware logic generated a descriptor from the frame destination information.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (75)
Rakib,Selim Shlomo; Azenkot,Yehuda, Apparatus and method for receiving upstream data transmissions from multiple remote transmitters.
Breitbart Yuri ; Korth Henry F. ; Silberschatz Abraham, Concurrency control protocols for management of replicated data items in a distributed database system.
Jeon Byung C. (Daejeon KRX) Do Mi S. (Daejeon KRX) Kim Young S. (Daejeon KRX) Han Chi M. (Daejeon KRX), Connectionless communication system and method of connectionless communication.
Kleinsorge Frederick G. ; Shirron Stephen F., Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space.
Ibrahim,Rahim; Yu,Glenn; Tran,Nghiep; Nguyen,Tuan; Ng,Chan; Gajjar,Kumar; Meyer,Richard, High-speed data transfer in a storage virtualization controller.
Cogger Timothy John ; Kunkel ; III Isaac A. ; Miller David Todd ; Patil Suma P., Integrated interface for Web based customer care and trouble management.
Van Seters Stephen L. (Stow MA) Lawler Christopher P. (Wellesley MA) Ready David C. (Sudbury MA), Internetworking device with enhanced packet header translation and memory.
Bass, Brian Mitchell; Calvignac, Jean Louis; Heddes, Marco C.; Maragkos, Antonios; Patel, Piyush Chunilal; Siegel, Michael Steven; Verplanken, Fabrice Jean, Longest prefix match (LPM) algorithm implementation for a network processor.
Gallo, Anthony Matteo; Vaidhyanathan, Natarajan; Verrilli, Colin Beaton; Woodland, Gail Irene, Method and apparatus for processing network frames in a network processor by embedding network control information such as routing and filtering information in each received frame.
Hubis Walter A. ; Otterness Noel S., Method and apparatus for providing a disc drive snapshot backup while allowing normal drive read, write, and buffering operations.
Aamer Latif ; Rodney N. Mullendore ; Joseph L. White ; Brian Y. Uchino, Method and apparatus for transferring data between IP network devices and SCSI and fibre channel devices over an IP network.
Ann M. Wollrath ; James H. Waldo ; Peter C. Jones ; Kenneth C.R.C. Arnold, Method and apparatus for transporting behavior in an event-based distributed system.
Muller Shimon ; Pham Binh ; Berg Curt, Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory.
Walter A. Hubis ; William G. Deitz, Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access .
Nolan, Shari J.; Nespor, Jeffrey S.; Harris, Jr., George W.; Lane, Jerry Parker; Merrell, Alan R.; Lagueux, Jr., Richard A.; Panas, Michael G., Method for configuration and management of storage resources in a storage network.
Brent Cameron Beardsley ; Michael Thomas Benhase ; Douglas A. Martin ; Robert Louis Morton ; Kenneth Wayne Todd, Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache.
Van Huben, Gary A.; Mueller, Joseph L., Modular scalable system for managing data in a heterogeneous environment with generic structure for control repository access transactions.
Bass, Brian Mitchell; Calvignac, Jean Louis; Gallo, Anthony Matteo; Heddes, Marco C.; Siegel, Michael Steven; Verplanken, Fabrice Jean, Network processor for multiprotocol data flows.
Gerszberg Irwin ; Huang Kenny Xiaojian ; Kwabi Christopher K. ; Martin Jeffrey S. ; Miller ; II Robert Raymond ; Russell Jesse Eugene, Network server platform for internet, JAVA server and video application server.
Blumenau Steven M. ; Raz Yoav, Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement.
Addepalli, Sateesh K.; Moghe, Ashok K.; Bonomi, Flavio; Girardot, Marc Jean-Philippe; Thubert, Pascal, System and method for internal networking, data optimization and dynamic frequency selection in a vehicular environment.
Davison, Larry A.; Manfull, Linda M.; Geerdes, Randal K.; Rudiger, David D.; Banta, Timothy A.; Wilson, Richard L.; Patten, Randall E.; Benson, Rodney L., System, method and computer-program product for transferring a numerical control program to thereby control a machine tool controller.
Ginter Karl L. ; Shear Victor H. ; Sibert W. Olin ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Ginter,Karl L.; Shear,Victor H.; Spahn,Francis J.; Van Wie,David M., Systems and methods for secure transaction management and electronic rights protection.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.