I / O Operations in LOG Structure Arrays

By using flash copy volumes and internal write-on-time copy mechanisms in LSA, the hollow problems caused by write operations are solved, the performance and efficiency of the storage system are improved, and the life of the SSD disk is extended.

CN114579043BActive Publication Date: 2024-12-31INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202111430298.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-01
Filing Date
2021-11-29
Publication Date
2024-12-31
Estimated Expiration
2041-11-29

AI Technical Summary

Technical Problem

When using a log structure array (LSA), invalid data locations and holes caused by write operations increase, resulting in reduced storage space and triggering compute-intensive garbage collection operations that affect performance and latency.

Method used

Through the Flash Copy volume's target mapping and internal copy-on-write (COW) mechanism, the internal pointer of the destination location of the dataset is moved from the virtual volume to the Flash Copy volume during the next I/O operation of the storage volume, avoiding the Create invalid locations in LSA to reduce the generation of voids.

Benefits of technology

It effectively reduces the void in LSA, reduces the frequency of garbage collection operations, improves the performance and data management efficiency of the storage system, and extends the healthy life of SSD disks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114579043B_ABST
    Figure CN114579043B_ABST
Patent Text Reader

Abstract

A method, system, and computer program product for managing input / output (I / O) operations in a log structure array (LSA) are provided. The method receives a write request for a storage volume. The write request includes a data set. The method determines, based on a target map for a flash copy volume, that a data set for a target segment of the storage volume has not been copied to a target location. During a next IO operation of the storage volume, the LSA is instructed to perform an internal copy-on-write (COW) of the data set. Based on the internal COW instruction, the method moves an internal pointer to the target location from the virtual volume to the flash copy volume.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to methods for managing I / O operations in an LSA (log structured array) environment. More specifically, but not exclusively, embodiments of the present disclosure relate to a computer-implemented method for managing I / O operations in an LSA during a block data backup in a unified storage system. The present disclosure also relates to related systems for managing I / O operations in an LSA environment, and computer program products for operating such systems. Background Art

[0002] Some computing storage systems enable point-in-time data replication features. These features may be available at the block storage level. For example, a point-in-time data replication feature may include creating a replication to create a full volume copy of the data in a given storage unit. The replication establishes a relationship between a source volume and a target volume. The established volume pair acts as a point-in-time replication and allows read operations and write operations to both the source volume and the target volume. When a write occurs on the source volume, the data may be copied to the target location, and then the new data may be written to the source volume. Summary of the invention

[0003] According to embodiments described herein, a computer-implemented method for managing input / output (I / O) operations in a log structure array (LSA) is provided. The method receives a write request for a storage volume. The write request includes a data set. The method determines, based on a target map for a flash copy volume, that a data set for a target segment of the storage volume has not been copied to a target location. During a next IO operation of the storage volume, the LSA is instructed to perform an internal copy-on-write (COW) of the data set. Based on the internal COW instruction, the method moves an internal pointer to the target location from the virtual volume to the flash copy volume.

[0004] According to embodiments described herein, a system for managing input / output (I / O) operations in a log structure array (LSA) is provided. The system includes one or more processors and a computer-readable storage medium storing program instructions coupled to the one or more processors, the program instructions causing the one or more processors to perform operations when executed by the one or more processors. The operation receives a write request to a storage volume. The write request includes a data set. The operation determines, based on a target map of a flash copy volume, that the data set of a target segment of the storage volume has not been copied to a target location. During a next and IO operation of the storage volume, the LSA is instructed to perform an internal copy-on-write (COW) of the data set. Based on the internal COW instruction, the operation moves an internal pointer to the target location from a virtual volume to a flash copy volume.

[0005] According to embodiments described herein, a computer program product for managing input / output (I / O) operations in a log structure array (LSA) is provided. The computer program product includes a computer readable storage medium containing program instructions executable by one or more processors to cause the one or more processors to receive a write request to a storage volume. The write request includes a data set. The computer program product determines, based on a target mapping of a flash copy volume, that the data set of a target segment of the storage volume has not been copied to a target location. During a next IO operation of the storage volume, instruct the LSA to perform an internal copy-on-write (COW) of the data set. Based on the internal COW instruction, the computer program product moves an internal pointer to the target location from the virtual volume to the flash copy volume. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The accompanying drawings included in this application are incorporated into the specification and form a part of the specification. They show embodiments of the present disclosure and together with the specification explain the principles of the present disclosure. The accompanying drawings only illustrate certain embodiments and do not limit the present disclosure.

