Patents by Inventor Theodore B. Vojnovich
Theodore B. Vojnovich has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11755438Abstract: An orchestration controller in a storage solution may establish namespaces, assign each namespace to a host, and establish software-defined storage controllers to handle input-output operations between the hosts and the namespaces. Each namespace is assigned to a given host and the input-output operations to and from the namespace are handled by a specific primary software-defined storage controller. In response to failure of the software defined controller, a secondary software-defined storage controller will take over handling of the input-output operations to and from the namespace. Also, in response to the failure of the software-defined storage controller, the host will direct subsequent input-output operations destined for the namespace to the secondary software-defined storage controller.Type: GrantFiled: March 31, 2021Date of Patent: September 12, 2023Inventors: David W. Cosby, Theodore B. Vojnovich, Manjunatha Hebbar, Anthony C. Yu, Patrick L. Caporale
-
Patent number: 11474940Abstract: Powering random access memory (RAM) modules with non-volatile memory components may include providing, by a power supply, a first output voltage to one or more RAM modules, each RAM module of the one or more RAM modules comprising a volatile memory component and a non-volatile memory component; providing, by the power supply, a second output voltage to one or more system components distinct from the one or more RAM modules; detecting a power event; sending, by the power supply, in response to detecting the power event, a signal to the one or more RAM modules to initiate a save operation, wherein the save operation comprises storing, for each of the one or more RAM modules, data from the volatile memory component to the non-volatile memory component; and ceasing, by the power supply, the second output voltage while maintaining the first output voltage to facilitate the save operation.Type: GrantFiled: March 31, 2019Date of Patent: October 18, 2022Assignee: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.Inventors: David W. Cosby, Jonathan R. Hinkle, Jose M. Orro, Theodore B. Vojnovich
-
Publication number: 20220318106Abstract: An orchestration controller in a storage solution may establish namespaces, assign each namespace to a host, and establish software-defined storage controllers to handle input-output operations between the hosts and the namespaces. Each namespace is assigned to a given host and the input-output operations to and from the namespace are handled by a specific primary software-defined storage controller. In response to failure of the software defined controller, a secondary software-defined storage controller will take over handling of the input-output operations to and from the namespace. Also, in response to the failure of the software-defined storage controller, the host will direct subsequent input-output operations destined for the namespace to the secondary software-defined storage controller.Type: ApplicationFiled: March 31, 2021Publication date: October 6, 2022Inventors: David W. Cosby, Theodore B. Vojnovich, Manjunatha Hebbar, Anthony C. Yu, Patrick L. Caporale
-
Patent number: 11029882Abstract: An apparatus for secure multiple server access to a non-volatile storage device is disclosed. A method and storage device product also perform the functions of the apparatus. An apparatus includes a storage device with three or more ports. Each port includes at least one lane and each port is configured to connect to a different server over the at least one lane of the port. The storage device includes a storage controller in the storage device for each port. Each storage controller controls storage to non-volatile storage of the storage device. The storage device includes a logical namespace assigned to each port. Each logical namespace is assigned to a portion of the non-volatile storage of the storage device. The logical namespace of a first port of the three or more ports is inaccessible to a second port of the three or more ports.Type: GrantFiled: March 29, 2019Date of Patent: June 8, 2021Assignee: LENOVO Enterprise Solutions (Singapore) PTE. LTDInventors: David W. Cosby, Theodore B. Vojnovich, Jonathan R. Hinkle, Patrick L. Caporale
-
Patent number: 10872053Abstract: An apparatus includes a root port for coupling to a root complex, and a plurality of endpoint ports for coupling to endpoint devices, wherein each endpoint port is associated with a function number. A downstream buffer queues transaction layer packets (TLPs) received from the root port, wherein each TLP in the downstream buffer is directed to an endpoint port associated with the identified function number. An upstream buffer queues TLPs received from each endpoint port, and directs the queued TLPs to the root port. A method includes associating a function number with each endpoint port of a switch, wherein each endpoint port is adapted for coupling to an endpoint device. The method further includes receiving a first TLP from a root complex, identifying a function number within the first TLP, and directing the first TLP to an endpoint device through the endpoint port associated with the identified function number.Type: GrantFiled: September 11, 2019Date of Patent: December 22, 2020Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
-
Publication number: 20200310685Abstract: An apparatus for secure multiple server access to a non-volatile storage device is disclosed. A method and storage device product also perform the functions of the apparatus. An apparatus includes a storage device with three or more ports. Each port includes at least one lane and each port is configured to connect to a different server over the at least one lane of the port. The storage device includes a storage controller in the storage device for each port. Each storage controller controls storage to non-volatile storage of the storage device. The storage device includes a logical namespace assigned to each port. Each logical namespace is assigned to a portion of the non-volatile storage of the storage device. The logical namespace of a first port of the three or more ports is inaccessible to a second port of the three or more ports.Type: ApplicationFiled: March 29, 2019Publication date: October 1, 2020Inventors: David W. Cosby, Theodore B. Vojnovich, Jonathan R. Hinkle, Patrick L. Caporale
-
Publication number: 20200310971Abstract: Powering random access memory (RAM) modules with non-volatile memory components may include providing, by a power supply, a first output voltage to one or more RAM modules, each RAM module of the one or more RAM modules comprising a volatile memory component and a non-volatile memory component; providing, by the power supply, a second output voltage to one or more system components distinct from the one or more RAM modules; detecting a power event; sending, by the power supply, in response to detecting the power event, a signal to the one or more RAM modules to initiate a save operation, wherein the save operation comprises storing, for each of the one or more RAM modules, data from the volatile memory component to the non-volatile memory component; and ceasing, by the power supply, the second output voltage while maintaining the first output voltage to facilitate the save operation.Type: ApplicationFiled: March 31, 2019Publication date: October 1, 2020Inventors: DAVID W. COSBY, JONATHAN R. HINKLE, JOSE M. ORRO, THEODORE B. VOJNOVICH
-
Patent number: 10698606Abstract: Host aware storage tiering including receiving, by a storage controller on a storage server, a disconnect signal indicating an end of a first client session for a client, wherein the first client session comprises accesses to a plurality of data blocks on the storage server; determining, by the storage controller, that at least one data block of the plurality of data blocks was moved to a first tier storage during the first client session; storing, by the storage controller, an indication that the at least one data block was moved to the first tier storage; receiving a connect signal indicating a beginning of a second client session for the client; and moving, in response to the connect signal, the at least one data block into the first tier storage.Type: GrantFiled: August 30, 2016Date of Patent: June 30, 2020Assignee: Lenovo Enterprise Solution (Singapore) Pte. Ltd.Inventors: Shawn C. Andrews, David W. Cosby, Theodore B. Vojnovich
-
Publication number: 20200004716Abstract: An apparatus includes a root port for coupling to a root complex, and a plurality of endpoint ports for coupling to endpoint devices, wherein each endpoint port is associated with a function number. A downstream buffer queues transaction layer packets (TLPs) received from the root port, wherein each TLP in the downstream buffer is directed to an endpoint port associated with the identified function number. An upstream buffer queues TLPs received from each endpoint port, and directs the queued TLPs to the root port. A method includes associating a function number with each endpoint port of a switch, wherein each endpoint port is adapted for coupling to an endpoint device. The method further includes receiving a first TLP from a root complex, identifying a function number within the first TLP, and directing the first TLP to an endpoint device through the endpoint port associated with the identified function number.Type: ApplicationFiled: September 11, 2019Publication date: January 2, 2020Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
-
Patent number: 10482049Abstract: Configuring NVMe devices for redundancy and scaling includes: identifying, by a first SSD (‘Solid State Drive’) driver executing on a first CPU (‘Central Processing Unit’), address space of a first SSD coupled to the first CPU by a first PCI (‘Peripheral Component Interconnect’) switch, the first PCI switch including one or more non-transparent bridges (‘NTBs’); partitioning, by the first SSD driver, the address space of the first SSD amongst the NTBs of the first PCI switch and the first CPU, where each NTB is configured to translate CPU memory addresses received from a CPU into a drive address in the address space partitioned to the NTB; and partitioning, by the first SSD driver, a plurality of namespaces of the first SSD amongst the first CPU and the NTBs.Type: GrantFiled: February 3, 2017Date of Patent: November 19, 2019Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.Inventors: Patrick L. Caporale, Randolph S. Kolvick, Pravin Patel, Gregory B. Pruett, Theodore B. Vojnovich
-
Patent number: 10445280Abstract: An apparatus includes a root port for coupling to a root complex, and a plurality of endpoint ports for coupling to endpoint devices, wherein each endpoint port is associated with a function number. A downstream buffer queues transaction layer packets (TLPs) received from the root port, wherein each TLP in the downstream buffer is directed to an endpoint port associated with the identified function number. An upstream buffer queues TLPs received from each endpoint port, and directs the queued TLPs to the root port. A method includes associating a function number with each endpoint port of a switch, wherein each endpoint port is adapted for coupling to an endpoint device. The method further includes receiving a first TLP from a root complex, identifying a function number within the first TLP, and directing the first TLP to an endpoint device through the endpoint port associated with the identified function number.Type: GrantFiled: October 12, 2016Date of Patent: October 15, 2019Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
-
Publication number: 20180335975Abstract: An apparatus includes a memory device for storing program instructions and a processor for processing the program instructions to: receive a host data storage command that includes a host namespace, a host memory pointer and a logical block address range; translate the host data storage command into a plurality of disk data storage commands, wherein each disk data storage command is uniquely identified with a disk namespace on one of a plurality of non-volatile memory devices; and send, for each of the plurality of disk data storage commands, the disk data storage command to the non-volatile memory device that includes the uniquely identified disk namespace.Type: ApplicationFiled: May 16, 2017Publication date: November 22, 2018Inventors: David W. Cosby, Theodore B. Vojnovich, Michael N. Condict, Jonathan R. Hinkle, Patrick L. Caporale, Pravin Patel
-
Publication number: 20180225054Abstract: Configuring NVMe devices for redundancy and scaling includes: identifying, by a first SSD (‘Solid State Drive’) driver executing on a first CPU (‘Central Processing Unit’), address space of a first SSD coupled to the first CPU by a first PCI (‘Peripheral Component Interconnect’) switch, the first PCI switch including one or more non-transparent bridges (‘NTBs’); partitioning, by the first SSD driver, the address space of the first SSD amongst the NTBs of the first PCI switch and the first CPU, where each NTB is configured to translate CPU memory addresses received from a CPU into a drive address in the address space partitioned to the NTB; and partitioning, by the first SSD driver, a plurality of namespaces of the first SSD amongst the first CPU and the NTBs.Type: ApplicationFiled: February 3, 2017Publication date: August 9, 2018Inventors: PATRICK L. CAPORALE, RANDOLPH S. KOLVICK, PRAVIN PATEL, GREGORY B. PRUETT, THEODORE B. VOJNOVICH
-
Publication number: 20180101498Abstract: An apparatus includes a root port for coupling to a root complex, and a plurality of endpoint ports for coupling to endpoint devices, wherein each endpoint port is associated with a function number. A downstream buffer queues transaction layer packets (TLPs) received from the root port, wherein each TLP in the downstream buffer is directed to an endpoint port associated with the identified function number. An upstream buffer queues TLPs received from each endpoint port, and directs the queued TLPs to the root port. A method includes associating a function number with each endpoint port of a switch, wherein each endpoint port is adapted for coupling to an endpoint device. The method further includes receiving a first TLP from a root complex, identifying a function number within the first TLP, and directing the first TLP to an endpoint device through the endpoint port associated with the identified function number.Type: ApplicationFiled: October 12, 2016Publication date: April 12, 2018Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
-
Publication number: 20180101375Abstract: A method includes a data storage device having a device parameter, said data storage device identifying a firmware image that is associated with said device parameter and is a more current version than a firmware image installed on the data storage device, wherein the identified firmware image is available from a firmware repository. The method further includes the data storage device initiating a download of the identified firmware image from the firmware repository during a period of time that the data storage device is handling no input-output tasks. Optionally, the method may further include the data storage device pausing the download of the firmware image from the firmware repository in response to receiving an input-output task.Type: ApplicationFiled: October 12, 2016Publication date: April 12, 2018Inventors: Patrick L. Caporale, Theodore B. Vojnovich
-
Publication number: 20180059952Abstract: Host aware storage tiering including receiving, by a storage controller on a storage server, a disconnect signal indicating an end of a first client session for a client, wherein the first client session comprises accesses to a plurality of data blocks on the storage server; determining, by the storage controller, that at least one data block of the plurality of data blocks was moved to a first tier storage during the first client session; storing, by the storage controller, an indication that the at least one data block was moved to the first tier storage; receiving a connect signal indicating a beginning of a second client session for the client; and moving, in response to the connect signal, the at least one data block into the first tier storage.Type: ApplicationFiled: August 30, 2016Publication date: March 1, 2018Inventors: SHAWN C. ANDREWS, DAVID W. COSBY, THEODORE B. VOJNOVICH
-
Patent number: 9870158Abstract: Data communications within a rack mountable microarray system includes: sending, from a microarray controller to a communication fabric, a request for data, where the microarray controller is one of the plurality of microarray controllers housed within a drive bay of an enclosure, where the enclosure includes a plurality of storage devices, and where the microarray controller controls one or more of the storage devices; determining, by the communication fabric, a destination microarray controller from among the plurality of microarray controllers, where the destination microarray controller controls another one or more of the storage devices; sending, from the destination microarray controller to the communication fabric, the data specified by the request for data; and receiving, at the microarray controller from the communication fabric, the data specified by the request for data.Type: GrantFiled: November 10, 2015Date of Patent: January 16, 2018Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.Inventor: Theodore B. Vojnovich
-
Publication number: 20170131921Abstract: Data communications within a rack mountable microarray system includes: sending, from a microarray controller to a communication fabric, a request for data, where the microarray controller is one of the plurality of microarray controllers housed within a drive bay of an enclosure, where the enclosure includes a plurality of storage devices, and where the microarray controller controls one or more of the storage devices; determining, by the communication fabric, a destination microarray controller from among the plurality of microarray controllers, where the destination microarray controller controls another one or more of the storage devices; sending, from the destination microarray controller to the communication fabric, the data specified by the request for data; and receiving, at the microarray controller from the communication fabric, the data specified by the request for data.Type: ApplicationFiled: November 10, 2015Publication date: May 11, 2017Inventor: THEODORE B. VOJNOVICH
-
Patent number: 9563380Abstract: Host port information is pulled directly from the switch before zoning is performed and is organized by chassis as an assist for mapping and masking an entire chassis. A graphical user interface allows a user to select storage by chassis to map and to select servers by chassis to map. The user then applies that mapping such that all servers selected are mapped to all storage selected. The user may repeat this mapping for another set of storage and servers. In a mixed environment, an icon may be shown in the graphical user interface to represent the mix. When the LUN mapping/masking is done, the LUN mapping/masking may be provided to the SAN manager to perform zoning. The LUN mapping/masking defines which host ports see which storage ports.Type: GrantFiled: December 23, 2014Date of Patent: February 7, 2017Assignee: International Business Machines CorporationInventors: Robert B. Basham, Deanna L. Q. Brown, Kelly L. Hicks, Andrew G. Hourselt, Rezaul S. M. Islam, Ashaki A. Ricketts, Teresa S. Swingler, Theodore B. Vojnovich
-
Publication number: 20150113183Abstract: Host port information is pulled directly from the switch before zoning is performed and is organized by chassis as an assist for mapping and masking an entire chassis. A graphical user interface allows a user to select storage by chassis to map and to select servers by chassis to map. The user then applies that mapping such that all servers selected are mapped to all storage selected. The user may repeat this mapping for another set of storage and servers. In a mixed environment, an icon may be shown in the graphical user interface to represent the mix. When the LUN mapping/masking is done, the LUN mapping/masking may be provided to the SAN manager to perform zoning. The LUN mapping/masking defines which host ports see which storage ports.Type: ApplicationFiled: December 23, 2014Publication date: April 23, 2015Inventors: Robert B. Basham, Deanna L.Q. Brown, Kelly L. Hicks, Andrew G. Hourselt, Rezaul S.M. Islam, Ashaki A. Ricketts, Teresa S. Swingler, Theodore B. Vojnovich