Tape drive device and storage system

By dividing the tape drive into intervals and setting data slices, the problem of frequent tape reversal is solved, enabling more efficient data access and management.

WO2025260763A1PCT designated stage Publication Date: 2025-12-26HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/074430
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-20
Filing Date
2025-01-23
Publication Date
2025-12-26

AI Technical Summary

Technical Problem

In tape drive devices, the tape needs to be frequently turned around to access data, resulting in large I/O latency and affecting access efficiency.

Method used

The data area of ​​the magnetic tape is divided into multiple data slices with interval settings. Two adjacent data slices store data from the same I/O stream. The tape drive rewinds the tape at a stable speed, and the magnetic head continuously accesses the data slices, reducing the number of times the tape head needs to be turned around.

Benefits of technology

It reduces the I/O latency of tape drive devices, improves access efficiency, and avoids data distribution disorder by managing data slices through continuous logical addresses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025074430_26122025_PF_FP_ABST
    Figure CN2025074430_26122025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed are a tape drive device and a storage system, which relate to the technical field of tapes. The present application solves the problem of a tape in a tape drive device requiring frequent reversal to allow a magnetic head to access data in the tape. Thus, during data access, the tape does not need frequent reversal, thereby reducing the IO latency of the tape drive device, and improving the access efficiency of the tape drive device. A data area in the tape is partitioned into a plurality of data slices, wherein the plurality of data slices are arranged at intervals, and two adjacent data slices are used for storing data of the same IO stream. During the tape winding process after the tape is driven by a tape drive, there is no need to consider the problem of reversing the tape, the tape drive can wind the tape at a relatively stable speed, and the magnetic head can still continuously access the data slices that are arranged at intervals in the tape during the winding process, and thus the tape does not need frequent reversal, thereby reducing the IO latency of the tape drive device, and improving the access efficiency of the tape drive device.
Need to check novelty before this filing date? Find Prior Art

Description

A tape drive device and storage system

[0001] The present application claims priority to the Chinese patent application No. 202410808130.1, filed on June 20, 2024, with the State Intellectual Property Office, and entitled "A tape drive device and storage system", the whole content of which is incorporated herein by reference. TECHNICAL FIELD

[0002] The present application relates to the technical field of magnetic tape, in particular to a tape drive device and storage system. BACKGROUND

[0003] A magnetic tape is a band-shaped material with a magnetic layer for recording sound, image, digital or other signals. The magnetic tape is attached with a magnetic medium, such as magnetic powder, for storing data. In the storage technology, the magnetic tape is the best choice for storage media in backup, archiving and other scenarios due to its low cost, high reliability and safety. For example, a tape drive is a single drive product, which includes a tape drive and a magnetic tape. The tape drive usually reads and writes data by sliding the magnetic tape on the head in the tape drive. In the tape drive, the read-write bandwidth of input-output (IO) data is limited by the number of bits that the analog-to-digital converter (ADC) and the digital-to-analog converter (DAC) can convert in a unit of time. The tape speed of the motor in the tape drive needs to match the number of bits that the ADC / DAC can convert in a unit of time, so that the tape drive can complete the access to the magnetic tape. During the read-write process of the tape drive, the efficiency of the ADC / DAC in the tape drive is limited, and the head will slide across the tape body of the magnetic tape with inertia, causing data holes in the tape body of the magnetic tape. The tape drive usually controls the magnetic tape to turn around, so that the head can access the area of the data hole again. The delay of the magnetic tape each time it turns around is high, and the IO delay of the tape drive is large. SUMMARY

[0004] The present application provides a tape drive device and storage system, which solves the problem that the magnetic tape in the tape drive device needs to frequently turn around to access data in the magnetic tape. In the data access process, the magnetic tape does not need to frequently turn around, the IO delay of the tape drive device is reduced, and the access efficiency of the tape drive device is improved.

[0005] The present application adopts the following technical solution.

[0006] In a first aspect, the present application provides a tape drive device. The tape drive device comprises a magnetic tape, a tape drive and a head. The magnetic tape comprises a first data area, the first data area comprises a plurality of first data slices arranged at intervals, and data stored in at least two adjacent first data slices belongs to a first IO stream. The tape drive is configured to drive the magnetic tape to wind along the length direction of the magnetic tape, and the head is configured to continuously access the at least two adjacent first data slices included in the first data area of the magnetic tape during the winding of the magnetic tape.

[0007] In the first aspect of the present application, the data area in the magnetic tape is divided into a plurality of data slices arranged at intervals, and adjacent two data slices are configured to store data of the same IO stream. During the winding process of the magnetic tape driven by the tape drive, without considering the problem of reversing the winding of the magnetic tape, the tape drive can wind the magnetic tape at a relatively stable speed, and the head can still continuously access the data slices arranged at intervals in the magnetic tape during the winding process. The magnetic tape does not need to frequently turn around, which reduces the IO latency of the tape drive device and improves the access efficiency of the tape drive device.

[0008] Moreover, since the data stored in the adjacent two data slices belongs to the same IO stream, the data stored in the magnetic tape can be managed by using continuous logical addresses, which avoids the problem of disordered data distribution caused by the interval distribution of the data slices in the magnetic tape, and is conducive to managing different data slices included in the magnetic tape of the tape drive device.

[0009] In combination with the tape drive device provided in the first aspect, in an optional implementation manner, the logical addresses of the data stored in the at least two adjacent first data slices are continuous. In the first aspect of the present application, the tape drive device stores the data with continuous logical addresses into the data slices arranged at intervals, which can avoid the delay of the magnetic tape turning around caused by the tape drive controlling the magnetic tape to reverse the winding, and is conducive to improving the access efficiency of the head to the magnetic tape in the tape drive device and reducing the IO latency of the tape drive device.

[0010] With reference to the tape device provided in the first aspect, in an optional implementation, the first data area further includes a second data slice, the second data slice is located between the two adjacent first data slices, and the data stored in the second data slice belongs to a different IO stream from the data stored in the first data slices. In the first aspect, the first data slice and the second data slice in the tape are arranged alternately, the tape device can write data from different IO streams into different data slices arranged alternately, the data stored in the corresponding data slices of the same IO stream is arranged alternately in the data area of the tape, and the controller in the tape device can manage the data slices arranged alternately in the tape through continuous logical addresses, thereby avoiding the problem of disordered data distribution caused by the alternately arranged data slices in the tape, and facilitating management of the different data slices included in the tape in the tape device.

[0011] For example, when managing data of different IO streams, the tape device uses different logical addresses for management, so that the tape drive moves at a relatively stable speed, so that the head can continuously access the data slices arranged alternately in the tape. After the head accesses the data area of the tape for multiple times, all the data in the data area can be read, and there is no need to frequently turn around during each access process, thereby reducing the access delay of the head to the head and improving the access efficiency of the tape device.

[0012] In one data area, the sizes of the data slices belonging to different IO streams can be the same or different.

[0013] With reference to the tape device provided in the first aspect, in an optional implementation, the size of the second data slice is the same as the size of the gap between the two adjacent first data slices.

[0014] With reference to the tape device provided in the first aspect, in an optional implementation, the size of the second data slice is smaller than the size of the gap between the two adjacent first data slices.

[0015] With reference to the tape device provided in the first aspect, in an optional implementation, the tape device provided in the first aspect further includes a controller. The controller is configured to receive a first IO request and a second IO request belonging to the first IO stream, the first IO request carries first data, and the second IO request carries second data. One of the two adjacent first data slices is configured to store the first data, and the other first data slice is configured to store the second data.

[0016] In the first aspect of this application, the controller is further configured to verify the data written by the magnetic head to the first data area. The slice size of the aforementioned second data slice is determined based on any one or a combination of the following: the I / O interval between the controller receiving the first I / O request and the second I / O request, the read / write speed of the magnetic head on the magnetic tape, and the verification time of the controller for a unit capacity of data.