[0007] Figure 1 A block diagram of a computing environment for implementing concepts and computer-based methods according to at least one embodiment is depicted.

[0008] Figure 2 A flow chart of a computer-implemented method for managing I / O operations in an LSA environment is depicted in accordance with at least one embodiment.

[0009] Figure 3 A flow chart of a computer-implemented method for managing I / O operations in an LSA environment is shown in accordance with at least one embodiment.

[0010] Figure 4 A block diagram of a computing system for managing I / O operations in an LSA environment is shown in accordance with at least one embodiment.

[0011] Figure 5 is a schematic diagram of a cloud computing environment in which the concepts of the present disclosure may be implemented according to an embodiment of the present disclosure.

[0012] Figure 6 is a diagram of model layers of a cloud computing environment in which the concepts of the present disclosure may be implemented according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0013] The present disclosure generally relates to methods for managing I / O operations in an LSA environment. More specifically, but not exclusively, embodiments of the present disclosure relate to a computer-implemented method for managing I / O operations in an LSA during a block data backup in a unified storage system. The present disclosure also relates to related systems for managing I / O operations in an LSA environment, and computer program products for operating such systems.

[0014] Data storage systems and facilities are typically built to perform processing challenges quickly and for a relatively large number of users. Some of these systems integrate databases, processing, and storage into a single compact system. These systems can be configured for analytical processing and are designed for flexible growth. When analyzing raw data, business intelligence applications that utilize these data storage systems can issue many read input / output (I / O) operations to collect data for processing. These applications can also send many write I / O operations to save intermediate data in temporary storage space. These applications can utilize a data storage system architecture with multiple hosts connected to multiple server blades, which are then connected to multiple disk attachments. Multiple disks can be volumes exposed from a storage system or storage system architecture. Each disk can have multiple virtualized volumes. Virtualized volumes can be exposed to the upper layers of the system and can be used to store data at least temporarily. Storage controllers or storage controller clusters can enable virtualization of storage disks. These storage control components can also implement storage-level backups and snapshots, flash copies, or point-in-time data replication of virtualized volumes. These point-in-time data replications can be performed at the block level and can be used for various purposes.

[0015] When point-in-time replication is used in conjunction with a log-structured array, write operations performed on the point-in-time data replication may result in holes due to internal movement of data that creates invalid data locations. As holes grow, available storage space may decrease. Garbage collection operations are used to remove holes from the log-structured array. Garbage collection operations may be computationally intensive and cause disruption to other operations.

[0016] Some data storage systems use a log structure array (LSA) file system. LSA systems can solve the write performance problems of some data storage systems by buffering the sequence of file system changes. These changes can be cached in a cache. Once the appropriate number of changes, time periods, or other threshold conditions are met, these changes can be written sequentially from the cache to a given disk. Sequential writes can be performed in a single disk write operation. The changes that can be written to the disk can include file data blocks, attributes, index blocks, directories, or any other information that can be used to manage the file system.

[0017] A block storage system can use a similar approach for log-structured block storage. In such a system, a logical block can be defined for a volume. A logical block can point to an actual logical block address (LBA) of a disk. The logical volume LBA of a block storage system (e.g., the LBA of a virtual volume of a disk) can be managed as a log structure array to manage write operations of the storage system. Each host write operation can be saved at a new logical LBA location where a data pointer is located. In such a system, write I / O operations and seek times of the physical LBA of the storage system can be eliminated for each write operation. For example, a block storage system can create a volume from a block storage pool. The volume can be presented to a host application to perform I / O operations on a disk. A volume can have a logical LBA associated with it, and the logical LBA is internally pointed to a physical LBA location based on a mapping strategy of a storage controller architecture of the block storage system. In this way, a block storage system can have a log-structured implementation at the storage pool level. In addition, a block storage system can have a location as a pointer to a circular buffer location. In the case where a host issues a write I / O to a volume, data can be written to the most recent pointer location of the LSA, and the pointer can be moved to the next logical location.

