Dynamic tape storage device data buffer

By dynamically adjusting the position where the tape transitions to the DATA_FULL state and the size of the buffer, the problem of insufficient buffer utilization in the tape storage system is solved, achieving efficient utilization of tape storage space and integrity of metadata operations.

CN116897336BActive Publication Date: 2026-06-30INTERNATIONAL BUSINESS MACHINE CORPORATION

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2022-01-31
Publication Date
2026-06-30

Smart Images

  • Figure CN116897336B_ABST
    Figure CN116897336B_ABST
Patent Text Reader

Abstract

A computer-implemented method is disclosed for changing the position where a tape transition on a magnetic tape reaches the DATA_FULL state. The computer-implemented method further includes determining the size of an index representing metadata associated with the file after the file has been written to a data partition of the magnetic tape. The computer-implemented method also includes changing the position where the tape transitions to the DATA_FULL state within the data partition of the magnetic tape based on the size of the index representing the metadata associated with the file.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] This invention relates generally to the field of magnetic tape storage systems, and more specifically to magnetic tape storage systems with partitions.

[0002] A tape drive is a data storage device for reading and writing data onto magnetic tape. Current versions of tape data storage devices allow the tape to be divided into separate writable areas called partitions. For example, a tape can be divided into an index partition and one or more data partitions. With the advent of tape partitioning, a tape format and file system called Linear Tape File System (LTFS) made it possible to utilize tape in a manner similar to other external storage devices, such as USB flash drives or external hard drives. Thus, under LTFS, file data and file system metadata are stored in separate partitions on the tape, where the index presents the file data as if it were organized into a directory. Summary of the Invention

[0003] According to one embodiment of the present invention, a computer-implemented method is disclosed for changing the position of a magnetic tape transition to the DATA_FULL state. The computer-implemented method includes determining the size of an index representing metadata associated with the file after a file has been written to a data partition of the magnetic tape. The computer-implemented method also includes changing the position of the magnetic tape transition to the DATA_FULL state within the data partition of the magnetic tape based on the size of the index representing the metadata associated with the file.

[0004] According to another embodiment of the present invention, a computer program product for changing the position of a magnetic tape transition to the DATA_FULL state is disclosed. The computer program product includes one or more computer-readable storage media and program instructions stored on the one or more computer-readable storage media. The program instructions include instructions for determining the size of an index representing metadata associated with the file after a file is written to a data partition of the magnetic tape. The program instructions also include instructions for changing the position of the magnetic tape transition to the DATA_FULL state in the data partition of the magnetic tape based on the size of the index representing the metadata associated with the file.

[0005] According to another embodiment of the present invention, a computer system for changing the position of a magnetic tape transition to the DATA_FULL state is disclosed. The computer system includes one or more computer processors, one or more computer-readable storage media, and program instructions stored on the computer-readable storage media for execution by at least one of the one or more processors. The program instructions include instructions for determining the size of an index representing metadata associated with the file after a file is written to a data partition of the magnetic tape. The program instructions also include instructions for changing the position of the magnetic tape transition to the DATA_FULL state in the data partition of the magnetic tape based on the size of the index representing the metadata associated with the file. Attached Figure Description

[0006] Figure 1 This is a functional block diagram of a network computing environment, generally designated as 100, suitable for the operation of buffer procedure 101 according to at least one embodiment of the present invention.

[0007] Figure 2 It is an exemplary linear serpentine record on a magnetic tape, generally designated as 200, according to at least one embodiment of the present invention.

[0008] Figure 3A This is a block diagram illustrating an example of file data stored on a data partition 300A of a magnetic tape according to at least one embodiment of the present invention.

[0009] Figure 3B This illustrates at least one embodiment of the invention of appending file data to... Figure 3A A block diagram illustrating an example of file data stored in data partition 300B on tape after data partition 300A.

[0010] Figure 4A This is a block diagram illustrating an example of an LTFS volume generally designated as 400A according to at least one embodiment of the present invention.

[0011] Figure 4B This is a block diagram illustrating an example of a programmable warning zone (PEWZ) on a magnetic tape, generally designated as 400B, according to at least one embodiment of the present invention.

[0012] Figure 5 This is a flowchart depicting operational steps, generally designated as 500, for changing the position of the tape transition to the DATA_FULL state on a magnetic tape according to at least one embodiment of the present invention.

[0013] Figure 6 This is a block diagram depicting a cloud computing environment, generally designated as 50, according to at least one embodiment of the present invention.

[0014] Figure 7 It is a description of at least one embodiment of the present invention. Figure 6 The diagram of the abstract model layer provided by the cloud computing environment 50.

[0015] Figure 8 This is a block diagram depicting components of a computer, generally designated 800, suitable for executing a buffer program 101 according to at least one embodiment of the present invention. Detailed Implementation

[0016] This invention relates generally to the field of magnetic tape storage systems, and more specifically to magnetic tape storage systems with partitions.

[0017] Linear Tape Open (LTO) is a tape data storage technology. LTO storage technology, often referred to as open-format tape storage technology, features a single reel of tape stored in a removable tape cartridge. LTO storage technology offers additional optional formatting options, including but not limited to compression, Write-once-Read-Many (WORM), encryption, and the Linear Tape File System (LTFS). Typically, the latest generation of LTO tape cartridges can be formatted to include up to four data partitions. However, the possible number of data partitions depends on the specific generation of the LTO tape cartridge.

[0018] The magnetic tape media housed in an LTO-formatted tape cassette is typically divided into four data bands extending horizontally along the entire length of the tape. Each of the four data bands is separated by narrow servo bands on either side (a total of five narrow servo bands). The servo bands provide positional information to the tape head as it reads or writes data within a specific data band. The tape head typically spans the width of one data band and the adjacent (i.e., top and bottom) servo bands, and moves vertically across the width of the horizontally oriented tape. The tape head position is controlled by the servo band system and information encoded in each servo band during manufacturing. As the tape head moves vertically across the width of the tape, the tape can move horizontally along its length (i.e., by winding and unwinding the tape on the reel), allowing the tape head to interact with different sections of the tape.