[0017] In the first alternative example, the size of the second data slice is determined based on the I / O interval between the first and second I / O requests received by the controller and the read / write speed of the magnetic head on the tape.

[0018] In the second alternative example, the slice size of the second data slice is determined based on the read / write speed of the magnetic head on the magnetic tape and the time taken by the controller to verify the data per unit capacity.

[0019] In conjunction with the tape drive device provided in the first aspect, in one optional implementation, the tape provided in this application further includes a second data area. This second data area includes: a plurality of third data slices arranged along the length direction of the tape, wherein the data stored in two adjacent third data slices belongs to a second I / O stream. Furthermore, the second data area also includes a fourth data slice, the size of which is less than or equal to the size of the gap between two adjacent third data slices, and the data stored in the fourth data slice belongs to a different I / O stream than the data stored in the third data slices.

[0020] In the first aspect of this application, the magnetic tape in the tape drive device can be divided into different data areas. Different data areas can be managed according to the same slice size or according to different slice sizes according to the characteristics of the IO stream, thereby improving the utilization rate of the tape body space and solving the limitation problem of supporting different types of IO within a single tape drive device.

[0021] In conjunction with the tape drive device provided in the first aspect, in one optional implementation, the slice size of the first data slice is the same as the slice size of the third data slice.

[0022] In conjunction with the tape drive device provided in the first aspect, in one optional implementation, the tape provided in this application further includes a first connection area, wherein one side of the first connection area is connected to a first data area and the other side of the first connection area is connected to a second data area along the length direction of the tape.

[0023] In conjunction with the tape drive device provided in the first aspect, in one optional implementation, the first data area includes multiple data tapes arranged along the width direction of the tape. These multiple data tapes include a first data tape and a second data tape arranged along the width direction of the tape. The first data tape includes two adjacent first data slices. The aforementioned tape driver includes a tape rewind motor and a voice coil motor (VCM) motor. The tape rewind motor drives the tape to wind along its length direction; the VCM motor drives the tape to move along its width direction, causing the magnetic head to access either the first or second data tape.

[0024] In conjunction with the tape drive device provided in the first aspect, in one optional implementation, the aforementioned first data tape and second data tape are adjacent. For example, during the process of the magnetic head accessing the tape, the tape drive's rewind motor and VCM motor drive the tape to turn around in the connection area connecting the data areas. When the two accessed data tapes are adjacent, the sliding trajectory of the magnetic head on the tape is arranged in a "serpentine" pattern.

[0025] In conjunction with the tape drive device provided in the first aspect, in one optional implementation, there is at least one data tape spaced between the aforementioned first data tape and second data tape. For example, during the process of the magnetic head accessing the tape, the tape drive's rewind motor and VCM motor drive the tape to turn around in the connection area connecting the data areas. When the two accessed data tapes are not adjacent, the sliding trajectory of the magnetic head on the tape is arranged in a "U" shape or a ring shape.

[0026] Secondly, this application provides a storage system. The storage system includes: a storage controller and one or more tape drive devices provided by the first aspect or any optional implementation of the first aspect. The storage controller manages the tape drive devices according to data access requests. This storage system can also achieve the beneficial effects of the aforementioned first aspect or any optional implementation of the first aspect, which will not be elaborated here.

[0027] Thirdly, this application provides a magnetic tape. The magnetic tape includes a first data area, wherein a plurality of first data slices are spaced apart, and at least two adjacent first data slices are used to store data from a first I / O stream. In this third aspect of the application, since the data stored in two adjacent data slices belongs to the same I / O stream, the data stored in the magnetic tape can be managed using consecutive pointers (such as logical addresses or metadata), avoiding the problem of data distribution disorder caused by the spaced distribution of data slices in the magnetic tape, and facilitating the management of different data slices included in the magnetic tape in a magnetic tape drive.

[0028] In conjunction with the tape drive device provided in the third aspect, in one optional implementation, the first data area is further provided with a second data slice, which is located between two adjacent first data slices, and the data stored in the second data slice belongs to a different IO stream than the data stored in the first data slice.

[0029] In conjunction with the tape drive device provided in the third aspect, in one optional implementation, the tape provided in this application further includes: a second data area, which comprises a plurality of third data slices and a fourth data slice arranged along the length of the tape, wherein the data stored in two adjacent third data slices belongs to a second I / O stream. The size of the fourth data slice is less than or equal to the size of the gap between two adjacent third data slices, and the data stored in the fourth data slice belongs to a different I / O stream than the data stored in the third data slices.

[0030] Based on the implementation methods provided above, this application can be further combined to provide more implementation methods. Attached Figure Description

[0031] Figure 1 is a schematic diagram of the structure of a data access system provided in this application;

[0032] Figure 2A is a schematic diagram of the structure of a magnetic tape drive device provided in this application;

[0033] Figure 2B is a schematic diagram of the structure of a magnetic tape drive device provided in this application;

[0034] Figure 3 is a structural schematic diagram of a reel 201 and a magnetic tape 210 provided in this application;

[0035] Figure 4 is a schematic diagram of the structure of a magnetic tape drive device provided in this application.

[0036] Figure 5 is a schematic diagram of the structure of a magnetic tape provided in this application;

[0037] Figure 6 is a schematic diagram of the structure of a magnetic tape provided in this application;

[0038] Figure 7 is a schematic diagram of the structure of a magnetic tape drive device provided in this application;

[0039] Figure 8A is a schematic diagram of accessing the serpentine track in the magnetic tape provided in this application;

[0040] Figure 8B is a schematic diagram of accessing the circular slide rail in the magnetic tape provided in this application;

[0041] Figure 8C is a schematic diagram of accessing the circular slide rail in the magnetic tape provided in this application (II).

[0042] Figure 9 is a schematic diagram of the structure of a magnetic tape provided in this application. Detailed Implementation

[0043] This application provides a tape drive device and storage system that solves the problem that tapes in tape drives need to be frequently turned around before the read / write head can access the data on the tape. During data access, the tape does not need to be frequently turned around, reducing the I / O latency of the tape drive and improving its access efficiency. Specifically, the data area of ​​the tape in the tape drive is divided into multiple data slices, which are spaced apart, and adjacent data slices are used to store data from the same I / O stream.

[0044] Specifically, during the tape rewinding process driven by the tape drive, since data from the same I / O stream is stored in multiple spaced data slices, there is no need to consider rewinding the tape in reverse. The tape drive can rewind the tape at a relatively stable speed, and the read / write head can still continuously access the spaced data slices on the tape during the rewinding process. The tape does not need to be frequently reversed, reducing the I / O latency of the tape drive and improving its access efficiency. Moreover, since the logical addresses of the data stored in two adjacent data slices are continuous, the data stored on the tape can be managed using consecutive logical addresses. This avoids the data distribution disorder caused by the spaced distribution of data slices on the tape, which is beneficial for managing the different data slices included in the tape on the tape drive.

[0045] The technical solutions involved in this application may be applied not only to current magnetic tape technology or storage devices, but also to future magnetic tape technology or storage devices, or to storage systems including magnetic tape drive devices or storage devices. The terminology used in the embodiments section of this application is only for explaining specific embodiments of this application and is not intended to limit this application. A brief introduction to some concepts that may be involved in this application is given below.

[0046] Storage medium: A storage material used to record sound, images, digital signals, or other signals. This storage material may include, but is not limited to, magnetic tape, such as a tape-shaped material with a magnetic layer used to record sound, images, digital signals, or other signals. Magnetic tape contains a magnetic medium, such as magnetic powder, for storing data. For example, changes in the magnetic field in this magnetic medium are typically achieved by coating a plastic film substrate (support) with a layer of granular magnetic material or by evaporating and depositing a layer of magnetic oxide or alloy film. The substrate of magnetic tape may include, but is not limited to, paper, celluloid, or polyester film.