[0018] When data is written to the circular buffer, in this way, each time the pointer moves to the next location, an invalid location is created in the LSA of the storage controller. The invalid data location can be a hole in the LSA. In order to clear the hole from the buffer space, the hole is subjected to a garbage collection operation. Although the garbage collection process frees up the physical volume LBAs in the LSA, these operations are compute-intensive and cause pauses in normal I / O operations. A garbage collection operation can be triggered when a threshold number of logical blocks are occupied in the LSA or the number of holes has increased beyond a specified threshold. During the garbage collection operation, the logical and physical LBA addresses can be changed to make the locations in the logical LBA map continuous. The LSA pointer can be updated so that additional freed logical LBA locations can become available for use by the LSA or storage controller. As garbage collection operations are used or become more frequent, the impact of garbage collection operations on the storage system increases.

[0019] The block storage system can use a point-in-time data replication feature such as flash copy to create a full-volume copy of the data within the storage unit. Flash copy creates a relationship between the source volume and the target volume. The flash copy operation also creates a bitmap of the source volume. Once the relationship and bitmap are created, the target volume can be accessed as if the data had been physically copied. Similarly, a background process can copy tracks from the source to the target volume. The target or copy generated by the flash copy operation generates a point-in-time copy of the source volume, and both the source volume and the target volume can be subjected to read operations and write operations. In some instances, when new data is to be written to the source volume, the target volume can be generated as a flash copy. In this case, the data of the source volume at time T can be copied to the target location as T0 data. The data to be written to the source volume can be written as T1 data. Writing T1 data can update the bitmap of the selected I / O location. In this way, an instant copy of the volume is created, and the actual data will be copied when a write is issued to the source disk. This operation can be understood as a copy-on-write (COW) operation.

[0020] In a log-structured array, storage-based snapshots can be configured in storage virtualization using COW operations. When a write I / O operation is sent to the storage system, the location of the logical volume-level LBA is identified in the virtualization map. Existing flash replication relationships can be resolved, and data movement decisions can be made by the virtualization engine or storage controller. When the source volume receives a write I / O operation and a previous flash replication has not been established, the data is moved to the target disk. The host I / O operation can then be written to the source disk. In this case, the move from the source volume to the target volume generates an internal I / O operation, which will increase the LSA pointer by one. The internal I / O operation also creates a hole in the LSA. When the operation is completed, the host write operation is saved at the latest LSA pointer location. This internal move causes a hole in the LSA. In the case where the source disk is written to in a directed manner, the number of holes in the LSA increases, and a garbage collection operation can be triggered. Repeated garbage collection operations may cause performance issues and delays in the host application when the garbage collection operation is processed.

[0021] Embodiments of the present disclosure enable efficient processing of COW data and operations in LSA and similar implementations of storage systems. Some embodiments of the present disclosure enable storage systems to avoid holes or blank spaces within log storage arrays or volumes of storage systems. The present disclosure can reduce or eliminate blank spaces within log structure arrays by allowing data to be moved from write operations in a hierarchical manner. In some embodiments, the present disclosure implements a distinction between internal data movement and host application write operations. Some embodiments of the present disclosure implement a mechanism by which the LSA algorithm distinguishes between COW movement and write I / O operations to improve performance and data management efficiency within the storage system. In some embodiments, the present disclosure proposes methods and systems that enable operation of log structure arrays and flash copy service modules in a storage management system. Embodiments of the present disclosure can provide information related to flash copy COW operations and internal movement of data blocks during COW operations to the storage system. In some embodiments, the present disclosure enables communication between two models in a storage management system for in-bounds and out-of-bounds API implementations, and enables command exchange between functional modules of the storage system.

[0022] Some embodiments of the concepts described herein may take the form of a system or computer program product. For example, a computer program product may store program instructions that, when executed by one or more processors of a computing system, cause the computing system to perform the operations described above with respect to the computer-implemented method. As a further example, a system may include components such as a processor and a computer-readable storage medium. A computer-readable storage medium may interact with other components of the system so that the system performs program instructions that include the operations of the computer-implemented method described herein. For the purposes of this specification, a computer-usable or computer-readable medium may be any device that may include a device for storing, transmitting, propagating, or transmitting a program that is used by or in conjunction with an instruction execution system, device, or device.

[0023] Reference now Figure 1, a block diagram of an example computing environment 100 is shown. The present disclosure may be implemented within the example computing environment 100. In some embodiments, the computing environment 100 may be included within or embodied by a computer system, as described below. The computing environment 100 may include a storage management system 102. The storage management system 102 may include a storage controller 110, a flashcopy manager 120, and an array component 130. The storage controller 110 receives requests for one or more storage volumes and coordinates operations of disks associated with the storage management system 102. The flashcopy manager 120 performs operations related to virtual storage volumes for disks associated with the storage management system 102. The array component 130 performs operations related to a log structured array for disks associated with the storage management system 102. Although described with different components, it should be understood that in at least some embodiments, the components may be combined or divided, and / or additional components may be added without departing from the scope of the present disclosure.