[0019] The tape head assembly for reading and writing tape spans a single data tape and two adjacent servo tapes. The tape head assembly may have a set of 8, 16, or 32 data read / write head elements (based on corresponding track groups within a single data tape) and two (2) servo read elements. All tracks in a given group are read or written in a single unidirectional end-to-end pass (i.e., wrap). After a pass over the entire length of the tape, all tape heads are slightly shifted laterally to access different wraps within the tape (or wraps within other tapes), and another pass is made in the opposite direction. The wrap continues to pass forward and backward. This process, known as linear serpentine recording, is repeated until all tracks in the tape have been written. The location where all areas of the tape have been written is identified as the logical end of the tape.

[0020] The Linear Tape File System (LTFS) allows LTO tape cartridges to be further divided into index partitions (IP) and data partitions (DP). File data is typically written only to the data partition, while metadata (i.e., data describing the file data stored in the data partition) is written to the index partition. Organizing or partitioning tape in this way allows the tape to be self-describing using file indexes in the index partition. This results in reduced complexity of data management and lower data access times for tape storage. Consequently, LTFS has made it possible to use tape storage devices in a manner similar to other removable storage systems, such as USB flash drives or external hard drives.

[0021] Embodiments of the present invention recognize that when file data is appended to a data partition, the tape cartridge returns an error message and prevents any further data from being appended to the tape when the tape head reaches the end of the tape. If this occurs, it becomes impossible to append an index to the end of the file data being written to the data partition, thus ultimately violating the LTFS format requirements.

[0022] Embodiments of the present invention recognize that one possible solution to the above-mentioned problem is to designate the storage area at the end of the tape as a buffer. When the tape head reaches the buffer during file operations, it transitions to the DATA_FULL state, in which only metadata write operations (e.g., modifying timestamps, deleting files, renaming files, and writing indexes) are permitted in the buffer. It should be noted that once the tape head reaches the buffer, normal data write operations, such as appending file data to a data partition, are no longer allowed.

[0023] Embodiments of the present invention also recognize that the size of the index representing the metadata associated with file data written to the data partition depends on the number of records in the file and the size of any extended attributes of the file. Therefore, if the index size exceeds the buffer size, the entire index cannot be appended to the buffer after transitioning to the FULL_DATA state, ultimately violating the LTFS format requirements.

[0024] Embodiments of the present invention also recognize that user applications typically designate the last roll of a data partition as a buffer. However, the size of a single roll on a magnetic tape depends on the length of the tape itself. For example, the tape length in an LTO-5 tape cartridge is only 846 meters, while the tape length in an LTO-9 tape cartridge is 1035 meters. If we assume that the data partition length of an LTO-5 tape cartridge is 811 meters and the data partition length of an LTO-9 tape cartridge is 1000 meters, then the last roll on the tape in an LTO-9 tape cartridge will be 189 meters longer than the last data roll on the tape in an LTO-5 tape cartridge. Therefore, depending on the size of the index of the buffer appended to the end of the tape and the size of the buffer itself, a large area of ​​the buffer will be unused. This stems from the fact that normal data write operations, such as appending file data to the data partition, are no longer permitted in the buffer.

[0025] Embodiments of the present invention improve upon the aforementioned deficiencies by dynamically changing the position where the tape transitions to the DATA_FULL state. In an embodiment, the position where the tape transitions to the DATA_FULL state is moved based on the size of the index representing the most recent file data written to the data partition. In an embodiment, a storage area is reserved as a buffer for performing metadata write operations only after the tape transitions to the DATA_FULL state. In an embodiment, the buffer is located after the position where the tape transitions to the DATA_FULL state. Therefore, moving the point where the tape transitions to the DATA_FULL state also includes changing the size of the buffer.

[0026] For example, a buffer of 500MB is reserved in the writable area of ​​the data partition on the tape. If the most recent index appended to the data partition contains 200MB of data, the size of the buffer is reduced to the last 200MB of storage in the writable area of ​​the data partition on the tape. Thus, embodiments of the invention advantageously maximize the amount of file data that can be appended to the tape before it transitions to the DATA_FULL state, thereby ultimately limiting the amount of unused storage space in the data partition of the tape.

[0027] Normal file operations are typically disabled after transitioning to the DATA_FULL state. Therefore, if additional storage space remains in the buffer after performing a metadata write operation (e.g., appending an index), any remaining storage space is kept unavailable for normal file operations. However, by dynamically changing the position on the tape where it transitions to the DATA_FULL state, embodiments of the invention maximize the amount of data written to the tape while still ensuring sufficient buffer space at the end of the tape to perform any necessary metadata write operations.

[0028] This invention can be a system, method, and / or computer program product with any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of the invention.

[0029] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in slots having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.

[0030] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.

[0031] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent 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 the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a standalone software package, partially on a user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing state information from the computer-readable program instructions to perform aspects of the invention.

[0032] The present invention will now be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0033] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a readable storage medium that can instruct a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium having the instructions stored therein comprises an article of manufacture including instructions for implementing aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

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

[0035] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. Each block in a flowchart or block diagram may represent a module, segment, or portion of computer program instructions, including one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the blocks may occur in a different order than shown in the figures. For example, depending on the functions involved, two consecutively shown blocks may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action or performs a combination of dedicated hardware and computer instructions.

[0036] Various embodiments of the invention have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or technical improvements to technologies found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.

[0037] The terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting. Nevertheless, several definitions that apply throughout this document will now be presented.

[0038] As defined in this article, unless the context clearly indicates otherwise, the singular forms “a,” “a,” and “the” also include the plural forms.

[0039] As defined in this article, "another" means at least the second or more.

[0040] As defined herein, “at least one,” “one or more,” and “and / or” are open-ended expressions that are both combined and separate in operation unless otherwise expressly stated. For example, each of the expressions “at least one of A, B, and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” and “A, B, and / or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together.

[0041] As defined in this article, “automatically” and “dynamically” mean without user intervention.

[0042] As defined herein, “includes,” “including,” “comprises,” and / or “comprising” designates the presence of the stated feature, integral, step, operation, element, and / or component, but does not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or combinations thereof.

[0043] As defined herein, “if” means “in response” or “in response to,” depending on the context. Therefore, depending on the context, the phrase “if determined” can be interpreted as “in response to determined” or “in response to determined.” Similarly, depending on the context, the phrase “if [the stated condition or event] is detected” can be interpreted as “in response to the detection of [the stated condition or event]” or “in response to the detection of [the stated condition or event]” or “in response to the detection of [the stated condition or event].”

