TECHNICAL FIELD

The disclosed technology relates generally to intelligent data storage systems, and more specifically to technology for dynamically changing the page size used in an address-based data storage system.

BACKGROUND

Data storage systems are arrangements of hardware and software that include non-volatile data storage devices (e.g. electronic flash drives, magnetic disk drives, and/or optical drives) that are used to provide non-volatile storage for processing host I/O (Input/Output) requests (i.e. writes and/or reads) that may be received from one or more hosts (e.g. host computers). The host I/O requests that are processed by a data storage system may include block I/O requests as well as file I/O requests. The host I/O requests indicate host data using logical addresses within the logical address space of one or more logical volumes (“logical storage volumes”) of non-volatile data storage that are contained in and maintained by the data storage system. The data storage system performs various data storage services that organize and secure host data received from host computers on the non-volatile data storage devices of the data storage system.

SUMMARY

The storage processor of a data storage system processes host I/O requests at least in part by issuing backend I/O operations to the non-volatile data storage devices of the data storage system. The backend I/O operations read host data from and/or write host data to the non-volatile data storage devices, as required to process the host I/O requests. The non-volatile data storage devices may be capable of processing I/O operations with a minimum unit of access of 512 bytes, which is the size of a single SCSI (Small Computer System Interface) block. However, for performance reasons, storage processors are configured to issue backend I/O operations that access non-volatile data storage in the non-volatile data storage devices using units of access that are larger than 512 bytes, referred to as the “page size” that is used to access physical pages of non-volatile data storage located in the non-volatile data storage devices. The page size used by the storage processor to access physical pages in the non-volatile data storage devices is the smallest unit of non-volatile data storage accessed by the storage processor in a backend I/O operation. Accordingly, host data stored in the non-volatile data storage devices can only be read by the storage processor in multiples of the page size used to access the non-volatile data storage devices. Similarly, host data can only be written to the non-volatile data storage devices by the storage processor in multiples of the page size used to access the non-volatile data storage devices.

In previous data storage systems, the page size used to access the non-volatile data storage devices of the data storage system has been inflexible and unmodifiable. The page size was fixed at design time, and subsequently used without adjustment. The use of a statically defined page size only allowed trade-offs between larger and smaller page sizes to be considered at design time.

In general, there are advantages associated with the use of both larger and smaller page sizes. For example, using a larger page size may have the following advantages:

a. Less per-page meta-data required, and less memory consumed to store per-page metadata.

b. Fewer backend I/O operations needed for larger host I/O requests. For example, a 32 KB host I/O read request may be processed using a single backend I/O read operation if the page size is at least 32 KB, but will require multiple backend I/O read operations for smaller page sizes.

c. More efficient RAID (Redundant Array of Independent Disks) calculations (e.g. parity calculations), since the calculations can be performed using larger pages of data.

d. Automatic pre-fetch of proximately stored host data. For example, when using a 32 KB page size, processing of an 8 KB host I/O read request automatically brings an additional 24 KB of nearby host data into cache, and such proximately stored host data is often likely to be read next.

e. Improved data compression efficiency.

On the other hand, using a smaller page size may have the following advantages:

a. Avoiding reading and internally transferring excessive amounts of host data. For example, each 2 KB host I/O read request processed using a 32 KB page size requires that the storage processor read 32 KB from the non-volatile data storage device, and then store the entire 32 KB, and/or calculate a CRC (Cyclic Redundancy Code) on the entire 32 KB of host data in order to validate the host data, even though only 2 KB of host data was needed to satisfy the host I/O read request.

b. Avoiding write amplification when processing smaller host I/O write requests. For example, a large 32 KB page size may result in a single 2 KB host I/O write request requiring the storage processor to read a full 32 KB physical page from the non-volatile data storage device, modify the 32 KB per the 2 KB of host data indicated by the host I/O write request, and then write the entire modified 32 KB page back to the non-volatile data storage devices. In contrast, processing the 2 KB host I/O request using a smaller 2 KB page would advantageously require only reading, modifying, and writing 2 KB of host data.

c. More efficient use of storage processor cache, since the size of cache slots is typically the same size as the page size. For example, processing a 2 KB host I/O read request using a relatively small page size of 2 KB would require updating only a 2 KB cache slot, whereas processing the same size host I/O read request in a system using the larger page size of 32 KB would require updating an entire 32 KB cache slot.

d. Increased deduplication potential when deduplication is performed on a per page basis, since smaller size units of duplicate host data can be identified and removed.

