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: 11755438
    Abstract: 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: Grant
    Filed: March 31, 2021
    Date of Patent: September 12, 2023
    Inventors: David W. Cosby, Theodore B. Vojnovich, Manjunatha Hebbar, Anthony C. Yu, Patrick L. Caporale
  • Patent number: 11474940
    Abstract: 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: Grant
    Filed: March 31, 2019
    Date of Patent: October 18, 2022
    Assignee: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
    Inventors: David W. Cosby, Jonathan R. Hinkle, Jose M. Orro, Theodore B. Vojnovich
  • Publication number: 20220318106
    Abstract: 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: Application
    Filed: March 31, 2021
    Publication date: October 6, 2022
    Inventors: David W. Cosby, Theodore B. Vojnovich, Manjunatha Hebbar, Anthony C. Yu, Patrick L. Caporale
  • Patent number: 11029882
    Abstract: 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: Grant
    Filed: March 29, 2019
    Date of Patent: June 8, 2021
    Assignee: LENOVO Enterprise Solutions (Singapore) PTE. LTD
    Inventors: David W. Cosby, Theodore B. Vojnovich, Jonathan R. Hinkle, Patrick L. Caporale
  • Patent number: 10872053
    Abstract: 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: Grant
    Filed: September 11, 2019
    Date of Patent: December 22, 2020
    Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
    Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
  • Publication number: 20200310685
    Abstract: 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: Application
    Filed: March 29, 2019
    Publication date: October 1, 2020
    Inventors: David W. Cosby, Theodore B. Vojnovich, Jonathan R. Hinkle, Patrick L. Caporale
  • Publication number: 20200310971
    Abstract: 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: Application
    Filed: March 31, 2019
    Publication date: October 1, 2020
    Inventors: DAVID W. COSBY, JONATHAN R. HINKLE, JOSE M. ORRO, THEODORE B. VOJNOVICH
  • Patent number: 10698606
    Abstract: 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: Grant
    Filed: August 30, 2016
    Date of Patent: June 30, 2020
    Assignee: Lenovo Enterprise Solution (Singapore) Pte. Ltd.
    Inventors: Shawn C. Andrews, David W. Cosby, Theodore B. Vojnovich
  • Publication number: 20200004716
    Abstract: 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: Application
    Filed: September 11, 2019
    Publication date: January 2, 2020
    Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
  • Patent number: 10482049
    Abstract: 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: Grant
    Filed: February 3, 2017
    Date of Patent: November 19, 2019
    Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
    Inventors: Patrick L. Caporale, Randolph S. Kolvick, Pravin Patel, Gregory B. Pruett, Theodore B. Vojnovich
  • Patent number: 10445280
    Abstract: 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: Grant
    Filed: October 12, 2016
    Date of Patent: October 15, 2019
    Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
    Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
  • Publication number: 20180335975
    Abstract: 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: Application
    Filed: May 16, 2017
    Publication date: November 22, 2018
    Inventors: David W. Cosby, Theodore B. Vojnovich, Michael N. Condict, Jonathan R. Hinkle, Patrick L. Caporale, Pravin Patel
  • Publication number: 20180225054
    Abstract: 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: Application
    Filed: February 3, 2017
    Publication date: August 9, 2018
    Inventors: PATRICK L. CAPORALE, RANDOLPH S. KOLVICK, PRAVIN PATEL, GREGORY B. PRUETT, THEODORE B. VOJNOVICH
  • Publication number: 20180101498
    Abstract: 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: Application
    Filed: October 12, 2016
    Publication date: April 12, 2018
    Inventors: David W. Cosby, Jonathan R. Hinkle, Theodore B. Vojnovich
  • Publication number: 20180101375
    Abstract: 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: Application
    Filed: October 12, 2016
    Publication date: April 12, 2018
    Inventors: Patrick L. Caporale, Theodore B. Vojnovich
  • Publication number: 20180059952
    Abstract: 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: Application
    Filed: August 30, 2016
    Publication date: March 1, 2018
    Inventors: SHAWN C. ANDREWS, DAVID W. COSBY, THEODORE B. VOJNOVICH
  • Patent number: 9870158
    Abstract: 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: Grant
    Filed: November 10, 2015
    Date of Patent: January 16, 2018
    Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
    Inventor: Theodore B. Vojnovich
  • Publication number: 20170131921
    Abstract: 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: Application
    Filed: November 10, 2015
    Publication date: May 11, 2017
    Inventor: THEODORE B. VOJNOVICH
  • Patent number: 9563380
    Abstract: 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: Grant
    Filed: December 23, 2014
    Date of Patent: February 7, 2017
    Assignee: International Business Machines Corporation
    Inventors: 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: 20150113183
    Abstract: 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: Application
    Filed: December 23, 2014
    Publication date: April 23, 2015
    Inventors: 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