[0024] Reference now Figure 2 , a flow chart of a computer-implemented method 200 is shown. The computer-implemented method 200 is a method for managing I / O operations in an LSA environment. In some embodiments, the computer-implemented method 200 can be performed by one or more components of the computing environment 100, as described in more detail below.

[0025] In operation 210, the storage controller 110 receives a write request for a storage volume. In some embodiments, the write request includes a data set. The storage volume may be a separate storage volume from a plurality of storage volumes accessible or managed by the storage management system 102. The write request may be received from a host interacting with a disk set or storage system coupled to the storage management system 102. In some embodiments, the host may be a computing device operated by a user and interacting with a storage system or disk set remote from the host. For example, the host may transmit the write request to the storage controller 110 via a communication network. The storage controller 110 may receive the write request to process and implement the write request on a volume within the cloud-based storage system.

[0026] At operation 220, the FlashCopy manager 120 determines a copy-on-write (COW) status on the storage volume targeted by the write request. In some embodiments, the FlashCopy manager 120 determines the COW status by identifying that the storage volume has a COW function enabled within a storage system. The FlashCopy manager may determine the COW status of the storage volume based on one or more configuration files of the storage volume, the disks housing the storage volume, or the storage system of which the storage volume or disks are a part.

[0027] At operation 230, the flashcopy manager 120 determines that a data set of a target segment of the storage volume has not been copied to the target location. The flashcopy manager 120 may determine that the data set has not been copied based on a target map of the flashcopy volume. The target map may indicate data stored within a specified data location of the target volume. In some examples, the target map represents data within the flashcopy of a volume (e.g., a source volume) at a given time. For example, the target volume may be a target volume at T0.

[0028] In some embodiments, the flashcopy manager 120 communicates with the array component 130 using an out-of-band protocol. The flashcopy manager 120 may communicate with the array component 130 using a reserved field in a write command descriptor block (CBD), such as a small computer system interface (SCSI) CBD. The SCSI CBD may be a block of information that describes a command. Each CBD may be 6, 10, 12, or 16 bytes in total, or any suitable variable length. In some instances, the flashcopy manager 120 and the array component 130 communicate as layers within the storage management system 102 using both the out-of-band protocol and the reserved fields in the CBD. The flashcopy manager 120 and the array component 130 pass information across layers or use any other suitable independent mechanism. In some embodiments, a heat map may be transferred from one storage system to another. The heat map may be transferred to ensure that a remote copy that may not be able to successfully restore access to a remote site keeps the specified data within a given storage volume, disk, or SSD.

[0029] At operation 240, the array component 130 instructs the log structure array (LSA) to perform an internal COW operation. The internal COW operation may be performed on the data set during the next input / output (I / O) operation of the storage volume. In some embodiments, the flashcopy manager 120 transmits the instruction to the storage pool configured as the LSA. The instruction indicates that the next I / O operation will be an internal COW operation. The internal COW operation may write the data set of the write request to the virtual volume (e.g., the source volume). The internal COW operation may also generate a copy of the virtual volume as a flashcopy volume (e.g., the target volume) before writing the data set. The instruction may indicate that the internal COW operation is followed by an actual application host write I / O operation.

[0030] At operation 250, the storage controller 110 moves an internal pointer to the target location from the virtual volume to the flashcopy volume. In some embodiments, the internal pointer is moved based on an internal COW instruction. In this case, the internal COW instruction is treated as a signal to a hole prevention device within the storage controller 110 to move the internal pointer. In embodiments where a data set is written to a source volume and a target volume is generated as a flashcopy, the internal pointer to the target location is moved from a location in the source volume to a location in the target volume. Moving the internal pointer to the target location to the target volume or the flashcopy volume prevents a hole from occurring within the LSA due to the data set of the write request being written to the virtual volume or the source volume. Once the flashcopy volume is established and the internal pointer is moved, an older version of the data in the LSA associated with the write request will be associated with a pointer to the flashcopy volume indicating an older source logical LBA.

