P
US9239786B2ActiveUtilityPatentIndex 92

Reconfigurable storage device

Assignee: SAMSUNG ELECTRONICS LTDPriority: Jan 18, 2012Filed: Jul 8, 2013Granted: Jan 19, 2016
Est. expiryJan 18, 2032(~5.5 yrs left)· nominal 20-yr term from priority
Inventors:KI YANG SEOKKWON SEONGNAM
G06F 3/0605G06F 12/0684G06F 11/3485G06F 11/3447G06F 3/0679G06F 3/0629G06F 3/0632G06F 11/3409
92
PatentIndex Score
21
Cited by
28
References
38
Claims

Abstract

Exemplary embodiments for reconfiguring a storage system comprise receiving user requirement information for a storage device and automatically generating feature settings for the storage device from the user requirement information and a device profile for the storage device; and using the feature settings to automatically reconfigure the storage device into one or more logical devices having independent behavioral characteristics. Further exemplary embodiments comprise receiving feedback from the storage device regarding runtime performance data of at least one of the storage device and the logical devices; and responsive to a determination that the runtime performance data do not satisfy the user requirement information, dynamically adjusting configuration of the one or more logical devices to meet the user requirement information.

Claims

exact text as granted — not AI-modified
We claim: 
     
       1. A method for reconfiguring a storage system, the method performed by at least one software component executing on at least one processor, comprising:
 receiving user requirement information for a storage device and automatically generating feature settings for the storage device from the user requirement information and a device profile for the storage device, the device profile including performance ranges of features particular to the storage device, performance models, and runtime performance data; 
 using the feature settings to automatically reconfigure the storage device into one or more logical devices having independent behavioral characteristics; 
 receiving feedback from the storage device regarding the runtime performance data of at least one of the storage device and the logical devices; and 
 responsive to a determination that the runtime performance data do not satisfy the user requirement information, dynamically adjusting configuration of the one or more logical devices to meet the user requirement information. 
 
     
     
       2. The method of  claim 1 , wherein the user requirement information comprises a high-level description of behavioral characteristics of the storage device. 
     
     
       3. The method of  claim 2 , wherein the high-level description comprises at least one of a service level agreement (SLA) and quality of service (QoS) requirements. 
     
     
       4. The method of  claim 3 , wherein the SLA further comprises specifications for any combination of attributes including capacity, addressing mode, protection, and performance. 
     
     
       5. The method of  claim 1 , further comprising: using the device profile to determine whether a specification of the user requirement information can be satisfied by the storage device. 
     
     
       6. The method of  claim 5 , wherein the device profile comprises performance models that are associated with features of the storage device having a correlation with device performance. 
     
     
       7. The method of  claim 5 , further comprising: storing the device profile on the storage device and making the device profile available to a host. 
     
     
       8. The method of  claim 5 , further comprising: storing the device profile in at least one of: a host and a remote location accessible by the host or the storage device. 
     
     
       9. The method of  claim 1 , wherein automatically generating feature settings further comprises: using the feature settings to enable/disable particular features of the storage device and to specify values for particular features, wherein an effect of the features are global to all logical devices or local to a specific logical device. 
     
     
       10. The method of  claim 1 , wherein the runtime performance data comprises part of the device profile and includes performance indices available via a self-monitoring, analysis and reporting technology (SMART) interface, and vendor-specific runtime performance metrics including min/max/avg read/write latency, min/max/avg queue length, min/max/avg internal IOPS, read/write amplification ratio, and garbage collection time. 
     
     
       11. The method of  claim 10 , wherein the runtime performance data further comprises: device status, device background job status, and host background job status. 
     
     
       12. A reconfigurable storage system, comprising:
 a configuration translation component executing on a host that receives user requirement information for a storage device and automatically generates feature settings for the storage device from the user requirement information and a device profile for the storage device, the device profile including performance ranges of features particular to the storage device, performance models, and runtime performance data; 
 a configuration component executing on the storage device that receives the feature settings from the host and uses the feature settings to automatically reconfigure the storage device into one or more logical devices having independent behavioral characteristics; and 
 wherein the configuration translation component receives feedback from the storage device regarding the runtime performance data of at least one of the storage device and the logical devices, and responsive to a determination that the runtime performance data do not satisfy the user requirement information, dynamically adjusts configuration of the one or more logical devices to meet the user requirement information. 
 
     
     
       13. The system of  claim 12 , wherein the user requirement information comprises a high-level description of behavioral characteristics of the storage device. 
     
     
       14. The system of  claim 13 , wherein the high-level description comprises at least one of a service level agreement (SLA) and quality of service (QoS) requirements. 
     
     
       15. The system of  claim 14 , wherein the SLA further comprises specifications for any combination of attributes including capacity, addressing mode, protection, and performance. 
     
     
       16. The system of  claim 12 , wherein the configuration translation component is further configured to use the device profile to determine whether a specification of the user requirement information can be satisfied by the storage device. 
     
     
       17. The system of  claim 16 , wherein the device profile comprises performance models that are associated with features of the storage device having a correlation with device performance. 
     
     
       18. The system of  claim 16 , wherein the device profile is stored on the storage device and made available to the host. 
     
     
       19. The system of  claim 16 , wherein the device profile in at least one of: the host and a remote location accessible by the host or the storage device. 
     
     
       20. The system of  claim 12 , wherein the configuration translation component is further configured to use the feature settings to enable/disable particular features of the storage device and to specify values for particular features, wherein an effect of the features are global to all logical devices or local to a specific logical device. 
     
     
       21. The system of  claim 12 , wherein the runtime performance data comprises part of the device profile and includes performance indices available via a self-monitoring, analysis and reporting technology (SMART) interface, and vendor-specific runtime performance metrics including min/max/avg read/write latency, min/max/avg queue length and waiting time, min/max/avg internal IOPS, read/write amplification ratio, garbage collection time, and timeout count. 
     
     
       22. The system of  claim 21 , wherein the runtime performance data further comprises: device status, device background job status, and host background job status. 
     
     
       23. An executable software product stored on a computer-readable storage medium containing program instructions for reconfiguring a storage system, the program instructions for:
 receiving user requirement information for a storage device and automatically generating feature settings for the storage device from the user requirement information and a device profile for the storage device, the device profile including performance ranges of features particular to the storage device, performance models, and runtime performance data; 
 using the feature settings to automatically reconfigure the storage device into one or more logical devices having independent behavioral characteristics; 
 receiving feedback from the storage device regarding the runtime performance data of at least one of the storage device and the logical devices; and 
 responsive to a determination that the runtime performance data do not satisfy the user requirement information, dynamically adjusting configuration of the one or more logical devices to meet the user requirement information. 
 
     
     
       24. The executable software product of  claim 23 , wherein the user requirement information comprises a high-level description of behavioral characteristics of the storage device. 
     
     
       25. The executable software product of  claim 24 , wherein the high-level description comprises at least one of a service level agreement (SLA) and quality of service (QoS) requirements. 
     
     
       26. The executable software product of  claim 25 , wherein the SLA further comprises specifications for any combination of attributes including capacity, addressing mode, protection, and performance. 
     
     
       27. The executable software product of  claim 23 , further comprising program instructions for: using the device profile to determine whether a specification of the user requirement information can be satisfied by the storage device. 
     
     
       28. The executable software product of  claim 27 , wherein the device profile comprises performance models that are associated with features of the storage device having a correlation with device performance. 
     
     
       29. The executable software product of  claim 27 , further comprising program instructions for: storing the device profile on the storage device and making the device profile available to a host. 
     
     
       30. The executable software product of  claim 27 , further comprising program instructions for: storing the device profile in at least one of: a host and a remote location accessible by the host or the storage device. 
     
     
       31. The executable software product of  claim 23 , wherein automatically generating feature settings further comprises program instructions for: using the feature settings to enable/disable particular features of the storage device and to specify values for particular features, wherein an effect of the features are global to all logical devices or local to a specific logical device. 
     
     
       32. The executable software product of  claim 23 , wherein the runtime performance data comprises part of the device profile and includes performance indices available via a self-monitoring, analysis and reporting technology (SMART) interface, and vendor-specific runtime performance metrics including min/max/avg read/write latency, min/max/avg queue length and waiting time, min/max/avg internal IOPS, read/write amplification ratio, garbage collection time, and timeout count. 
     
     
       33. The executable software product of  claim 32 , wherein the runtime performance data further comprises: device status, device background job status, and host background job status. 
     
     
       34. A host that reconfigures a storage device, comprising:
 a memory; 
 a processor coupled to the memory; and 
 a first software component executed by the processor that is configured to:
 receive user requirements including a service level agreement (SLA) specifications; 
 convert the SLA specifications to feature settings based on a device profile, the device profile including performance ranges of features particular to the storage device, performance models, and runtime performance data; 
 determine optimal combinations of the feature settings; 
 generate multiple plans comprising configuration commands from the optimal combinations; and 
 select one of the plans considering performance and status of the storage device and the user requirements; and 
 
 a second software component executed by the processor that is configured to:
 receive the selected plan; 
 send the plan to the reconfigurable storage over a configuration channel; 
 receive a response from the storage device; and 
 iterate the plans in case of a negative response from the storage device; and 
 
 a third software component executed by the processor that is configured to:
 collect the device profile and send the device profile to the first software component; 
 monitor the one or more logical devices created on the storage device, and determine if all the user requirements are satisfied; and 
 notify the first software component to adjust the plan based on the device profile in case of a SLA violation. 
 
 
     
     
       35. The host of  claim 34 , further comprising: multiple performance models associated with each feature of the reconfigurable storage device, correlation and anti-correlation between features, and planning algorithms that evaluate the performance models and generate the configuration plans. 
     
     
       36. A reconfigurable storage device, comprising:
 a main storage; 
 a processor coupled to the main storage; and 
 a software component executed by the processor that is configured to:
 receive a plan comprising at least one configuration command containing feature settings; 
 check availability and applicability of the feature settings in the plan based on a device profile, the device profile including performance ranges of features particular to the storage device, performance models, and runtime performance data; 
 when the plan is not valid, rejecting the plan and rolling back any changes that were made by the plan; 
 validating the plan when both availability and applicability of the feature settings are true; 
 executing the plan, and updating the device profile; and 
 creating one or more logical devices on the reconfigurable storage device by associating the executed plan with a storage space. 
 
 
     
     
       37. The reconfigurable storage device of  claim 36 , wherein the software component checks the availability of the feature settings by: determining if the reconfigurable storage device supports the feature settings by comparing the plan to the device profile. 
     
     
       38. The reconfigurable storage device of  claim 37 , wherein the software component checks the applicability of the feature settings by: estimating a degree of adjustment to features based on the device profile, and by controlling adjustment of the features within an applicable boundary feature based on the device profile.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.