[0047] Magnetic head: A component that reads and writes data on magnetic tape using magnetic principles. It is divided into write heads and read heads. Write heads record data by magnetizing the magnetic medium (such as magnetic powder), while read heads read data from the magnetic medium by sensing its magnetic field.

[0048] To make the objectives, technical solutions, and advantages of this application clearer, the application will now be described in further detail with reference to the accompanying drawings.

[0049] In the following description, the terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined with "first," "second," etc., may explicitly or implicitly include one or more of that feature. In the description of this application, unless otherwise stated, "a plurality of" means two or more.

[0050] Furthermore, in this application, directional terms such as "upper" and "lower" are defined relative to the orientation of the components shown in the accompanying drawings. It should be understood that these directional terms are relative concepts, used for relative description and clarification, and can change accordingly depending on the orientation of the components in the accompanying drawings.

[0051] In a tape library, after the server issues read / write operation commands to the robotic arm, the robotic arm retrieves the corresponding tape cartridge from the tape bay and transports it to the corresponding tape drive. The tape drive then reads and writes data to a specified location within the tape cartridge. When the retrieved tape cartridge is full or data in another tape cartridge needs to be read / written, the server issues another read / write operation command to the robotic arm. The robotic arm then retrieves the current tape cartridge from the tape drive and moves the new tape cartridge in the tape bay for data reading and writing. In a tape library, all components except the tape cartridges are shared across different tape cartridges. Therefore, during data reading and writing, the robotic arm frequently moves different tape cartridges. Furthermore, the robotic arm is a complex mechanical component with relatively low reliability; a failure of the robotic arm can lead to service interruptions in the tape library.

[0052] To address the aforementioned issues, the application scenarios of the embodiments of this application will be described below with reference to the accompanying drawings.

[0053] Figure 1 is a schematic diagram of a data access system provided in this application. The data access system includes a data access device 100 and a storage device 120. In the application scenario shown in Figure 1, users access data through applications. The computer running these applications can be referred to as a "computing device".

[0054] Data access device 100 can be a physical machine, a virtual machine, or a container. The physical machine can include, but is not limited to, one or both a client and a smart NIC. For example, data access device 100 includes a client, such as a host, desktop computer, server, laptop, or mobile device. Another example is that data access device 100 includes a smart NIC. This smart NIC, also known as a smart network adapter, not only performs the network transmission functions of a standard NIC but also provides a built-in programmable and configurable hardware acceleration engine. This improves application performance and significantly reduces CPU consumption in the host connected to the smart NIC, providing more CPU resources for the application. For example, in a highly virtualized environment, the host CPU needs to run open virtual switch (OVS) related tasks. Simultaneously, the host CPU also needs to handle storage, online or offline encryption / decryption of data packets, deep packet inspection, firewalls, complex routing, and other operations. These operations not only consume significant CPU resources but also, due to competition for CPU resources between different services, prevent the services from achieving optimal performance. As a hub connecting various services, smart network interface cards (NICs) accelerate these services.

[0055] In one possible example, data access device 100 accesses storage device 120 via a network to access data; for example, the network may include switch 110.

[0056] In another possible example, data access device 100 may also communicate with storage device 120 via a wired connection, such as a universal serial bus (USB) or a peripheral component interconnect express (PCIe) bus.

[0057] The storage device 120 shown in Figure 1 can be a centralized storage system. A key feature of a centralized storage system is a unified entry point through which all data from external devices passes; this entry point is the engine 121 of the centralized storage system. The engine 121 has management functions, and many advanced functions of the storage system are implemented within it.

[0058] As shown in Figure 1, engine 121 may contain one or more controllers. Figure 1 illustrates an example where engine 121 contains one controller. In one possible example, if engine 121 has multiple controllers, any two controllers can have a mirror channel, enabling any two controllers to back each other up, thereby preventing hardware failure from causing the entire storage device 120 to become unavailable. It should be understood that if engine 121 includes multiple controllers, then engine 121 can also be referred to as the array controller of storage device 120.

[0059] Engine 121 also includes a front-end interface 1211 and a back-end interface 1214. The front-end interface 1211 is used to communicate with the data access device 100 to provide data access services to the data access device 100. The back-end interface 1214 is used to communicate with hard drives to expand the capacity of the storage device 120. Through the back-end interface 1214, engine 121 can connect to more hard drives, thereby forming a very large storage resource pool.

[0060] In terms of hardware, as shown in Figure 1, the controller includes at least a processor 1212 and memory 1213. The processor 1212 is a central processing unit (CPU) used to process data access requests from outside the storage device 120 (servers or other storage systems), and also to process requests generated internally within the storage device 120. For example, when the processor 1212 receives write data requests from the data access device 100 through the front-end interface 1211, it temporarily stores the data in these write data requests in memory 1213. When the total amount of data in memory 1213 reaches a certain threshold, the processor 1212 sends the data stored in memory 1213 to at least one of the following hard drives for persistent storage: a mechanical hard drive 1221, a solid-state drive (SSD) 1222, a tape drive 200, or another hard drive 1224.

[0061] Memory 1213 refers to internal memory that directly exchanges data with the processor. It can read and write data at any time and at high speed, serving as temporary data storage for the operating system or other running programs. Memory includes at least two types of memory, such as random access memory (RAM) or read-only memory (ROM). For example, RAM can be DRAM or SCM. DRAM is a semiconductor memory and, like most RAM, is a volatile memory device. However, DRAM and SCM are merely illustrative examples in this embodiment; memory can also include other types of RAM, such as static random access memory (SRAM). For read-only memory, examples include programmable read-only memory (PROM) and erasable programmable read-only memory (EPROM). Additionally, memory 1213 can also be a dual in-line memory module (DIMM), i.e., a module composed of dynamic random access memory (DRAM), or an SSD. In practical applications, the controller can be configured with multiple memory modules 1213, and different types of memory modules 1213. This embodiment does not limit the number or type of memory modules 1213. Furthermore, memory modules 1213 can be configured to have a power-saving function. The power-saving function means that when the system loses power and then regains power, the data stored in memory modules 1213 will not be lost. Memory with a power-saving function is called non-volatile memory. Memory modules 1213 store software programs, and processor 1212 can run the software programs in memory modules 1213 to manage the hard disk. For example, the hard disk can be abstracted as a storage resource pool, and the storage resource pool can be provided to the server in the form of logical unit numbers (LUNs). Here, the LUN is actually the hard disk seen on the server. Of course, some centralized storage systems are also file servers themselves, and can provide shared file services to the server.

[0062] As shown in Figure 1, in this system, engine 121 may not have a hard drive slot; the hard drive needs to be placed in hard drive enclosure 122, and the back-end interface 1214 communicates with the hard drive enclosure 122. The back-end interface 1214 exists in the form of an adapter card within engine 121, and two or more back-end interfaces 1214 can be used simultaneously on one engine 121 to connect multiple hard drive enclosures. Alternatively, the adapter card can be integrated onto the motherboard, in which case the adapter card can communicate with processor 1212 via the PCIe bus.

[0063] It should be noted that only one engine 121 is shown in Figure 1. However, in actual applications, the storage system may contain two or more engines 121, and redundancy or load balancing may be performed among the multiple engines 121.

