Storage systems have become an integral part of modern day computing. Whether it is a small start-up or a large enterprise, organizations these days may need to deal with a vast amount of data that could range from a few terabytes to multiple petabytes. Storage systems or devices provide a useful way of storing and organizing such large amounts of data. However, going ahead, enterprises are looking at more efficient ways of utilizing their storage resources.
For a better understanding of the solution, embodiments will now be described, purely by way of example, with reference to the accompanying drawings, in which:
Data management is vital to success of an organization. Whether it is a private company, a government undertaking, an educational institution, or a new start-up, managing data (for example, customer data, vendor data, patient data, etc.) in an appropriate manner is crucial for existence and growth of an enterprise. Storage systems play a useful role in this regard. A storage system allows an enterprise to store and organize data, which may be analyzed to derive useful information for a user. Thus, considering their usefulness, storage systems tend to garner a significant piece of share from the IT budget of an organization.
However, enterprises are now looking for meaningful ways to extract more value from their investments in storage resources. For instance, with an increasing need of just-in-time storage requirement for public and private cloud, multi-tenant NAS appliance, and file-based media for virtual machine (VM) clients, provisioning and effective utilization of available storage space has gained considerable importance for organizations. In this context, reclamation of storage space in a storage device or volume plays a significant role. Since reclamation of storage space in a storage device may involve I/O communication with the storage device, unless it is carried out at the right time and for the right quantum of blocks, it may impact I/O bandwidth and device performance. Also, an unnecessary reclamation i.e. reclamation without an actual requirement may incur a huge performance overhead. Hence, it is desirable that reclamation is performed at the right time and for the right quantum of blocks.
To address this issue, the present disclosure describes various examples for reclaiming storage in a thin provisioned storage device. In an example, upon determination that storage space provisioned to a logical unit number (LUN) by a thin provisioned storage device is freed by a file system managing file system operations in the LUN, the storage space freed by the file system may be marked. Further, a determination may be made to identify storage space that may be released from the marked storage space to the thin provisioned storage device. In an example, the determination may be made based on i) difference between rate of allocation and rate of release of storage blocks by the file system in the LUN, and ii) usage level of storage blocks in the thin provisioned storage device. The determined amount of the marked storage space may then be released to the thin provisioned storage device.
Computing device 102 may represent any type of computing system capable of reading machine-executable instructions. Examples of computing device 102 may include, without limitation, a server, a desktop computer, a notebook computer, a tablet computer, a thin client, a mobile device, a personal digital assistant (PDA), a phablet, and the like. In an example, computing device 102 may be a file server system or file storage system.
Computing device 102 may be in communication with storage device 104, for example, via a computer network 106. Such a computer network 106 may be a wireless or wired network. Computer network 106 may include, for example, a Local Area Network (LAN), a Wireless Local Area Network (WAN), a Metropolitan Area Network (MAN), a Storage Area Network (SAN), a Campus Area Network (CAN), or the like. Further, computer network 106 may be a public network (for example, the Internet) or a private network (for example, an intranet).
Storage device 104 may be any type of storage device. Storage device 104 may be an internal storage device, an external storage device, or a network attached storage device. Some non-limiting examples of storage device 104 may include a hard disk drive, a storage disc (for example, a CD-ROM, a DVD, etc.), a storage tape, a solid state drive, a USB drive, a Serial Advanced Technology Attachment (SATA) disk drive, a Fibre Channel (FC) disk drive, a Serial Attached SCSI (SAS) disk drive, a magnetic tape drive, an optical jukebox, and the like. In an example, storage device 104 may be a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a Redundant Array of Inexpensive Disks (RAID), a data archival storage system, or a block-based device over a storage area network (SAN). In another example, storage device 104 may be a storage array, which may include one or more storage drives (for example, hard disk drives, solid state drives, etc.).
Storage device 104 may communicate with computing device via a suitable interface or protocol such as, but not limited to, Fibre Channel, Fibre Connection (FICON), Internet Small Computer System Interface (iSCSI), HyperSCSI, and ATA over Ethernet.
In an example, physical storage space provided by storage device may be presented as a logical storage space to computing device 102. Such logical storage space (also referred as “logical volume”, “virtual disk”, or “storage volume”) may be identified using a “Logical Unit Number” (LUN). In another instance, physical storage space provided by storage device 104 may be presented as multiple logical volumes to computing device 102. In such case, each of the logical storage spaces may be referred to by a separate LUN. Thus, if storage device is physical disk, a LUN may refer to the entire physical disk, or a subset of the physical disk or disk volume. In another example, if storage device 104 is a storage array comprising multiple storage disk drives, physical storage space provided by the disk drives may be aggregated as a logical storage space. The aggregated logical storage space may be divided into multiple logical storage volumes, wherein each logical storage volume may be referred to by a separate LUN. LUNs, thus, may be used to identify individual or collections of physical disk devices for address by a protocol associated with a SCSI, iSCSI, or Fibre Channel (FC).
In an example, storage device 104 may be thinly provisioned. Thin provisioning (TP) is a method of optimizing the efficiency with which the available space is utilized in a storage device. Thin provisioning may be called as “just-in-time” provisioning. Thin provisioning allows allocation of disk storage space in a flexible manner among multiple clients (for example, LUNs). Thin provisioning enables provisioning of more storage on a LUN than what may be currently available on a volume. Thus, a thin provisioned storage system may include one or more flexible logical storage volumes supported by a fixed capacity storage device(s). In other words, a thin provisioned storage device may include a virtual storage capacity and a real storage capacity.
Storage device 104 may provide block level storage. In an example, logical storage space (or logical volume) may be divided into blocks. A “block” may be defined as a sequence of bytes or bits, having a nominal length (a block size). Data (for example, a file) may be organized into a block. A block may be of fixed length or variable length. A block may be defined at a logical storage level or at physical storage disk level. In an instance, file system on computing device 102 may use a block to store a file or directory in a logical storage space. In another example, a file or directory may be stored over multiple blocks that may be located at various places on a volume. In context of a physical storage space, a file or directory may be spread over different physical areas of a storage medium.
In the example of
Some of the example functionalities that may be performed by file system 108, determination module 110, marker module 112, and reclamation module 114 are described in reference to
Computing system 200 may be a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a personal digital assistant (PDA), and the like.
In an example, computing system 200 may include a file system 108, a determination module 110, a marker module 112, and a reclamation module 114.
In an example, file system 108 may be associated with a storage volume(s) supported by a storage device (for example, 104). A storage volume may be referred to by a LUN. In general, file system 108 may manage file system operations in a LUN. Some non-limiting examples of file system operations may include creating, modifying, or deleting a file(s). Other operations may include reading and writing to files, renaming of files, and movement of files within directories in the file system 108. In an instance, file system 108 may use blocks on a storage volume to store file and directories. A file or directory may be stored over several blocks that may be located at various places on a volume. In an instance, file system 108 may include one or more file system objects. Some non-limiting examples of a file system object may include a file, a directory, an access control list (ACL), and the like. File system 108 may be a component of an operating system on computing system 200 or an independent component.
File system 108 may be a local file system or a scale-out file system such as a shared file system or a network file system. Examples of a shared file system may include a Network Attached Storage (NAS) file system or a cluster file system. Examples of a network file system may include a distributed file system or a distributed parallel file system. Some non-limiting examples of file system may include FAT (FAT12, FAT16, FAT32), NTFS, HFS and HFS+, HPFS, UFS, ext2, ext3, and ext4. File system may communicate with a storage device (for example, 104) via a suitable protocol. Some non-limiting examples of such protocol may include Network File System (NFS) protocol, Common Internet File System (CIFS) protocol, Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), and the like.
Determination module 110 may determine whether storage space provisioned to a storage volume by a thin provisioned storage device is freed by a file system managing file system operations in the storage volume. In other words, if a file system frees a storage block(s) (for instance, upon deletion of a file) in a storage space allocated to a logical unit number (LUN) by a thin provisioned storage device, determination module 110 may identify the storage blocks freed by the file system. In an instance, the freed storage blocks may not result in a release of the actual data blocks to the underlying thin storage device supporting the LUN.
Marker module 112 may mark storage space freed by a file system. For instance, once determination module identifies storage blocks freed by a file system in a storage volume supported by a thin provisioned device, marker module 112 may assign a tag to the freed storage blocks for identification.
Reclamation module 114 may determine amount of the marked storage space that may be released to the thin provisioned storage device. In other words, reclamation module may determine whether entire, partial or none of the marked storage space may be released from the LUN to the underlying supporting thin provisioned storage device. In an example, reclamation module 114 may make the determination based on one or more parameters. In an instance, one of the parameters may be the difference between rate of allocation and rate of release of storage blocks by the file system that manages file system operations in the LUN. In other words, reclamation module 114 may consider the rate at which the file system is releasing and allocating storage blocks in the LUN that includes marked storage space. For example, for an interval between time t1 and time t2 (where t2>t1), the rate of release of storage blocks (for example, Rt1t2) in a LUN may be calculated as Rt1t2=R(t2)−R(t1), wherein Rt1 and Rt2 may represent number of released storage blocks at time t1 and time t2, respectively. Likewise, for the same time interval, the rate of allocation of storage blocks (for example, At1t2) in a LUN may be calculated as At1t2=A(t2)−A(t1), wherein At1 and At2 may represent number of allocated storage blocks at time t1 and time t2, respectively. The difference between allocated storage blocks and released storage blocks (for example, Ωt1t2) may be calculated as Ωt1t2=At1t2−Rt1t2. A lower Ωt1t2 may represent lower storage consumption in a LUN, whereas a higher Ωt1t2 may indicate higher storage consumption in the LUN. In an example, a threshold may be defined for (Ωt1t2), which may be a percentage of Ωt1t2 compared to total storage blocks in the LUN. To provide an example scenario, Ωt1t2 threshold may be defined as: i) low for file system usage of a LUN below 2%, ii) medium for file system usage of a LUN between 2% and 4%, and iii) high for file system usage above 4%. It may be mentioned that terms “low”, “medium”, and “high” are used herein in relative sense.
In an example, another parameter that reclamation module 114 may take into account to determine amount of the marked storage space that may be released to the thin provisioned storage device may include usage level of storage blocks in the thin provisioned storage device. In other words, reclamation module may consider number of used blocks in the thin provisioned storage device that supports the LUN comprising marked storage blocks. In an instance, various thresholds may be defined related to usage of storage space in a thin provisioned storage device. The thresholds may be user defined or system defined. To provide an example scenario, for a thin provisioned storage device with 100 GB of storage space, device usage thresholds may be defined as: i) very low for device usage below 10 GB, ii) low for usage between 10 GB-25 GB, iii) medium for usage between 25 GB-50 GB, iv) high for usage between 50 GB-80 GB, and v) very high for usage above 80 GB. It may be mentioned that terms “very low”, “medium”, “high” and “very high” are used herein in relative sense.
In an instance, reclamation module 114 may determine amount of marked storage space that may be released to a thin provisioned storage device based on a combination of factors. In an example, the combination of factors may include rate at which the file system is releasing and allocating storage blocks in the LUN that includes marked storage space, and usage level of storage blocks in the thin provisioned storage device. In an example, the amount of marked storage space that may be released to a thin provisioned storage device, as determined by reclamation module 114, may be modified by a user of the system. In other words, a user may or may not accept the determination made by reclamation module 114. In such case, the reclamation may occur only for the amount of storage space specified by a user. In other words, file system 108 may release only the amount of storage space specified by a user.
Computing system 300 may be a server, a desktop computer, a notebook computer, a tablet computer, a mobile phone, a personal digital assistant (PDA), and the like.
In an example, computing system 300 may include a file system 108, a determination module 110, a marker module 112, a reclamation module 114, a data collector module 116, a database 118, and a data analyzer module 120.
Data collector module 116 may collect a variety of data. Some non-limiting examples of data that may be collected by data collector module 116 may include data related to usage level of storage blocks in a thin provisioned storage device, number of storage blocks allocated by a file system in a storage volume, and number of storage blocks released by a file system in a storage volume. In an instance, data collected by data collector module 116 may be stored in database 118. Database 118 may also store other data such as device usage thresholds for a thin provisioned storage device, and storage configuration information.
Data analyzer module 120 may analyze data stored in database. For example, data analyzer module 120 may determine the difference between rate of allocation and rate of release of storage blocks by a file system in a storage volume that includes marked storage space.
For the purpose of simplicity of explanation, the example method of
It may be noted that the above-described examples of the present solution is 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.
Number | Date | Country | Kind |
---|---|---|---|
2094/CHE/2015 | Apr 2015 | IN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2015/037228 | 6/23/2015 | WO | 00 |