Wide spread use of social networks and communications have led to exponential data growth and usage of storage disk in storage area networks (SANs) in datacenters. Each SAN in a datacenter may include storage arrays to store data. Storage arrays may include multiple storage pools, each storage pool may include either a set of high performance low capacity storage disks, such as solid state storage devices (SSDs), a set of medium performance medium capacity storage disks, such as fiber channel (FC) storage disks, or a set of low performance high capacity storage disks, such as nearline (NL)/serial AT attachment (SATA) storage disks. In such a scenario, high performance low capacity storage disks may be significantly more expensive to use than low performance high capacity storage disks.
Examples are described in the following detailed description and in reference to the drawings, in which:
Increasing use of social networks and various other communications via mobile and electronic devices has resulted in exponential data growth. Such data may reside in heterogeneous storage arrays in SANs located across multiple datacenters. Heterogeneous storage array may include high performance low capacity, medium performance medium capacity, and/or high capacity low performance storage disks. High performance low capacity storage disks may be significantly more expensive to use than low performance high capacity storage disks. In datacenters usage of stored data may vary with time, i.e., as the stored data ages the I/O activity associated with the stored data may also significantly reduce.
To address these issues, the present specification describes various examples for effective utilization of heterogeneous storage arrays in datacenters to optimize cost and improve performance associated with storing and retrieving data. In an example, the proposed solution automatically collects and analyses storage volume I/O usage and latency and recommends moving the storage volumes to appropriate logical data tiers within and across heterogeneous storage arrays in datacenters, which in turn facilitates ease and effective storage data movement and reduce storage costs based on usage.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present techniques. It will be apparent, however, to one skilled in the art that the present apparatus, devices and systems may be practiced without these specific details. Reference in the specification to “an example” or similar language means that a particular feature, structure, or characteristic described is included in at least that one example, but not necessarily in other examples.
The terms “storage” and “storage disk” may be used interchangeably throughout the document. Also, the terms “network” and “storage area network” may be used interchangeably throughout the document. Further, the terms “volume” and “storage volume” are being used interchangeably throughout the document.
Turning now to the figures,
Furthermore, as shown in
In addition, as shown in
In an example operation, the smart storage data analyzer (SSDA) 170 discovers SAN devices in each of the multiple data centers 105 in the network 100. In an example, the SAN devices may include multiple hosts 110A-D, multiple SAN switches 120A-D, and multiple storage arrays 130A-D. Also in an example, each of multiple storage arrays 130A-D may include at least one of storage pools 140A-D, In an example, the SSDA 170 may discover some or all of the SAN devices present in each of the multiple datacenters 105A-N via a SRM database in the network 100.
Further in the example operation, the SSDA 170 may determine a SAN connectivity path tree of some or all discovered SAN devices within and across the multiple datacenters 105A-N in the network 100. In an example, the SSDA 170 may determine a connectivity path tree. The term “connectivity path tree” may refer to any mapping of communication links between a source SAN device and a target SAN device. For example, the determined connectivity path tree between a source to a target may look as follows:
The SSDA 170 may then retrieve metadata associated with each of the storage pools 140A-D in the multiple storage arrays 130A-D in the multiple datacenters 105A-N. In an example, the SSDA 170 may obtain the metadata associated with each storage pool from an SRM inventory table. Example metadata may include storage pool universal unique identifier (UUID), disk UUID, disk type, revolutions per minute (RPM), redundant array of inexpensive disks (RAID) level, storage pool capacity in gigabytes (GB), storage controller worldwide port name (WWPN), and/or storage array name. As one particular example,
The SSDA 170 may then create logical data tiers 0-2 (shown in
Below is an example implementation of above described creation of logical data tiers 0-2 and mapping of the storage volumes:
The volume data analyzer 172 may then analyze each storage volume input/output (I/O) usage and associated latency within and across datacenters 105A-N. An example process of storage volume I/O usage and associated latency analysis is presented below in
As shown in
In the example shown in
One example of recommendation engine implementation or feature that the recommendation engine 174 may be recommending logical data tier based on the connectivity path. This may include checking for less utilized storage volumes placed on a high cost logical data tier. Based on the outcome of checking if less utilized storage volumes are placed on the high cost logical data tier, then the recommendation engine 174 finds and recommends appropriate local tier across logical data tiers by considering disk revolutions per minute (RPM) speed, storage pool capacity and/or redundant array of inexpensive disk (RAID) level. Further, the recommendation engine 174 may check if there are any heavily utilized storage volumes that are on the low performance logical data tiers. Based on the outcome of the checking, if there are any heavily utilized volumes that are on the low performance logical data tier, then the recommendation engine 174 may find and recommend appropriate high performance logical data tier across the logical data tiers by considering storage disk RPM, storage pool capacity and/or RAID level to move the heavily utilized storage volumes.
The data mover 176 may then dynamically move the storage volumes to the recommended logical data tiers. In one example, the data mover 176 may determine whether the connectivity path exists from the storage volumes to the target logical data tier where the data can be moved in a non-disruptive approach. For example, data mover 176 may check if an initiator port is physically connected to a target storage pool recommended by the recommendation engine 174. If the connectivity path exists, data mover 176 may then migrate the data from source storage volume to the target storage volume on a different logical data tier by performing the provisioning operations. If the connectivity path does not exist, the data mover 176 may recommend the user to have physical connection between initiator port and the target storage arrays/target storage pools and then rerun to checking.
At block 504, a SAN connectivity path tree of some or all discovered SAN devices within and across the datacenters in the network may be determined. At block 506, metadata associated with each storage disk in the multiple storage arrays may be retrieved. At block 508, logical data tiers based on the retrieved metadata may be created. At block 510, storage volumes stored within each storage disk may be mapped to created logical data tiers. At block 512, each storage volume input/output (I/O) usage and associated latency of the storage arrays within and across the datacenters may be analyzed. At block 514, another one of the created logical data tiers may be recommended for storing storage volumes based on the created logical data tiers, the mapped storage volumes and/or the analyzed storage volume I/O usage.
At 602, the volume data analyzer 172 may iterate through a storage disk inventory in the SAN to collect the performance and capacity usage data of the storage disks, e.g., based on UUID. The volume data analyzer 172 may also update storage disk performance counters and capacity usage of each storage disk.
At 604, the volume data analyzer 172 may iterate through each storage volume stored within the storage disks to collect the storage volume performance counters and to update capacity usage of each volume.
At 606, a check is made to determine whether storage volume performance counters reach (e.g., greater than or equal to) a predetermined threshold value. If the storage volume performance counters reach the predetermined threshold value, then a target logical tier and associated target storage disks are determined at 608. In one example, the storage disks may be determined by obtaining the disk UUID from the storage volume and the source storage disk, obtaining disk object, such as disk type, disk RAID, disk RPM, may from disk inventory using the disk UUID, obtaining a target logical data tier associated with the storage volume based on the disk type, disk RAID, and disk RPM and then determining the target storage disks that are mapped to the target logical data tier.
For example, the volume data analyzer 172 may select a target logical tier and associated target storage disks that have a lesser I/O usage (e.g., with performance counters that have not exceeded the predetermined threshold). The volume data analyzer 172 may select the target logical data tier (and associated target storage disks) from any such appropriate logical data tiers randomly, in a round-robin manner, or according to various other selection schemes.
At 610, a check is made to determine whether a connectivity path tree exists from the storage volumes to the target logical data tier where the data can be moved. In one example, the storage pool capacity of the source storage disk is less than the storage pool capacity of the target storage disk.
If the connectivity path exists, at 612 the bindings are updated, a provisioning service is invoked for volume creation on the target disk, the data is migrated from the source storage volume to the target storage volume on the target disk and then the connectivity path tree may be updated with source and target volume mappings upon migration of the source storage volume. If the connectivity path does not exist in the connectivity path tree, then the connectivity path tree is recommended to the user at 614.
At 616, if the storage volume performance counters do not reach the predetermined threshold value, then it is checked if the storage disk RPM is high and disk type is of SSD. When the storage disk RPM is high and disk type is of SSD then the disk UUID is obtained from the storage volume and source storage disk, the disk object is obtained from the disk inventory using the disk UUID, and the logical data inventory is sorted based on the RPM speed in descending order.
The example devices, systems, and methods described through
It may be noted that the above-described examples of the present solution are for the purpose of illustration only. Although the solution has been described in conjunction with a specific embodiment thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
The terms “include,” “have,” and variations thereof, as used herein, have the same meaning as the term “comprise” or appropriate variation thereof. Furthermore, the term “based on,” as used herein, means “based at least in part on,” Thus, a feature that is described as based on some stimulus can be based on the stimulus or a combination of stimuli including the stimulus.
The present description has been shown and described with reference to the foregoing examples. It is understood, however, that other forms, details, and examples can be made without departing from the spirit and scope of the present subject matter that is defined in the following claims.
Number | Date | Country | Kind |
---|---|---|---|
201641004054 | Feb 2016 | IN | national |