[0064] The hard disk enclosure 122 includes a control unit 1225 and several hard disks. The control unit 1225 can have various forms. In one case, the hard disk enclosure 122 is a smart enclosure, as shown in Figure 1. The control unit 1225 includes a CPU and memory. The CPU is used to perform address translation and data reading / writing operations. The memory is used to temporarily store data to be written to the hard disk or to read data from the hard disk to be sent to the controller. In another case, the control unit 1225 is a programmable electronic component, such as a data processing unit (DPU). A DPU has the versatility and programmability of a CPU, but is more specialized, capable of efficiently operating on network packets, storage requests, or analysis requests. A DPU differs from a CPU by its high degree of parallelism (the ability to handle a large number of requests). Optionally, the DPU can also be replaced by a graphics processing unit (GPU), an embedded neural network processing unit (NPU), or other processing chips. Typically, there can be one, two, or more control units 1225. The functions of the control unit 1225 can be offloaded to the network interface card 1226. In other words, in this embodiment, the hard disk enclosure 122 does not contain a control unit 1225; instead, the network interface card (NIC) 1226 performs data reading and writing, address translation, and other computational functions. In this case, the NIC 1226 is a smart NIC. It can contain a CPU and memory. The CPU performs address translation and data reading / writing operations. The memory temporarily stores data to be written to the hard disk or reads data from the hard disk to be sent to the controller. It can also be a programmable electronic component, such as a DPU. There is no hierarchical relationship between the NIC 1226 and the hard disks in the hard disk enclosure 122; the NIC 1226 can access any hard disk in the enclosure 122 (such as the mechanical hard disk 1221, solid-state drive 1222, tape drive 200, and other hard disks 1224 shown in Figure 1). Therefore, expanding the hard disks is more convenient when storage space is insufficient.

[0065] In this embodiment, the tape drive device 200 refers to a memory that includes a magnetic tape medium. In hardware implementation, the tape drive device may include, but is not limited to, a magnetic tape, a magnetic head, and a tape drive. The tape drive is used to reel in the magnetic tape, and the magnetic head is used to access the magnetic tape, such as writing data to or reading data from the tape. Specific implementations of the tape drive device can be found in the embodiments shown in Figures 2A to 9 below, and will not be repeated here.

[0066] Depending on the type of communication protocol between engine 121 and disk enclosure 122, disk enclosure 122 may be a serially attached small computer system interface (SAS) disk enclosure, an NVMe (Non-Volatile Memory Express) disk enclosure, or other types of disk enclosures. SAS disk enclosures use the SAS 3.0 protocol, and each enclosure supports 25 SAS disks. Engine 121 connects to disk enclosure 122 via an onboard SAS interface or a SAS interface module. NVMe disk enclosures function more like a complete computer system, with NVMe disks inserted into them. The NVMe disk enclosure then connects to engine 121 via an RDMA port. In some cases, engine 121 may also be referred to as a disk management device or storage controller.

[0067] In terms of hardware implementation, the hard disk enclosure 122 can be installed in the storage system, or the hard disk enclosure 122 can be encapsulated and set up independently. When the hard disk enclosure 122 exists independently, it can also be called a storage device or a storage system. This application does not limit this.

[0068] In one alternative implementation, storage device 120 is a centralized storage system integrating disk and controller. Storage device 120 does not have the aforementioned hard disk enclosure 122, and engine 121 is used to manage multiple hard drives connected via hard disk slots. The functionality of the hard disk slots can be implemented by backend interface 1214.

[0069] In some alternative implementations, storage device 120 is a distributed storage system. The distributed storage system includes a cluster of compute nodes and a cluster of storage nodes. The compute node cluster includes one or more compute nodes that can communicate with each other. Compute nodes can be servers, desktop computers, or controllers of storage arrays, etc. Hardware-wise, compute nodes can include processors, memory, and network interface cards (NICs), etc. The processor is a CPU used to process data access requests from outside the compute node or requests generated internally within the compute node. For example, when the processor receives a write data request from a user, it temporarily stores the data in the write data request in memory. When the total amount of data in memory reaches a certain threshold, the processor sends the data stored in memory to the storage node for persistent storage. In addition, the processor is also used for data computation or processing, such as metadata management, deduplication, data compression, virtualization of storage space, and address translation. In the embodiments provided in this application, the storage node can be a tape drive or other types of hard disks, etc. It is understood that the storage system described in the embodiments of this application can be a distributed storage system integrating storage and computing, or a distributed storage system separating storage and computing; this application does not limit this.

[0070] For example, a distributed storage system can be implemented using network attached storage (NAS) technology. NAS refers to a network storage architecture that provides storage resources through file-level data access and sharing over an Internet Protocol (IP) network. In a NAS scenario, the NAS is an external device for the server / host, used to provide file-level storage space for the server / host in the distributed storage system.

[0071] It is worth noting that the above examples are merely possible implementations of the data access system provided in this embodiment and should not be construed as limiting this application. For example, in the storage device 120 shown in FIG1, data is stored as files on various hard drives. The files stored on each hard drive constitute a file storage system, which may be a distributed file system, such as a network file system (NFS). NFS is both a distributed file system and a network protocol used for accessing and sharing files between devices on the same local area network. For example, a NAS system may be implemented with support for the NFS protocol. A network file system is a low-cost network file sharing option that allows users and applications to access, store, and update files on remote computers, just as with direct-attached storage. A network file system uses the Remote Procedure Call (RPC) protocol to route requests between clients and servers. Although participating devices need to support a network file system, they do not need to know the details of the network. It is worth noting that RPC can be insecure, therefore a network file system should only be deployed on trusted networks behind firewalls. Although Windows supports this protocol, it is primarily used in Linux environments.

[0072] Regarding the aforementioned tape drive device 200, this application provides an optional example, as shown in FIG2A, which is a schematic diagram of the structure of a tape drive device provided in this application. This tape drive device 200 can be used to implement the functions of the aforementioned tape drive device 200. In this document, the tape drive device may also be referred to as a tape media storage device, a tape all-in-one machine, an integrated tape disk, an integrated tape drive, or a magneto-electric disk, etc., and this application does not limit it to any particular term.

[0073] Please refer to Figure 2A. The tape drive device 200 includes: application 21, driver 22 and tape 210.

[0074] Application 21 refers to the application layer running in the tape drive device 200. Application 21 includes a software module or unit for providing external access functionality. This software module can provide a logical storage area with a management granularity that meets the access requirements of the data access device. This management granularity may include, but is not limited to, logical data areas, logical data segments, logical data blocks, or others. This logical storage area can be supported by the physical storage areas included in the tape 210, such as, but not limited to, data zones, data slices, or others. Application 21 is used to obtain data access requests or send access responses to the host, such as write responses or read responses.

[0075] Driver 22 refers to the device driver in the tape drive device 200. Driver 22 contains the hardware information of the magneto device 200, which enables the hardware in the tape drive device 200 to communicate with the application 21 (software), thereby enabling the application 21 to manage the tape 210. In this embodiment, after the application 21 triggers a read / write operation, the IO data stream is sent to the firmware corresponding to the tape 210 through driver 22. The firmware then issues instructions to control the motor to drive the tape 210 to perform linear addressing. After reaching the desired position, the read / write operation is achieved by the read / write head through the ADC / DAC channel for encoding and decoding.

[0076] The IO data stream, also known as the IO stream, includes multiple IO requests, which can be read IO requests (read requests) or write IO requests (write requests).

[0077] In the first possible example, the IO stream includes multiple IO requests from the same data access device, which can be a host, user equipment, server, or other type of device.

[0078] In the second possible example, the IO stream includes multiple IO requests from the same application.

[0079] For example, the application can be deployed on a single device, such as the data access device mentioned above.

[0080] For example, the application can be deployed on a distributed system, which includes multiple devices, each with a complete application deployed on it, or each device with a portion of the application's code deployed on it. Examples of such applications include, but are not limited to, artificial intelligence applications and distributed applications. For instance, a distributed application refers to an application distributed across different computers, working together over a network to complete a task.

[0081] In a third possible example, the IO stream includes multiple IO requests belonging to the same task. For example, the task could be a read task, a write task, or other data access task. This application does not limit the scope of the data access task to a single application or to multiple applications managed by a single data access interface.

[0082] The three possible examples above are merely optional methods of IO streams provided in the embodiments of this application. In the technical solutions provided in the embodiments of this application, multiple IO requests belonging to the same IO stream include data flowing from one storage location to another. The direction of the IO stream can be input (reading data) or output (writing data). When writing data to the tape drive device 200, the IO request in the IO stream is a write request; when reading data from the tape drive device 200, the IO request in the IO stream is a read request.