[0044] As defined herein, “an embodiment,” “an embodiment,” “in one or more embodiments,” “in a particular embodiment,” or similar language means a specific feature, structure, or characteristic described in connection with that embodiment, which is included in at least one embodiment described in this disclosure. Therefore, the appearance of the above phrases and / or similar language throughout this disclosure may, but does not necessarily refer to the same embodiment.

[0045] As defined herein, the phrases “respond” and “respond to” refer to readily responding to or reacting to an action or event. Therefore, if a second action is performed in response to or in connection with a first action, a causal relationship exists between the occurrence of the first action and the occurrence of the second action. The phrases “respond” and “respond to” indicate a causal relationship.

[0046] As defined in this article, "real-time" refers to a level of responsiveness that the user or system senses for a specific process to be performed or determines is sufficiently immediate, or that enables the processor to keep up with the responsiveness of certain external processes.

[0047] As defined herein, “substantially” means that the listed characteristics, parameters, or values ​​need not be achieved precisely, but rather that deviations or variations (including, for example, tolerances, measurement errors, measurement accuracy limitations, and other factors known to those skilled in the art) may occur in a quantity that does not preclude the effects that the characteristics are intended to provide.

[0048] As defined herein, "user" and "person" each refer to human beings.

[0049] In this document, the terms first, second, etc., may be used to describe various elements. These elements should not be limited by these terms, as they are used only to distinguish one element from another unless otherwise stated or clearly indicated by the context.

[0050] As defined in this document, the “Programmable Warning Zone (PEWZ)” is a tape parameter set by the tape drive. This parameter consists of a 2-byte value that specifies how many MB of data remain before an end-of-media (EW) indicator is generated. A programmable warning (PEW) is generated when the tape head reaches the PEWZ during a write operation. This programmable warning specifies the number of bytes on the tape remaining before the standard end-of-media (EW) indicator is reached.

[0051] As defined in this article, an "Early Warning (EW)" is a warning that is generated when the tape head reaches the end of the PEWZ during a write operation. An EW indicates that the "DATA_FULL state" has been reached.

[0052] As defined in this article, the “DATA_FULL state” is the state of the tape, in which normal file operations are no longer allowed, and only appending metadata operations are permitted.

[0053] As used herein, the term "buffer" refers to the storage area of ​​a tape partition that begins after the end of the PEWZ and ends at the end of the writable area of ​​the partition. Only metadata write operations are permitted in the buffer.

[0054] Reference will now be made in more detail to the various embodiments of the invention. Figure 1 This is a functional block diagram of a network computing environment, generally designated as 100, suitable for the operation of tape buffer program 101 according to at least one embodiment of the present invention. Figure 1 This illustration provides only one implementation and does not imply any limitation regarding the environments in which different embodiments may be implemented. Those skilled in the art can make numerous modifications to the described environments without departing from the scope of the invention as set forth in the claims.

[0055] Network computing environment 100 includes user equipment 110, tape library 120, and server 130 interconnected via network 140. In embodiments of the invention, network 140 may be a telecommunications network, a local area network (LAN), a wide area network (WAN) (e.g., the Internet), or a combination of all three, and may include wired, wireless, or fiber optic connections. Network 140 may include one or more wired and / or wireless networks capable of receiving and transmitting data, voice, and / or video signals (including multimedia signals containing voice, data, and video information). Generally, network 140 may be any combination of connections and protocols supporting communication between user equipment 110, tape library 120, server 130, and other computing devices (not shown) within network computing environment 100.

[0056] User equipment 110 allows users to access applications running on a host device to communicate with buffer program 101 and with tape library 120 to write and retrieve data to and from different tape media via a network (such as network 140). In various embodiments of the invention, user equipment 110 is a computing device, which may be a laptop computer, tablet computer, netbook computer, personal computer (PC), desktop computer, personal digital assistant (PDA), smartphone, smartwatch, or any programmable electronic device capable of receiving, sending, and processing data. Generally, user equipment 110 represents any programmable electronic device or combination of programmable electronic devices capable of executing machine-readable program instructions and communicating via a network (such as network 140) with tape library 120, server 130, and other computing devices (not shown) within network computing environment 100.

[0057] User equipment 110 includes a user interface 112. The user interface 112 provides an interface between user equipment 110, tape library 120, and server 130. In some embodiments, the user interface 112 may be a graphical user interface (GUI) or a web user interface (WUI) and may display text, documents, web browser windows, user options, application interfaces, and operation instructions, and include information presented to the user by the program (such as graphics, text, and sound) and control sequences adopted by the user to control the program. In other embodiments, the user interface 112 may be a script, application programming interface (API), or mobile application software that provides an interface between user equipment 110, tape library 120, and server 130.

[0058] User equipment 110 also includes application 114. Application 114 may represent one or more applications (e.g., an application suite) operating on user equipment 110. In various exemplary embodiments, application 114 may be an application used by a user of user equipment 110 to send and receive data, such as a mobile device application. In embodiments, application 114 may be a client-side application associated with an application running on server 130 (e.g., a client-side application associated with buffer procedure 101). In one embodiment, application 114 is operable to perform processing steps of buffer procedure 101 (i.e., application 114 may represent buffer procedure 101 operating on user equipment 110).

[0059] Tape library 120 is an automated tape storage device that includes multiple tape drives, such as single-reel or dual-reel tape cassettes, for writing to and reading from tape media. In one embodiment, the tape library includes tape cassettes formatted according to LTO and LTFS format specifications. In another embodiment, tape library 120 is an IBM TS3400. TM Tape library or IBM TS3500 TM Tape library. While references have been made to specific IBM hardware and / or software components, it should be understood that aspects of the invention are equally applicable to other tape library technologies. In embodiments of the invention, tape library 120 includes a plurality of magnetic tape media stored in a row or group of storage slots. For example, the magnetic tape media may include, but is not limited to, tape cassettes, tape cartridges, and optical tape cassettes. Tape library 120 further includes a plurality of slots for holding tape cassettes, a barcode reader for identifying tape cassettes, and an automated method (e.g., a robot) for loading magnetic tapes.