[0031] At operation 260, the array component 130 updates the bitmap of the LSA. In some embodiments, the bitmap is updated in response to a change in an internal pointer. In the event that the internal pointer is moved, the bitmap of the LSA may be updated by the array component 130 and instructions sent to the flash copy manager 120 to make the volume copy consistent between the flash copied volumes. When the bitmap update is completed and the volume copy is consistent, the host application may be processed normally and the LSA pointer is incremented and the data is saved to the next location in the circular buffer. In this case, the new pointer for writing the requested data set may link the virtual volume or source volume with the data set in the new location in the LSA.

[0032] In the case of COW operations, when internal pointers are moved and new pointers are generated, actual data copies to the physical disk are not required. Using COW to generate flash copies and move pointers reduces I / O moves to physical locations. The reduction in I / O moves can reduce the computing time and resources required to functionally execute write requests. Limiting I / O moves can improve the performance of the associated storage system. In addition, the use of COW and the movement of pointers minimizes holes within the log structure array, thereby reducing the frequency of garbage collection operations at the LSA. The reduced frequency of garbage collection operations can also increase the health and life of the SSD disk.

[0033] Figure 3 A flow chart of an embodiment of a computer-implemented method 300 for managing I / O operations in an LSA environment is shown. The method 300 may be performed by or in the computing environment 100. In some embodiments, the method 300 includes or incorporates one or more operations of the method 200.

[0034] At operation 310, the storage controller 110 detects a virtual volume of a storage volume associated with a write request. The virtual volume may be detected in response to the storage controller 110 receiving a write request containing a data set to be written on the storage volume. In some embodiments, the storage controller 110 cooperates with the flashcopy manager 120 to detect the virtual volume. The virtual volume may be a buffer or cache of a physical volume (e.g., a storage volume) for data storage.

[0035] At operation 320, the storage controller 110 detects a flash copy volume for the storage volume. A flash copy may be a copy of a virtual storage volume at a given point in time. In some embodiments, the flash copy volume is a previously generated copy of a virtual volume. The flash copy volume may contain a complete copy of the data within the virtual volume at a specified time. The specified time may be any time before receiving the write request. In the event that a flash copy volume is not detected, the flash copy manager 120 may be instructed to generate a flash copy of the virtual volume when the storage controller 110 detects the virtual volume or when a write request is received. In some instances, the flash copy volume is detected or generated in response to one or more of operations 220 and 230.

[0036] At operation 330, array component 130 rewrites the data set to the virtual volume. In some embodiments, the data set replaces the previous value set within the virtual volume. In some instances, array component 130 overwrites the data set within the virtual volume by inserting the data set into the logical LBA map of the virtual volume.

[0037] In operation 340, the storage controller 110 moves the first internal pointer of the target location from the virtual volume to the flash copy volume. In some embodiments, the first internal pointer is moved based on the internal COW instruction. The first internal pointer can be moved in a manner similar or the same as described with reference to operation 250.

[0038] At operation 350, storage controller 110 generates a second internal pointer for the data set within the virtual volume. In some embodiments, the second internal pointer is generated to point from the data set within the virtual volume to a location in a physical volume logical block address (LBA) map of the storage volume.

[0039] At operation 360, the storage controller 110 triggers a bitmap update of the physical volume LBA mapping at the LSA. In some embodiments, the bitmap update is triggered based on moving the first internal pointer and generating the second internal pointer.

[0040] Embodiments of the present disclosure may be implemented with nearly any type of computer, regardless of whether the platform is suitable for storing and / or executing program code. Figure 4An example computing system 400 (eg, a cloud computing system) is shown that is suitable for executing program code associated with the methods disclosed herein and for managing I / O operations in an LSA environment.

[0041] The computing system 400 is only an example of a suitable computer system, and is not intended to impose any limitations on the scope of use or functionality of the embodiments of the present disclosure described herein, regardless of whether the computer system 400 can be implemented and / or perform any of the functions set forth above. In the computer system 400, there are components that can operate with numerous other general or special computing system environments or configurations. Examples of known computing systems, environments, and / or configurations suitable for use with the computer system / server 400 include, but are not limited to, personal computer systems, server computer systems, thin clients, fat clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, small computer systems, large computer systems, and distributed cloud computing environments including any of the above systems or devices, etc. The computer system / server 400 can be described in the general context of computer system executable instructions, such as program modules executed by the computer system 400. Typically, a program module can include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Computer system / server 400 may be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.