[0083] The tape drive device will be described below with reference to Figure 2B, which is a schematic diagram of the structure of a tape drive device provided in this application. In Figure 2B, the tape drive device 200 includes: a magnetic tape 210, a tape driver 220 and a magnetic head (not shown in Figure 2B), a reel 201, a roller 202 and a base 203.

[0084] The reel 201 and the base 203 are rotatably connected, and the magnetic tape 210 is wound onto the reel 201.

[0085] The structural relationship between the reel 201 and the magnetic tape 210 is illustrated below with reference to Figure 3, which is a schematic diagram of the structure of the reel 201 and the magnetic tape 210 provided in this application. Referring to Figure 3, the reel 201 includes a spool 2013, a first cover plate 2011, and a second cover plate 2012. The spool 2013 and the base 203 are rotatably connected. The magnetic tape 210 is located between the first cover plate 2011 and the second cover plate 2012. The first cover plate 2011 and the second cover plate 2012 can constrain the magnetic tape 210, preventing it from detaching from the spool 2013. During the rotation of the spool 2013, the first cover plate 2011 and the second cover plate 2012 rotate synchronously.

[0086] The first cover plate 2011 can be a circular plate structure as shown in Figure 3, and the second cover plate 2012 can be a circular plate structure as shown in Figure 3.

[0087] The embodiments of this application do not limit the shape of the first cover plate 2011 and the second cover plate 2012. For example, the first cover plate 2011 can be a circular, square, elliptical, or irregularly shaped plate. Similarly, the second cover plate 2012 can be a circular, square, elliptical, or irregularly shaped plate. The shape of the first cover plate 2011 can be the same as or different from the shape of the second cover plate 2012.

[0088] For example, the connection between the first cover plate 2011 and the roll 2013 can be achieved by welding, snap-fitting, or bonding. Similarly, the connection between the second cover plate 2012 and the roll 2013 can be achieved by welding, snap-fitting, or bonding.

[0089] Please refer back to Figure 2B. The tape drive device 200 includes two reels 201. The first end of the magnetic tape 210 is wound on one reel 201, and the last end of the magnetic tape 210 is wound on the other reel 201.

[0090] During the tape winding process of the magnetic tape 210, in order to prevent the magnetic head from tearing the magnetic tape 210, the roller 202 in the tape drive device 200 can be used to support the tape body of the magnetic tape 210, so that the friction between the magnetic tape 210 and the magnetic head is reduced during the winding process, which is beneficial to improving the service life of the magnetic tape 210.

[0091] As can be seen from the embodiments provided in Figures 2B and 3, the tape drive 220 is used to drive the tape 210 to rewind along the length of the tape 210. The magnetic head in the tape drive device 200 accesses the tape 210 during the rewinding process.

[0092] Regarding the specific implementation of the magnetic tape 210 described above, an exemplary description is provided below with reference to Figure 4, which is a schematic diagram of the structure of a magnetic tape drive device provided in this application. The magnetic tape drive device 200 includes: magnetic tape 210, magnetic tape driver 220, and magnetic head 230.

[0093] Please refer to Figure 4. The magnetic tape 210 includes a data area 1, a connection area 0, and a connection area 1. In this document, the data area 1 is also referred to as the first data area, the first data partition space (zone), or the logical data area, etc.; the connection area 1 is also referred to as the first connection area or the first turning area, etc.

[0094] If the magnetic tape 210 shown in Figure 4 is the head or tail of the magnetic tape, then the connection area 0 or connection area 1 can also serve as the fixed end of the magnetic tape 210 and be connected to the reel 2013 included in the aforementioned reel 201 through the connection area 0 or connection area 1.

[0095] Please refer to Figure 4. Data area 1 includes multiple data bands arranged along the width direction of magnetic tape 210. The multiple data bands included in data area 1 are merely examples provided in this embodiment (8 data bands), and should not be construed as limiting this application. Depending on the type of magnetic tape or the variation in the magnetic recording method of the magnetic head 230 on the magnetic tape 210 in the magnetic tape drive 200, the magnetic tape 210 may include more or fewer data bands, and this application does not limit this.

[0096] In the magnetic tape 210 shown in Figure 4, the aforementioned multiple data tapes include: data tape 1 and data tape 2 arranged along the width direction of the magnetic tape 210, wherein data tape 1 includes multiple first data slices arranged at intervals, such as data slice 1-1, data slice 1-2 and data slice 1-3.

[0097] In this embodiment, a data slice refers to a contiguous physical storage area within the magnetic tape 210. As shown in Figure 4, data slice 1-1 is a contiguous physical storage area within data tape 1. A data slice can be used to store a set of data, the size of which can be less than or equal to the storage capacity provided by the data slice. For example, the magnetic tape drive 200 can manage the data slice using a physical address or a logical address obtained by mapping a physical address.

[0098] In practical applications, the aforementioned data band 2 may also include multiple first data slices spaced at intervals, such as data slice 1-4, data slice 1-5, and data slice 1-6. In data area 1, the first data slice may also be simply referred to as data slice 1-i, where i = 1, 2, 3...

[0099] It is worth noting that "interval setting" refers to the existence of a gap or interval between two adjacent first data slices, such as a blank area or other data slices. For specific implementations of this gap being other data slices, please refer to the examples provided in Figures 5 to 7 below, which will not be repeated here.

[0100] In this embodiment, the data stored in two adjacent first data slices belong to a first IO stream. This first IO stream includes multiple IO requests; for example, two adjacent first data slices are used to store first data contained in a first IO request within the first IO stream, and another data slice is used to store second data contained in a second IO request within the first IO stream. The specific implementation of the IO stream can be referred to the description in Figure 2A above, and will not be repeated here.

[0101] For example, two adjacent first data slices in data band 1 refer to: data slice 1-1 and data slice 1-2, or data slice 1-2 and data slice 1-3.

[0102] In some optional scenarios, the logical addresses (LBAs) of the data stored in two adjacent first data slices are contiguous. In computers with address translation capabilities, the address (operand) given by an access instruction is called the logical address, also known as the relative address. In computer architecture, the logical address refers to the address of a memory cell, storage element, network host, or magnetic tape as seen from the application's perspective. The actual effective address on the magnetic tape, obtained through addressing calculations or transformations, is the physical address of the data on the tape, also called the data's disk address. This physical address indicates the actual storage location of the data on the tape.

[0103] The tape drive 200 stores logically consecutive data into data slices with interval settings, which can avoid tape rewinding delay caused by the tape drive 220 controlling the tape 210 to reverse. This helps to improve the access efficiency of the magnetic head 230 to the tape 210 in the tape drive 200 and reduce the IO latency of the tape drive 200.

[0104] In some alternative scenarios, the hash values ​​of the data stored in two adjacent first data slices are consecutive. For example, the hash value could be the result of hashing the data, or it could be the result of hashing the logical address of the data.

[0105] The above optional scenarios are merely optional methods provided by the embodiments of this application and should not be construed as limiting this application. In some other optional methods, the sequence numbers contained in the data stored in two adjacent first data slices are consecutive. These sequence numbers can be the send sequence number or receive sequence number in an IO request carrying the data, etc., and this application does not limit this. In still some optional implementation methods,

[0106] Regarding the logical address contiguousness of data stored in two adjacent first data slices, a feasible specific example is provided below: Assume the two adjacent first data slices are data slice 1-1 and data slice 1-2. Data slice 1-1 stores the first data (referred to as data 1), and data slice 1-2 stores the second data (referred to as data 2). The first data and the second data belong to two adjacent IO requests within the first IO stream. Here, an IO stream refers to a set of IO requests, which includes multiple IO requests. If the IO request is a write request, each write request can carry a copy of the data and its address information; if the IO request is a read request, each read request can carry the storage address of the requested data, etc.

[0107] The tape drive 200 stores logically consecutive data into data slices with interval settings, which can avoid tape rewinding delay caused by the tape drive 220 controlling the tape 210 to reverse. This helps to improve the access efficiency of the magnetic head 230 to the tape 210 in the tape drive 200 and reduce the IO latency of the tape drive 200.