[0060] In various embodiments of the invention, server 130 is a computing device, which may be a standalone device, management server, network server, application server, mobile device, or any other electronic device or computing system capable of receiving, sending, and processing data. In one embodiment, server 130 represents a server computing system, such as one that utilizes multiple computers as server systems in a cloud computing environment. In one embodiment, server 130 represents a computing system utilizing clustered computers and components (e.g., database server computers, application server computers, web server computers, web mail server computers, media server computers, etc.) that act as a single, seamless pool of resources when accessed within network computing environment 100. Generally, server 130 represents any programmable electronic device or combination of programmable electronic devices capable of executing machine-readable program instructions and communicating with each other and with user equipment 110 and tape library 120 within network computing environment 100 via a network (such as network 140).

[0061] Server 130 includes a Linear Tape File System (LTFS) 132. Although LTFS 132... Figure 1 While depicted as being integrated with server 130, in alternative embodiments, LTFS 132 is located remotely from server 130. For example, LTFS 132 may reside on user equipment 110 or on a device located within tape library 120.

[0062] LTFS132 is a file system that allows access to files stored on tape cartridges in a tape library in a manner similar to that of files stored on a hard disk or flash drive. It requires both data in a specific format on the tape media and software to provide a file system interface to the data. Each LTFS-formatted tape cartridge in tape library 120 appears as a separate folder below the file system mount point. Those skilled in the art will appreciate that applying a file system to a tape drive allows users to organize and search the contents of the tape media as they would on a hard disk, thereby improving access time to data stored on the tape media. For example, LTFS132 is IBM Linear Tape File System Library Edition (LTFS-LE), which allows LTFS volumes (i.e., tape media) to be used with tape libraries (such as tape library 120). While references are made to specific IBM hardware and / or software components, it should be understood that aspects of the invention are equally applicable to other tape library technologies.

[0063] Server 130 also includes a buffer program 101. In one embodiment, the migration program 101 operates on a central server such as server 130 and can be utilized by one or more user devices such as user device 110 via an application downloaded from the central server or a third-party app store, and is executed on client device 110. In one embodiment, the buffer program 101 may be software downloaded from the central server (such as server 130) and installed on one or more user devices (such as user device 110). In an embodiment, the buffer program 101 may be used as a software service provided by a third-party cloud service provider (not shown). In one embodiment, the buffer program 101 may include one or more components installed on one or more user devices, such as user device 110, such as add-ons, plugins, and agents (not shown).

[0064] In different embodiments of the invention, buffer procedure 101 dynamically changes the position where the tape on-device transitions to the DATA_FULL state. In one embodiment, the position is repositioned based on the size of the index to be appended to the data partition. In another embodiment, the position is repositioned based on the size of the last index appended to the data partition. In yet another embodiment, the position is repositioned based on the average size of a predetermined number of previous indices appended to the data partition. Finally, the position is repositioned based on the average of all previous indices appended to the data partition.

[0065] In one embodiment, changing the location where the tape transitions to the DATA_FULL state also includes modifying the size of a buffer reserved for appending only metadata write operations after the tape transitions to the DATA_FULL state.

[0066] In one embodiment, changing the position where the tape transitions to the DATA_FULL state further includes changing the position of a programmable warning zone (PEWZ) on the tape. When the tape head reaches the PEWZ during a write operation, a programmable warning (PEW) is issued, alerting the user that the tape is running out of space for normal file operations. In one embodiment, if a PEW is detected while the tape head is performing a write operation, buffer procedure 101 transitions the tape drive to the DATA_FULL state. In another embodiment, if a PEW is detected while the tape head is performing a write operation, normal file operations are allowed until the tape head reaches the end of the PEWZ. At this point, buffer procedure 101 transitions the tape to the DATA_FULL state.

[0067] Figure 2 An exemplary linear serpentine record on a magnetic tape, generally designated as 200, can be seen in at least one embodiment of the invention. Figure 2 This illustration provides only one implementation and does not imply any limitation regarding the environments in which different embodiments may be implemented. Those skilled in the art can make numerous modifications to the described environments without departing from the scope of the invention as set forth in the claims.

[0068] Although the magnetic tape is divided into multiple windings in the lateral direction, for each winding, data is written and / or read along the longitudinal direction of the tape. Numbers are assigned to each winding in the order they are written. Typically, the windings are arranged on the tape such that windings extending in the same direction are adjacent to each other. For example, windings extending in the forward direction (i.e., windings extending from the beginning to the end of the tape) are adjacent to each other. Similarly, windings running in the opposite direction (i.e., windings extending from the end to the beginning of the tape) are adjacent to each other. The number of windings and the number of tracks within each winding depend on the generation of the LTO cartridge. The width of the windings in the lateral direction (i.e., the track spacing) depends on the width of the tape and the number of windings on the tape. For example, an LTO-2 tape cartridge has 4 data tapes, each with 16 windings, thus requiring 64 passes to fill. On the other hand, an LTO-7 tape cartridge has 4 data tapes, each with 28 windings, thus requiring 112 passes to fill.

[0069] like Figure 2 As shown, magnetic tape 200 is divided into four data tapes (data tape 0, data tape 1, data tape 2, and data tape 3). Figure 2 Further depiction shows the data recorded in the forward-running windings – winding 0, winding 2N, and winding N-2 within data tape 0. These forward-running windings are arranged on the magnetic tape such that even-numbered windings within the data tape are adjacent to each other. Similarly, data recorded in the opposite-direction windings – winding 1, winding 2N-1, and winding N-1 within data tape 0 can be seen. These reverse-running windings are arranged on the magnetic tape such that odd-numbered windings within the data tape are adjacent to each other. As data is written to each subsequent winding in the common recording direction, regardless of the specific recording direction, the next subsequent winding is positioned outward from the center of the data tape toward the periphery of the data tape.

[0070] Figure 3A This is a block diagram illustrating an example of file data stored in a data partition 300A of a magnetic tape according to at least one embodiment of the present invention. Figure 3A The illustrations provided represent only one implementation and do not imply any limitation regarding the environments in which different embodiments may be implemented. Those skilled in the art can make numerous modifications to the described environments without departing from the scope of the invention as set forth in the claims.