Larger and smaller pages sizes thus each have specific advantages and disadvantages, depending on the specific context. The specific page size that is the best for a storage processor to use when accessing non-volatile data storage devices may accordingly be context specific. For example, different applications issuing host I/O operations may have different I/O profiles, leading to the desirability of the storage processor using different page sizes to access host I/O requests directed to different logical storage volumes. Previous data storage systems were, however, limited to using a single fixed page size at all times for processing host I/O requests directed to all logical storage volumes, and therefore could not optimize the page size dynamically, e.g. in response to specific needs of the applications that consume the non-volatile data storage provided from the non-volatile data storage devices.

To address the above described and other technical shortcomings of previous technologies, the disclosed technology initially processes host I/O requests directed to an individual logical storage volume by accessing physical pages of non-volatile data storage having a default page size. An indication of an optimal page size for the logical storage volume is received, and the size of the physical pages of non-volatile data storage accessed to process host I/O requests directed to the logical storage volume is changed from the default page size to the optimal page size for the logical storage volume. The default page size is changed to the optimal page size for the logical storage volume by changing a size of physical pages of non-volatile data storage indicated by a mapping structure that maps logical addresses for the logical storage volume to corresponding physical pages of non-volatile data storage from the default page size to the optimal page size for the logical storage volume.

For example, the physical pages of non-volatile data storage may be contained in at least one non-volatile data storage device, and processing host I/O requests directed to the logical storage volume may include issuing backend I/O operations to the non-volatile data storage device based on the mapping structure that maps logical addresses for the logical storage volume to corresponding pages of non-volatile data storage.

In another example, the optimal page size for the logical storage volume may be larger than the default page size, and changing the size of the physical pages accessed to process host I/O requests directed to the logical storage volume from the default page size to the optimal page size for the logical storage volume may increase a page size used in the backend I/O operations issued to the non-volatile data storage device to process the host I/O requests directed to the logical storage volume from the default page size to the optimal page size for the logical storage volume.

In another example, the optimal page size for the logical storage volume may be smaller than the default page size, and changing the size of the physical pages accessed to process host I/O requests directed to the logical storage volume from the default page size to the optimal page size for the logical storage volume may decrease a page size used in the backend I/O operations issued to the non-volatile data storage device to process the host I/O requests directed to the logical storage volume from the default page size to the optimal page size for the logical storage volume.

In some embodiments, the mapping data structure may be a mapping tree that represents mappings between logical addresses in an address space of the logical storage volume to corresponding physical pages of non-volatile data storage contained in at least one non-volatile data storage device. In such embodiments, changing the size of physical pages of non-volatile data storage indicated by the mapping structure may include changing a size of physical pages of non-volatile data storage indicated by at least one leaf node in a leaf level of the mapping tree from the default page size to the optimal page size for the logical storage volume.

In some embodiments, each leaf node in the leaf level of the mapping tree may individually include an indication of a size of the physical pages of non-volatile data storage indicated by that leaf node. Changing the size of the physical pages of non-volatile data storage indicated by the mapping structure may further include changing the indication of the size of the physical pages of non-volatile data storage indicated by each leaf node in the mapping tree from the default page size to the optimal page size for the logical storage volume.

Embodiments of the disclosed technology may provide significant improvements over previous technologies. For example, embodiments of the disclosed technology may advantageously support different applications having different I/O profiles by enabling the use of an optimal page size that varies from application to application. For example, a data storage system may operate optimally with regard to providing non-volatile data storage to each one of a database whose optimal page size is 8 KB, a file system whose optimal page size is 32 KB, and a VDI (Virtual Desktop Infrastructure) application whose optimal page size is 1 MB. Each application may consume its own logical storage volume, and the data storage system can accordingly optimize the page size used to access non-volatile data storage for host I/O operations directed to each individual logical storage volume so that the processing of the host I/O operations reflects the I/O profile of the consuming application.

In another example of an advantage that may be provided by embodiments of the disclosed technology, use of application specific page sizes may improve the effectiveness of data reduction techniques. For example, using larger page sizes may be advantageous when performing data compression while providing non-volatile data storage for applications that generate or use data having a high compression ratio. In contrast, using smaller page sizes may be advantageous when performing data deduplication while providing non-volatile data storage for applications that generate or use data for which a high data deduplication rate can be achieved when the deduplication is performed based on a smaller page size.

And in another example of an advantage that may be provided by embodiments of the disclosed technology, automatic configuration of an optimal page size for a logical storage unit advantageously eliminates the need for manual configuration of the page size used by the data storage system on a per application basis.