[0042] As shown, computer system / server 400 is shown in the form of a general computing device. The components of computer system / server 400 may include, but are not limited to, one or more processors 402 (e.g., processing units), system memory 404 (e.g., computer-readable storage media coupled to one or more processors), and various system components including system memory 404 coupled to bus 406 of processor 402. Bus 406 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of various bus architectures. As examples and not limitations, these architectures include industrial standard architecture (ISA) bus, microchannel architecture (MCA) bus, enhanced ISA (EISA) bus, video electronics technology standard association (VESA) local bus, and peripheral component interconnect (PCI) bus. Computer system / server 400 generally includes various computer system readable media. Such media can be any available media accessible to computer system / server 400, and it includes volatile and non-volatile media, removable and non-removable media.

[0043] The system memory 404 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 408 and / or cache memory 410. The computer system / server 400 may also include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 412 may be provided for reading from and writing to a non-removable, non-volatile magnetic medium (not shown, and commonly referred to as a "hard disk drive"). Although not shown, a disk drive for reading from and writing to a removable, non-volatile disk (e.g., a "floppy disk") may be provided, as well as an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media. In this case, each may be connected to the bus 406 via one or more data media interfaces. As will be further depicted and described below, the system memory 404 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of an embodiment of the present disclosure.

[0044] A set of (at least one) program modules 416 of programs / utilities as well as an operating system, one or more applications, other program modules, and program data may be stored in system memory 404, by way of example and not limitation. Program modules may include Figure 110, the flashcopy manager 120, and one or more of the array components 130 shown in . Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, may include an implementation of a networking environment. Program modules 416 generally perform the functions and / or methods of embodiments of the present disclosure as described herein.

[0045] The computer system / server 400 may also communicate with one or more external devices 418, such as a keyboard, a pointing device, a display 420, etc.; one or more devices that enable a user to interact with the computer system / server 400; and / or any device that enables the computer system / server 400 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur via an input / output (I / O) interface 414. In addition, the computer system / server 400 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter 422. As depicted, the network adapter 422 may communicate with other components of the computer system / server 400 via a bus 406. It should be understood that, although not shown, other hardware and / or software components may be used in conjunction with the computer system / server 400. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0046] It should be understood that although the present disclosure includes detailed descriptions about cloud computing, the implementation of the teachings set forth herein is not limited to cloud computing environments. Instead, the embodiments of the present disclosure can be implemented in conjunction with any other type of computing environment now known or later developed.

[0047] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be quickly provisioned and released with minimal management effort or interaction with the provider of the service. The cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0048] Service models may include software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). In SaaS, the ability provided to consumers is to use the provider's applications running on the cloud infrastructure. Applications can be accessed from various client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure including networks, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings. In PaaS, the ability provided to consumers is to deploy applications created or acquired by consumers onto the cloud infrastructure, and the applications created or acquired by consumers are created using programming languages ​​and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but have control over deployed applications and possible application hosting environment configurations. In IaaS, the ability provided to consumers is to provide processing, storage, network, and other basic computing resources that consumers can deploy and run arbitrary software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating system, storage, deployed applications, and possibly limited control over select networking components (e.g., host firewalls).

[0049] Deployment models can include private clouds, community clouds, public clouds, and hybrid clouds. In a private cloud, the cloud infrastructure is operated only for the organization. It can be managed by the organization or a third party and can exist inside or outside the building. In a community cloud, the cloud infrastructure is shared by several organizations and supports a specific community with shared concerns (e.g., missions, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party that may exist inside or outside the premises. In a public cloud, the cloud infrastructure is available to the general public or large industrial groups and is owned by an organization that sells cloud services. In a hybrid cloud, the cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0050] Cloud computing environments are service-oriented, with a focus on statelessness, low-coupling modularity, and semantic interoperability. At the core of cloud computing is an infrastructure consisting of a network of interconnected nodes.

[0051] Reference now Figure 5, depicts an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which a local computing device used by a cloud consumer can communicate, the local computing device being, for example, a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, and / or an automobile computer system 54N. The nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as a private cloud, community cloud, public cloud, or hybrid cloud, or a combination thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platform, and / or software as a service for which the cloud consumer does not need to maintain resources on a local computing device. It should be understood that Figure 5 The types of computing devices 54A-N shown in are intended to be illustrative only, and computing node 10 and cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network addressable connection (eg, using a web browser).