[0071] Those skilled in the art will understand that although data stored in LTFS appears to behave like data stored on a hard drive, the fundamental sequential nature of writing data to tape media remains. Data is written sequentially to predetermined, fixed-size regions (i.e., logical blocks), and files are always appended to the end of the tape. Furthermore, LTFS is a write-once file system. In other words, if a file stored on one or more data blocks is modified, overwritten, or removed from the tape image, the associated data block is not released. Instead, the memory allocated to the associated data block becomes invalid (i.e., the associated data block is no longer referenced in the index), and the newly added data is written as a separate, non-contiguous block after the End-of-Data (EOD) mark on the tape.

[0072] Furthermore, those skilled in the art will understand that, unlike read / write commands for block devices (such as hard drives), read / write commands issued to a tape drive do not specify a block number. However, the location of the data corresponding to the read / write request can be determined based on the current position of the tape medium relative to the tape head. The current position of the tape medium can be retrieved by issuing a "read position" command. Similarly, the current position of the tape medium can be set to any position by issuing a "position / space" command. When a read / write command is successfully executed, the current position of the tape medium is updated.

[0073] In embodiments of the invention, the data written to the magnetic tape includes the following information: (i) a record, (ii) a file marker (“FM”), and (iii) an end-of-data (“EOD”) marker. As used herein, the term “record” refers to a variable-length data sequence on the magnetic tape. As used herein, the term “file marker (FM)” refers to a zero-length separator on the magnetic tape that defines the data (i.e., the record) of a particular file. As used herein, the term “end-of-data (EOD) marker” refers to the designation of the end of the data written to the magnetic tape.

[0074] like Figure 3AAs shown, data partition 300A includes positions _0, _1, _2, _3, _4, _5, and _6. Positions 0-6 divide the data in data partition 300A into physical units (i.e., data blocks). In embodiments of the invention, a block may include a single record, a portion of a record, or multiple records. In some embodiments, the size of the data block may be fixed. In other embodiments, the size of the data block may be variable. Data partition 300A further includes the following records: Rec#0, Rec#1, Rec#2, Rec#3, FM#4, and Rec#5. As indicated by FM#4, located between Rec#3 and Rec#5, Rec#0, Rec#1, Rec#2, and Rec#3 belong to the same file, and Rec#5 belongs to a different file. Rec#5 is the end of the data at position _6 (as indicated by the End of Data (EOD) marker). In embodiments of the invention, when a "read" command is issued, the current position of the tape head is updated. For example, if the tape head is currently at position _1 and a "read" command is issued for Rec#3, then the tape head is moved to position _3 and Rec#3 is read. Upon completion of reading Rec#3, the current position of the tape head is updated to position _4.

[0075] Figure 3B This illustrates at least one embodiment of the invention of appending file data to... Figure 3A A block diagram illustrating an example of file data stored in data partition 300B on tape after data partition 300A. Figure 3B The illustrations provided represent only one implementation and do not imply any limitation regarding the environments in which different embodiments may be implemented. Those skilled in the art will make numerous modifications to the described environments without departing from the scope of the invention as set forth in the claims.

[0076] Figure 3B Data partition 300B in the diagram shows the state after a "write" command was issued. Figure 3A Data partition 300A. In one embodiment, a "write" command may include, but is not limited to, one or more of the following: (i) modifying a record, (ii) rewriting a record, and (iii) adding new data. Data partition 300B includes positions _0, _1, _2, _3, _4, _5, _6, and _7. Figure 3B Data partition 300B, positions 0 to 6 correspond to Figure 3A Data partition 300A is located at positions 0 to 6. Figure 3B Data partition 300B also includes the following records: Rec#0, Rec#1, Rec#2, Rec#3, FM#4, Rec#5, and Rec#6. Figure 3B Data partition 300B records #0 to #5 correspond to Figure 3A Records #0 to #5 of data partition 300A. In an embodiment, a "write" operation appends data to the EOD marker. As depicted by data partition 300B, a "write" command is issued. Therefore, since Rec#5 is Figure 3A The last record (represented by the EOD marker at position 6) is written to data partition 300A at position _5. Therefore, Rec#6 is written to position 6, FM#7 is written to position 7, and the EOD marker is updated to the position specified in the original text. Figure 3B Location _8 in data partition 300B.

[0077] Figure 4A This is a block diagram illustrating an example of an LTFS volume generally designated as 400A according to at least one embodiment of the present invention. Figure 4A The illustrations provided represent only one implementation and do not imply any limitation regarding the environments in which different embodiments may be implemented. Those skilled in the art will make numerous modifications to the described environments without departing from the scope of the invention as set forth in the claims.

[0078] In different embodiments of the invention, an LTFS volume includes a pair of LTFS partitions—a data partition and an index partition. After file data is appended to the data partition, an index construct (containing metadata associated with the file data in the data partition) is appended to the end of the file data, and the index of the index partition is overwritten by the index construct of the data partition.

[0079] Each partition includes a tag construct, followed by a content area. The tag construct contains identification information specific to the LTFS volume. Within the data partition, the content area is formed by data ranges and index constructs. Data ranges contain file data written as sequential logical blocks. A file should consist of zero or more data ranges plus associated metadata stored in the index construct. The index construct contains an index, which is an XML data structure describing the mapping between files and data ranges.

[0080] Within an index partition, the content area is composed of three different types of information: generation number, self pointer, and next pointer. The generation number includes the age of the latest index relative to past indexes in the volume. Each index in the volume has a generation number, which is a non-negative integer that increments as changes are made to the volume. The highest-numbered index on the volume represents the current state of the entire volume. The self pointer records the volume to which the index belongs and the block position of the index within that volume. The next pointer records the block position of the last index that existed in the data partition immediately before this index was written.

[0081] like Figure 4AAs shown, data partition (DP) 420 includes label construction 422, and the content area includes index #0, file #1, file #2, index #1, file #3, and index #2. Index partition (IP) 410 includes label construction 412 and index #2. Index #2 in DP 420 is the same index as index #2 in IP 410.

[0082] Figure 4B This is a block diagram illustrating an example of a programmable warning zone (PEWZ) on a magnetic tape, generally designated as 400B, according to at least one embodiment of the present invention. Figure 4B As shown, data partition 450 begins at Partition Start (BOP) 452 and ends at Partition End (EOP) 454. Data partition 450 includes a PEWZ 456 and a buffer 458. A programmable warning is generated when the tape head reaches the beginning of PEWZ 460 during file operations. In one embodiment, a warning (EW) is generated when the tape head reaches the end of PEWZ 462 during file operations. Figure 4B Further described, the point at which the tape transitions to the DATA_FULL state corresponds to the tape head reaching the end of the PEWZ 462.