[0108] Please refer to Figure 4. The tape driver 220 is used to drive the tape 210 to wind along the length of the tape 210. This application embodiment does not limit the type of tape driver 220.

[0109] For example, the tape drive 220 includes a tape reel motor and a VCM motor.

[0110] The tape reel motor is used to drive the magnetic tape 210 to wind along its length. For example, the tape reel motor can be used to drive a drum, causing the magnetic tape wound on the drum to rewind in a first direction, rewind in a second direction, or stop rewinding. The first direction and the second direction are two opposite directions along the length of the magnetic tape.

[0111] The VCM motor is used to drive the magnetic tape 210 to move along the width of the tape 210, so that the magnetic head 230 can access data tape 1 or data tape 2. The VCM is a direct drive motor. The working principle of the VCM is as follows: when an energized coil is placed in a magnetic field, it will generate a force. The magnitude of the force is proportional to the current applied to the coil. Based on this principle, the movement of the VCM is linear or circular.

[0112] Optionally, the tape drive 220 may also include a stepper motor for fine-tuning the winding position or speed of the tape 210 along its length. This stepper motor is a type of electric motor that converts electrical pulse signals into corresponding angular or linear displacements. For each input pulse signal, the rotor rotates by an angle or moves forward one step; the output angular or linear displacement is proportional to the number of input pulses, and the rotational speed is proportional to the pulse frequency. Therefore, a stepper motor is also called a pulse motor.

[0113] It is worth noting that the tape drive 220 described above are merely examples provided in the embodiments of this application and should not be construed as limiting the application. The tape drive 220 may also include devices such as linear motors, hydraulic cylinders, or pneumatic cylinders, which are not limited in this application.

[0114] Referring to Figure 4, the magnetic head 230 is used to continuously access two adjacent first data slices, such as data slice 1-1 and data slice 1-2, within the first data area (data area 1) of the magnetic tape 210 during the tape rewinding process. For example, "continuous access" means that the magnetic head 230 does not read or write to other tape areas between these two adjacent first data slices while accessing them. For instance, during the access of data slice 1-1 and data slice 1-2, the magnetic head 230 does not read or write to the tape area between data slice 1-1 and data slice 1-2, but the tape drive 220 drives the magnetic tape 210 through the tape area between data slice 1-1 and data slice 1-2 at a relatively stable speed.

[0115] The magnetic head 230 may include one or both of a write head and a read head. The write head records data by magnetizing and changing the magnetic field of the magnetic medium (such as magnetic powder), while the read head reads data on the magnetic medium by sensing the magnetic field of the magnetic medium.

[0116] In some alternative configurations, the magnetic head 230 may also include a servo head, which may be divided into a write servo head and a read servo head. Taking the read servo head as an example, the read servo head can determine the position information of the tape 210 based on the address in the IO request, and the tape driver 220 can rewind the tape 210 from its current position to the tape area indicated by the position information, thereby allowing the read data head to read the data stored in the tape area indicated by the position information.

[0117] As can be seen from the embodiments in Figures 2A to 4 above, in the tape drive device provided in this application embodiment, the data area in the tape is divided into multiple data slices. These multiple data slices are spaced apart, and adjacent data slices are used to store data with consecutive logical addresses. During the tape rewinding process driven by the tape drive, there is no need to consider the issue of rewinding the tape in reverse. The tape drive can rewind the tape at a relatively stable speed, and the read / write head can continuously access the spaced data slices in the tape during the rewinding process. The tape does not need to be frequently reversed, reducing the IO latency of the tape drive device and improving the access efficiency of the tape drive device.

[0118] As can be seen from the embodiment in Figure 4 above, since the logical addresses of the data stored in two adjacent data slices are continuous, the data stored in the tape can be managed using continuous logical addresses, avoiding the problem of data distribution disorder caused by the intermittent distribution of data slices in the tape, which is beneficial for managing the different data slices included in the tape drive.

[0119] The following description, in conjunction with the accompanying drawings, provides a detailed exemplary illustration of the specific implementation of the magnetic tape 210 in the magnetic tape drive device 200 provided in the above embodiments. As shown in Figure 5, Figure 5 is a schematic diagram of the structure of a magnetic tape provided in this application. The specific descriptions of the data area 1, connection area 0, and connection area 1 in the magnetic tape 210 can be found in Figure 4 above, and will not be repeated here.

[0120] Please refer to Figure 5. Data area 1 in magnetic tape 210 also includes a second data slice, such as data slice 2-j (j = 1, 2, 3...).

[0121] A second data slice is located between two adjacent first data slices. For example, if the second data slice is data slice 2-1, then data slice 2-1 is located between adjacent data slice 1-1 and data slice 1-2.

[0122] It is worth noting that the data stored in the second data slice mentioned above belongs to a different IO stream than the data stored in the first data slice. For example, the data stored in each first data slice comes from the first IO stream, and the data stored in each second data slice comes from the third IO stream. The first IO stream and the third IO stream may come from different hosts, different applications, or different services on the same host, etc. This application does not limit this.

[0123] In the tape 210 shown in Figure 5, the slice size of the second data slice is the same as the slice size of the gap between two adjacent first data slices. For example, there are only two different data slices of the same slice size in data area 1, as shown in the first data slice and the second data slice in Figure 5. The way to distinguish these two data slices is that the two data slices are used to store data from different IO streams.

[0124] Figure 5 above is only one optional embodiment of the structure of the magnetic tape 210 provided in this application, and should not be construed as a limitation of this application. In another optional implementation, the slice size of the second data slice is smaller than the slice size of the gap between two adjacent first data slices. As shown in Figure 6, which is a second schematic diagram of the structure of a magnetic tape provided in this application, the data slice 2-1 in the magnetic tape 210 is smaller than the slice size of any first data slice (data slice 1-i, i = 1, 2, 3...).

[0125] In this embodiment, the slice size of a data slice can also be used to indicate the storage capacity of the data slice. When measuring the slice size of a data slice, if the magnetic medium is uniformly distributed in all areas of the magnetic tape, the slice size can refer to the length of the data slice along the length direction of the magnetic tape, given the width of the data tape.

[0126] Regarding the process of determining the slice size of the first and second data slices, based on Figures 4 and 6, a feasible implementation method is provided below, as shown in Figure 7. Figure 7 is a schematic diagram of the structure of a magnetic tape drive device provided in this application. The difference between Figure 7 and Figure 4 is that the magnetic tape drive device 200 in Figure 7 includes a controller 240, which is electrically connected to the magnetic head 230 and the magnetic tape driver 220.

[0127] For example, the controller 240 includes at least a processor and memory. The processor is a CPU used to process I / O requests from outside the tape drive device 200 (such as a host, server, or other storage system), and also to process requests generated internally by the tape drive device 200. For example, when the processor receives a write I / O request, it temporarily stores the data in these write I / O requests in memory. When the total amount of data in memory reaches a certain threshold, the processor writes the data stored in memory to the tape 210 for persistent storage.

[0128] For example, controller 240 is used to receive a first IO request and a second IO request, where the first IO request carries first data and the second IO request carries second data. The first IO request and the second IO request can be IO requests belonging to the same IO stream. In Figure 7, one of two adjacent first data slices is used to store the first data and the other first data slice is used to store the second data. For example, data slice 1-1 is used to store the first data (data 1) and data slice 1-2 is used to store the second data (data 2).

[0129] When the magnetic head 230 in the magnetic tape drive device 200 writes data to the magnetic tape 210, in order to ensure the accuracy of the data, the read head in the magnetic head 230 reads the data that has been written to the magnetic tape 210, and the controller 240 verifies the data written by the magnetic head 230 to the data area 1.

[0130] Depending on the performance of the controller 240, the time required for the controller 240 to verify the data varies.