[0052] Reference now Figure 6 , showing the cloud computing environment 50 ( Figure 5 ) provides a set of functional abstraction layers. It should be understood in advance that Figure 6 The components, layers, and functions shown in are intended to be illustrative only, and the embodiments of the present disclosure are not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0053] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: host 61; server 62 based on RISC (Reduced Instruction Set Computer) architecture; server 63; blade server 64; storage device 65; and network and network components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0054] Virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual servers 71 ; virtual storage 72 ; virtual networks 73 , including virtual private networks; virtual applications and operating systems 74 ; and virtual clients 75 .

[0055] In one example, the management layer 80 may provide the functionality described below. Resource provisioning 81 provides dynamic procurement of computing resources and other resources for performing tasks within a cloud computing environment. Metering and pricing 82 provides cost tracking when resources are utilized in a cloud computing environment, as well as billing or invoicing for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management so that the required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-scheduling and procurement of cloud computing resources, where future demand is anticipated based on the SLA.

[0056] The workload layer 90 provides examples of functions that can take advantage of the cloud computing environment. Examples of workloads and functions that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analysis processing 94; transaction processing 95; and storage management processing 96.

[0057] Cloud models can include features including on-demand self-service, broad network access, resource pools, rapid elasticity, and measured services. In on-demand self-service, cloud consumers can unilaterally and automatically provision computing capabilities such as server time and network storage as needed without manual interaction with the provider of the service. In broad network access, capabilities are available on the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs). In resource pools, the computing resources of the provider are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. There is a sense of location independence because consumers generally do not control or know the exact location of the resources provided, but are able to specify the location at a higher level of abstraction (e.g., country, state, or data center). In rapid elasticity, in some cases, the ability to scale out quickly and scale in quickly can be automatically and elastically provided. For consumers, the capabilities available for provisioning generally appear to be unlimited and can be purchased in any quantity at any time. In metered services, cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a certain level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of the utilized services.

[0058] The description of various embodiments of the present disclosure has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

[0059] The present invention may be implemented as a system, method, and / or computer program product. The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform various aspects of the present invention.

[0060] Computer readable storage media can be electronic, magnetic, optical, electromagnetic, infrared or semiconductor systems for propagation media. Examples of computer readable media can include semiconductor or solid-state memory, magnetic tape, removable computer disk, random access memory (RAM), read-only memory (ROM), hard disk and optical disk. Current examples of optical disk include CD-ROM, CD-R / W, DVD and Blu-ray disk.

[0061] A computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable optical disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punched card or a raised structure in a groove with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be interpreted as a temporary signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., a light pulse through an optical fiber cable), or an electrical signal transmitted through a wire.

[0062] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.

[0063] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as Smalltalk, C++, etc.) and conventional procedural programming languages ​​(such as "C" programming language or similar programming languages). The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an Internet service provider through the Internet). In certain embodiments, in order to perform various aspects of the present invention, the electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit.

[0064] Various aspects of the present invention are described herein with reference to the flowchart and / or block diagram of the method, device (system) and computer program product according to embodiments of the present invention. It will be understood that each frame of the flowchart and / or block diagram and the combination of frames in the flowchart and / or block diagram can be implemented by computer-readable program instructions.

[0065] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0066] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or another device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or another device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0067] Flowchart and / or block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention.In this regard, each frame in flow chart or block diagram can represent the module, segment or part of instruction, and it comprises one or more executable instructions for realizing the logical function of appointment.In some alternative embodiments, the function mentioned in the frame may not occur in the order mentioned in the figure.For example, two frames shown continuously can actually be performed substantially simultaneously, or these frames can sometimes be performed in reverse order, depending on the function involved.It will also be noted that the combination of the frame in each frame of block diagram and / or flow chart illustration and block diagram and / or flow chart illustration can be realized by the dedicated hardware-based system that performs the combination of specified function or action or performs special hardware and computer instruction.

[0068] The terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the present disclosure. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the terms "comprise" and / or "comprising" when used in this specification specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0069] All means or steps in the following claims plus the corresponding structures, materials, actions and equivalents of the functional elements are intended to include any structure, material or action for performing functions in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for the purpose of illustration and description, but it is not intended to be exhaustive or to limit the present disclosure to the disclosed form. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the present disclosure. The embodiments are selected and described to explain the principles and practical applications of the present disclosure, and to enable other persons of ordinary skill in the art to understand the various embodiments of the present disclosure with various modifications, such as suitable for the intended specific use.