[0083] Figure 5 This is a flowchart depicting the operational steps, generally designated as 500, for changing the buffer at the end of the last data band of a data partition on an LTFS-formatted LTO tape cartridge according to at least one embodiment of the present invention. Figure 5 This is merely an illustration of one implementation and does not imply any limitation regarding the environments in which different embodiments may be implemented. Many modifications can be made to the described environments by those skilled in the art without departing from the scope of the invention as set forth in the claims. It should be noted that although the following flowchart illustrates an LTO tape cartridge, those skilled in the art will understand that different embodiments of the invention can be implemented using any type of LTFS-formatted tape storage device.

[0084] In step 502, buffer program 101 mounts an LTFS-formatted LTO tape.

[0085] In step 504, buffer program 101 determines whether the available storage area in the data partition of the magnetic tape is greater than a predetermined value (e.g., 200MB). If buffer program 101 determines that the available storage area in the data partition of the magnetic tape is less than the predetermined value (determination step 504, "No" branch), then buffer program 101 proceeds to step 506. If buffer program 101 determines that the available storage area in the data partition of the magnetic tape is greater than the predetermined value (determination step 504, "Yes" branch), then buffer program 101 proceeds to step 508.

[0086] In step 506, buffer procedure 101 transitions to the DATA_FULL state, in which only metadata write operations are allowed in the data partition. For example, buffer procedure 101 instructs the tape drive's tape head to perform only metadata write operations, such as writing an index to the data partition. In another example, if the tape drive's tape head is actively writing file data to the data partition when the DATA_FULL state is issued, the tape drive automatically terminates any further file data writing to the data partition and begins appending an index to the end of the most recent file data written to the data partition.

[0087] In step 508, buffer procedure 101 generates a programmable warning zone (PEWZ). In one embodiment, the size of the PEWZ is based on the requirements of a specific user application. For example, a user application may request the tape drive to create a PEWZ with a size of 500MB. In response to this request, buffer procedure 101 generates a 2-byte value specifying how many MB (in this case, 500MB) the tape will be in before transitioning to the DATA_FULL state.

[0088] In determination step 510, buffer procedure 101 determines whether a request for a file operation has been received. In one embodiment, the file operation may include, but is not limited to, one or more of the following: a creation operation (for creating a new file), a write operation (for writing data associated with a file), a relocation or search operation (for moving the file pointer forward or backward), a deletion operation (for deleting data associated with a file), and a truncation operation (for deleting information stored inside a file without deleting the file itself).

[0089] In step 512, in response to determining that a request for a file operation has been received, buffer program 101 performs the file operation. For example, buffer program 101 instructs the tape head of the tape drive to perform a file operation in the data partition of the tape.

[0090] In step 514, buffer procedure 101 determines whether a programmable warning (PEW) is generated during the execution of the file operation. In an alternative embodiment, buffer procedure 101 determines whether the tape head has reached PEWZ during the execution of the file operation.

[0091] If a PEW is not generated while writing file data to the data partition according to the file operation (decision step 514, "No" branch), then buffer procedure 101 returns to decision step 510. Alternatively, if the tape head does not reach PEWZ during the file operation, buffer procedure 101 returns to step 510.

[0092] If a PEW is generated while writing file data to the data partition according to the file operation (decision step 514, "Yes" branch), then buffer procedure 101 proceeds to step 524. Alternatively, buffer procedure 101 returns to step 524 when it is detected that the tape head has reached PEWZ during the execution of the file operation.

[0093] In step 516, buffer procedure 101 determines whether it is necessary to attach the index to the data partition of the tape. If it is not necessary to attach the index to the data partition of the tape, buffer procedure 101 returns to decision step 510. If it is necessary to attach the index to the data partition of the tape, buffer procedure 101 proceeds to step 518.

[0094] In step 518, buffer program 101 performs an operation to append an index to the data partition. For example, buffer program 101 instructs the tape head of the tape drive to append an index to the end of the file data on the data partition of the tape.

[0095] In determination step 520, buffer procedure 101 determines whether a PEW is generated while the index is being appended to the data partition. In an alternative embodiment, buffer procedure 101 determines whether the tape head reaches the PEWZ during the process of appending the index to the data partition of the tape.

[0096] If a PEW is not generated while the index is being appended to the data partition, buffer procedure 101 proceeds to step 522. Alternatively, if the tape head does not reach PEWZ while the index is being appended to the data partition, buffer procedure 101 proceeds to step 522.

[0097] If a PEW is generated while the index is being appended to the data partition, buffer procedure 101 proceeds to step 524. Alternatively, if the tape head does not reach the PEWZ while the index is being appended to the data partition, buffer procedure 101 proceeds to step 524.

[0098] In step 522, buffer procedure 101 modifies the position and size of the PEWZ relative to the end of the writable area of ​​the data partition. It should be noted that by moving the position of the PEWZ, the size of the buffer allocated for performing only metadata operations when the DATA_FULL state is reached is also changed. For example, a 1GB buffer could be reserved at the end of the data partition for performing metadata operations only when the tape drive transitions to the DATA_FULL state. If a PEWZ of 500MB size is created, the PEWZ will correspond to 500MB of storage space immediately preceding the 1GB of storage space reserved as a buffer. Therefore, if the 500MB PEWZ is moved 500MB closer to the end of the writable area of ​​the data partition, the buffer reserved for performing only metadata operations when the DATA_FULL state is reached will ultimately be reduced from 1GB to 500MB.

[0099] In one embodiment, the position of the PEWZ on the tape is changed based on the size of the nearest index attached to the data partition. For example, if the size of the nearest index attached to the data partition is 200MB, the buffer procedure 101 moves the PEWZ position so that the size of the buffer is equal to the size of the nearest index attached to the data partition (200MB). Thus, when the tape head reaches the end of the PEWZ, the tape drive transitions to the DATA_FULL state, in which 200MB has been reserved for metadata write operations only. In another example, if the size of the nearest index attached to the data partition is 300MB, the buffer procedure moves the PEWZ position so that the size of the buffer is twice the size of the nearest index attached to the data partition (300MB) (600MB). Thus, when the tape head reaches the end of the PEWZ, the tape drive transitions to the DATA_FULL state, in which 600MB has been reserved for metadata write operations only.

