SAS storage virtualization controller, subsystem and system using the same, and method therefor
AssigneeInfortrend Technology, Inc.
InventorsChing-Te Pang, Michael Gordon Schnapp, Shiann-Wen Sue, Cheng-Yu Lee
Life of this patent
Estimating the term…
Abstract
A storage virtualization computer system. The storage virtualization computer system comprises a host entity for issuing an IO request, a SAS storage virtualization controller coupled to the host entity for executing IO operations in response to the IO request, and at least one physical storage device, each coupled to the storage virtualization controller through a SAS interconnect, for providing data storage space to the storage virtualization computer system through the SAS storage virtualization controller.
Claims77
A storage virtualization computer system comprising:
- a host entity for issuing host IO requests;
- and
- a storage virtualization subsystem comprising:
- an external storage virtualization controller (SVC) coupled to said host entity for executing IO operations in response to said host IO requests;
- and
- a group of physical storage devices (PSDs), each coupled to the storage virtualization controller through a Serial-Attached Small Computer System Interface (SAS) interconnect, for providing data storage space to the storage virtualization computer system through the storage virtualization controller;
- wherein said external storage virtualization controller is configured to define at least one logical media unit (LMU) consisting of sections of said group of PSDs and comprising one or more section(s) of each of said group of PSDs, and wherein said external storage virtualization controller is configured to provide a mapping that allows the at least one LMU to be accessible to the host entity;
- wherein one of the host IO requests is parsed to determine what operation is to be performed and on which section of the at least one LMU the operation is to be performed;
- and
- wherein when the operation comprises internally-emulated, asynchronous device sub-operations, then the external storage virtualization controller (SVC) executes the associated sub-operations including transferring any associated data to/from the host entity and then, when there is a failed operation, the SVC responds to the host entity with a status report indicating the failed operation;
- wherein appropriate device-side IO requests are generated and issued to the appropriate PSDs in response to the asynchronous device sub-operations, and wherein when one of the device-side IO requests does not complete successfully, the SVC engages backup operations that allow successful completion of the sub-operation, where the backup operations include generating other device-side IO requests to some media sections in said group of PSDs whose data is used to recover data that could not be read off while at least one PSD of said group of PSDs is inaccessible;
- and
- wherein when one of the host IO requests from the host entity is received by the SVC, and the one of the host IO requests is a write request, an IO complete report that the one of the host I/O requests is successfully complete is first issued to the host entity by the SVC, and then the SVC completes the operation performed on the section(s) of the LMU associated with the one of the host IO requests.
A storage virtualization subsystem for providing data storage space, comprising:
- an external storage virtualization controller (SVC) for connecting to a host entity and executing IO operations in response to host IO requests issued from said host entity;
- and
- a group of physical storage devices (PSDs), each coupled to the storage virtualization controller through a Serial-Attached Small Computer System Interface (SAS) interconnect, for providing data storage space to the host entity through the storage virtualization controller;
- wherein said external storage virtualization controller is configured to define at least one logical media unit (LMU) consisting of sections of said group of PSDs and comprising one or more section(s) of each of said group of PSDs, and wherein said external storage virtualization controller is configured to provide a mapping that allows the at least one LMU to be accessible to the host entity;
- wherein one of the host IO requests is parsed to determine what operation is to be performed and on which section of the at least one LMU the operation is to be performed;
- wherein when the operation comprises internally-emulated, asynchronous device sub-operations, then the external storage virtualization controller (SVC) executes the associated sub-operations including transferring any associated data to/from the host entity and then, when there is a failed operation, the SVC responds to the host entity with a status report indicating the failed operation;
- wherein appropriate device-side IO requests are generated and issued to the appropriate PSDs in response to the asynchronous device sub-operations, and wherein when one of the device-side IO requests does not complete successfully, the SVC engages backup operations that allow successful completion of the sub-operation, where the backup operations include generating other device-side IO requests to some media sections in said group of PSDs whose data is used to recover data that could not be read off while at least one PSD of said group of PSDs is inaccessible;
- and
- wherein when one of the host IO requests from the host entity is received by the SVC, and the one of the host IO requests is a write request, an IO complete report that the one of the host I/O requests is successfully complete is first issued to the host entity by the SVC, and then the SVC completes the operation performed on the section(s) of the LMU associated with the one of the host IO requests.
An external storage virtualization controller (SVC) of a storage virtualization subsystem, comprising:
- a central processing circuitry for performing IO operations in response to host IO requests from a host entity;
- at least one IO device interconnect controller coupled to said central processing circuitry;
- at least one host-side IO device interconnect port provided in a said at least one IO device interconnect controller for coupling to said host entity;
- and
- at least one Serial Attached Small Computer System Interface (SAS) device-side IO device interconnect port provided in a said at least one IO device interconnect controller for coupling to and performing point-to-point serial-signal transmission with a group of one physical storage devices (PSDs);
- wherein said external storage virtualization controller is configured to define at least one logical media unit (LMU) consisting of sections of said group of PSDs and comprising one or more section(s) of each of said group of PSDs, and wherein said external storage virtualization controller is configured to provide a mapping that allows the at least one LMU to be accessible to the host entity;
- wherein one of the host IO requests is parsed to determine what operation is to be performed and on which section of the at least one LMU the operation is to be performed;
- wherein when the operation comprises internally-emulated, asynchronous device sub-operations, then the SVC executes the associated sub-operations including transferring any associated data to/from the host entity and then, when there is a failed operation, the SVC responds to the host entity with a status report indicating the failed operation;
- wherein appropriate device-side IO requests are generated and issued to the appropriate PSDs in response to the asynchronous device sub-operations, and wherein when one of the device-side IO requests does not complete successfully, the SVC engages backup operations that allow successful completion of the sub-operation, where the backup operations include generating other device-side IO requests to some media sections in said group of PSDs whose data is used to recover data that could not be read off while at least one PSD of said group of PSDs is inaccessible;
- and
- wherein when one of the host IO requests from the host entity is received by the SVC, and the one of the host IO requests is a write request, an IO complete report that the one of the host I/O requests is successfully complete is first issued to the host entity by the SVC, and then the SVC completes the operation performed on the section(s) of the LMU associated with the one of the host IO requests.
A method for performing storage virtualization in a storage virtualization computer system with an external storage virtualization controller (SVC) of a storage virtualization subsystem, comprising:
- receiving a host IO request from a host entity of the computer system with the storage virtualization controller;
- parsing the host IO request with the storage virtualization controller to decide at least one IO operation to perform in response to said host IO request;
- and
- performing at least one IO operation with the storage virtualization controller to access a group of physical storage devices (PSDs) of the storage virtualization subsystem in point-to-point serial-signal transmission complying with Serial-Attached Small Computer System Interface (SAS) protocol;
- wherein said external storage virtualization controller is configured to define at least one logical media unit (LMU) consisting of sections of said group of PSDs and comprising one or more section(s) of each of said group of PSDs, and wherein said external storage virtualization controller is configured to provide a mapping that allows the at least one LMU to be accessible to the host entity;
- wherein the host IO request is parsed to determine what operation is to be performed and on which section of the at least one LMU the operation is to be performed;
- wherein when the operation comprises internally-emulated, asynchronous device sub-operations, then the storage virtualization controller (SVC) executes the associated sub-operations including transferring any associated data to/from the host entity and then, when there is a failed operation, the SVC responds to the host entity with a status report indicating the failed operation;
- wherein appropriate device-side IO requests are generated and issued to the appropriate PSDs in response to the asynchronous device sub-operations, and wherein when one of the device-side IO requests does not complete successfully, the SVC engages backup operations that allow successful completion of the sub-operation, where the backup operations include generating other device-side IO requests to some media sections in said group of PSDs whose data is used to recover data that could not be read off while at least one PSD of said group of PSDs is inaccessible;
- and
- wherein when the host IO request from the host entity is received by the SVC, and the host IO request is a write request, an IO complete report that the host I/O request is successfully complete is first issued to the host entity by the SVC, and then the SVC completes the operation performed on the section(s) of the LMU associated with the host IO request.
Dependencies are inferred from the claim text.