[0070] The description of various embodiments of the present disclosure has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein are selected to explain the principles of the embodiments, practical applications, or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A computer-implemented method for managing input / output (I / O) operations in a log structured array (LSA), comprising: A storage controller receives a write request to a storage volume, wherein the write request includes a data set; determining, based on a target map for a flashcopy volume, that the data set for a target segment of the storage volume is not copied to a target location; Instructing the log structured array LSA to perform an internal copy-on-write (COW) on the data set during a next input / output (I / O) operation of the storage volume; as well as Based on the internal COW instruction, moving a first internal pointer of the target location from the virtual volume to the flashcopy volume; as well as A second internal pointer is generated for the data set within the virtual volume, the second internal pointer pointing to a location in a physical volume logical block address (LBA) mapping of the storage volume.

2. The method according to claim 1, further comprising: In response to the movement of the first internal pointer, the bitmap of the LSA is updated.

3. The method according to claim 1, further comprising: A COW state on the storage volume targeted by the write request is determined.

4. The method according to claim 1, further comprising: detecting the virtual volume of the storage volume; as well as The flashcopy volume of the storage volume is detected.

5. The method according to claim 4, further comprising: The data set is overwritten to the virtual volume, the data set replacing a previous set of values ​​within the virtual volume.

6. The method according to claim 1, further comprising: Based on moving the first internal pointer and generating the second internal pointer, a bitmap update of the physical volume LBA mapping at the LSA is triggered.

7. A system for managing input / output (I / O) operations in a log structured array (LSA), comprising: one or more processors; as well as A computer-readable storage medium coupled to the one or more processors, the computer-readable storage medium storing program instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including: A storage controller receives a write request to a storage volume, wherein the write request includes a data set; determining, based on a target map for a flashcopy volume, that the data set for a target segment of the storage volume is not copied to a target location; Instructing the log structured array LSA to perform an internal copy-on-write (COW) on the data set during a next input / output (I / O) operation of the storage volume; Based on the internal COW instruction, moving a first internal pointer of the target location from the virtual volume to the flashcopy volume; as well as A second internal pointer is generated for the data set within the virtual volume, the second internal pointer pointing to a location in a physical volume logical block address (LBA) mapping of the storage volume.

8. The system according to claim 7, wherein: The operations also include: In response to the movement of the first internal pointer, the bitmap of the LSA is updated.

9. The system according to claim 7, wherein: The operations also include: A COW state on the storage volume targeted by the write request is determined.

10. The system according to claim 7, wherein: The operations also include: detecting the virtual volume of the storage volume; and The flashcopy volume of the storage volume is detected.

11. The system according to claim 10, wherein: The operations also include: The data set is overwritten to the virtual volume, the data set replacing a previous set of values ​​within the virtual volume.

12. The system of claim 7, wherein the operations further comprise: Based on moving the first internal pointer and generating the second internal pointer, a bitmap update of the physical volume LBA mapping at the LSA is triggered.

13. A computer program product, comprising a computer-readable storage medium containing program instructions executable by one or more processors to cause the one or more processors to perform operations comprising: A storage controller receives a write request to a storage volume, wherein the write request includes a data set; determining, based on a target map for a flashcopy volume, that the data set for a target segment of the storage volume is not copied to a target location; Instructing the log structured array LSA to perform an internal copy-on-write (COW) on the data set during a next input / output (I / O) operation of the storage volume; Based on the internal COW instruction, moving a first internal pointer of the target location from the virtual volume to the flashcopy volume; as well as A second internal pointer is generated for the data set within the virtual volume, the second internal pointer pointing to a location in a physical volume logical block address (LBA) mapping of the storage volume.

14. The computer program product of claim 13, wherein: The operations also include: In response to the movement of the first internal pointer, the bitmap of the LSA is updated.

15. The computer program product of claim 13, wherein: The operations also include: A COW state on the storage volume targeted by the write request is determined.

16. The computer program product of claim 13, wherein: The operations also include: detecting the virtual volume of the storage volume; and The flashcopy volume of the storage volume is detected.

17. The computer program product of claim 16, wherein: The operations also include: The data set is overwritten to the virtual volume, the data set replacing a previous set of values ​​within the virtual volume.

18. The computer program product of claim 17, wherein: The operations also include: Based on moving the first internal pointer and generating the second internal pointer, a bitmap update of the physical volume LBA mapping at the LSA is triggered.