[0100] In step 524, buffer procedure 101 transitions to the DATA_FULL state, in which only metadata write operations are allowed in the data partition. For example, buffer procedure 101 instructs the tape drive head to perform only metadata write operations, such as writing an index to the data partition. In another example, if the tape drive head is actively writing file data to the data partition when the DATA_FULL state is issued, the tape drive automatically terminates any further file data writing to the data partition and begins appending an index to the end of the most recently written file data to the data partition.

[0101] It should be understood that while this disclosure includes a detailed description of cloud computing, the implementation of the teachings cited herein is not limited to cloud computing environments. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.

[0102] Cloud computing is a service delivery model that enables 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), which can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model may include at least five features, at least three service models, and at least four deployment models.

[0103] The features are as follows:

[0104] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring human interaction with the service provider.

[0105] Extensive network access: Capabilities are available through networks and accessed via standard mechanisms that facilitate the use of heterogeneous thin client or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0106] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically assigned and reassigned as needed. There is a sense of location independence because consumers typically do not have control or knowledge of the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0107] Rapid flexibility: The ability to provide capacity quickly and flexibly, automatically scaling down and up rapidly in some situations to scale up rapidly. For consumers, the available supply capacity often appears unlimited and can be purchased in any quantity at any time.

[0108] Measuring services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.

[0109] The service model is as follows:

[0110] Software as a Service (SaaS): This provides consumers with the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from different client devices via thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.

[0111] Platform as a Service (PaaS): This provides consumers with the ability to deploy applications created or acquired by the consumer using programming languages ​​and tools supported by the provider onto cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environment.

[0112] Infrastructure as a Service (IaaS): The capabilities offered to consumers are processing, storage, networking, and other basic computing resources that enable consumers to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but rather have control over the operating system, storage, deployed applications, and potentially limited control over selected networking components (e.g., host firewalls).

[0113] The deployment model is as follows:

[0114] Private cloud: A cloud infrastructure that operates solely for an organization. It can be managed by the organization or a third party and can exist on-site or off-site.

[0115] Community cloud: A cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.

[0116] Public cloud: Makes cloud infrastructure available to the public or large industry groups and is owned by an organization that sells cloud services.

[0117] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported (e.g., cloud bursting for load balancing between clouds).

[0118] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure comprising a network of interconnected nodes.

[0119] Figure 6This is a block diagram depicting a cloud computing environment 50 according to at least one embodiment of the present invention. The cloud computing environment 50 includes one or more cloud computing nodes 10 to which local computing devices used by cloud consumers can communicate, such as, for example, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 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 private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as services for which cloud consumers do not need to maintain resources on their local computing devices. It should be understood that... Figure 6 The types of computing devices 54A-N shown are intended to be illustrative only, and computing node 10 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network-addressable connectivity (e.g., using a web browser).

[0120] Figure 7 It is a description of at least one embodiment of the present invention. Figure 6 This is a block diagram depicting the collection of functional abstraction model layers provided by the cloud computing environment 50. It should be understood beforehand that... Figure 7 The components, layers, and functions shown are intended to be illustrative only, and embodiments of the invention are not limited thereto. As described, the following layers and corresponding functions are provided:

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

[0122] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75.

[0123] In one example, management layer 80 may provide the following functionalities: Resource Provisioning 81 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and bills or invoices 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 resource allocation and management to ensure that required service levels are met. Service Level Agreement (SLA) Planning and Fulfillment 85 provides pre-scheduling and procurement of cloud resources based on anticipated future needs according to the SLA.

[0124] The workload layer 90 provides examples of functionalities that can be leveraged in a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics and processing 94; transaction processing 95; and dynamic migration of sessions between communication platforms 96.

[0125] Figure 8 This is a block diagram depicting components of a computing device, generally designated 800, suitable for executing a buffer program 101. For example, computing device 800 may represent... Figure 1 User equipment 110, tape library 120, and / or server 130. Computing device 800 includes one or more processors 804 (including one or more computer processors), communication architecture 802, memory 806 including RAM 816 and cache 818, permanent storage device 808, communication unit 812, I / O interface 814, display 822, and external devices 820. It should be understood that... Figure 8 The illustration is provided only as an example and does not imply any limitation regarding the environment in which different embodiments may be implemented. Many modifications may be made to the depicted environment.

[0126] As depicted, computing device 800 operates on communication structure 802, which provides communication between computer processor 804, memory 806, permanent storage device 808, communication unit 812, and input / output (I / O) interface 814. Communication structure 802 can be implemented using any architecture suitable for transferring data or control information between processor 804 (e.g., microprocessor, communication processor, and network processor), memory 806, external device 820, and any other hardware components within the system. For example, communication structure 802 can be implemented using one or more buses.

[0127] Memory 806 and persistent storage device 808 are computer-readable storage media. In the depicted embodiment, memory 806 includes random access memory (RAM) 816 and cache 818. Typically, memory 806 may include one or more suitable volatile or non-volatile computer-readable storage media.

[0128] Program instructions for buffer program 101 may be stored in persistent storage device 808, or more generally, in any computer-readable storage medium for execution by one or more corresponding computer processors 804 via one or more memories of memory 806. Persistent storage device 808 may be a magnetic hard disk drive, solid-state drive, semiconductor storage device, read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory, or any other computer-readable storage medium capable of storing program instructions or digital information.

[0129] The media used in persistent storage device 808 can also be removable. For example, a removable hard disk drive can be used in persistent storage device 808. Other examples include optical discs and disks, thumb drives and smart cards, which are inserted into the drive to be transferred to another computer-readable storage medium that is also part of persistent storage device 808.

[0130] In these examples, communication unit 812 provides communication with other data processing systems or devices. In these examples, communication unit 812 may include one or more network interface cards. Communication unit 812 can provide communication using physical and / or wireless communication links. In some embodiments of the invention, sources of different input data may be physically located away from computing device 800, allowing input data to be received via communication unit 812 and output similarly transmitted.

