Patents Assigned to Cirrus Data Solutions, Inc.
  • Patent number: 11789657
    Abstract: An intercept engine is installed on a computer and includes an intercept filter adapted to intercept selected commands transmitted between a file system and a storage device. The intercept engine also includes an intercept manager adapted to transmit to the intercept filter one or more primitives, wherein each primitive includes device information specifying a device, wherein a command directed to the specified device is to be intercepted, command type information specifying a type of command to be intercepted, and follow-up action information specifying an action to be performed after the command has been intercepted. A primitive may also include default action information specifying an action to be performed with respect to the command if a communication between the intercept filter and the intercept manager is interrupted. The intercept engine intercepts commands transmitted between the file system and the storage device in accordance with the one or more primitives.
    Type: Grant
    Filed: October 22, 2021
    Date of Patent: October 17, 2023
    Assignee: CIRRUS DATA SOLUTIONS INC.
    Inventors: Wai T. Lam, Sammy Tam, Li-Hsiang Cheng, Tomasz Jaworski
  • Patent number: 10152281
    Abstract: A method of transparently inserting a virtual storage layer into a Fiber channel based storage area network (SAN) while maintaining continuous I/O operations is provided. A device is inserted between a host entity and a first storage device. The device identifies a plurality of first paths between the host entity and the first storage device, and defines a plurality of second paths by defining, for each first path among the plurality of first paths, a corresponding second path between the host entity and a second storage device. The device determines, for each of the plurality of first paths, a respective first state. The device establishes, for each of the second paths among the plurality of second paths, a second state based on the first state of the corresponding first path. The device redirects, to the second storage device, communications directed from the host entity to the first storage device, via the plurality of second paths.
    Type: Grant
    Filed: April 30, 2018
    Date of Patent: December 11, 2018
    Assignee: CIRRUS DATA SOLUTIONS, INC.
    Inventors: Wayne K. Lam, Wai T. Lam, Yikshum Tam, Lin Zhu
  • Patent number: 10013215
    Abstract: A method of transparently inserting a virtual storage layer into a Fiber channel based storage area network (SAN) while maintaining continuous I/O operations is provided. A device is inserted between a host entity and a first storage device. The device identifies a plurality of first paths between the host entity and the first storage device, and defines a plurality of second paths by defining, for each first path among the plurality of first paths, a corresponding second path between the host entity and a second storage device. The device determines, for each of the plurality of first paths, a respective first state. The device establishes, for each of the second paths among the plurality of second paths, a second state based on the first state of the corresponding first path. The device redirects, to the second storage device, communications directed from the host entity to the first storage device, via the plurality of second paths.
    Type: Grant
    Filed: September 14, 2017
    Date of Patent: July 3, 2018
    Assignee: Cirrus Data Solutions, Inc.
    Inventors: Wayne K. Lam, Wai T. Lam, Yikshum Tam, Lin Zhu
  • Patent number: 9792076
    Abstract: A method of transparently inserting a virtual storage layer into a Fibre channel based storage area network (SAN) while maintaining continuous I/O operations is provided. A device is inserted between a host entity and a first storage device. The device identifies a plurality of first paths between the host entity and the first storage device, and defines a plurality of second paths by defining, for each first path among the plurality of first paths, a corresponding second path between the host entity and a second storage device. The device determines, for each of the plurality of first paths, a respective first state. The device establishes, for each of the second paths among the plurality of second paths, a second state based on the first state of the corresponding first path. The device redirects, to the second storage device, communications directed from the host entity to the first storage device, via the plurality of second paths.
    Type: Grant
    Filed: October 31, 2016
    Date of Patent: October 17, 2017
    Assignee: CIRRUS DATA SOLUTIONS, INC.
    Inventors: Wayne K. Lam, Wai T. Lam, Yikshum Tam, Lin Zhu
  • Patent number: 9740649
    Abstract: A first port of a device is connected to a first switch port of a first virtual switch defined within a switch device and a second port of the device is connected to a second switch port of a second virtual switch defined within the switch device. A target world wide port name of a target port of a storage system connected to the second virtual switch is identified by the device. The first port of the device is registered, in a first registration procedure, with the first virtual switch based on the target world wide port name. Registration information relating to an initiator port of a server that is associated with the target port is received in a second registration procedure. An initiator world wide port name of the initiator port of the server is determined based on the registration information. A storage volume in the storage system that is associated with the initiator port is identified based on the initiator world wide port name of the initiator port.
    Type: Grant
    Filed: September 29, 2016
    Date of Patent: August 22, 2017
    Assignee: Cirrus Data Solutions, Inc.
    Inventors: Wai Lam, Wayne Lam, Chang Liu
  • Patent number: 9542120
    Abstract: A volume of data is copied from a first location to a second location. A procedure to repair a volume of data is initiated. A first instruction associated with the repair procedure is selectively redirected to a staging storage, based on a determination that the first instruction relates to an action that makes a change to the volume. A second instruction is selectively redirected to one of the staging storage and the volume, based on data stored in the staging storage.
    Type: Grant
    Filed: December 18, 2013
    Date of Patent: January 10, 2017
    Assignee: CIRRUS DATA SOLUTIONS, INC.
    Inventors: Wai Lam, Wayne Lam
  • Patent number: 9495113
    Abstract: A first port of a device is connected to a first switch port of a first virtual switch defined within a switch device and a second port of the device is connected to a second switch port of a second virtual switch defined within the switch device. A target world wide port name of a target port of a storage system connected to the second virtual switch is identified by the device. The first port of the device is registered, in a first registration procedure, with the first virtual switch based on the target world wide port name. Registration information relating to an initiator port of a server that is associated with the target port is received in a second registration procedure. An initiator world wide port name of the initiator port of the server is determined based on the registration information. A storage volume in the storage system that is associated with the initiator port is identified based on the initiator world wide port name of the initiator port.
    Type: Grant
    Filed: August 3, 2015
    Date of Patent: November 15, 2016
    Assignee: CIRRUS DATA SOLUTIONS, INC.
    Inventors: Wai Lam, Wayne Lam, Chang Liu
  • Patent number: 9298390
    Abstract: A first volume comprising a plurality of blocks stored in a first location is accessed. A plurality of hash values representing the plurality of blocks is stored. The plurality of blocks is copied to a second volume stored in a second location, generating a copied volume. The copied volume is verified based on the plurality of hash values. In one embodiment, the first volume is altered, after the plurality of hash values is stored. Altering the first volume may include changing data in a selected one of the plurality of blocks. The first volume may be altered during copying of the plurality of blocks to the second volume.
    Type: Grant
    Filed: April 4, 2013
    Date of Patent: March 29, 2016
    Assignee: Cirrus Data Solutions, Inc.
    Inventors: Wai T. Lam, Wayne Lam, Yik Shum Tam
  • Patent number: 9229647
    Abstract: A first device in a network, having a first port, receives an identifier of a second port of a second device in the network, the network comprising a host entity, a switch, and a storage system. The first port of the first device spoofs the second port of the second device, during a communication with the switch. The first device receives information identifying a third port of a third device in the network that is zoned to the second port of the second device. The device identifies data stored in the storage system that may be accessed by the host entity, based at least on the information.
    Type: Grant
    Filed: May 19, 2015
    Date of Patent: January 5, 2016
    Assignee: Cirrus Data Solutions, Inc.
    Inventors: Wai T. Lam, Wayne Lam, Chang Liu
  • Patent number: 9077752
    Abstract: A first device in a network, having a first port, receives an identifier of a second port of a second device in the network, the network comprising a host entity, a switch, and a storage system. The first port of the first device spoofs the second port of the second device, during a communication with the switch. The first device receives information identifying a third port of a third device in the network that is zoned to the second port of the second device. The device identifies data stored in the storage system that may be accessed by the host entity, based at least on the information.
    Type: Grant
    Filed: December 21, 2012
    Date of Patent: July 7, 2015
    Assignee: CIRRUS DATA SOLUTIONS, INC.
    Inventors: Wai T. Lam, Wayne Lam, Chang Liu
  • Publication number: 20150169251
    Abstract: A data packet is generated. An instruction relating to a selected data processing operation, and information indicating that additional processing of the data packet is required, are inserted into the data packet. For example, the information may comprise a predetermined bit or a predetermined sequence of bits. In one embodiment, the information is inserted at a predetermined location within the data packet. The data packet is inserted into a selected field of an iSCSI command. For example, the data packet may be inserted into a buffer field of the iSCSI command. The iSCSI command is transmitted.
    Type: Application
    Filed: December 12, 2013
    Publication date: June 18, 2015
    Applicant: CIRRUS DATA SOLUTIONS, INC.
    Inventors: Wai LAM, Wayne LAM, Yik Shum TAM
  • Publication number: 20140181445
    Abstract: A volume of data is copied from a first location to a second location. A procedure to repair a volume of data is initiated. A first instruction associated with the repair procedure is selectively redirected to a staging storage, based on a determination that the first instruction relates to an action that makes a change to the volume. A second instruction is selectively redirected to one of the staging storage and the volume, based on data stored in the staging storage.
    Type: Application
    Filed: December 18, 2013
    Publication date: June 26, 2014
    Applicant: CIRRUS DATA SOLUTIONS, INC.
    Inventors: Wai LAM, Wayne LAM
  • Publication number: 20140181440
    Abstract: A first volume comprising a plurality of blocks stored in a first location is accessed. A plurality of hash values representing the plurality of blocks is stored. The plurality of blocks is copied to a second volume stored in a second location, generating a copied volume. The copied volume is verified based on the plurality of hash values. In one embodiment, the first volume is altered, after the plurality of hash values is stored. Altering the first volume may include changing data in a selected one of the plurality of blocks. The first volume may be altered during copying of the plurality of blocks to the second volume.
    Type: Application
    Filed: April 4, 2013
    Publication date: June 26, 2014
    Applicant: Cirrus Data Solutions, Inc.
    Inventors: Wai T. Lam, Wayne Lam, Yik Shum Tam
  • Publication number: 20130166747
    Abstract: A first device in a network, having a first port, receives an identifier of a second port of a second device in the network, the network comprising a host entity, a switch, and a storage system. The first port of the first device spoofs the second port of the second device, during a communication with the switch. The first device receives information identifying a third port of a third device in the network that is zoned to the second port of the second device. The device identifies data stored in the storage system that may be accessed by the host entity, based at least on the information.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 27, 2013
    Applicant: CIRRUS DATA SOLUTIONS, INC.
    Inventor: Cirrus Data Solutions, Inc.
  • Patent number: 8417818
    Abstract: A target world wide port name of a target port of a storage system is identified, by a device located in a path between a switch port of a switch and the target port of the storage system. A first port of the device is registered with the switch based on the target world wide port name, in a first registration procedure. Registration information relating to an initiator port of a server that is associated with the target port is received, in a second registration procedure. An initiator world wide port name of the initiator port of the server is determined, based on the registration information. A storage volume in the storage system that is associated with the initiator port is identified, based on the initiator world wide port name of the initiator port.
    Type: Grant
    Filed: July 24, 2012
    Date of Patent: April 9, 2013
    Assignee: Cirrus Data Solutions, Inc.
    Inventors: Wai T. Lam, Wayne Lam, Chang Liu
  • Patent number: 8255538
    Abstract: A target world wide port name of a target port of a storage system is identified, by a device located in a path between a switch port of a switch and the target port of the storage system. A first port of the device is registered with the switch based on the target world wide port name, in a first registration procedure. Registration information relating to an initiator port of a server that is associated with the target port is received, in a second registration procedure. An initiator world wide port name of the initiator port of the server is determined, based on the registration information. A storage volume in the storage system that is associated with the initiator port is identified, based on the initiator world wide port name of the initiator port.
    Type: Grant
    Filed: December 23, 2011
    Date of Patent: August 28, 2012
    Assignee: Cirrus Data Solutions, Inc.
    Inventors: Wai T. Lam, Wayne Lam, Chang Liu