[0131] In an optional scenario, the slice size of the second data slice is determined based on any one or a combination of the following: the IO interval between the first IO request and the second IO request received by the controller 240, the read / write speed of the magnetic head 230 on the magnetic tape 210, and the verification time of the controller 240 for a unit capacity of data.

[0132] In the first alternative example, the size of the second data slice is determined based on the I / O interval between the first and second I / O requests received by the controller and the read / write speed of the magnetic head on the tape.

[0133] For example, the slice size (or slice capacity) of a data slice = I / O interval × tape read / write rate, where the tape read / write rate is the speed at which the magnetic head reads and writes to the magnetic tape. The I / O interval is in units of time, such as seconds, milliseconds, microseconds, or others; the tape read / write rate is in kB / s, MB / s, or others.

[0134] In the second alternative example, the slice size of the second data slice is determined based on the read / write speed of the magnetic head on the magnetic tape and the time taken by the controller to verify the data per unit capacity.

[0135] Data verification methods may include, but are not limited to, cyclic redundancy check (CRC) or error checking and correcting (ECC). CRC is a hash function that generates a short, fixed-length checksum based on data packets or computer files. It is primarily used to detect or verify errors that may occur during data transmission or storage. The generated number is calculated before transmission or storage and appended to the data, which the receiver then checks to determine if the data has been altered. ECC stores an encrypted code in extra bits on the data. When data is written to the memory of controller 240, the corresponding ECC code is simultaneously saved. When controller 240 rereads the previously stored data, the saved ECC code is compared with the ECC code generated during data reading. If the two codes are different, the ECC code is decoded to determine which bit in the data is incorrect; this erroneous bit is then discarded, and the controller releases the correct data. Further details on CRC and ECC can be found in the general technical descriptions and will not be elaborated upon here.

[0136] The following example, using ECC as the data verification method for controller 240, illustrates how the size of the second data slice is determined: Second data slice size (or slice capacity) = ECC verification time per unit capacity × tape read / write rate. The tape read / write rate is the speed at which the magnetic head reads and writes to the magnetic tape. The unit for ECC verification time per unit capacity in the IO interval is time, such as seconds, milliseconds, microseconds, or others; the tape read / write rate is kB / s, MB / s, or others.

[0137] Considering the performance difference between the controller 240 and the magnetic head 230, in order to correct this difference and further improve the utilization rate of tape space in the magnetic tape 210, the following feasible method is provided for the slice size of the data slice in combination with a weighting coefficient: Slice size (or slice capacity) of the second data slice = ECC check time per unit capacity × tape read / write rate × N, where N is a weighting coefficient. This weighting coefficient is a correction value between the performance of the controller 240 and the magnetic head 230. This correction value can also be called a negotiated value determined by the controller 240 and the magnetic head 230 through cross-arrangement of data slices. The value of N can be determined by the user based on the performance difference between the controller 240 and the magnetic head 230, or it can be a value generated after the controller 240 performs multiple reads and writes to the magnetic head 230. This application does not limit this.

[0138] It is worth noting that, depending on the magnetic recording method used by the magnetic head 230 to write data into the magnetic tape 210, the access methods for different data tapes in the same data area are different. The following uses conventional magnetic recording (CMR) and shingled magnetic recording (SMR) as examples to illustrate the access methods of the magnetic head 230 in a single data area.

[0139] In the first feasible access method, the magnetic head 230 accesses the magnetic tape 210 using the SMR method. Please refer to Figure 8A, which is a schematic diagram of the access of the serpentine slide rail in the magnetic tape provided in this application. The specific implementation of the magnetic tape 210 can be referred to the description of the foregoing embodiments, and will not be repeated here.

[0140] In SMR scenarios, because the write head in head 230 is wider than the read head, writing data across a data band (or WRAP) will overwrite the data on adjacent tracks (data bands), generally requiring appending. Referring to Figure 8A, head 230 uses a serpentine sliding path to write data onto tape 210. If adjacent data bands 1 and 2 are considered as a set of interleaved read / write areas, head 230 writes the data of the first IO stream to multiple spaced first data slices using the serpentine sliding path (track) shown in Figure 8A, and then uses the same serpentine sliding path to write the data of the second IO stream to multiple spaced second data slices. The slice sizes of the first and second data slices can be referred to the description in the preceding embodiments, and will not be repeated here.

[0141] In the second feasible access method, the magnetic head 230 accesses the magnetic tape 210 using the CMR method. Please refer to Figure 8B. Figure 8B is a schematic diagram of accessing the annular slide rail in the magnetic tape provided in this application. The specific implementation of the magnetic tape 210 can be referred to the description of the foregoing embodiments, and will not be repeated here.

[0142] In the CMR scenario, there is one or more data tapes between data tape 1 and data tape 2 in magnetic tape 210, and magnetic head 230 accesses data area 1 in magnetic tape 210 in a circular sliding trajectory (slide rail).

[0143] The access process in tape drive device 200 includes the following operation steps ① to ③.

[0144] ① Divide data area 1 into N regions with the same slice size. In this embodiment, the division is carried out according to N=2. The first data slice and the second data slice are used to represent the different tape regions after the division.

[0145] ② The slice size of the first data slice and the second data slice is set according to the IO characteristics of different IO streams. For details, please refer to the embodiment shown in Figure 7, which will not be repeated here.

[0146] ③ During the access process, the tape drive 220 drives the tape 210, causing the tape 210 to pass through multiple circular slides at a relatively stable speed, and the magnetic head 230 accesses the tape 210 while the tape 210 is being rewound.

[0147] Please refer to Figure 8C, which is a schematic diagram of the access to the circular slide rail in the magnetic tape provided in this application. The process of the magnetic head 230 accessing the magnetic tape 210 to write data of different IO streams to data tape 1 and data tape 2 includes (1) to (6) shown in Figure 8C.

[0148] In Figure 8C (1), the magnetic head 230 begins to read and write data in the first data band (data band 1) in the data area 1.

[0149] In Figure 8C (2), the magnetic head 230 writes or reads data in the first data slice (data slice 1-1) in the data area 1.

[0150] In Figure 8C (3), after the magnetic head 230 finishes reading and writing the first data slice of the first data tape (data tape 1) in the data area 1, it is controlled by the tape driver 220 in the connection area 1 to make the tape 210 reverse roll for the first time, and the magnetic head writes or reads data in the first data slice (data slice 1-4) in the second data tape (data tape 2).

[0151] In Figure 8C (4), after the magnetic head 230 finishes reading and writing the first data slice of the second data band (data band 2) in the data area 1, it is controlled by the tape drive 220 in the connection area 0 to make the tape 210 reverse roll for the second time.

[0152] In Figure 8C (5), the magnetic head 230 starts the second round of reading and writing data in the first data band (data band 1) in the data area 1, and writes or reads data in the second data slice (data slice 2-1 to data slice 2-3) in the data area 1.

[0153] In Figure 8C (6), after the magnetic head 230 finishes reading and writing the second data slice of the first data tape (data tape 1) in the data area 1, it is controlled by the tape driver 220 in the connection area 1 to make the tape 210 reverse roll for the third time, and the magnetic head writes or reads data in the second data slice (data slice 2-4 to data slice 2-6) in the second data tape (data tape 2).

[0154] As shown in (1) to (6) of Figure 8C, during the reading and writing process of data tape 1 and data tape 2 in magnetic tape 210, the magnetic tape driver 220 controls the magnetic tape 210 to turn around three times. Compared with the usual technology where the magnetic head needs to control the magnetic tape to turn around for each data slice (i.e., at least 11 turns), this solves the problem of frequent magnetic tape turning around, helps to reduce reading and writing latency and increase the lifespan of the magnetic head and the magnetic tape. It also solves the problem that the magnetic head flies over the target magnetic tape area due to inertia, resulting in the presence of voids in the tape body and low utilization of the tape body space.

[0155] Figures 4 to 8C above illustrate the example of two adjacent first data slices with only a second data slice between them. However, in some optional implementations, there may be other data slices between two adjacent first data slices, which is not limited in this application.

[0156] Furthermore, Figures 4 to 8C above illustrate one data area of ​​the magnetic tape 210 as an example. The magnetic tape 210 may also include other data areas, as shown in Figure 9, which is a schematic diagram of the structure of a magnetic tape provided in this application. The magnetic tape 210 also includes a data area 2 and a connection area 2. The data area 2 is also called the second data area, and the connection area 2 is also called the second connection area.

[0157] Along the length of the magnetic tape 210, one side of the first connection area (connection area 1) is connected to data area 1, and the other side of the first connection area (connection area 1) is connected to data area 2.

[0158] Data area 2 includes: multiple third data slices (such as data slices 3-1 to 3-6) and fourth data slices (such as data slices 4-1 to 4-6) arranged along the length of magnetic tape 210.

[0159] In this context, the data stored in two adjacent third data slices belongs to the second I / O stream. The specific implementation of the second I / O stream can be found in Figure 2A above, and will not be repeated here. For example, the logical addresses of the data stored in two adjacent third data slices are contiguous.

[0160] In this embodiment, the data stored in the fourth data slice (data slice 4-m, m = 1, 2, 3...) and the data stored in the third data slice (data slice 3-k, k = 1, 2, 3...) belong to different IO streams. For details, please refer to the contents of the first and second data slices mentioned above, which will not be repeated here.

[0161] In the magnetic tape 210 shown in Figure 9, the data slices set in data zone 1 and data zone 2 are different. However, in some optional implementations, different data zones can also use the same slice division method, such as the slice size of the first data slice being the same as the slice size of the third data slice. The division method of data slices within each data zone in a magnetic tape can be determined according to the storage services performed by the tape drive device 200, and this application does not limit it in this regard.

[0162] In other words, the tape in a tape drive can be divided into different data areas. These different data areas can be managed with the same slice size or with different slice sizes based on the characteristics of the IO stream (such as the IO interval between adjacent IO requests, the data length in a single IO request, etc.). This improves the utilization of tape space and also solves the limitation of supporting different types of IO within a single tape drive.

[0163] Optionally, the tape drive device 200 may also include sensors and a security module. The sensors can be used to determine the relative position between the tape and the magnetic head, and the security module is used to encrypt the data stored in the tape drive device 200, etc. The sensors and the security module may also be electrically connected to the controller via a management bus, which is not limited in this application.

[0164] This application also provides a storage system. The storage system includes a communication interface, a storage controller, and a tape drive device as provided in any of the foregoing embodiments. The tape drive device is used to store data, the communication interface is used to receive data access requests, and the storage controller is used to manage target tape drive devices in the storage system according to data access requests. The storage system may be, for example, a tape library, or a computer / server that includes tape drive devices as persistent storage media, such as the storage device 120 or hard disk enclosure 122 provided in FIG1.

[0165] The storage controller includes one or more processors, which can be a very large-scale integrated circuit. The processor contains an operating system and other software programs, enabling it to access tape drives and various PCIe devices. The processor includes one or more processor cores. These cores can be, for example, a central processing unit (CPU) or other ASICs. The processor can also be other general-purpose processors, DSPs, ASICs, FPGAs, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. In practical applications, the storage system may also include multiple controllers.

[0166] Optionally, the storage system may also include, but is not limited to, other storage media: dynamic random access memory (DRAM), static random access memory (SRAM), etc., for caching data from the tape drive for processor processing. Additionally, other storage media may be read-only memory (ROM). For example, read-only memory may be programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), etc. This embodiment does not limit the number or type of other storage media. Furthermore, other storage media can be configured to have power-saving functionality. Power-saving functionality means that when the system experiences a power outage and is then powered on again, the data stored in the memory will not be lost. Storage media with power-saving functionality are called non-volatile memory.

[0167] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Various equivalent modifications or substitutions can be conceived within the technical scope disclosed in this application, and these modifications or substitutions should all be covered within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A magnetic tape drive device, characterized in that, include: The magnetic tape includes a first data area, which includes a plurality of first data slices spaced apart, wherein at least two adjacent first data slices store data belonging to a first IO stream; A magnetic tape driver for driving the magnetic tape to be wound along the length of the magnetic tape; A magnetic head for continuously accessing two adjacent first data slices during the tape rewinding process.

2. The magnetic tape drive device according to claim 1, characterized in that, The logical addresses of the data stored in the two adjacent first data slices are consecutive.

3. The magnetic tape drive device according to claim 1 or 2, characterized in that, The first data area also includes a second data slice, which is located between two adjacent first data slices. The data stored in the second data slice belongs to a different IO stream than the data stored in the first data slice.

4. The magnetic tape drive device according to claim 3, characterized in that, The slice size of the second data slice is less than or equal to the slice size of the gap between two adjacent first data slices.

5. The magnetic tape drive device according to claim 3 or 4, characterized in that, Also includes: The controller is used to verify the data written by the magnetic head to the first data area; the slice size of the second data slice is determined according to any one or a combination of the following: the IO interval between the controller receiving the first IO request and the second IO request, the read / write speed of the magnetic head on the magnetic tape, and the verification time of the controller for a unit capacity of data.

6. The magnetic tape drive device according to any one of claims 1-5, characterized in that, The magnetic tape also includes: The second data area includes: a plurality of third data slices arranged along the length direction of the magnetic tape, wherein the data stored in two adjacent third data slices belongs to the second IO stream; The second data area also includes a fourth data slice, the data stored in the fourth data slice belonging to a different IO stream than the data stored in the third data slice.

7. The magnetic tape drive device according to claim 6, characterized in that, The slice size of the first data slice is the same as the slice size of the third data slice.

8. The magnetic tape drive device according to claim 6 or 7, characterized in that, The magnetic tape also includes a first connection area, with one side of the first connection area connected to the first data area and the other side of the first connection area connected to the second data area along the length of the magnetic tape.

9. The magnetic tape drive device according to any one of claims 1-8, characterized in that, The first data area includes a plurality of data strips arranged along the width direction of the magnetic tape, the plurality of data strips including: a first data strip and a second data strip arranged along the width direction of the magnetic tape, the first data strip including the two adjacent first data slices; The magnetic tape drive includes: A tape winding motor is used to drive the magnetic tape to wind along the length of the magnetic tape. A voice coil motor (VCM) is used to drive the magnetic tape to move along the width of the magnetic tape, so that the magnetic head accesses the first data tape or the second data tape.

10. The magnetic tape drive device according to claim 9, characterized in that, The first data band is adjacent to the second data band, or there is at least one data band between the first data band and the second data band.

11. A storage system, characterized in that, include: A storage controller, one or more tape drive devices according to any one of claims 1-10, wherein the storage controller manages the tape drive device based on a data access request.

12. A magnetic tape, characterized in that, include: The first data area is divided into multiple first data slices at intervals, and two adjacent first data slices are used to store the data of the first IO stream.

13. The magnetic tape according to claim 12, characterized in that, The first data area is further provided with a second data slice, which is located between two adjacent first data slices. The data stored in the second data slice belongs to a different IO stream than the data stored in the first data slice.

14. The magnetic tape according to claim 12 or 13, characterized in that, Also includes: The second data area includes multiple third and fourth data slices arranged along the length of the magnetic tape. The data stored in two adjacent third data slices belongs to the second I / O stream. The size of the fourth data slice is less than or equal to the size of the gap between two adjacent third data slices. The data stored in the fourth data slice belongs to a different I / O stream than the data stored in the third data slices.

Citation Information

Patent Citations

  • Tape cartridge, information acquisition method and storage medium

    CN115731961A

  • Encoded data along tape based on colorspace schemes

    US10833852B1

  • Adjacent track readers

    US20070217078A1

  • Flexible-capacity scaling for efficient access of ordered data stored on magnetic tape media

    US5757571A