[0131] I / O interface 814 allows data input and output with other devices that can be operated in conjunction with computing device 800. For example, I / O interface 814 can provide connectivity to external device 820, which may be a keyboard, keypad, touchscreen, or other suitable input device. External device 820 may also include portable computer-readable storage media, such as thumb drives, portable optical discs or disks, and memory cards. Software and data used to implement embodiments of the invention can be stored on such portable computer-readable storage media and can be loaded onto permanent storage device 808 via I / O interface 814. I / O interface 814 can also be similarly connected to display 822. Display 822 provides a mechanism for displaying data to a user and may be, for example, a computer monitor.

Claims

1. A computer-implemented method for changing the current position of a data partition of a magnetic tape during tape transition to the DATA_FULL state, comprising: After the file is written to the data partition of the tape, the size of the index representing the metadata associated with the file is determined; as well as Based on the size of the index representing the metadata associated with the file, the current position of the tape transition to the DATA_FULL state in the tape's data partition is changed to the new position of the tape transition to the DATA_FULL state in the tape's data partition, where the DATA_FULL state is the state of the tape that only allows metadata write operations and no longer allows normal file operations.

2. The computer-implemented method according to claim 1, wherein, The DATA_FULL state occurs in response to the head reaching the end of a programmable warning area in the data partition of the tape during file operations.

3. The computer-implemented method according to claim 1, wherein, Changing the location where the tape transitions to the DATA_FULL state also includes changing the location of the programmable warning area within the data partition of the tape.

4. The computer-implemented method according to claim 3, wherein, Changing the location where the tape transitions to the DATA_FULL state on the tape also includes changing the size of the buffer located after the programmable warning area in the data partition of the tape, wherein only metadata write operations are allowed in the buffer.

5. The computer-implemented method according to claim 1, wherein, If the size of the index at the end of the file data to be appended to the data partition of the tape is smaller than the storage area of ​​the buffer between the current position of the tape transition to the DATA_FULL state on the tape and the end of the writable area of ​​the data partition of the tape, then the current position of the tape transition to the DATA_FULL state on the tape is moved towards the end of the writable area of ​​the data partition of the tape.

6. The computer-implemented method according to claim 1, wherein, If the size of the index at the end of the file data to be appended to the data partition of the tape is greater than the storage area of ​​the buffer between the current position of the tape transition to the DATA_FULL state on the tape and the end of the writable area of ​​the data partition of the tape, then the position of the tape transition to the DATA_FULL state on the tape is moved away from the end of the writable area of ​​the data partition of the tape.

7. A computer program product for changing the current position of a data partition of a magnetic tape during tape transition to the DATA_FULL state, the computer program product comprising program instructions, the program instructions including instructions for the following operations: After the file is written to the data partition of tape, the size of the index representing the metadata associated with the file is determined; and Based on the size of the index representing the metadata associated with the file, the current position in the tape data partition where the tape has transitioned to the DATA_FULL state is changed to the new position in the tape data partition where the tape has transitioned to the DATA_FULL state. The DATA_FULL state is the state of a tape that only allows metadata write operations and no longer allows normal file operations.

8. The computer program product according to claim 7, wherein, The DATA_FULL state occurs in response to the head reaching the end of a programmable warning area in the data partition of the tape during file operations.

9. The computer program product according to claim 7, wherein, Instructions for changing the position of the tape transition to the DATA_FULL state on the tape also include instructions for changing the position of the programmable warning area within the data partition of the tape.

10. The computer program product according to claim 9, wherein, The instructions for changing the position of the tape transition to the DATA_FULL state on the tape also include instructions for changing the size of the buffer located after the programmable warning area in the data partition of the tape, wherein only metadata write operations are allowed in the buffer.

11. The computer program product according to claim 7, wherein, If the size of the index at the end of the file data to be appended to the data partition of the tape is smaller than the storage area of ​​the buffer between the current position of the tape transition to the DATA_FULL state on the tape and the end of the writable area of ​​the data partition of the tape, then the current position of the tape transition to the DATA_FULL state on the tape is moved towards the end of the writable area of ​​the data partition of the tape.

12. The computer program product according to claim 7, wherein, If the size of the index at the end of the file data to be appended to the data partition of the tape is greater than the storage area of ​​the buffer between the current position of the tape transition to the DATA_FULL state on the tape and the end of the writable area of ​​the data partition of the tape, then the position of the tape transition to the DATA_FULL state on the tape is moved away from the end of the writable area of ​​the data partition of the tape.

13. A computer system for changing the current position of a data partition of a magnetic tape during tape transition to the DATA_FULL state, the computer system comprising: One or more computer processors; One or more computer-readable storage media; as well as Computer program instructions, stored on one or more computer-readable storage media, for execution by one or more computer processors, and comprising instructions for performing the following operations: After the file is written to the data partition of the tape, the size of the index representing the metadata associated with the file is determined; as well as Based on the size of the index representing the metadata associated with the file, the current position of the tape transition to the DATA_FULL state in the tape's data partition is changed to the new position of the tape transition to the DATA_FULL state in the tape's data partition, where the DATA_FULL state is the state of the tape that only allows metadata write operations and no longer allows normal file operations.

14. The computer system according to claim 13, wherein, The DATA_FULL state occurs in response to the head reaching the end of a programmable warning area in the data partition of the tape during file operations.

15. The computer system according to claim 13, wherein, Instructions for changing the position of the tape transition to the DATA_FULL state on the tape also include instructions for changing the position of the programmable warning area within the data partition of the tape.

16. The computer system according to claim 13, wherein, If the size of the index at the end of the file data to be appended to the data partition of the tape is smaller than the storage area of ​​the buffer between the current position of the tape transition to the DATA_FULL state on the tape and the end of the writable area of ​​the data partition of the tape, then the current position of the tape transition to the DATA_FULL state on the tape is moved towards the end of the writable area of ​​the data partition of the tape.

17. The computer system according to claim 13, wherein, If the size of the index at the end of the file data to be appended to the data partition of the tape is greater than the storage area of ​​the buffer between the current position of the tape transitioned to the DATA_FULL state on the tape and the end of the writable area of ​​the data partition of the tape, then the current position of the tape transitioned to the DATA_FULL state on the tape is moved away from the end of the writable area of ​​the data partition of the tape.