CN116069266A - 磁盘漫游控制方法、装置、设备及计算机可读存储介质 - Google Patents

磁盘漫游控制方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116069266A
CN116069266A CN202310356855.7A CN202310356855A CN116069266A CN 116069266 A CN116069266 A CN 116069266A CN 202310356855 A CN202310356855 A CN 202310356855A CN 116069266 A CN116069266 A CN 116069266A
Authority
CN
China
Prior art keywords
disk
roaming
executed
metadata
task
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.)
Granted
Application number
CN202310356855.7A
Other languages
English (en)
Other versions
CN116069266B (zh
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 Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur 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 Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310356855.7A priority Critical patent/CN116069266B/zh
Publication of CN116069266A publication Critical patent/CN116069266A/zh
Application granted granted Critical
Publication of CN116069266B publication Critical patent/CN116069266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F3/064Management of blocks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请涉及存储技术领域,具体公开了一种磁盘漫游控制方法、装置、设备及计算机可读存储介质,通过根据待执行磁盘漫游任务的磁盘组的磁盘信息生成与待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据,其中一个磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量;而后以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度。通过磁盘漫游元数据组织方式不再以条带为单位的位图元数据组织方式进行磁盘漫游,而是以磁盘为单位的磁盘漫游元数据组织方式来进行磁盘漫游,显著减少了存放磁盘漫游元数据的内存资源,有效降低了内存资源消耗,以此提高了磁盘漫游效率,提高了磁盘阵列的容错能力和存储性能。

Description

磁盘漫游控制方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及存储技术领域,特别是涉及一种磁盘漫游控制方法、装置、设备及计算机可读存储介质。
背景技术
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“数块独立磁盘构成具有冗余能力的阵列”之意,是一种把多块独立的磁盘(物理磁盘)按不同的方式组合起来形成一个磁盘组(逻辑磁盘),从而提供比单个磁盘更高的存储性能和提供数据备份技术。利用这项技术,将数据切割成许多区段,分别存放在各个磁盘上。
磁盘漫游(Disk Roaming)是指在同一控制器的电缆连接或背板插槽间移动物理磁盘后,控制器将自动识别重新定位的物理磁盘,并从逻辑上将其置于属于磁盘组的一部分的虚拟磁盘中,即是指阵列配置信息不锁定磁盘位置。
随着互联网技术的发展、人工智能技术的壮大,个人用户的数据以及数据中心的数据存储量呈指数级增长,用户对数据可靠性的需求和数据安全性的要求越来越高,且急需显著提升存储的输入输出(I/O)性能。而磁盘漫游作为一项重要的存储功能,其效率高低体现了存储性能的优劣。在相关技术中执行磁盘阵列的磁盘漫游任务时,均为以条带为单位执行磁盘漫游,并采用位图这种元数据组织方式来管理需要执行磁盘漫游的条带。这种位图元数据组织方式在大型大容量的磁盘阵列中存在不足,具体表现为位图元数据的组织方式会占用大量的资源空间,导致大容量磁盘阵列的磁盘漫游任务需要执行很长时间。而设备存储通常会由多个磁盘阵列构成,由此更是严重影响了磁盘漫游的效率。
可以看出,磁盘漫游效率低已成为了磁盘阵列性能的瓶颈之一。提高磁盘漫游效率,是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的是提供一种磁盘漫游控制方法、装置、设备及计算机可读存储介质,用于提高磁盘阵列的磁盘漫游效率。
为解决上述技术问题,本申请提供一种磁盘漫游控制方法,包括:
接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息;
根据所述待执行磁盘组的磁盘信息生成与所述待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据;
以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度;
其中,一个所述磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量。
可选的,所述接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体包括:
接收并分析用户命令得到所述待执行磁盘组中所述待执行磁盘的数量、所述待执行磁盘构成的所述磁盘阵列的级别,以及所述待执行磁盘组中所述磁盘阵列的数量;
以所述待执行磁盘的数量、所述磁盘阵列的级别和所述磁盘阵列的数量为所述待执行磁盘组的磁盘信息。
可选的,所述用户命令具体为命令行或图形化界面命令。
可选的,所述接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体为:
接收所在磁盘阵列卡存储系统的磁盘阵列卡控制器发送的所述待执行磁盘组的磁盘信息;
所述待执行磁盘的磁盘信息包括所述待执行磁盘的数量、所述磁盘阵列的级别和所述磁盘阵列的数量。
可选的,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体包括:
读取一个所述磁盘漫游元数据对应数量的磁盘分块到内存中;
若均能够读取到所有所述磁盘分块,则根据所述磁盘分块中的校验分块对所述磁盘分块中的数据分块进行校验;
若所述数据分块均通过校验,则确定完成当前所述磁盘漫游元数据对应的所述磁盘分块的所述磁盘漫游任务。
可选的,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体包括:
在以所述待执行磁盘为单位执行所述磁盘漫游任务时,设置磁盘漫游跟踪变量标记与所述待执行磁盘对应的所述磁盘漫游元数据;
根据与所述待执行磁盘对应的所述磁盘漫游元数据确定所述待执行磁盘的磁盘漫游进度,直至完成对所述待执行磁盘的所述磁盘漫游任务。
可选的,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体包括:
根据所述磁盘漫游元数据的比特位数确定单个所述磁盘漫游任务所要执行的分块数量;
自内存中申请与所述磁盘阵列中的磁盘数量相等的所述磁盘漫游元数据分配至所述磁盘阵列中的各所述待执行磁盘,并创建磁盘漫游跟踪变量;
自所述待执行磁盘的首个磁盘分块起,自所述磁盘漫游元数据的第一个比特位开始,若当前磁盘分块在对应的所述磁盘漫游元数据中对应的比特位置为第一状态,则执行对所述当前磁盘分块的所述磁盘漫游任务,并在执行完毕后控制所述磁盘漫游跟踪变量将所述当前磁盘分块对应的比特位置置为第二状态,直至完成对所述磁盘漫游元数据对应的所有所述磁盘分块的所述磁盘漫游任务;
若所述待执行磁盘还存在未执行所述磁盘漫游任务的所述磁盘分块,则将所述磁盘漫游元数据移动所述磁盘漫游元数据的比特位数并将所述磁盘漫游元数据的各比特位置置为所述第一状态,以执行下一组所述磁盘分块的所述磁盘漫游任务,直至完成所述待执行磁盘的所有磁盘分块的所述磁盘漫游任务;
其中,所述第一状态与所述第二状态不同。
可选的,所述完成对所述磁盘漫游元数据对应的所有所述磁盘分块的所述磁盘漫游任务,具体包括:
控制所述磁盘漫游跟踪变量每移动所述磁盘分块对应的比特位置后,记录所述磁盘漫游跟踪变量在当前所述磁盘漫游任务中的第一偏移量;
若所述第一偏移量等于所述磁盘漫游元数据的比特位数,则确定完成对所述磁盘漫游元数据对应的所有所述磁盘分块的所述磁盘漫游任务。
可选的,所述磁盘漫游元数据的一个比特位用于标识一个所述磁盘分块的所述磁盘漫游任务的执行状态;
所述第一状态和所述第二状态分别为0和1。
可选的,所述磁盘漫游元数据的多个比特位用于标识一个所述磁盘分块的所述磁盘漫游任务的执行状态。
可选的,一个所述磁盘漫游元数据的比特位数大于或等于所述待执行磁盘组中所述待执行磁盘数量最多的所述磁盘阵列的磁盘数量。
可选的,所述磁盘漫游元数据具体为无符号四字节数据。
可选的,还包括:
根据为所述待执行磁盘组的所述磁盘漫游任务所划分的存储空间确定各所述磁盘漫游元数据的第一存储空间;
根据所述第一存储空间的大小确定所述磁盘漫游元数据的比特位数。
可选的,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体为:
同时基于多个协程分别处理不同所述待执行磁盘的所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度。
可选的,所述协程具体与所述待执行磁盘组中的所述磁盘阵列一一对应。
可选的,还包括:
根据所在存储系统的资源调整为所述磁盘漫游任务所分配的协程数量。
可选的,应用于磁盘阵列卡存储系统的磁盘阵列卡控制器。
为解决上述技术问题,本申请还提供一种磁盘漫游控制装置,包括:
接收单元,用于接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息;
生成单元,用于根据所述待执行磁盘组的磁盘信息生成与所述待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据;
控制单元,用于以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度;
其中,一个所述磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量。
为解决上述技术问题,本申请还提供一种磁盘漫游控制设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述磁盘漫游控制方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述磁盘漫游控制方法的步骤。
本申请所提供的磁盘漫游控制方法,通过根据待执行磁盘漫游任务的磁盘组的磁盘信息生成与待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据,并需保证一个磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量;而后以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度。本申请所提供的磁盘漫游控制方法提出一种新的磁盘漫游元数据组织方式,即磁盘漫游元数据组织方式不再以条带为单位的位图元数据组织方式进行磁盘漫游,而是以磁盘为单位的磁盘漫游元数据组织方式来进行磁盘漫游,可以显著减少存放磁盘漫游元数据的内存资源,有效降低了内存资源消耗,以此提高了磁盘漫游效率,从而提高了磁盘阵列的容错能力和存储性能。
本申请还提供了一种磁盘漫游控制装置、设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种RAID5阵列的示意图;
图2为本申请实施例提供的一种磁盘阵列卡的架构图;
图3为本申请实施例提供的一种磁盘漫游控制方法的流程图;
图4为本申请实施例提供的一种图3中S303的具体实施方式的流程图;
图5为本申请实施例提供的一种磁盘漫游跟踪变量标记磁盘漫游元数据的示意图;
图6为本申请实施例提供的另一种图3中S303的具体实施方式的流程图;
图7为本申请实施例提供的一种磁盘漫游控制装置的结构示意图;
图8为本申请实施例提供的一种磁盘漫游控制设备的结构示意图。
具体实施方式
本申请的核心是提供一种磁盘漫游控制方法、装置、设备及计算机可读存储介质,用于提高磁盘阵列的磁盘漫游效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请实施例一进行说明。
图1为一种RAID5阵列的示意图;图2为本申请实施例提供的一种磁盘阵列卡的架构图。
为便于理解,首先对本申请适用的系统架构进行介绍。本申请实施例提供的具体实施方式可以适用于任意磁盘阵列(RAID)的存储系统。按照实现磁盘阵列的方式,磁盘阵列可以分为软RAID和硬RAID。软RAID就是通过操作系统来实现磁盘阵列功能的磁盘阵列,如在Windows操作系统下,用三块物理磁盘组件的RAID5阵列。硬RAID就是通过硬件来实现磁盘阵列功能的磁盘阵列,如各种磁盘阵列卡(RAID卡),还有主板集成实现的磁盘阵列。不论是软RAID还是硬RAID,其核心功能都是磁盘阵列(RAID)。当前,磁盘阵列的级别包括RAID0、RAID1、RAID5、RAID6、RAID10、RAID50、RAID60、RAID-TP等,这些阵列级别使用分块和条带对数据进行组织,使用镜像和冗余校验来保证数据可靠性,并通过阵列中多个磁盘驱动并发处理I/O以提高磁盘阵列的I/O性能。
下面以磁盘阵列卡为例说明本申请实施例提供的磁盘漫游控制方法所适用一种系统。
从物理连接层面来说,磁盘阵列卡就是实现将存储服务器连接的磁盘按照磁盘阵列级别阻值成多个磁盘阵列的功能板卡,具体是将磁盘阵列卡挂载在高速串行计算机扩展总线(peripheral component interconnect express,PCIe)上,这样可以将磁盘阵列卡看作存储服务器的外设。磁盘阵列卡是在软RAID基础上提出的硬RAID存储技术。从逻辑功能上讲,磁盘阵列卡将软RAID存储技术中的一些数据管理、算法以及一些逻辑功能都交给硬件管理和实现,以达到提高存储系统的数据安全性和存储I/O性能。
如图1所示,以磁盘阵列卡中的RAID5阵列为例,由于篇幅有限,仅画出了四个条带(条带0、条带1、条带2、条带3),在该RAID5阵列中,磁盘1~磁盘5是成员盘。其中,条带(stripe)是磁盘阵列上不同分区上的位置相关的分块(strip或chunk)的集合,是组织不同分区上分块的单位。分块包含数据分块(strip)和校验分块(parity),具体为将一个分区分成多个大小相等的、地址相邻的块(Block),这些块称为分块。分块通常被认为是条带的元素。虚拟磁盘以它为单位将虚拟磁盘的地址映射到成员磁盘的地址。如图1所示,每一行为一个条带,条带由分区组成。通常在RAID5阵列中,设置每五个分块中包含四个数据分块和一个校验分块(如条带0中的数据分块1、数据分块2、数据分块3、数据分块4和校验分块1,以此类推),校验分块用于对数据分块的数据一致性进行校验。这种情况下,如果以条带为单位组织磁盘漫游元数据,假设每个成员盘为340G容量,则该RAID5阵列有1700G容量。分块大小为512KB,则条带大小为2560KB,因此该RAID5阵列中有1700G/2560KB的条带数即696320个条带。根据位图元数据组织方式中一个条带对应一个比特(Bit)位,则需要696320个比特位,换算为696320/8=87040个字节,由此得出需要87040个字节的内存空间来存放位图元数据,在执行磁盘漫游任务时占用了大量的内存空间,从而导致磁盘漫游变慢、磁盘阵列磁盘漫游变慢、最终导致存储设备的磁盘漫游效率很低,拖累存储设备整体的容错能力以及I/O性能。而利用本申请实施例提供的以磁盘为单位组织磁盘漫游元数据的方案,则有多少个磁盘就设置多少个磁盘漫游元数据即可,在该RAID5阵列中仅需要5个磁盘漫游元数据,从而显著降低了磁盘漫游元数据的数据量,由此提高了磁盘漫游效率。如图2所示,如基于磁盘阵列卡存储系统实现本申请实施例提供的磁盘漫游控制方法,该磁盘阵列卡的固件层包括驱动程序、磁盘阵列卡内核、文件系统、管理监控系统等(还包括其他未示出的部分)。磁盘阵列卡内核和文件系统可以提供对文件和逻辑单元LUN访问的功能,以及对这些功能的管理。磁盘阵列卡中固件层的驱动程序和处理器执行一些程序指令,用于处理主机的I/O请求。磁盘阵列卡中的磁盘阵列卡控制器设有缓存和非易失性随机访问存储器,磁盘阵列卡控制器负责磁盘阵列卡中的软件处理功能,由磁盘阵列卡控制器专门实现软件功能,硬件模块执行一些算法、数据管理以及其他一些功能,以此实现软硬分离,硬件和软件各自独立、平行工作,通过软硬分离系统架构设计提高磁盘阵列卡磁盘漫游的效率。
如图2所示的磁盘阵列卡由三个磁盘阵列构成,其中磁盘组1和磁盘组2均为RAID5阵列,磁盘组3为RAID6阵列。其中,磁盘组1由磁盘1、磁盘2、磁盘3构成,其中包括数据分块D1~D20、校验分块P1~P10,即每三个磁盘分块中包括两个数据分块和一个校验分块。磁盘组2由磁盘4、磁盘5、磁盘6构成,磁盘分块类型与磁盘组1一致。磁盘组3由磁盘7、磁盘8、磁盘9、磁盘10构成,包括数据分块(D1~D20)、校验分块P1~P10以及校验分块Q1~Q10。在上述磁盘分块中,数据分块为存储主机I/O请求的磁盘分块;P校验分块为条带中第一个校验分块,由数据分块异或运算得出;Q校验分块为RAID6阵列相比RAID5阵列在条带中增加的第二个校验分块,和P校验分块配合运用,可以恢复RAID6阵列中的两个故障盘数据。基于这三个磁盘组,在横向上构成条带0~条带9。需要说明的是,在实际应用中磁盘阵列卡的存储容量巨大,正常情况是成百上千个磁盘构成几十个甚至几百个不同级别的磁盘阵列,由于篇幅有限,图2只展示三个磁盘阵列构成的磁盘阵列卡。
本申请实施例提供的磁盘漫游控制方法可以基于磁盘阵列卡控制器实现,也可以通过本申请实施例新增的磁盘漫游管理模块独立或配合磁盘阵列卡控制器实现。
下面对本申请实施例二进行说明。
图3为本申请实施例提供的一种磁盘漫游控制方法的流程图。
如图3所示,本申请实施例提供的磁盘漫游控制方法包括:
S301:接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息。
S302:根据待执行磁盘组的磁盘信息生成与待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据。
S303:以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度。
其中,一个磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量。
如本申请实施例一所介绍的,本申请实施例提供的磁盘漫游控制方法可以应用于磁盘阵列卡存储系统的磁盘阵列卡控制器,也可以通过本申请实施例新增的磁盘漫游管理模块独立或配合磁盘阵列卡控制器实现。
在本申请实施例中,定义需要执行磁盘漫游任务的磁盘组为待执行磁盘组,待执行磁盘组包括一个或多个磁盘阵列,定义组成各磁盘阵列的磁盘为待执行磁盘。磁盘漫游任务受物理磁盘位置发生变动而触发,如磁盘阵列断电后磁盘位置移动、扩展柜地址编号改动、磁盘阵列编址模式改动、扩展柜与主柜加电顺序不正确、备份配置信息后备用盘替换了磁盘组中原有磁盘再试图恢复配置信息等情况下,均需要执行磁盘漫游任务,以对发生位置变动所在的磁盘组整体执行磁盘漫游任务,识别重新定位的物理磁盘,并从逻辑上将其置于属于磁盘组的一部分的虚拟磁盘中。可以理解的是,所在设备或所在磁盘阵列存储系统中除了存在不锁定磁盘位置的磁盘组外,还存在锁定磁盘位置的磁盘组,后者不属于磁盘漫游任务的对象。
在具体实施中,对于S301来说,在执行磁盘漫游任务前,需要先组织磁盘漫游元数据,为组织磁盘漫游元数据,需要先获悉待执行磁盘组的磁盘信息。由于此时磁盘位置发生改变,无法自动提取待执行磁盘组的磁盘信息,需要用户提供。则S301:接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体可以包括:
接收并分析用户命令得到待执行磁盘组中待执行磁盘的数量、待执行磁盘构成的磁盘阵列的级别,以及待执行磁盘组中磁盘阵列的数量;
以待执行磁盘的数量、磁盘阵列的级别和磁盘阵列的数量为待执行磁盘组的磁盘信息。
用户可以基于待执行磁盘组所在存储系统提供给用户的客户端输入用户命令,用户命令的类型可以为命令行(CLI)或图形化界面命令(GUI)。
在上文提到,本申请实施例提供的磁盘漫游控制方法可以应用于磁盘阵列卡存储系统的磁盘阵列卡控制器,也可以通过本申请实施例新增的磁盘漫游管理模块独立或配合磁盘阵列卡控制器实现,则如果基于新增的磁盘漫游管理模块配合磁盘阵列卡控制器实现,S301:接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体可以为:接收所在磁盘阵列卡存储系统的磁盘阵列卡控制器发送的待执行磁盘组的磁盘信息。其中,待执行磁盘的磁盘信息包括待执行磁盘的数量、磁盘阵列的级别和磁盘阵列的数量。即由磁盘阵列卡控制器接收并解析用户输入的待执行磁盘组的磁盘信息,并传递给磁盘漫游管理模块。或者也可以由磁盘阵列卡控制器在接收并解析得到待执行磁盘组的磁盘信息后,自行执行后续磁盘漫游控制方法的步骤。
对于S302来说,本申请实施例提供一种新的组织磁盘漫游元数据的方式,即以待执行磁盘为单位组织磁盘漫游元数据,来替换相关技术中采用条带为单位组织磁盘漫游元数据的方案,以显著降低对待执行磁盘组执行磁盘漫游任务的整体时间。
一个磁盘漫游元数据用于管理磁盘阵列中的单个磁盘漫游任务,单个磁盘漫游任务应至少包括一组磁盘分组,这里一组磁盘分块指包含数据分块以及各数据分块的校验分块的一组磁盘分块。具体地,磁盘漫游元数据用于在执行磁盘漫游任务时反映执行状态以便控制器管理待执行磁盘的磁盘漫游进度,故磁盘漫游元数据最小需要能够记载一组磁盘分块的磁盘漫游状态。
以磁盘阵列的级别为RAID5为例,该级别的磁盘阵列最少由三块磁盘组成,最多可以包括五块磁盘。由三块磁盘组成的RAID5阵列可以参考图2所示的磁盘组1和磁盘组2,每三个磁盘分块为一组,包括两个数据分块和一个校验分块。而磁盘阵列的级别为RAID6时,该级别的磁盘阵列包括P、Q两类校验分块,该磁盘阵列最多可以包括32块磁盘,则每32个磁盘分块为一组,包括30个数据分块和两个校验分块。而以图2所示的磁盘组3为例,该RAID6阵列由四块磁盘组成,则每四个磁盘分块为一组,包括两个数据分块和两个校验分块。
因此,在组织磁盘漫游元数据时,需要考虑对应的待执行磁盘所在磁盘阵列的磁盘数量,所在磁盘阵列的磁盘数量决定了一组磁盘分块的磁盘分块数量。而每个磁盘分块的磁盘漫游状态可以包括已成功执行和未成功执行两种,可以分别用0、1表示。故一个磁盘漫游元数据的比特位数应大于或等于对应的磁盘阵列的磁盘数量。
为便于统一管理,可以设置待执行磁盘组中所有磁盘漫游元数据的长度一致,进而可以设置所有待执行磁盘组中所有磁盘漫游元数据的长度一致。此时需要考虑到需求磁盘漫游元数据最长的磁盘阵列的情况。此时一个磁盘漫游元数据的比特位数大于或等于待执行磁盘组中待执行磁盘数量最多的磁盘阵列的磁盘数量。
则可选的是,可以设置磁盘漫游元数据具体为无符号四字节数据。无符号四字节数据可以展开为32个比特位,可以适应RAID6阵列中包含32块磁盘的情况。
而磁盘漫游元数据的长度的上限可以为一个待执行磁盘的所有磁盘分块的磁盘漫游状态时对应的长度。即在内存资源允许的情况下,可以设置一个磁盘漫游元数据对应一个待执行磁盘中所有磁盘分块的磁盘漫游状态。
基于上述磁盘漫游元数据的组织方式,磁盘阵列卡控制器或磁盘漫游管理模块从内存中申请与待执行磁盘的数量相等的磁盘漫游元数据,以便利用各磁盘漫游元数据分别管理各待执行磁盘的磁盘漫游任务。
需要说明的是,若磁盘漫游元数据的长度超出了剩余待执行的磁盘分块的数量,则磁盘漫游元数据的剩余位置置为空即可。
对于S303来说,基于磁盘阵列卡控制器或磁盘漫游管理模块,以待执行磁盘为单位执行磁盘漫游任务,具体需要检验是否能够读取每个磁盘分块的数据且每个磁盘分块的数据可以通过校验。磁盘漫游任务具体为检测磁盘阵列各成员盘中各磁盘分块的读写性能以及数据一致性。则S303:以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以包括:
读取一个磁盘漫游元数据对应数量的磁盘分块到内存中;
若均能够读取到所有磁盘分块,则根据磁盘分块中的校验分块对磁盘分块中的数据分块进行校验;
若数据分块均通过校验,则确定完成当前磁盘漫游元数据对应的磁盘分块的磁盘漫游任务。
而若无法读取到某磁盘分块,或某组磁盘分块中的数据分块无法通过校验模块的校验,则可以进行报错和/或生成故障日志以便进行磁盘漫游任务失败的追溯。
本申请实施例提供的磁盘漫游控制方法,通过根据待执行磁盘漫游任务的磁盘组的磁盘信息生成与待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据,并需保证一个磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量;而后以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度。本申请所提供的磁盘漫游控制方法提出一种新的磁盘漫游元数据组织方式,即磁盘漫游元数据组织方式不再以条带为单位的位图元数据组织方式进行磁盘漫游,而是以磁盘为单位的磁盘漫游元数据组织方式来进行磁盘漫游,可以显著减少存放磁盘漫游元数据的内存资源,有效降低了内存资源消耗,以此提高了磁盘漫游效率,从而提高了磁盘阵列的容错能力和存储性能。
下面对本申请实施例三进行说明。
图4为本申请实施例提供的一种图3中S303的具体实施方式的流程图;图5为本申请实施例提供的一种磁盘漫游跟踪变量标记磁盘漫游元数据的示意图。
在上述实施例的基础上,本申请实施例进一步对基于新的磁盘漫游元数据的组织方式执行磁盘漫游任务的过程进行说明。
在本申请实施例提供的磁盘漫游控制方法中,S303:以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以包括:
S401:在以待执行磁盘为单位执行磁盘漫游任务时,设置磁盘漫游跟踪变量标记与待执行磁盘对应的磁盘漫游元数据。
S402:根据与待执行磁盘对应的磁盘漫游元数据确定待执行磁盘的磁盘漫游进度,直至完成对待执行磁盘的磁盘漫游任务。
在具体实施中,对于S401来说,磁盘漫游元数据的作用是指示对应磁盘分块的磁盘漫游状态,由此需要根据磁盘分块的磁盘漫游状态来修改磁盘漫游元数据。故可以基于磁盘阵列卡控制器创建磁盘漫游跟踪变量来执行修改磁盘漫游元数据的任务。若对各待执行磁盘的磁盘漫游任务是并行执行的,则可以设置一个磁盘漫游跟踪变量对应多个待执行磁盘,如磁盘漫游跟踪变量可以与磁盘阵列一一对应。若对各待执行磁盘的磁盘漫游任务是顺次执行的,则可以仅设置一个磁盘漫游跟踪变量对应所有待执行磁盘。
磁盘漫游跟踪变量用于根据磁盘漫游元数据指示磁盘漫游状态的方式来标记磁盘漫游元数据。如磁盘漫游元数据通过0、1数据来分别表示已成功执行磁盘漫游和未成功执行磁盘漫游,则磁盘漫游跟踪变量用于根据磁盘分块的磁盘漫游状态标记该磁盘分块在磁盘漫游元数据中对应的比特位。如磁盘漫游元数据通过多个比特位来指示一个磁盘分块的磁盘漫游状态,则磁盘漫游跟踪变量则根据磁盘分块的磁盘漫游状态标记该磁盘分块在磁盘漫游元数据中对应的多个比特位。
在执行磁盘漫游任务时,可以用比特长度(Bit_EXTENT)作为宏定义的单次漫游范围大小,比特长度为X时,代码为“#define Bit_EXTENT X”。比特长度即磁盘漫游元数据的比特长度。
如图5所示,以一个磁盘漫游元数据的比特长度为32位,对应一组32个磁盘分块,则在针对改组磁盘分块的磁盘漫游任务时,将所有磁盘分块的数据读到内存中,若都能读取到,则根据其中校验分块依次验证各数据分块通过校验后,将该数据分块的磁盘漫游状态置为已成功执行磁盘漫游。如以0代表未成功执行磁盘漫游,以1代表已成功执行磁盘漫游,则在当前的磁盘漫游任务中,设置磁盘漫游跟踪变量根据数据分块的磁盘漫游状态依次标记磁盘漫游元数据内的各个(组)比特位。
对于S402,判断磁盘漫游跟踪标量标记的磁盘漫游元数据的比特位置是否表示已成功执行磁盘漫游,如果是则跳过该比特位置,如果否则继续执行该比特位置对应的磁盘分块的磁盘漫游任务,执行完毕后移动到下一个(组)比特位置。
需要说明的是,S401和S402是循环执行的步骤,直至完成所有待执行磁盘的磁盘漫游任务。
下面对本申请实施例四进行说明。
图6为本申请实施例提供的另一种图3中S303的具体实施方式的流程图。
在本申请实施例二中介绍了磁盘漫游元数据的长度决定了单个磁盘漫游任务的范围。为减少单个磁盘漫游任务所占用的内存资源,可以基于本申请实施例二所提供的磁盘漫游元数据的长度下限来生成磁盘漫游元数据,从而减少一次读取到内存中的磁盘分块的数量。
则在对待执行磁盘执行磁盘漫游任务时,需要顺次对各组磁盘分块循环执行,复用该待执行磁盘对应的磁盘漫游元数据。则在上述实施例的基础上,S303:以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以包括:
S601:根据磁盘漫游元数据的比特位数确定单个磁盘漫游任务所要执行的分块数量。
S602:自内存中申请与磁盘阵列中的磁盘数量相等的磁盘漫游元数据分配至磁盘阵列中的各待执行磁盘,并创建磁盘漫游跟踪变量。
S603:自待执行磁盘的首个磁盘分块起,自磁盘漫游元数据的第一个比特位开始,若当前磁盘分块在对应的磁盘漫游元数据中对应的比特位置为第一状态,则执行对当前磁盘分块的磁盘漫游任务,并在执行完毕后控制磁盘漫游跟踪变量将当前磁盘分块对应的比特位置置为第二状态,直至完成对磁盘漫游元数据对应的所有磁盘分块的磁盘漫游任务。
S604:若待执行磁盘还存在未执行磁盘漫游任务的磁盘分块,则将磁盘漫游元数据移动磁盘漫游元数据的比特位数并将磁盘漫游元数据的各比特位置置为第一状态,以执行下一组磁盘分块的磁盘漫游任务,直至完成待执行磁盘的所有磁盘分块的磁盘漫游任务。
其中,第一状态与第二状态不同。
在具体实施中,对于S601和S602,基于磁盘阵列卡控制器或磁盘漫游管理模块,从(磁盘阵列卡控制器)的内存中申请与单个磁盘漫游任务对应的磁盘分块数量的对应长度的磁盘漫游元数据。例如为所有待执行磁盘均申请一个无符号四字节数据作为磁盘漫游元数据,磁盘漫游管理模块将所有无符号四字节数据都展开为32个比特位,用32个比特位管理则单个磁盘漫游任务对应32个磁盘分块。同时创建磁盘漫游跟踪变量以跟踪标记磁盘漫游元数据的比特位。
对于S603和S604,自待执行磁盘的首个磁盘分块起,分组依次执行对各磁盘分块的磁盘漫游任务。在执行磁盘漫游任务时,读取单个磁盘漫游任务对应数量的磁盘分块到内存中,将磁盘漫游元数据与当前组的各磁盘分块对应,以确定用于标识每个磁盘分块的磁盘漫游状态的比特位置,利用磁盘漫游跟踪变量根据对应磁盘分块的磁盘漫游状态来对磁盘漫游元数据的各比特位置进行标记。
在设置磁盘漫游元数据的一个比特位用于标识一个磁盘分块的磁盘漫游任务的执行状态时,可以记第一状态和第二状态分别为0和1。或者也可以设置磁盘漫游元数据的多个比特位用于标识一个磁盘分块的磁盘漫游任务的执行状态。以磁盘漫游元数据的一个比特位用于标识一个磁盘分块的磁盘漫游任务的执行状态为例,以0为第一状态(即未成功执行磁盘漫游),以1为第二状态(即已成功执行磁盘漫游),则可以如图5所示的,以磁盘漫游元数据展开为32个比特位为例,在当前磁盘漫游任务中,先初始化各比特位为0,磁盘漫游跟踪变量自磁盘漫游元数据的首个比特位开始进行状态标记,磁盘漫游管理模块根据磁盘漫游跟踪变量的标记确定已成功执行磁盘漫游的磁盘分块和未成功执行磁盘漫游的分块,若磁盘漫游元数据跟踪标记的比特位为1则跳过该比特位然后将门限指针移动到下一个比特位,为0则执行该比特位标识的分块的磁盘漫游任务,执行完毕后移动到下一个比特位。在执行完当前组磁盘分块的磁盘漫游任务后,磁盘漫游元数据的各比特位均已被置为1,在需要继续执行下一组磁盘分块的磁盘漫游任务时,则将磁盘漫游元数据移位到下一组磁磁盘分块的对应位置,再将各比特位初始化为0,再对下一组的磁盘分块执行磁盘漫游任务。以此循环,直至完成当前待执行磁盘上的磁盘漫游任务。
具体可以采用磁盘漫游跟踪变量来实现磁盘漫游元数据的移位。则S603中完成对磁盘漫游元数据对应的所有磁盘分块的磁盘漫游任务,具体可以包括:控制磁盘漫游跟踪变量每移动磁盘分块对应的比特位置后,记录磁盘漫游跟踪变量在当前磁盘漫游任务中的第一偏移量;若第一偏移量等于磁盘漫游元数据的比特位数,则确定完成对磁盘漫游元数据对应的所有磁盘分块的磁盘漫游任务。具体地,磁盘漫游跟踪变量在磁盘漫游元数据上每移动一位,均判断当前的偏移量是否等于磁盘漫游元数据的比特长度(Bit_EXTENT),如果等于,则对磁盘漫游元数据进行一个32位的移动,同时将磁盘漫游跟踪变量标记磁盘漫游元数据内的第一个比特位。进一步来说,磁盘漫游管理模块将所有无符号四字节数据初始化为0,这样该数据展开成32个比特位后每个比特位都为0,因此磁盘漫游元数据对应的所有磁盘分块都需要执行磁盘漫游任务,当第一个磁盘漫游元数据内的32个比特位都变为1后即32个磁盘分块都执行完磁盘漫游任务后,对磁盘漫游元数据进行一个32位的移动,并将无符号四字节数据赋值为零,然后使用磁盘漫游跟踪变量标记磁盘漫游元数据内的第一个比特位,继续执行下一组磁盘分块的磁盘漫游任务。以此循环,直至执行完待执行磁盘的所有磁盘分块的磁盘漫游任务。
通过本申请实施例提供的磁盘漫游控制方法,各待执行磁盘对应的磁盘漫游元数据在各待执行磁盘上循环使用,单次磁盘漫游任务所需占用的内存空间进一步减小。
下面对本申请实施例五进行说明。
在本申请实施例二中介绍了磁盘漫游元数据的长度下限和磁盘漫游元数据的长度上限。磁盘漫游元数据的长度决定了单个磁盘漫游任务所涉及的磁盘分块的数量,即决定了单个磁盘漫游任务中需要占用内存的空间大小。可以理解的是,磁盘漫游元数据的长度越短,则单个磁盘漫游任务中读取到内存的磁盘分块的数量越小,占用的内存空间就越小;磁盘漫游元数据的长度越长,则单个磁盘漫游任务中读取到内存的磁盘分块的数据越大,占用的内存就越大,但执行效率会随之提高。
故在本申请实施例中,磁盘漫游控制方法还可以包括:
根据为待执行磁盘组的磁盘漫游任务所划分的存储空间确定各磁盘漫游元数据的第一存储空间;
根据第一存储空间的大小确定磁盘漫游元数据的比特位数。
在具体实施中,为待执行磁盘组划分的内存空间需要用于存储所有磁盘漫游元数据和一次执行的磁盘漫游任务中的所有磁盘分块。如果各待执行磁盘的磁盘漫游任务顺次执行,则该内存空间可以划分为用于存储所有磁盘漫游元数据的空间和用于存储单个磁盘漫游任务的磁盘分块的存储空间;如果各待执行磁盘的磁盘漫游任务存在并行执行,则该内存空间可以划分为用于存储所有磁盘漫游元数据的空间和用于存储并行执行的磁盘漫游任务的磁盘分块的存储空间。则可以从中确定为磁盘漫游元数据的存储空间,进而确定单个磁盘漫游元数据的存储空间,确定单个磁盘漫游元数据的比特位数。
通过这种自适应调节磁盘漫游元数据的比特位数的方式,进一步提高对存储资源的利用率。
下面对本申请实施例六进行说明。
为进一步提高磁盘漫游效率,在上述实施例的基础上,在本申请实施例提供的磁盘漫游控制方法中,S303:以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以为:
同时基于多个协程分别处理不同待执行磁盘的磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度。
通过并行执行多个待执行磁盘的磁盘漫游任务,从而充分利用计算资源和存储资源,进一步提高磁盘漫游效率。具体地,协程可以与与待执行磁盘组中的磁盘阵列一一对应。即为每个磁盘阵列创建一个协程,各协程并行执行各磁盘阵列中的磁盘漫游任务。各协程并行执行的过程可以参考本申请上述实施例中对单个待执行磁盘上执行磁盘漫游任务的介绍,直至完成各协程负责的待执行磁盘均执行完毕,完成整个待执行磁盘组的磁盘漫游任务。
而为了灵活利用资源,本申请实施例提供的磁盘漫游控制方法还可以包括:
根据所在存储系统的资源调整为磁盘漫游任务所分配的协程数量。
具体来说,可以根据所在存储系统为磁盘漫游任务所划分的计算资源和内存资源来调整为磁盘漫游任务分配的协程数量,在确定协程数量后再根据磁盘阵列的数量或待执行磁盘的数量划分各协程所负责的待执行磁盘,以并发执行多个待执行磁盘的磁盘漫游任务,在提高磁盘漫游效率的同时充分利用存储系统资源。
上文详述了磁盘漫游控制方法对应的各个实施例,在此基础上,本申请还公开了与上述方法对应的磁盘漫游控制装置、设备及计算机可读存储介质。
下面对本申请实施例七进行说明。
图7为本申请实施例提供的一种磁盘漫游控制装置的结构示意图。
如图7所示,本申请实施例提供的磁盘漫游控制装置包括:
接收单元701,用于接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息;
生成单元702,用于根据待执行磁盘组的磁盘信息生成与待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据;
控制单元703,用于以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度;
其中,一个磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量。
其中,接收单元701接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体可以包括:
接收并分析用户命令得到待执行磁盘组中待执行磁盘的数量、待执行磁盘构成的磁盘阵列的级别,以及待执行磁盘组中磁盘阵列的数量;
以待执行磁盘的数量、磁盘阵列的级别和磁盘阵列的数量为待执行磁盘组的磁盘信息。
可选的,用户命令具体可以为命令行或图形化界面命令。
可选的,接收单元701接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体可以为:
接收所在磁盘阵列卡存储系统的磁盘阵列卡控制器发送的待执行磁盘组的磁盘信息;
待执行磁盘的磁盘信息包括待执行磁盘的数量、磁盘阵列的级别和磁盘阵列的数量。
进一步的,控制单元703以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以包括:
读取一个磁盘漫游元数据对应数量的磁盘分块到内存中;
若均能够读取到所有磁盘分块,则根据磁盘分块中的校验分块对磁盘分块中的数据分块进行校验;
若数据分块均通过校验,则确定完成当前磁盘漫游元数据对应的磁盘分块的磁盘漫游任务。
进一步的,控制单元703以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以包括:
在以待执行磁盘为单位执行磁盘漫游任务时,设置磁盘漫游跟踪变量标记与待执行磁盘对应的磁盘漫游元数据;
根据与待执行磁盘对应的磁盘漫游元数据确定待执行磁盘的磁盘漫游进度,直至完成对待执行磁盘的磁盘漫游任务。
进一步的,控制单元703以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以包括:
根据磁盘漫游元数据的比特位数确定单个磁盘漫游任务所要执行的分块数量;
自内存中申请与磁盘阵列中的磁盘数量相等的磁盘漫游元数据分配至磁盘阵列中的各待执行磁盘,并创建磁盘漫游跟踪变量;
自待执行磁盘的首个磁盘分块起,自磁盘漫游元数据的第一个比特位开始,若当前磁盘分块在对应的磁盘漫游元数据中对应的比特位置为第一状态,则执行对当前磁盘分块的磁盘漫游任务,并在执行完毕后控制磁盘漫游跟踪变量将当前磁盘分块对应的比特位置置为第二状态,直至完成对磁盘漫游元数据对应的所有磁盘分块的磁盘漫游任务;
若待执行磁盘还存在未执行磁盘漫游任务的磁盘分块,则将磁盘漫游元数据移动磁盘漫游元数据的比特位数并将磁盘漫游元数据的各比特位置置为第一状态,以执行下一组磁盘分块的磁盘漫游任务,直至完成待执行磁盘的所有磁盘分块的磁盘漫游任务;
其中,第一状态与第二状态不同。
其中,完成对磁盘漫游元数据对应的所有磁盘分块的磁盘漫游任务,具体可以包括:
控制磁盘漫游跟踪变量每移动磁盘分块对应的比特位置后,记录磁盘漫游跟踪变量在当前磁盘漫游任务中的第一偏移量;
若第一偏移量等于磁盘漫游元数据的比特位数,则确定完成对磁盘漫游元数据对应的所有磁盘分块的磁盘漫游任务。
可选的,磁盘漫游元数据的一个比特位用于标识一个磁盘分块的磁盘漫游任务的执行状态;
第一状态和第二状态分别为0和1。
进一步的,磁盘漫游元数据的多个比特位用于标识一个磁盘分块的磁盘漫游任务的执行状态。
进一步的,一个磁盘漫游元数据的比特位数大于或等于待执行磁盘组中待执行磁盘数量最多的磁盘阵列的磁盘数量。
进一步的,磁盘漫游元数据具体可以为无符号四字节数据。
进一步的,本申请实施例提供的磁盘漫游控制装置还可以包括:
确定单元,用于根据为待执行磁盘组的磁盘漫游任务所划分的存储空间确定各磁盘漫游元数据的第一存储空间;
第一调整单元,用于根据第一存储空间的大小确定磁盘漫游元数据的比特位数。
可选的,控制单元703以待执行磁盘为单位执行磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度,具体可以为:
同时基于多个协程分别处理不同待执行磁盘的磁盘漫游任务,并基于磁盘漫游元数据管理待执行磁盘的磁盘漫游进度。
进一步的,协程具体可以与待执行磁盘组中的磁盘阵列一一对应。
进一步的,本申请实施例提供的磁盘漫游控制装置还可以包括:
第二调整单元,用于根据所在存储系统的资源调整为磁盘漫游任务所分配的协程数量。
可选的,本申请实施例提供的磁盘漫游控制装置可以应用于磁盘阵列卡存储系统的磁盘阵列卡控制器。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例八进行说明。
图8为本申请实施例提供的一种磁盘漫游控制设备的结构示意图。
如图8所示,本申请实施例提供的磁盘漫游控制设备包括:
存储器810,用于存储计算机程序811;
处理器820,用于执行计算机程序811,该计算机程序811被处理器820执行时实现如上述任意一项实施例所述磁盘漫游控制方法的步骤。
其中,处理器820可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器820可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器820也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器820可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器820还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器810可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器810还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器810至少用于存储以下计算机程序811,其中,该计算机程序811被处理器820加载并执行之后,能够实现前述任一实施例公开的磁盘漫游控制方法中的相关步骤。另外,存储器810所存储的资源还可以包括操作系统812和数据813等,存储方式可以是短暂存储或者永久存储。其中,操作系统812可以为Windows。数据813可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,磁盘漫游控制设备还可包括有显示屏830、电源840、通信接口850、输入输出接口860、传感器870以及通信总线880。
本领域技术人员可以理解,图8中示出的结构并不构成对磁盘漫游控制设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的磁盘漫游控制设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的磁盘漫游控制方法,效果同上。
下面对本申请实施例九进行说明。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。
为此,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如磁盘漫游控制方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-OnlyMemory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的磁盘漫游控制方法的步骤,效果同上。
以上对本申请所提供的一种磁盘漫游控制方法、装置、设备及计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (20)

1.一种磁盘漫游控制方法,其特征在于,包括:
接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息;
根据所述待执行磁盘组的磁盘信息生成与所述待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据;
以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度;
其中,一个所述磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量。
2.根据权利要求1所述的磁盘漫游控制方法,其特征在于,所述接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体包括:
接收并分析用户命令得到所述待执行磁盘组中所述待执行磁盘的数量、所述待执行磁盘构成的所述磁盘阵列的级别,以及所述待执行磁盘组中所述磁盘阵列的数量;
以所述待执行磁盘的数量、所述磁盘阵列的级别和所述磁盘阵列的数量为所述待执行磁盘组的磁盘信息。
3.根据权利要求2所述的磁盘漫游控制方法,其特征在于,所述用户命令具体为命令行或图形化界面命令。
4.根据权利要求1所述的磁盘漫游控制方法,其特征在于,所述接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息,具体为:
接收所在磁盘阵列卡存储系统的磁盘阵列卡控制器发送的所述待执行磁盘组的磁盘信息;
所述待执行磁盘的磁盘信息包括所述待执行磁盘的数量、所述磁盘阵列的级别和所述磁盘阵列的数量。
5.根据权利要求1所述的磁盘漫游控制方法,其特征在于,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体包括:
读取一个所述磁盘漫游元数据对应数量的磁盘分块到内存中;
若均能够读取到所有所述磁盘分块,则根据所述磁盘分块中的校验分块对所述磁盘分块中的数据分块进行校验;
若所述数据分块均通过校验,则确定完成当前所述磁盘漫游元数据对应的所述磁盘分块的所述磁盘漫游任务。
6.根据权利要求1所述的磁盘漫游控制方法,其特征在于,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体包括:
在以所述待执行磁盘为单位执行所述磁盘漫游任务时,设置磁盘漫游跟踪变量标记与所述待执行磁盘对应的所述磁盘漫游元数据;
根据与所述待执行磁盘对应的所述磁盘漫游元数据确定所述待执行磁盘的磁盘漫游进度,直至完成对所述待执行磁盘的所述磁盘漫游任务。
7.根据权利要求1所述的磁盘漫游控制方法,其特征在于,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体包括:
根据所述磁盘漫游元数据的比特位数确定单个所述磁盘漫游任务所要执行的分块数量;
自内存中申请与所述磁盘阵列中的磁盘数量相等的所述磁盘漫游元数据分配至所述磁盘阵列中的各所述待执行磁盘,并创建磁盘漫游跟踪变量;
自所述待执行磁盘的首个磁盘分块起,自所述磁盘漫游元数据的第一个比特位开始,若当前磁盘分块在对应的所述磁盘漫游元数据中对应的比特位置为第一状态,则执行对所述当前磁盘分块的所述磁盘漫游任务,并在执行完毕后控制所述磁盘漫游跟踪变量将所述当前磁盘分块对应的比特位置置为第二状态,直至完成对所述磁盘漫游元数据对应的所有所述磁盘分块的所述磁盘漫游任务;
若所述待执行磁盘还存在未执行所述磁盘漫游任务的所述磁盘分块,则将所述磁盘漫游元数据移动所述磁盘漫游元数据的比特位数并将所述磁盘漫游元数据的各比特位置置为所述第一状态,以执行下一组所述磁盘分块的所述磁盘漫游任务,直至完成所述待执行磁盘的所有磁盘分块的所述磁盘漫游任务;
其中,所述第一状态与所述第二状态不同。
8.根据权利要求7所述的磁盘漫游控制方法,其特征在于,所述完成对所述磁盘漫游元数据对应的所有所述磁盘分块的所述磁盘漫游任务,具体包括:
控制所述磁盘漫游跟踪变量每移动所述磁盘分块对应的比特位置后,记录所述磁盘漫游跟踪变量在当前所述磁盘漫游任务中的第一偏移量;
若所述第一偏移量等于所述磁盘漫游元数据的比特位数,则确定完成对所述磁盘漫游元数据对应的所有所述磁盘分块的所述磁盘漫游任务。
9.根据权利要求7所述的磁盘漫游控制方法,其特征在于,所述磁盘漫游元数据的一个比特位用于标识一个所述磁盘分块的所述磁盘漫游任务的执行状态;
所述第一状态和所述第二状态分别为0和1。
10.根据权利要求7所述的磁盘漫游控制方法,其特征在于,所述磁盘漫游元数据的多个比特位用于标识一个所述磁盘分块的所述磁盘漫游任务的执行状态。
11.根据权利要求1所述的磁盘漫游控制方法,其特征在于,一个所述磁盘漫游元数据的比特位数大于或等于所述待执行磁盘组中所述待执行磁盘数量最多的所述磁盘阵列的磁盘数量。
12.根据权利要求1所述的磁盘漫游控制方法,其特征在于,所述磁盘漫游元数据具体为无符号四字节数据。
13.根据权利要求1至12任意一项所述的磁盘漫游控制方法,其特征在于,还包括:
根据为所述待执行磁盘组的所述磁盘漫游任务所划分的存储空间确定各所述磁盘漫游元数据的第一存储空间;
根据所述第一存储空间的大小确定所述磁盘漫游元数据的比特位数。
14.根据权利要求1至12任意一项所述的磁盘漫游控制方法,其特征在于,所述以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度,具体为:
同时基于多个协程分别处理不同所述待执行磁盘的所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度。
15.根据权利要求14所述的磁盘漫游控制方法,其特征在于,所述协程具体与所述待执行磁盘组中的所述磁盘阵列一一对应。
16.根据权利要求14所述的磁盘漫游控制方法,其特征在于,还包括:
根据所在存储系统的资源调整为所述磁盘漫游任务所分配的协程数量。
17.根据权利要求1所述的磁盘漫游控制方法,其特征在于,应用于磁盘阵列卡存储系统的磁盘阵列卡控制器。
18.一种磁盘漫游控制装置,其特征在于,包括:
接收单元,用于接收待执行磁盘漫游任务的待执行磁盘组的磁盘信息;
生成单元,用于根据所述待执行磁盘组的磁盘信息生成与所述待执行磁盘组中各待执行磁盘对应的磁盘漫游元数据;
控制单元,用于以所述待执行磁盘为单位执行所述磁盘漫游任务,并基于所述磁盘漫游元数据管理所述待执行磁盘的磁盘漫游进度;
其中,一个所述磁盘漫游元数据的比特位数大于或等于对应的磁盘阵列的磁盘数量。
19.一种磁盘漫游控制设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至17任意一项所述磁盘漫游控制方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至17任意一项所述磁盘漫游控制方法的步骤。
CN202310356855.7A 2023-04-06 2023-04-06 磁盘漫游控制方法、装置、设备及计算机可读存储介质 Active CN116069266B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310356855.7A CN116069266B (zh) 2023-04-06 2023-04-06 磁盘漫游控制方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310356855.7A CN116069266B (zh) 2023-04-06 2023-04-06 磁盘漫游控制方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN116069266A true CN116069266A (zh) 2023-05-05
CN116069266B CN116069266B (zh) 2023-06-20

Family

ID=86170140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310356855.7A Active CN116069266B (zh) 2023-04-06 2023-04-06 磁盘漫游控制方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116069266B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000034323A (ko) * 1998-11-28 2000-06-15 윤종용 레이드 시스템 구성시 유연성을 부여하는 디바이스 로밍 방법
CN101776984A (zh) * 2010-02-20 2010-07-14 浪潮(北京)电子信息产业有限公司 在存储系统中处理磁盘漫游的方法和装置
CN108255410A (zh) * 2016-12-28 2018-07-06 华为技术有限公司 一种处理磁盘漫游的方法、装置和设备
CN109213429A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法和设备
CN115543696A (zh) * 2022-11-30 2022-12-30 苏州浪潮智能科技有限公司 一种磁盘阵列重构任务加速方法、系统、存储介质及设备
CN115757207A (zh) * 2022-11-18 2023-03-07 苏州浪潮智能科技有限公司 缓存状态管理方法、装置、通信设备及存储介质
CN115857790A (zh) * 2021-09-23 2023-03-28 华为技术有限公司 一种存储设备、数据存储方法及存储系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000034323A (ko) * 1998-11-28 2000-06-15 윤종용 레이드 시스템 구성시 유연성을 부여하는 디바이스 로밍 방법
CN101776984A (zh) * 2010-02-20 2010-07-14 浪潮(北京)电子信息产业有限公司 在存储系统中处理磁盘漫游的方法和装置
CN108255410A (zh) * 2016-12-28 2018-07-06 华为技术有限公司 一种处理磁盘漫游的方法、装置和设备
CN109213429A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 存储管理方法和设备
CN115857790A (zh) * 2021-09-23 2023-03-28 华为技术有限公司 一种存储设备、数据存储方法及存储系统
CN115757207A (zh) * 2022-11-18 2023-03-07 苏州浪潮智能科技有限公司 缓存状态管理方法、装置、通信设备及存储介质
CN115543696A (zh) * 2022-11-30 2022-12-30 苏州浪潮智能科技有限公司 一种磁盘阵列重构任务加速方法、系统、存储介质及设备

Also Published As

Publication number Publication date
CN116069266B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
CN106708425B (zh) 分布式多模存储管理
TWI710900B (zh) 儲存裝置及方法
US9684591B2 (en) Storage system and storage apparatus
TWI702495B (zh) 對使用者資料執行選擇性下伏暴露映射之設備、方法以及多模式儲存裝置
TWI716416B (zh) 儲存系統、用於管理儲存媒體的方法以及系統、操作儲存系統的方法、以及非暫存性電腦可讀媒體
CN111158587B (zh) 基于存储池虚拟化管理的分布式存储系统及数据读写方法
CN101414245B (zh) 存储装置以及使用该存储装置的数据存储方法
US6647460B2 (en) Storage device with I/O counter for partial data reallocation
US8639898B2 (en) Storage apparatus and data copy method
US20080177947A1 (en) Storage system and storage migration method
WO2009130848A1 (ja) ストレージシステム及びストレージシステムの制御方法
CN103534688B (zh) 数据恢复方法、存储设备和存储系统
US10564865B2 (en) Lockless parity management in a distributed data storage system
CN101567211A (zh) 一种提高磁盘可用性的方法和磁盘阵列控制器
EP2573689A1 (en) Method and device for implementing redundant array of independent disk protection in file system
US11256447B1 (en) Multi-BCRC raid protection for CKD
CN104778018A (zh) 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法
CN101566930B (zh) 虚拟磁盘驱动系统和方法
CN113811862A (zh) 存储驱动器的动态性能等级调整
EP3798852B1 (en) System controller and system garbage recovery method
CN116339644B (zh) 一种独立磁盘冗余阵列创建方法、装置、设备及介质
JP2007524932A (ja) パリティデータを生成するための方法、システム、及びプログラム
CN116483263A (zh) 一种存储系统的存储设备、存储系统
CN116069266B (zh) 磁盘漫游控制方法、装置、设备及计算机可读存储介质
CN114415968B (zh) 存储系统及其数据写入方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant