WO2024045545A1 - 一种域地址变更方法、装置、设备及可读存储介质 - Google Patents

一种域地址变更方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
WO2024045545A1
WO2024045545A1 PCT/CN2023/080872 CN2023080872W WO2024045545A1 WO 2024045545 A1 WO2024045545 A1 WO 2024045545A1 CN 2023080872 W CN2023080872 W CN 2023080872W WO 2024045545 A1 WO2024045545 A1 WO 2024045545A1
Authority
WO
WIPO (PCT)
Prior art keywords
domain
address
changed
raid
raid stripe
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2023/080872
Other languages
English (en)
French (fr)
Inventor
朱红玉
贺坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Publication of WO2024045545A1 publication Critical patent/WO2024045545A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • the present application relates to the field of storage technology, and in particular, to a domain address changing method, device, equipment and readable storage medium.
  • the four-control storage system is currently the mainstream controller architecture for unified storage.
  • the four-control system uses four controllers for separate backups to achieve the performance superposition of the four controllers.
  • it can be easily expanded to an eight-control storage system or reduced to a dual-control storage system based on demand.
  • the four-control system divides the address space into four domains, and the space is isolated to avoid information crossover between domains.
  • the domain division of space is performed by the user layer.
  • the virtual space structure ensures independent controller access to the domain.
  • the scheme of domain division space eliminates access to address space outside the domain, avoids resource preemption problems, and improves storage system performance.
  • RAID Redundant Arrays of Independent Disks
  • RAID using a four-control system follows the four-domain division rule, and the RAID internal address space is divided into four domains accordingly. Since these four domains must be consistent with the domain division of the four-control system, RAID needs to query the domains corresponding to the address space in real time when running.
  • the RAID address space is usually managed in units of stripes, and RAID internally implements correspondence between domains and stripes to implement address space conversion.
  • this application provides a method for changing a domain address, including:
  • the cache layer includes: domain cache pool and domain calculation module.
  • the domain cache pool includes: domain structure linked list.
  • the domain structure linked list is composed of domain structure. Concatenated, the domain structure includes: RAID stripe number, domain address information corresponding to the RAID stripe number, and the number of references used to represent the domain structure being acquired or released; and
  • obtaining domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer includes:
  • domain address information corresponding to the RAID stripe number is returned.
  • querying the domain cache pool for the RAID stripe number of the address to be changed includes:
  • calculating the hash node number corresponding to the RAID stripe number of the address to be changed includes:
  • H represents the hash node number
  • N represents the RAID stripe number of the address to be changed
  • L represents the hash table length
  • domain address information corresponding to the RAID stripe number of the address to be changed is obtained through domain calculation.
  • the domain address information corresponding to the RAID stripe number of the address to be changed through domain calculation it also includes:
  • the domain address information corresponding to the RAID stripe number of the address to be changed information establish the corresponding new domain structure
  • caching the newly created domain structure into the domain cache pool includes:
  • caching the newly created domain structure into the domain cache pool also includes:
  • updating the RAID domain address information of the address to be changed includes:
  • the stripe number array includes the RAID stripe numbers of the address to be changed in sequence;
  • initiating a change task to update the original domain address corresponding to the RAID stripe number of the address to be changed in the stripe number array to a new domain address includes:
  • the callback function in response to the result of determining whether the number of references is greater than zero, monitoring the RAID stripe number whose number of references is greater than zero in the array of stripe numbers, in response to the number of references corresponding to the RAID stripe number becoming Zero, the callback function is called to indicate the number of RAID strip numbers with a non-zero reference count;
  • the original domain address is immediately updated with the new domain address, completing the domain address change method.
  • calling the callback function to indicate the number of RAID strip numbers with a non-zero reference count includes:
  • the number of RAID stripe numbers with non-zero reference times is reduced by one to determine the current number of RAID stripe numbers with non-zero reference times.
  • this application provides a domain address changing device, including: a strip calculation module, and a domain address acquisition module. Module, domain address update module;
  • the stripe calculation module is used to respond to the domain address change request and calculate the RAID stripe number corresponding to the address to be changed in the address space based on the RAID stripe length;
  • the domain address acquisition module is used to obtain the domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer.
  • the cache layer includes: a domain cache pool and a domain calculation module.
  • the domain cache pool includes: a domain structure linked list. , the domain structure linked list is formed by cascading domain structures.
  • the domain structure includes: RAID stripe number, domain address information corresponding to the RAID stripe number, and the number of references used to represent the domain structure being acquired or released; and
  • the domain address update module is used to update the domain address information of the address to be changed.
  • the present application provides a computer device, including one or more memories, one or more processors, and a computer-readable program stored on the one or more memories and capable of running on the one or more processors. Instructions. When the one or more processors execute the computer-readable instructions, the steps of the method described in the first aspect are implemented.
  • the present application provides a non-volatile computer-readable storage medium on which computer-readable instructions are stored.
  • the computer-readable instructions are executed by one or more processors, the method described in the first aspect is implemented. A step of.
  • Figure 1 is a schematic diagram of a domain address changing method provided in one or more embodiments of the present application.
  • Figure 2 is a schematic diagram of obtaining a domain address from a RAID address space provided in one or more embodiments of the present application;
  • Figure 3 is a schematic diagram of a RAID address space obtaining a domain address provided in one or more embodiments of the present application;
  • Figure 4 is a schematic diagram of a domain cache pool provided in one or more embodiments of the present application.
  • Figure 5 is a schematic structural diagram of a domain cache pool provided in one or more embodiments of the present application.
  • Figure 6 is a schematic diagram of an LRU chain update method provided in one or more embodiments of the present application.
  • Figure 7 is a schematic diagram of a domain address changing device provided in one or more embodiments of the present application.
  • Figure 8 is an internal structure diagram of a computer device provided in one or more embodiments of the present application.
  • Words such as “connected” or “connected” are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "Up”, “down”, “left”, “right”, etc. are only used to express relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
  • Embodiments of the present application disclose a domain address change method, device, equipment and readable storage medium, which ensures the domain change environment without suspending all RAID services and improves the overall performance of RAID during the domain change process.
  • a domain address changing method includes:
  • Step S1 When obtaining a domain address change request, calculate the RAID stripe number corresponding to the address to be changed in the address space based on the RAID stripe length.
  • Step S2 Obtain domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer.
  • the cache layer includes: domain cache pool and domain computing module.
  • the domain cache pool includes: domain structure linked list.
  • the domain structure linked list is formed by cascading domain structures.
  • the domain structure includes: RAID stripe number, which corresponds to the RAID stripe number. Domain address information, and the number of references used to represent the domain structure being acquired or released.
  • Step S3 Update the domain address information of the address to be changed.
  • step S2 Obtain domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer.
  • the domain address is obtained by requesting the domain address from the domain calculation module, and then having the domain calculation module return the domain address.
  • the domain calculation module repeats calculations, which increases IO latency and therefore reduces the overall RAID performance.
  • the cache layer includes: domain cache pool and domain computing module.
  • the domain cache pool is used to cache commonly used domain addresses (as shown in Figure 4), so that when the RAID address space maps domain addresses to the logical layer, the common domain address query function is provided to shorten the calculation time of commonly used domain addresses.
  • the domain address is calculated through the domain calculation module.
  • the structure includes a domain structure concatenated by hash nodes and a domain structure concatenated by LRU chains (Least Recently Used, least recently used), as shown in Figure 5.
  • Step S21 Query the RAID stripe number of the address to be changed in the domain cache pool.
  • Step S211 Calculate the hash node number corresponding to the RAID stripe number of the address to be changed
  • H represents the hash node number
  • N represents the RAID stripe number of the address to be changed
  • L represents the hash table length
  • Step S212 Poll the RAID stripe number in the domain structure that is concatenated with the hash node number, and compare it with the RAID stripe number of the address to be changed.
  • step S22 return the domain address information corresponding to the RAID stripe number
  • step S22' is executed: obtain the domain address information corresponding to the RAID stripe number of the address to be changed through domain calculation.
  • domain address information corresponding to the RAID stripe number of the address to be changed through domain calculation it also includes:
  • Step S23′ Establish a corresponding new domain structure according to the RAID stripe number of the address to be changed and the domain address information corresponding to the RAID stripe number of the address to be changed;
  • Step S24′ Cache the newly created domain structure into the domain cache pool.
  • step S241′ delete a domain structure at the end of the domain structure linked list
  • Step S242' Translate the entire domain structure linked list with the tail domain structure deleted to the tail of the domain structure linked list by one domain structure unit;
  • Step S243′ Add the newly created domain structure to the head of the domain structure linked list.
  • the original domain structure linked list includes: domain structure 1, domain structure 2,..., domain structure N.
  • step S241′′ shift the entire domain structure linked list to the end of the domain structure linked list by one domain structure unit;
  • Step S242′′ Add the newly created domain structure to the head of the domain structure linked list.
  • Step S3 Update the domain address information of the address to be changed.
  • Step S31 Obtain the stripe number array of the address to be changed.
  • the stripe number array includes the RAID stripe numbers of the address to be changed in sequence;
  • Step S32 Start the change task, and update the original domain address corresponding to the RAID stripe number of the address to be changed in the stripe number array to the new domain address;
  • Step S321 Obtain the number of RAID strip numbers with non-zero reference times in the strip number array
  • Step S322 Determine whether the number of citations is greater than zero
  • step S323 Immediately update the original domain address with the new domain address to complete the domain address change method
  • step S323′ Monitor the RAID stripe numbers whose reference count is greater than zero in the stripe number array. When the reference count corresponding to a RAID stripe number becomes zero, call a callback function to indicate that the reference count is not zero.
  • Step S324' When the number of RAID strip numbers with non-zero reference times is zero, immediately update the original domain address with the new domain address, completing the domain address change method;
  • the number of RAID stripe numbers with non-zero reference times is reduced by one to determine the current number of RAID stripe numbers with non-zero reference times.
  • the above-mentioned domain address changing method can be executed by burning firmware into a RAID board, or it can also be executed under a LINUX system, which is not limited by this application.
  • a domain address changing device includes: a strip calculation module, a domain address acquisition module, and a domain address update module;
  • the stripe calculation module is used to calculate the RAID stripe number corresponding to the address to be changed in the address space based on the RAID stripe length when obtaining a domain address change request;
  • the domain address acquisition module is used to obtain the domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer.
  • the cache layer includes: a domain cache pool and a domain calculation module.
  • the domain cache pool includes: a domain structure linked list. , the domain structure linked list is formed by cascading domain structures.
  • the domain structure includes: RAID stripe number, domain address information corresponding to the RAID stripe number, and the number of references used to represent the domain structure being acquired or released;
  • the domain address update module is used to update the domain address information of the address to be changed.
  • a computer device including one or more memories, one or more processors, and a computer programmable device stored on the one or more memories and operable on the one or more processors. Read instructions. When one or more processors execute computer readable instructions, the steps of the method recorded in the first aspect are implemented.
  • the computer device includes a processor, memory, network interface, and database connected through a system bus. Wherein, the processor of the computer device is used to provide computing and control capabilities.
  • the memory of the computer device includes non-volatile storage media and internal memory. The non-volatile storage medium stores operating systems, computer programs and databases.
  • This internal memory provides an environment for the execution of operating systems and computer programs in non-volatile storage media.
  • the database of the computer device is used to store data such as domain address information. For specific data stored, please refer to the limitations in the above method embodiments.
  • the network interface of the computer device is used to communicate with external terminals through a network connection.
  • the computer program implements a domain address changing method when executed by the processor.
  • Figure 8 is only a block diagram of a partial structure related to the solution of the present application, and does not constitute a limitation on the computer equipment to which the solution of the present application is applied.
  • Specific computer equipment can May include more or fewer parts than shown, or combine certain parts, or have a different arrangement of parts.
  • a non-volatile computer-readable storage medium has computer-readable instructions stored thereon.
  • the steps of the method recorded in the first aspect are implemented. .
  • Step S1 When obtaining a domain address change request, calculate the RAID stripe number corresponding to the address to be changed in the address space based on the RAID stripe length.
  • Step S2 Obtain domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer.
  • the cache layer includes: domain cache pool and domain computing module.
  • the domain cache pool includes: domain structure linked list.
  • the domain structure linked list is formed by cascading domain structures.
  • the domain structure includes: RAID stripe number, which corresponds to the RAID stripe number. Domain address information, and the number of references used to represent the domain structure being acquired or released.
  • Step S3 Update the domain address information of the address to be changed.
  • step S2 Obtain domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer.
  • the domain address is obtained by requesting the domain address from the domain calculation module, and then the domain calculation module returns the domain address. .
  • the domain calculation module repeats calculations, which increases IO latency and therefore reduces the overall RAID performance.
  • This application adds a cache layer between the RAID address space and the logical layer, as shown in Figure 3.
  • the cache layer includes: domain cache pool and domain computing module.
  • the domain cache pool is used to cache commonly used domain addresses (as shown in Figure 4), so that when the RAID address space maps domain addresses to the logical layer, the common domain address query function is provided to shorten the calculation time of commonly used domain addresses.
  • the domain address is calculated through the domain calculation module.
  • the structure includes a domain structure concatenated by hash nodes and a domain structure concatenated by LRU chains (Least Recently Used, least recently used), as shown in Figure 5.
  • Step S21 Query the RAID stripe number of the address to be changed in the domain cache pool.
  • Step S211 Calculate the hash node number corresponding to the RAID stripe number of the address to be changed
  • H represents the hash node number
  • N represents the RAID stripe number of the address to be changed
  • L represents the hash table length
  • Step S212 Poll the RAID stripe number in the domain structure that is concatenated with the hash node number, and compare it with the RAID stripe number of the address to be changed.
  • step S22 return the domain address information corresponding to the RAID stripe number
  • step S22' obtain domain address information corresponding to the RAID stripe number of the address to be changed through domain calculation.
  • domain address information corresponding to the RAID stripe number of the address to be changed through domain calculation it also includes:
  • Step S23′ Establish a corresponding new domain structure according to the RAID stripe number of the address to be changed and the domain address information corresponding to the RAID stripe number of the address to be changed;
  • Step S24′ Cache the newly created domain structure into the domain cache pool.
  • step S241′ delete a domain structure at the end of the domain structure linked list
  • Step S242' Translate the entire domain structure linked list with the tail domain structure deleted to the tail of the domain structure linked list by one domain structure unit;
  • Step S243′ Add the newly created domain structure to the head of the domain structure linked list.
  • the original domain structure linked list includes: domain structure 1, domain structure 2,..., domain structure N.
  • step S241′′ shift the entire domain structure linked list to the end of the domain structure linked list by one domain structure unit;
  • Step S242′′ Add the newly created domain structure to the head of the domain structure linked list.
  • Step S3 Update the domain address information of the address to be changed.
  • Step S31 Obtain the stripe number array of the address to be changed.
  • the stripe number array includes the RAID stripe numbers of the address to be changed in sequence;
  • Step S32 Start the change task, and update the original domain address corresponding to the RAID stripe number of the address to be changed in the stripe number array to the new domain address;
  • Step S321 Obtain the number of RAID strip numbers with non-zero reference times in the strip number array
  • Step S322 Determine whether the number of citations is greater than zero
  • step S323 Immediately update the original domain address with the new domain address to complete the domain address change method
  • step S323′ Monitor the RAID stripe numbers whose reference count is greater than zero in the stripe number array. When the reference count corresponding to a RAID stripe number becomes zero, call a callback function to indicate that the reference count is not zero.
  • Step S324' When the number of RAID strip numbers with non-zero reference times is zero, immediately update the original domain address with the new domain address, completing the domain address change method;
  • the number of RAID stripe numbers with non-zero reference times is reduced by one to determine the current number of RAID stripe numbers with non-zero reference times.
  • a domain address change method described above is executed under a LINUX system.
  • a domain address changing device including: a strip calculation module, a domain address acquisition module, Domain address update module;
  • the stripe calculation module is used to calculate the RAID stripe number corresponding to the address to be changed in the address space based on the RAID stripe length when obtaining a domain address change request;
  • the domain address acquisition module is used to obtain the domain address information corresponding to the RAID stripe number of the address to be changed from the cache layer.
  • the cache layer includes: a domain cache pool and a domain calculation module.
  • the domain cache pool includes: a domain structure linked list. , the domain structure linked list is formed by cascading domain structures.
  • the domain structure includes: RAID stripe number, domain address information corresponding to the RAID stripe number, and the number of references used to represent the domain structure being acquired or released;
  • the domain address update module is used to update the domain address information of the address to be changed.
  • the above domain address changing device When executed, the above domain address changing device can implement the steps of the domain address changing method provided in any of the foregoing embodiments.
  • the processes described above with reference to the flowcharts may be implemented as computer software readable instructions.
  • embodiments of the present application include computer-readable instructions loaded on a non-volatile computer-readable storage medium, the computer-readable instructions including instructions for performing the method shown in the flowchart program code.
  • the computer readable instructions may be downloaded and installed from a network via a communication device, or from one or more memories, or from ROM.
  • the computer-readable instructions are executed by one or more external processors, the above-described functions defined in the methods of the embodiments of the application are performed.
  • non-volatile computer-readable storage medium in the embodiment of the present application may be a computer-readable signal medium or a non-volatile computer-readable storage medium, or any combination of the above two.
  • the non-volatile computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination thereof.
  • non-volatile computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard drives, random access memory (RAM), read only memory (ROM), Erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • a non-volatile computer-readable storage medium may be any tangible medium that contains or stores a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.
  • the computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, in which computer-readable instruction codes are carried. Such propagated data signals may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above.
  • the computer-readable signal medium may also be any non-volatile computer-readable storage medium other than non-volatile computer-readable storage media that may be sent, propagated, or transmitted for use by an instruction execution system, device, or Procedures for use with or in conjunction with the device. non-volatile
  • the program code contained on the computer-readable storage medium can be transmitted using any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency, radio frequency), etc., or any suitable combination of the above.
  • the above-mentioned non-volatile computer-readable storage medium may be included in the above-mentioned server; it may also exist separately without being assembled into the server.
  • the above-mentioned non-volatile computer-readable storage medium carries one or more programs.
  • the server in response to detecting that the peripheral mode of the terminal is not activated, obtains the terminal The frame rate applied on the screen; when the frame rate meets the screen off condition, it is judged whether the user is obtaining the screen information of the terminal; in response to the judgment result that the user is not obtaining the screen information of the terminal, the screen is controlled to enter the immediate dimming mode.
  • Computer program code for performing operations of embodiments of the present application may be written in one or more programming languages, including object-oriented programming languages—such as Java, Smalltalk, C++, and A conventional procedural programming language—such as "C" or a similar programming language.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer can be connected to the user's computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as an Internet service provider through Internet connection).
  • LAN local area network
  • WAN wide area network
  • Internet service provider such as an Internet service provider through Internet connection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开一种域地址变更方法、装置、设备及可读存储介质,涉及存储技术领域。方法包括:当获取域地址变更请求时,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号;从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息;更新待变更地址的域地址信息。

Description

一种域地址变更方法、装置、设备及可读存储介质
相关申请的交叉引用
本申请要求于2022年09月01日提交中国专利局,申请号为202211064448.0,申请名称为“一种域地址变更方法、装置、设备及可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及存储技术领域,尤其涉及一种域地址变更方法、装置、设备及可读存储介质。
背景技术
四控存储系统是目前统一存储的主流控制器架构,四控系统使用四个控制器分别备份,实现四个控制器性能叠加。此外,根据需求也容易扩展为八控存储系统或减配到双控存储系统。四控系统将地址空间划分为四个域,空间隔离避免域间信息交叉。空间的域划分由用户层进行,虚拟空间结构保证域的独立控制器访问,域划分空间的方案免除域外部的地址空间访问,避免资源抢占问题,提高了存储系统性能。
RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列),采用多个独立的磁盘组成磁盘系统,实现比单块磁盘更好的存储性能和更高的可靠性。应用四控系统的RAID遵循四域划分规则,RAID内部地址空间相应地划分为四个域。由于这四个域必须与四控系统的域划分保持一致,因此,RAID在运行时需要实时查询地址空间对应的域。现有技术中,通常以条带为单位对RAID的地址空间进行管理,RAID内部实现域与条带的对应,实现地址空间转化。
然而,发明人意识到,RAID在运行时实时查询地址空间对应的域,无疑增加RAID层的原生IO的运行时延;同时,由于域变更时,需要保证该域没有正在被使用,当地址空间对应域变更时,需要通过停止RAID业务的方式完成地址空间对应域的变更。通过暂停RAID全部业务的方式来保证上述域变更条件,频繁的域变更行为将严重影响RAID的整体性能。
发明内容
本申请根据第一方面,提供一种域地址变更方法,包括:
响应于获取域地址变更请求,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号;
从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息,其中,缓存层包括:域缓存池和域计算模块,域缓存池包括:域结构链表,域结构链表由域结构级联而成,域结构包括:RAID条带编号,与RAID条带编号对应的域地址信息,以及用于表征域结构被获取或被释放的引用次数;及
更新待变更地址的域地址信息。
在其中一些实施例中,从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息包括:
在域缓存池中查询待变更地址的RAID条带编号;及
响应于域缓存池中包括待变更地址的RAID条带编号,返回与RAID条带编号相对应的域地址信息。
在其中一些实施例中,在域缓存池中查询待变更地址的RAID条带编号包括:
计算与待变更地址的RAID条带编号相对应的哈希节点编号;及
轮询与哈希节点编号相串联的域结构中的RAID条带编号,与待变更地址的RAID条带编号进行比对。
在其中一些实施例中,计算与待变更地址的RAID条带编号相对应的哈希节点编号包括:
根据公式
H=N%L
计算与待变更地址的RAID条带编号相对应的哈希节点编号,其中,H表示哈希节点编号,N表示待变更地址的RAID条带编号,L表示哈希表长度。
在其中一些实施例中,响应于域缓存池中未包括待变更地址的RAID条带编号,通过域计算获取与待变更地址的RAID条带编号相对应的域地址信息。
在其中一些实施例中,通过域计算获取待变更地址的RAID条带编号相对应的域地址信息之后还包括:
根据待变更地址的RAID条带编号,待变更地址的RAID条带编号相对应的域地址信 息,建立相应的新建域结构;及
将新建域结构缓存至域缓存池。
在其中一些实施例中,将新建域结构缓存至域缓存池包括:
响应于域结构链表容量已满,从删除域结构链表尾部的一个域结构;
将删除尾部域结构的域结构链表整体向域结构链表的尾部平移一个域结构单位;及
将新建域结构添加至域结构链表的头部。
在其中一些实施例中,将新建域结构缓存至域缓存池还包括:
响应于域结构链表容量未满,将域结构链表整体向域结构链表的尾部平移一个域结构单位;及
将新建域结构添加至域结构链表的头部。
在其中一些实施例中,更新待变更地址的RAID域地址信息包括:
获取待变更地址的条带编号数组,条带编号数组包括依次排列的待变更地址的RAID条带编号;及
启动变更任务,将条带编号数组中的待变更地址的RAID条带编号所对应的原域地址更新为新域地址。
在其中一些实施例中,启动变更任务,将条带编号数组中的待变更地址的RAID条带编号所对应的原域地址更新为新域地址包括:
获取条带编号数组中,引用次数不为零的RAID条带编号数量;
判断引用次数是否大于零;及
响应于结果为否否,立即以新域地址更新原域地址,完成域地址变更方法。
在其中一些实施例中,响应于判断引用次数是否大于零的结果为是,监控条带编号数组中,引用次数大于零的RAID条带编号,响应于有RAID条带编号对应的引用次数变为零,调用回调函数以表示引用次数不为零的RAID条带编号数量;及
响应于引用次数不为零的RAID条带编号数量为零,立即以新域地址更新原域地址,完成域地址变更方法。
在其中一些实施例中,调用回调函数以表示引用次数不为零的RAID条带编号数量包括:
将引用次数不为零的RAID条带编号数量减一后,作为当前引用次数不为零的RAID条带编号数量。
本申请根据第二方面,提供一种域地址变更装置,包括:条带计算模块,域地址获取 模块,域地址更新模块;
条带计算模块,用于响应于获取域地址变更请求,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号;
域地址获取模块,用于从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息,其中,缓存层包括:域缓存池和域计算模块,域缓存池包括:域结构链表,域结构链表由域结构级联而成,域结构包括:RAID条带编号,与RAID条带编号对应的域地址信息,以及用于表征域结构被获取或被释放的引用次数;及
域地址更新模块,用于更新待变更地址的域地址信息。
本申请根据第三方面,提供一种计算机设备,包括一个或多个存储器、一个或多个处理器及存储在一个或多个存储器上并可在一个或多个处理器上运行的计算机可读指令,上述一个或多个处理器执行上述计算机可读指令时实现上述第一方面记载方法的步骤。
本申请根据第四方面,提供一种非易失性计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时实现上述第一方面记载方法的步骤。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个或多个实施例中提供的一种域地址变更方法示意图;
图2是本申请一个或多个实施例中提供的一种RAID地址空间获取域地址的示意图;
图3是本申请一个或多个实施例中提供的一种RAID地址空间获取域地址示意图;
图4是本申请一个或多个实施例中提供的一种域缓存池示意图;
图5是本申请一个或多个实施例中提供的一种域缓存池结构示意图;
图6是本申请一个或多个实施例中提供的一种LRU链更新方式示意图;
图7是本申请一个或多个实施例中提供的一种域地址变更装置示意图;
图8是本申请一个或多个实施例中提供的一种计算机设备的内部结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施方式中的附图, 对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。说明书附图中的编号,仅表示对各个功能部件或模块的区分,不表示部件或模块之间的逻辑关系。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面,将参照附图详细描述根据本公开的各个实施例。需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
针对现有技术中,进行域变更时需要暂停RAID全部业务,以保障域变更条件的达成。暂停RAID全部业务,严重影响域变更过程中RAID整体性能的问题。本申请实施例公开一种域地址变更方法、装置、设备及可读存储介质,无需以暂停RAID全部业务的方式保证域变更环境,提高域变更过程中RAID的整体性能。
在一个实施例中,如图1所示,一种域地址变更方法包括:
步骤S1:当获取域地址变更请求时,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号。
步骤S2:从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息。其中,缓存层包括:域缓存池和域计算模块,域缓存池包括:域结构链表,域结构链表由域结构级联而成,域结构包括:RAID条带编号,与RAID条带编号对应的域地址信息,以及用于表征域结构被获取或被释放的引用次数。
步骤S3:更新待变更地址的域地址信息。
其中,步骤S2:从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息。
通常,在四控存储RAID架构中,如图2所示,当RAID地址空间向逻辑层映射域地 址时,通过向域计算模块请求域地址,再由域计算模块返回域地址的方式获取域地址。在这一过程中,对于常用的域地址,存在域计算模块重复计算的情况,增加IO时延,因此,降低RAID整体性能。本申请在RAID地址空间和逻辑层之间加入缓存层,如图3所示。其中,缓存层包括:域缓存池和域计算模块。域缓存池用于缓存常用域地址(如图4所示),以便RAID地址空间向逻辑层映射域地址时,提供常用域地址查询功能,以缩短常用域地址的计算时间。当域缓存池中查询不到所需要的域地址,再通过域计算模块进行域地址计算。通过节约常用域地址的计算时间,优化IO时延,提高RAID整体性能。
域缓存池内,结构包括由哈希节点串联的域结构和LRU链串联的域结构(Least Recently Used,最近最少使用),如图5所示。
步骤S21:在域缓存池中查询待变更地址的RAID条带编号。
具体地,包括:
步骤S211:计算与待变更地址的RAID条带编号相对应的哈希节点编号;
具体地,包括:
根据公式
H=N%L
计算与待变更地址的RAID条带编号相对应的哈希节点编号,其中,H表示哈希节点编号,N表示待变更地址的RAID条带编号,L表示哈希表长度。
步骤S212:轮询与哈希节点编号相串联的域结构中的RAID条带编号,与待变更地址的RAID条带编号进行比对。
若域缓存池中包括待变更地址的RAID条带编号,则执行步骤S22:返回与RAID条带编号相对应的域地址信息;
若域缓存池中未包括待变更地址的RAID条带编号,则执行步骤S22′:通过域计算获取与待变更地址的RAID条带编号相对应的域地址信息。
进一步地,通过域计算获取待变更地址的RAID条带编号相对应的域地址信息之后还包括:
步骤S23′:根据待变更地址的RAID条带编号,待变更地址的RAID条带编号相对应的域地址信息,建立相应的新建域结构;
步骤S24′:将新建域结构缓存至域缓存池。
具体地,包括:
若域结构链表容量已满,则执行步骤S241′:从删除域结构链表尾部的一个域结构;
步骤S242′:将删除尾部域结构的域结构链表整体向域结构链表的尾部平移一个域结构单位;
步骤S243′:将新建域结构添加至域结构链表的头部。
如图6所示。原域结构链表中包括:域结构1,域结构2,……,域结构N。
若域结构链表容量未满,则执行步骤S241″:将域结构链表整体向域结构链表的尾部平移一个域结构单位;
步骤S242″:将新建域结构添加至域结构链表的头部。步骤S3:更新待变更地址的域地址信息。
具体地,包括:
步骤S31:获取待变更地址的条带编号数组,条带编号数组包括依次排列的待变更地址的RAID条带编号;
步骤S32:启动变更任务,将条带编号数组中的待变更地址的RAID条带编号所对应的原域地址更新为新域地址;
具体地,包括:
步骤S321:获取条带编号数组中,引用次数不为零的RAID条带编号数量;
步骤S322:判断引用次数是否大于零;
若否,则步骤S323:立即以新域地址更新原域地址,完成域地址变更方法;
若是,则步骤S323′:监控条带编号数组中,引用次数大于零的RAID条带编号,当有RAID条带编号对应的引用次数变为零时,调用回调函数以表示引用次数不为零的RAID条带编号数量;
步骤S324′:当引用次数不为零的RAID条带编号数量为零时,立即以新域地址更新原域地址,完成域地址变更方法;
将引用次数不为零的RAID条带编号数量减一后,作为当前引用次数不为零的RAID条带编号数量。
上述的一种域地址变更方法,可以以固件烧录至RAID板卡中执行,亦可以在LINUX系统下执行,本申请不加以限定。
在另一个实施例中,如图7所示,一种域地址变更装置包括:条带计算模块,域地址获取模块,域地址更新模块;
条带计算模块,用于当获取域地址变更请求时,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号;
域地址获取模块,用于从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息,其中,缓存层包括:域缓存池和域计算模块,域缓存池包括:域结构链表,域结构链表由域结构级联而成,域结构包括:RAID条带编号,与RAID条带编号对应的域地址信息,以及用于表征域结构被获取或被释放的引用次数;
域地址更新模块,用于更新待变更地址的域地址信息。
在另一个实施例中,提供了一种计算机设备,包括一个或多个存储器、一个或多个处理器及存储在一个或多个存储器上并可在一个或多个处理器上运行的计算机可读指令,一个或多个处理器执行计算机可读指令时实现上述第一方面记载方法的步骤。其中,计算机设备的内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储诸如域地址信息等数据,具体存储的数据还可以参见上述方法实施例中的限定。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种域地址变更方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在另一个实施例中,一种非易失性计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时实现上述第一方面记载方法的步骤。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
实施例一
下面结合图1-6,具体阐述一种域地址变更方法,包括:
步骤S1:当获取域地址变更请求时,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号。
步骤S2:从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息。其中,缓存层包括:域缓存池和域计算模块,域缓存池包括:域结构链表,域结构链表由域结构级联而成,域结构包括:RAID条带编号,与RAID条带编号对应的域地址信息,以及用于表征域结构被获取或被释放的引用次数。
步骤S3:更新待变更地址的域地址信息。
其中,步骤S2:从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息。
通常,在四控存储RAID架构中,如图2所示,当RAID地址空间向逻辑层映射域地址时,通过向域计算模块请求域地址,再由域计算模块返回域地址的方式获取域地址。在这一过程中,对于常用的域地址,存在域计算模块重复计算的情况,增加IO时延,因此,降低RAID整体性能。本申请在RAID地址空间和逻辑层之间加入缓存层,如图3所示。其中,缓存层包括:域缓存池和域计算模块。域缓存池用于缓存常用域地址(如图4所示),以便RAID地址空间向逻辑层映射域地址时,提供常用域地址查询功能,以缩短常用域地址的计算时间。当域缓存池中查询不到所需要的域地址,再通过域计算模块进行域地址计算。通过节约常用域地址的计算时间,优化IO时延,提高RAID整体性能。
域缓存池内,结构包括由哈希节点串联的域结构和LRU链串联的域结构(Least Recently Used,最近最少使用),如图5所示。
步骤S21:在域缓存池中查询待变更地址的RAID条带编号。
具体地,包括:
步骤S211:计算与待变更地址的RAID条带编号相对应的哈希节点编号;
具体地,包括:
根据公式
H=N%L
计算与待变更地址的RAID条带编号相对应的哈希节点编号,其中,H表示哈希节点编号,N表示待变更地址的RAID条带编号,L表示哈希表长度。
步骤S212:轮询与哈希节点编号相串联的域结构中的RAID条带编号,与待变更地址的RAID条带编号进行比对。
若域缓存池中包括待变更地址的RAID条带编号,则执行步骤S22:返回与RAID条带编号相对应的域地址信息;
若域缓存池中未包括待变更地址的RAID条带编号,则执行步骤S22′:通过域计算获取与待变更地址的RAID条带编号相对应的域地址信息。
进一步地,通过域计算获取待变更地址的RAID条带编号相对应的域地址信息之后还包括:
步骤S23′:根据待变更地址的RAID条带编号,待变更地址的RAID条带编号相对应的域地址信息,建立相应的新建域结构;
步骤S24′:将新建域结构缓存至域缓存池。
具体地,包括:
若域结构链表容量已满,则执行步骤S241′:从删除域结构链表尾部的一个域结构;
步骤S242′:将删除尾部域结构的域结构链表整体向域结构链表的尾部平移一个域结构单位;
步骤S243′:将新建域结构添加至域结构链表的头部。
如图6所示。原域结构链表中包括:域结构1,域结构2,……,域结构N。
若域结构链表容量未满,则执行步骤S241″:将域结构链表整体向域结构链表的尾部平移一个域结构单位;
步骤S242″:将新建域结构添加至域结构链表的头部。
步骤S3:更新待变更地址的域地址信息。
具体地,包括:
步骤S31:获取待变更地址的条带编号数组,条带编号数组包括依次排列的待变更地址的RAID条带编号;
步骤S32:启动变更任务,将条带编号数组中的待变更地址的RAID条带编号所对应的原域地址更新为新域地址;
具体地,包括:
步骤S321:获取条带编号数组中,引用次数不为零的RAID条带编号数量;
步骤S322:判断引用次数是否大于零;
若否,则步骤S323:立即以新域地址更新原域地址,完成域地址变更方法;
若是,则步骤S323′:监控条带编号数组中,引用次数大于零的RAID条带编号,当有RAID条带编号对应的引用次数变为零时,调用回调函数以表示引用次数不为零的RAID条带编号数量;
步骤S324′:当引用次数不为零的RAID条带编号数量为零时,立即以新域地址更新原域地址,完成域地址变更方法;
将引用次数不为零的RAID条带编号数量减一后,作为当前引用次数不为零的RAID条带编号数量。
以上阐述的一种域地址变更方法,在LINUX系统下执行。
实施例二
下面结合图7,具体阐述一种域地址变更装置包括:条带计算模块,域地址获取模块, 域地址更新模块;
条带计算模块,用于当获取域地址变更请求时,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号;
域地址获取模块,用于从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息,其中,缓存层包括:域缓存池和域计算模块,域缓存池包括:域结构链表,域结构链表由域结构级联而成,域结构包括:RAID条带编号,与RAID条带编号对应的域地址信息,以及用于表征域结构被获取或被释放的引用次数;
域地址更新模块,用于更新待变更地址的域地址信息。
上述域地址变更装置在被执行时可实现前述任一实施例中提供的域地址变更方法的步骤。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件可读指令。例如,本申请的实施例包括一种计算机可读指令,其包括装载在非易失性计算机可读存储介质上的计算机可读指令,该计算机可读指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机可读指令可以通过通信装置从网络上被下载和安装,或者从一个或多个存储器被安装,或者从ROM被安装。在该计算机可读指令被外部一个或多个处理器执行时,执行本申请的实施例的方法中限定的上述功能。
需要说明的是,本申请的实施例的非易失性计算机可读存储介质可以是计算机可读信号介质或者非易失性计算机可读存储介质或者是上述两者的任意组合。非易失性计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非易失性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请的实施例中,非易失性计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读指令代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是非易失性计算机可读存储介质以外的任何非易失性计算机可读存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。非易失 性计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(Radio Frequency,射频)等等,或者上述的任意合适的组合。
上述非易失性计算机可读存储介质可以是上述服务器中所包含的;也可以是单独存在,而未装配入该服务器中。上述非易失性计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器:响应于检测到终端的外设模式未激活时,获取终端上应用的帧率;在帧率满足息屏条件时,判断用户是否正在获取终端的屏幕信息;响应于判断结果为用户未获取终端的屏幕信息,控制屏幕进入立即暗淡模式。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java,Smalltalk,C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (21)

  1. 一种域地址变更方法,其特征在于,所述方法包括:
    响应于获取域地址变更请求,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号;
    从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息,其中,所述缓存层包括:域缓存池和域计算模块,所述域缓存池包括:域结构链表,所述域结构链表由域结构级联而成,所述域结构包括:RAID条带编号,与所述RAID条带编号对应的域地址信息,以及用于表征所述域结构被获取或被释放的引用次数;及
    更新待变更地址的域地址信息。
  2. 根据权要求1所述的一种域地址变更方法,其特征在于,所述方法应用于四控存储RAID架构,还包括:
    响应于RAID地址空间向逻辑层映射域地址,通过向域计算模块请求域地址;及
    通过所述域计算模块返回域地址以获取所述域地址。
  3. 根据权要求1所述的一种域地址变更方法,其特征在于,所述方法还包括:
    响应于RAID地址空间向逻辑层映射域地址,提供常用域地址查询功能。
  4. 根据权利要求1所述的一种域地址变更方法,其特征在于,所述从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息包括:
    在所述域缓存池中查询所述待变更地址的RAID条带编号;及
    响应于所述域缓存池中包括所述待变更地址的RAID条带编号,返回与所述RAID条带编号相对应的域地址信息。
  5. 根据权利要求4所述的一种域地址变更方法,其特征在于,所述在所述域缓存池中查询所述待变更地址的RAID条带编号包括:
    计算与所述待变更地址的RAID条带编号相对应的哈希节点编号;及
    轮询与所述哈希节点编号相串联的域结构中的RAID条带编号,与所述待变更地址的RAID条带编号进行比对。
  6. 根据权利要求5所述的一种域地址变更方法,其特征在于,所述计算与所述待变更地址的RAID条带编号相对应的哈希节点编号包括:
    根据公式
    H=N%L
    计算与所述待变更地址的RAID条带编号相对应的哈希节点编号,其中,H表示哈希节点编号,N表示待变更地址的RAID条带编号,L表示哈希表长度。
  7. 根据权利要求4所述的一种域地址变更方法,其特征在于,所述方法还包括:
    响应于所述域缓存池中未包括所述待变更地址的RAID条带编号,通过所述域计算模块进行域地址计算。
  8. 根据权利要求4所述的一种域地址变更方法,其特征在于,通过所述域计算模块进行域地址计算,包括:通过域计算获取与所述待变更地址的RAID条带编号相对应的域地址信息。
  9. 根据权利要求1所述的一种域地址变更方法,其特征在于,所述域缓存池的所述域结构还包括:由哈希节点串联的域结构和LRU链串联的域结构。
  10. 根据权利要求1所述的一种域地址变更方法,其特征在于,所述域结构链表还包括域结构1-N。
  11. 根据权利要求8所述的一种域地址变更方法,其特征在于,所述通过域计算获取所述待变更地址的RAID条带编号相对应的域地址信息之后还包括:
    根据所述待变更地址的RAID条带编号,所述待变更地址的RAID条带编号相对应的域地址信息,建立相应的新建域结构;及
    将所述新建域结构缓存至所述域缓存池。
  12. 根据权利要求11所述的一种域地址变更方法,其特征在于,所述将所述新建域结构缓存至所述域缓存池包括:
    响应于所述域结构链表容量已满,从删除所述域结构链表尾部的一个域结构;
    将删除尾部域结构的域结构链表整体向所述域结构链表的尾部平移一个域结构单位;及
    将所述新建域结构添加至所述域结构链表的头部。
  13. 根据权利要求12所述的一种域地址变更方法,其特征在于,所述将所述新建域结构缓存至所述域缓存池还包括:
    响应于所述域结构链表容量未满,将所述域结构链表整体向所述域结构链表的尾部平移一个域结构单位;及
    将所述新建域结构添加至所述域结构链表的头部。
  14. 根据权利要求1所述的一种域地址变更方法,其特征在于,所述更新待变更地址 的RAID域地址信息包括:
    获取待变更地址的条带编号数组,所述条带编号数组包括依次排列的待变更地址的RAID条带编号;及
    启动变更任务,将所述条带编号数组中的待变更地址的RAID条带编号所对应的原域地址更新为新域地址。
  15. 根据权利要求14所述的一种域地址变更方法,其特征在于,所述启动变更任务,将所述条带编号数组中的待变更地址的RAID条带编号所对应的原域地址更新为新域地址包括:
    获取所述条带编号数组中,引用次数不为零的RAID条带编号数量;
    判断所述引用次数是否大于零;及
    响应于结果为否,立即以所述新域地址更新所述原域地址,完成所述域地址变更方法。
  16. 根据权利要求15所述的一种域地址变更方法,其特征在于,响应于判断所述引用次数是否大于零的结果为是,监控所述条带编号数组中,引用次数大于零的RAID条带编号,响应于有RAID条带编号对应的引用次数变为零,调用回调函数以表示所述引用次数不为零的RAID条带编号数量;及
    响应于引用次数不为零的RAID条带编号数量为零,立即以所述新域地址更新所述原域地址,完成所述域地址变更方法。
  17. 根据权利要求16所述的一种域地址变更方法,其特征在于,所述调用回调函数以表示所述引用次数不为零的RAID条带编号数量包括:
    将所述引用次数不为零的RAID条带编号数量减一后,作为当前所述引用次数不为零的RAID条带编号数量。
  18. 根据权利要求1所述的一种域地址变更方法,其特征在于,所述域计算模块用于计算并返回域地址。
  19. 一种域地址变更装置,其特征在于,所述装置包括:条带计算模块,域地址获取模块,域地址更新模块;
    所述条带计算模块,用于当获取域地址变更请求时,根据RAID条带长度,计算待变更地址在地址空间对应的RAID条带编号;
    所述域地址获取模块,用于从缓存层中获取与待变更地址的RAID条带编号相对应的域地址信息,其中,所述缓存层包括:域缓存池和域计算模块,所述域缓存池包括:域结构,域结构链表,所述域结构包括:RAID条带编号,与所述RAID条带编号对应的域地 址信息,以及用于表征所述域结构被获取或被释放的引用次数;及
    所述域地址更新模块,用于更新待变更地址的域地址信息。
  20. 一种计算机设备,包括一个或多个存储器、一个或多个处理器及存储在一个或多个存储器上并可在所述一个或多个处理器上运行的计算机可读指令,其特征在于,所述一个或多个处理器执行所述计算机可读指令时实现权利要求1至18任意一项所述方法的步骤。
  21. 一种非易失性计算机可读存储介质,其上存储有计算机可读指令,其特征在于,所述计算机可读指令被一个或多个处理器执行时实现权利要求1至18任意一项所述方法的步骤。
PCT/CN2023/080872 2022-09-01 2023-03-10 一种域地址变更方法、装置、设备及可读存储介质 Ceased WO2024045545A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211064448.0A CN115129267B (zh) 2022-09-01 2022-09-01 一种域地址变更方法、装置、设备及可读存储介质
CN202211064448.0 2022-09-01

Publications (1)

Publication Number Publication Date
WO2024045545A1 true WO2024045545A1 (zh) 2024-03-07

Family

ID=83387132

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/080872 Ceased WO2024045545A1 (zh) 2022-09-01 2023-03-10 一种域地址变更方法、装置、设备及可读存储介质

Country Status (2)

Country Link
CN (1) CN115129267B (zh)
WO (1) WO2024045545A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115129267B (zh) * 2022-09-01 2023-02-03 苏州浪潮智能科技有限公司 一种域地址变更方法、装置、设备及可读存储介质
CN118331512B (zh) * 2024-06-14 2024-09-13 山东云海国创云计算装备产业创新中心有限公司 一种基于存储控制卡的处理方法和装置
CN120743812B (zh) * 2025-09-05 2026-01-27 山东云海国创云计算装备产业创新中心有限公司 地址映射方法、装置、存储系统、程序产品、存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4835686A (en) * 1985-05-29 1989-05-30 Kabushiki Kaisha Toshiba Cache system adopting an LRU system, and magnetic disk controller incorporating it
CN102023809A (zh) * 2009-09-21 2011-04-20 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
CN107402890A (zh) * 2017-07-24 2017-11-28 华中科技大学 一种基于固态盘阵列和缓存的数据处理方法及系统
CN108228088A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
CN111857557A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 Raid类型转换的方法、设备和计算机程序产品
CN114064979A (zh) * 2021-11-02 2022-02-18 郑州云海信息技术有限公司 一种加速获取raid的存储数据的方法、计算机及存储介质
CN115129267A (zh) * 2022-09-01 2022-09-30 苏州浪潮智能科技有限公司 一种域地址变更方法、装置、设备及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613060B2 (en) * 2007-05-21 2009-11-03 Micron Technology, Inc. Methods, circuits, and systems to select memory regions
CN102334093B (zh) * 2009-03-18 2017-08-01 株式会社日立制作所 存储控制装置以及虚拟卷的控制方法
GB2534956A (en) * 2013-10-09 2016-08-10 Hitachi Ltd Storage system and storage control method
CN112328182B (zh) * 2020-11-27 2022-04-22 长沙景嘉微电子股份有限公司 一种raid数据管理方法、装置和计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4835686A (en) * 1985-05-29 1989-05-30 Kabushiki Kaisha Toshiba Cache system adopting an LRU system, and magnetic disk controller incorporating it
CN102023809A (zh) * 2009-09-21 2011-04-20 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
CN108228088A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
CN107402890A (zh) * 2017-07-24 2017-11-28 华中科技大学 一种基于固态盘阵列和缓存的数据处理方法及系统
CN111857557A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 Raid类型转换的方法、设备和计算机程序产品
CN114064979A (zh) * 2021-11-02 2022-02-18 郑州云海信息技术有限公司 一种加速获取raid的存储数据的方法、计算机及存储介质
CN115129267A (zh) * 2022-09-01 2022-09-30 苏州浪潮智能科技有限公司 一种域地址变更方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN115129267A (zh) 2022-09-30
CN115129267B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
WO2024045545A1 (zh) 一种域地址变更方法、装置、设备及可读存储介质
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
EP3929756B1 (en) Method, system, and intelligent network interface card for migrating data
JP4494420B2 (ja) 複数ファクタに基づく適応ファイル先読み
JP2022539950A (ja) ストレージシステム、メモリ管理方法、および管理ノード
CN118974712A (zh) 具有零行优化的直接交换高速缓存
US20090240880A1 (en) High availability and low capacity thin provisioning
US20150317101A1 (en) Computer system and control method for the same
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
US10956335B2 (en) Non-volatile cache access using RDMA
CN110998557A (zh) 通过分布式存储器的高可用性数据库
CN111639061A (zh) Redis集群中数据管理方法、装置、介质及电子设备
CN109347936B (zh) Redis代理客户端的实现方法、系统、存储介质及电子设备
JP6343722B2 (ja) マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス
WO2021008425A1 (zh) 一种系统启动方法以及相关设备
WO2015118865A1 (ja) 情報処理装置、情報処理システム及びデータアクセス方法
WO2025118533A1 (zh) 一种数据传输的方法和计算设备
WO2023045492A1 (zh) 一种数据预取方法、计算节点和存储系统
CN113243008A (zh) 具有共享页面高速缓存的分布式vfs
CN107193494B (zh) 一种基于ssd和hdd混合存储系统的rdd持久化方法
CN111247508B (zh) 网络存储架构
CN111031126A (zh) 集群缓存共享方法、系统、设备及存储介质
CN104978283B (zh) 一种内存访问控制方法,及装置
CN117271107A (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质
US10025521B2 (en) Obtaining additional data storage from another data storage system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23858588

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 23858588

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 09/07/2025)

122 Ep: pct application non-entry in european phase

Ref document number: 23858588

Country of ref document: EP

Kind code of ref document: A1