CN115993938B - 一种磁盘格式化方法、装置、设备和计算机可读存储介质 - Google Patents
一种磁盘格式化方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115993938B CN115993938B CN202310275185.6A CN202310275185A CN115993938B CN 115993938 B CN115993938 B CN 115993938B CN 202310275185 A CN202310275185 A CN 202310275185A CN 115993938 B CN115993938 B CN 115993938B
- Authority
- CN
- China
- Prior art keywords
- bitmap
- writing
- formatting
- node bitmap
- node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 abstract description 13
- 238000013500 data storage Methods 0.000 abstract description 4
- 108010001267 Protein Subunits Proteins 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001680 brushing effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请涉及数据存储技术领域,公开了一种磁盘格式化方法、装置、设备和计算机可读存储介质,在获取到磁盘的格式化指令时,读取磁盘所对应的格式化元数据;格式化元数据包括一个父节点位图和至少一个层级的子节点位图;查询父节点位图,以确定出具有写入标识的位图索引号。根据位图索引号所匹配的目标子节点位图,确定出数据写入位置。对数据写入位置对应的扇区进行格式化处理,并调整数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至父节点位图不存在写入标识,则结束格式化操作。采用位图对扇区的写入情况进行记录,在磁盘格式化操作时只需对写入数据的扇区执行格式化操作,提升磁盘格式化的处理效率。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种磁盘格式化方法、装置、设备和计算机可读存储介质。
背景技术
随着互联网技术的发展,网络上的数据量成井喷式增长。数据量的增长会给企业服务器带来巨大的压力,如何对如此海量的数据进行存储是当前需要考虑的重要问题。
存储服务器是企业用来管理存储服务数据的重要载体,独立磁盘组成的具有冗余性的阵列(Redundant Array of Independent Disks,RAID)在存储服务器中扮演至关重要的角色。RAID通常以条带的方式将数据分散到各个硬盘上以达到快速读写的能力,一些类别的RAID阵列也能够提供数据的冗余纠错能力,提升数据存储的可靠性。
对RAID阵列上的机械硬盘(Hard Disk Drive,HDD)进行格式化是经常使用到的功能,磁盘格式化主要是为了擦除磁盘中的原有数据,防止磁盘划分到新的业务后,原有的残留数据被恶意获取访问到,从而威胁到数据存储的安全。
传统方式会将整块磁盘的所有扇区进行擦除操作,对所有扇区进行写0或写1操作,安全格式化更是需要进行多次写0/1和写随机数,这通常需要耗费几十到上百个小时,严重影响存储空间在时间上的使用率。
可见,如何提升磁盘格式化的处理效率,是本领域技术人员需要解决的问题。
发明内容
本申请实施例的目的是提供一种磁盘格式化方法、装置、设备和计算机可读存储介质,可以提升磁盘格式化的处理效率。
为解决上述技术问题,本申请实施例提供一种磁盘格式化方法,所述方法包括:
在获取到磁盘的格式化指令的情况下,读取所述磁盘所对应的格式化元数据;其中,所述格式化元数据包括一个父节点位图和至少一个层级的子节点位图;所述子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识;
查询所述父节点位图,以确定出具有写入标识的位图索引号;
根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置;
对所述数据写入位置对应的扇区进行格式化处理,并调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至所述父节点位图不存在写入标识,则结束格式化操作。
可选地,所述查询所述父节点位图,以确定出具有写入标识的位图索引号包括:
依次遍历所述父节点位图,在检测到具有写入标识的位图索引号的情况下,执行所述根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置的步骤。
可选地,所述查询所述父节点位图,以确定出具有写入标识的位图索引号包括:
统计所述父节点位图中所有具有写入标识的位图索引号。
可选地,在所述子节点位图有多个层级的情况下,所述根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置包括:
依据所述父节点位图中每一位与第一层级中各子节点位图的对应关系,确定出所述位图索引号对应的第一层级目标子节点位图;
依次遍历所述第一层级目标子节点位图,在检测到具有写入标识的第一层级位图索引号的情况下,依据所述第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出所述第一层级位图索引号对应的第二层级目标子节点位图;
在所述第二层级目标子节点位图为最底层子节点位图的情况下,统计所述第二层级目标子节点位图中具有写入标识的第二层级位图索引号;
将所述第二层级位图索引号转换为逻辑区块地址;
相应的,所述对所述数据写入位置对应的扇区进行格式化处理包括:
对所述逻辑区块地址对应的扇区进行格式化处理。
可选地,在所述依据所述第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出所述第一层级位图索引号对应的第二层级目标子节点位图之后还包括:
在所述第二层级目标子节点位图不为最底层子节点位图的情况下,将所述第二层级目标子节点位图作为第一层级目标子节点位图,返回所述依次遍历所述第一层级目标子节点位图的步骤。
可选地,所述调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识包括:
每完成一个扇区的格式化处理,则将所述最底层子节点位图中与所述扇区匹配的位的写入标识调整为非写入标识;
每完成一个当前层级子节点位图的标识调整,则将上层级节点位图中与当前层级子节点位图匹配的位的写入标识调整为非写入标识;其中,所述上层级节点位图为所述当前层级子节点位图所属的上一层级子节点位图或父节点位图。
可选地,所述每完成一个当前层级子节点位图的标识调整,则将上层级节点位图中与当前层级子节点位图匹配的位的写入标识调整为非写入标识包括:
每完成一个最底层子节点位图的标识调整,则将上一层级子节点位图中与所述最底层子节点位图匹配的位的写入标识调整为非写入标识;
每完成一个上一层级子节点位图的标识调整,则将与所述上一层级子节点位图相邻的前一层级子节点位图中与所述上一层级子节点位图匹配的位的写入标识调整为非写入标识,直至完成所述父节点位图中所有写入标识的调整。
可选地,在所述子节点位图只有一个层级的情况下,所述根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置包括:
依据所述父节点位图中每一位与各子节点位图的对应关系,确定出所述位图索引号对应的目标子节点位图;
遍历所述目标子节点位图,以筛选出所述目标子节点位图中具有写入标识的子节点位图索引号;
将所述子节点位图索引号转换为逻辑区块地址。
可选地,所述调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识包括:
每完成一个扇区的格式化处理,则将所述目标子节点位图中与所述扇区匹配的位的写入标识调整为非写入标识;
每完成一个目标子节点的标识调整,则将所述父节点位图中与所述目标子节点位图匹配的位的写入标识调整为非写入标识。
可选地,还包括:
在不存在所述磁盘对应的格式化元数据的情况下,对所述磁盘分配一个父节点位图;
对所述磁盘所有扇区进行格式化处理,并对所述磁盘对应的父节点位图的每一位均设置非写入标识。
可选地,还包括:
在系统重启的情况下,从磁盘中读取格式化元数据,并将所述格式化元数据写入内存。
可选地,所述从磁盘中读取格式化元数据,并将所述格式化元数据写入内存包括:
按照各位图存储的先后顺序以及各位图所占用的存储空间,依次从磁盘中读取所述格式化元数据中包含的各位图对应的元数据;其中,所述位图包括父节点位图和各层级子节点位图;
将各位图对应的元数据按照层级关系写入内存。
可选地,在所述子节点位图只有一个层级的情况下,所述按照各位图存储的先后顺序以及各位图所占用的存储空间,依次从磁盘中读取所述格式化元数据中包含的各位图对应的元数据包括:
按照先后顺序从所述格式化元数据中读取第一容量的第一格式化元数据;其中,所述第一容量为所述父节点位图所占用的容量;
将所述第一格式化元数据转换为父节点位图;
在遍历到所述父节点位图中具有写入标识的第一位图索引号的情况下,从所述格式化元数据中读取与所述第一格式化元数据后向相邻的第二容量的第二格式化元数据;其中,所述第二容量为与所述父节点位图相邻层级的一个子节点位图所占用的容量;
将所述第二格式化元数据作为所述第一位图索引号对应的子节点位图。
可选地,还包括:
在系统执行断电操作的情况下,在断电前将内存中记录的父节点位图和子节点位图下刷到对应的磁盘。
可选地,还包括:
在接收到携带有目标逻辑区块地址和数据长度的写入指令的情况下,依据所述父节点位图每位所表征的内存空间、所述目标逻辑区块地址和所述数据长度,确定出匹配的目标位图索引号;
在所述父节点位图中所述目标位图索引号所在的位设置有写入标识的情况下,根据所述数据长度以及所述目标位图索引号,依次对匹配的子节点位图的相应位设置写入标识。
可选地,所述根据所述数据长度以及所述目标位图索引号,依次对匹配的子节点位图的相应位设置写入标识包括:
依据所述父节点位图中每一位与子节点位图的对应关系以及所述目标位图索引号,确定出匹配的子节点位图;
依据所述数据长度,确定出所述匹配的子节点位图中与写入数据相对应的位,对与写入数据相对应的位设置写入标识。
可选地,还包括:
在所述父节点位图中所述目标位图索引号所在的位未设置写入标识的情况下,对所述目标位图索引号所在的位设置写入标识;根据所述数据长度以及所述目标位图索引号,构建匹配的子节点位图,并向所述匹配的子节点位图的相应位设置写入标识。
本申请实施例还提供了一种磁盘格式化装置,所述装置包括读取单元、查询单元、确定单元、格式化单元和调整单元;
所述读取单元,用于在获取到磁盘的格式化指令的情况下,读取所述磁盘所对应的格式化元数据;其中,所述格式化元数据包括一个父节点位图和至少一个层级的子节点位图;所述子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识;
所述查询单元,用于查询所述父节点位图,以确定出具有写入标识的位图索引号;
所述确定单元,用于根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置;
所述格式化单元,用于对所述数据写入位置对应的扇区进行格式化处理;
所述调整单元,用于调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至所述父节点位图不存在写入标识,则结束格式化操作。
可选地,所述查询单元用于依次遍历所述父节点位图,在检测到具有写入标识的位图索引号的情况下,执行所述根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置的步骤。
可选地,所述查询单元用于统计所述父节点位图中所有具有写入标识的位图索引号。
可选地,在所述子节点位图有多个层级的情况下,所述确定单元包括子节点位图确定子单元、遍历子单元、统计子单元和转换子单元;
所述子节点位图确定子单元,用于依据所述父节点位图中每一位与第一层级中各子节点位图的对应关系,确定出所述位图索引号对应的第一层级目标子节点位图;
所述遍历子单元,用于依次遍历所述第一层级目标子节点位图,在检测到具有写入标识的第一层级位图索引号的情况下,依据所述第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出所述第一层级位图索引号对应的第二层级目标子节点位图;
所述统计子单元,用于在所述第二层级目标子节点位图为最底层子节点位图的情况下,统计所述第二层级目标子节点位图中具有写入标识的第二层级位图索引号;
所述转换子单元,用于将所述第二层级位图索引号转换为逻辑区块地址;
相应的,所述格式化单元用于对所述逻辑区块地址对应的扇区进行格式化处理。
可选地,还包括作为单元;
所述作为单元,用于在所述第二层级目标子节点位图不为最底层子节点位图的情况下,将所述第二层级目标子节点位图作为第一层级目标子节点位图,返回所述依次遍历所述第一层级目标子节点位图的步骤。
可选地,所述调整单元包括底层位图调整子单元和上层位图调整子单元;
所述底层位图调整子单元,用于每完成一个扇区的格式化处理,则将所述最底层子节点位图中与所述扇区匹配的位的写入标识调整为非写入标识;
所述上层位图调整子单元,用于每完成一个当前层级子节点位图的标识调整,则将上层级节点位图中与当前层级子节点位图匹配的位的写入标识调整为非写入标识;其中,所述上层级节点位图为所述当前层级子节点位图所属的上一层级子节点位图或父节点位图。
可选地,所述上层位图调整子单元用于每完成一个最底层子节点位图的标识调整,则将上一层级子节点位图中与所述最底层子节点位图匹配的位的写入标识调整为非写入标识;
每完成一个上一层级子节点位图的标识调整,则将与所述上一层级子节点位图相邻的前一层级子节点位图中与所述上一层级子节点位图匹配的位的写入标识调整为非写入标识,直至完成所述父节点位图中所有写入标识的调整。
可选地,在所述子节点位图只有一个层级的情况下,所述确定单元包括子节点位图确定子单元、遍历子单元和转换子单元;
所述子节点位图确定子单元,用于依据所述父节点位图中每一位与各子节点位图的对应关系,确定出所述位图索引号对应的目标子节点位图;
所述遍历子单元,用于遍历所述目标子节点位图,以筛选出所述目标子节点位图中具有写入标识的子节点位图索引号;
所述转换子单元,用于将所述子节点位图索引号转换为逻辑区块地址。
可选地,所述调整单元包括子节点调整子单元和父节点调整子单元;
所述子节点调整子单元,用于每完成一个扇区的格式化处理,则将所述目标子节点位图中与所述扇区匹配的位的写入标识调整为非写入标识;
所述父节点调整子单元,用于每完成一个目标子节点的标识调整,则将所述父节点位图中与所述目标子节点位图匹配的位的写入标识调整为非写入标识。
可选地,还包括分配单元和设置单元;
所述分配单元,用于在不存在所述磁盘对应的格式化元数据的情况下,对所述磁盘分配一个父节点位图;
所述格式化单元,用于对所述磁盘所有扇区进行格式化处理;
所述设置单元,用于对所述磁盘对应的父节点位图的每一位均设置非写入标识。
可选地,还包括写入单元;
所述写入单元,用于在系统重启的情况下,从磁盘中读取格式化元数据,并将所述格式化元数据写入内存。
可选地,所述写入单元包括读取子单元和存储子单元;
所述读取子单元,用于按照各位图存储的先后顺序以及各位图所占用的存储空间,依次从磁盘中读取所述格式化元数据中包含的各位图对应的元数据;其中,所述位图包括父节点位图和各层级子节点位图;
所述存储子单元,用于将各位图对应的元数据按照层级关系写入内存。
可选地,在所述子节点位图只有一个层级的情况下,所述读取子单元用于按照先后顺序从所述格式化元数据中读取第一容量的第一格式化元数据;其中,所述第一容量为所述父节点位图所占用的容量;
将所述第一格式化元数据转换为父节点位图;
在遍历到所述父节点位图中具有写入标识的第一位图索引号的情况下,从所述格式化元数据中读取与所述第一格式化元数据后向相邻的第二容量的第二格式化元数据;其中,所述第二容量为与所述父节点位图相邻层级的一个子节点位图所占用的容量;
将所述第二格式化元数据作为所述第一位图索引号对应的子节点位图。
可选地,还包括下刷单元;
所述下刷单元,用于在系统执行断电操作的情况下,在断电前将内存中记录的父节点位图和子节点位图下刷到对应的磁盘。
可选地,还包括索引号确定单元和标识设置单元;
所述索引号确定单元,用于在接收到携带有目标逻辑区块地址和数据长度的写入指令的情况下,依据所述父节点位图每位所表征的内存空间、所述目标逻辑区块地址和所述数据长度,确定出匹配的目标位图索引号;
所述标识设置单元,用于在所述父节点位图中所述目标位图索引号所在的位设置有写入标识的情况下,根据所述数据长度以及所述目标位图索引号,依次对匹配的子节点位图的相应位设置写入标识。
可选地,所述标识设置单元用于依据所述父节点位图中每一位与子节点位图的对应关系以及所述目标位图索引号,确定出匹配的子节点位图;
依据所述数据长度,确定出所述匹配的子节点位图中与写入数据相对应的位,对与写入数据相对应的位设置写入标识。
可选地,还包括构建单元;
所述标识设置单元。用于在所述父节点位图中所述目标位图索引号所在的位未设置写入标识的情况下,对所述目标位图索引号所在的位设置写入标识;
所述构建单元,用于根据所述数据长度以及所述目标位图索引号,构建匹配的子节点位图;
所述标识设置单元还用于向所述匹配的子节点位图的相应位设置写入标识。
本申请实施例还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述磁盘格式化方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述磁盘格式化方法的步骤。
由上述技术方案可以看出,在获取到磁盘的格式化指令的情况下,读取磁盘所对应的格式化元数据;每个磁盘有其对应的格式化元数据,该格式化元数据中记录了数据的具体写入位置。为了提升数据写入位置的查询效率,格式化元数据可以包括一个父节点位图和至少一个层级的子节点位图;子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识。查询父节点位图,以确定出具有写入标识的位图索引号,每个位图索引号有其表征的存储空间,具有写入标识说明该位图索引号对应的存储空间写有数据。根据位图索引号所匹配的目标子节点位图,可以确定出具体的数据写入位置。对数据写入位置对应的扇区进行格式化处理,并调整数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至父节点位图不存在写入标识,说明已完成磁盘中所有写入数据的扇区的格式化操作,此时可以结束格式化操作。在该技术方案中,采用位图对扇区的写入情况进行记录,在磁盘格式化操作时只需对写入数据的扇区执行格式化操作,大幅度减少了磁盘在系统的整个使用周期中的格式化耗时,减少了业务等待时间,并能够减少格式化过程中的系统消耗。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种磁盘格式化方法的流程图;
图2为本申请实施例提供的一种多层级子节点位图下确定数据写入位置的方法的流程图;
图3为本申请实施例提供的一种单层级子节点位图下确定数据写入位置的方法的流程图;
图4为本申请实施例提供的一种二级位图对扇区的写入进行记录的示意图;
图5为本申请实施例提供的一种向磁盘写入数据时调整位图的方法的流程图;
图6为本申请实施例提供的一种磁盘格式化装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”,以及与“包括”和“具有”相关的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
接下来,详细介绍本申请实施例所提供的一种磁盘格式化方法。图1为本申请实施例提供的一种磁盘格式化方法的流程图,该方法包括:
S101:在获取到磁盘的格式化指令的情况下,读取磁盘所对应的格式化元数据。
传统方式中,磁盘格式化操作需要对整个磁盘的所有扇区都进行格式化操作,但是在实际应用中,并非所有扇区都会写满数据,为了降低磁盘的格式化操作所花费的时间,本申请实施例提出了采用格式化元数据的方式记录磁盘中哪些扇区写入了数据,这样只需对写入数据的扇区进行格式化操作即可,极大了提升了格式化操作的效率。
磁盘的读写往往以扇区为基本单位。考虑到磁盘包含的扇区数量往往较多,在本申请实施例中,为了提升数据写入位置的查询效率,可以将格式化元数据划分为一个父节点位图和至少一个层级的子节点位图;父节点位图中每一位可以表征一定的存储空间,父节点位图中每一位对应有子节点位图。在子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识。
在本申请实施例中,可以基于磁盘的容量大小划分子节点位图的层级。
子节点位图可以只有一个层级,该层级下包含有属于同一层级的多个子节点位图。子节点位图也可以有多个层级,每个层级可以包含多个子节点位图,各层级下的子节点位图具有层层递进的关系。
以子节点位图只有一个层级为例,对于一个4T的磁盘,父节点位图可以包含64位,父节点位图中每一位可以表征64K空间是否有数据写入。父节点位图中每一位有其对应的一个子节点位图,每一个子节点位图可以包含16位,每一位表征连续4K空间是否有数据写入。
S102:查询父节点位图,以确定出具有写入标识的位图索引号。
在实际应用中,可以采用数字或字母或者两者组合的方式作为写入标识,例如,可以采用数字“1”表示写入标识,采用数字“0”表示非写入标识。
为了便于介绍,后续均以“1”表示写入标识为例展开说明。
具有写入标识的位图索引号表示该位图索引号所表征的存储空间写有数据。由于父节点位图中包含的位图索引号所表征的存储空间范围较大,为了更加具体的确定出数据写入位置,可以执行S103。
在本申请实施例中,确定父节点位图中具有写入标识的位图索引号的方式可以有两种。第一种方式可以依次遍历父节点位图,在检测到具有写入标识的位图索引号的情况下,执行S103和S104,在完成一个子节点位图所对应的写入数据的扇区的格式化操作后,再返回S102,直至父节点位图不存在写入标识,则结束格式化操作。
第二种方式可以统计父节点位图中所有具有写入标识的位图索引号。按照第二种方式可以先将确定出父节点位图中所有具有写入标识的位图索引号进行缓存,然后再执行S103和S104。
S103:根据位图索引号所匹配的目标子节点位图,确定出数据写入位置。
子节点位图数量较多,为了便于区分,可以将位图索引号所匹配的子节点位图称作目标子节点位图。
在实际应用中,可以采用逻辑区块地址(Logical Block Address,LBA)表示数据写入位置。
根据目标子节点位图的层级关系,通过逐层分析的方式,可以确定出最底层子节点位图中具有写入标识的最底层子节点位图索引号。
父节点位图和子节点位图中每个索引号都有其所表征的存储空间,在实际应用中,根据索引号所表征的存储空间,可以将确定出的最底层子节点位图索引号转换为数据写入位置。
S104:对数据写入位置对应的扇区进行格式化处理,并调整数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至父节点位图不存在写入标识,则结束格式化操作。
在本申请实施例中,在确定出数据写入位置后,只需对数据写入位置对应的扇区进行格式化处理即可。相比于传统方式中对磁盘的所有扇区都进行格式化操作,本申请实施例采用的数据格式化方式,极大的缩减了格式化操作所需花费的时间。
为了保证父节点位图和子节点位图设置的标识与磁盘实际写入情况匹配,在完成扇区的格式化操作后,需要将数据写入位置所匹配的父节点位图和目标子节点位图相应位的写入标识调整为非写入标识。
由上述技术方案可以看出,在获取到磁盘的格式化指令的情况下,读取磁盘所对应的格式化元数据;每个磁盘有其对应的格式化元数据,该格式化元数据中记录了数据的具体写入位置。为了提升数据写入位置的查询效率,格式化元数据可以包括一个父节点位图和至少一个层级的子节点位图;子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识。查询父节点位图,以确定出具有写入标识的位图索引号,每个位图索引号有其表征的存储空间,具有写入标识说明该位图索引号对应的存储空间写有数据。根据位图索引号所匹配的目标子节点位图,可以确定出具体的数据写入位置。对数据写入位置对应的扇区进行格式化处理,并调整数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至父节点位图不存在写入标识,说明已完成磁盘中所有写入数据的扇区的格式化操作,此时可以结束格式化操作。在该技术方案中,采用位图对扇区的写入情况进行记录,在磁盘格式化操作时只需对写入数据的扇区执行格式化操作,大幅度减少了磁盘在系统的整个使用周期中的格式化耗时,减少了业务等待时间,并能够减少格式化过程中的系统消耗。
在本申请实施例中,当磁盘容量非常大时,子节点位图可以设置多个层级。图2为本申请实施例提供的一种多层级子节点位图下确定数据写入位置的方法的流程图,该方法包括:
S201:依据父节点位图中每一位与第一层级中各子节点位图的对应关系,确定出位图索引号对应的第一层级目标子节点位图。
在子节点位图有多个层级的情况下,初始状态下,可以将与父节点位图相邻的子节点位图称作第一层级子节点位图。
父节点位图中每一位都有其对应的一个第一层级子节点位图。依据父节点位图的位图索引号可以确定出对应的第一层级目标子节点位图。
S202:依次遍历第一层级目标子节点位图,在检测到具有写入标识的第一层级位图索引号的情况下,依据第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出第一层级位图索引号对应的第二层级目标子节点位图。
按照层级关系,可以将与第一层级子节点位图相邻的下一个层级的子节点位图称作第二层级子节点位图。
第一层级目标子节点位图包含有多位,每一位有其表征的存储空间,当该存储空间下写有数据时,该位会设置写入标识。因此在实际应用中,可以依次遍历第一层级目标子节点位图。
在本申请实施例中,可以将第一层级目标子节点位图中具有写入标识的位图索引号称作第一层级位图索引号。
在检测到具有写入标识的第一层级位图索引号的情况下,可以进一步根据该第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出第一层级位图索引号对应的第二层级目标子节点位图。
S203:判断第二层级目标子节点位图是否为最底层子节点位图。
在第二层级目标子节点位图为最底层子节点位图的情况下,执行S204;在第二层级目标子节点位图不为最底层子节点位图的情况下,执行S206。
S204:统计第二层级目标子节点位图中具有写入标识的第二层级位图索引号。
在第二层级目标子节点位图为最底层子节点位图的情况下,说明第二层级目标子节点位图中各位表征的存储空间是一个最小读写单元,也即第二层级目标子节点位图中各位对应的位图索引号表征了具体的数据写入位置。
在具体实现中,在第二层级目标子节点位图为最底层子节点位图的情况下,可以统计第二层级目标子节点位图中具有写入标识的第二层级位图索引号。
S205:将第二层级位图索引号转换为逻辑区块地址。
不同的位图索引号表征不同的逻辑区块地址。对于磁盘系统而言,在执行格式化操作时依据的是逻辑区块地址,因此在确定出第二层级位图索引号之后,需要将其转换为逻辑区块地址。
S206:将第二层级目标子节点位图作为第一层级目标子节点位图,返回依次遍历第一层级目标子节点位图的步骤。
在第二层级目标子节点位图不为最底层子节点位图的情况下,说明第二层级目标子节点位图下至少还包含有两个层级的子节点位图,此时可以采用循环遍历的方式,一层级一层级的分析,从而定位到写有数据的最底层子节点位图。
在实际应用中,在第二层级目标子节点位图不为最底层子节点位图的情况下,可以将第二层级目标子节点位图作为第一层级目标子节点位图,并返回S202,根据当前确定出的第二层级目标子节点位图是否为最底层子节点位图,从而执行S203、S204或者执行S205,直至最新确定出的第二层级目标子节点位图为最底层子节点位图,则统计第二层级目标子节点位图中具有写入标识的第二层级位图索引号,将第二层级位图索引号转换为逻辑区块地址。
相应的,在实际应用中,在确定出逻辑区块地址后,可以对逻辑区块地址对应的扇区进行格式化处理。
在本申请实施例中,对于多层级子节点位图,按照层级关系依次遍历子节点位图的方式,可以准确有序的确定出数据写入位置,保证了可以识别出所有的写入数据位置,避免了数据写入位置的遗漏。
在本申请实施例中,通过一层级一层级的分析,可以定位到写有数据的最底层子节点位图,最底层子节点位图中每一位表征一个扇区。每完成一个扇区的格式化处理,则可以将最底层子节点位图中与扇区匹配的位的写入标识调整为非写入标识。每完成一个当前层级子节点位图的标识调整,则将上层级节点位图中与当前层级子节点位图匹配的位的写入标识调整为非写入标识;其中,上层级节点位图为当前层级子节点位图所属的上一层级子节点位图或父节点位图。
在具体实现中,每完成一个最底层子节点位图的标识调整,则可以将上一层级子节点位图中与最底层子节点位图匹配的位的写入标识调整为非写入标识。每完成一个上一层级子节点位图的标识调整,则将与上一层级子节点位图相邻的前一层级子节点位图中与上一层级子节点位图匹配的位的写入标识调整为非写入标识,直至完成父节点位图中所有写入标识的调整。
在本申请实施例中,基于扇区的格式化完成情况,动态的调整位图中各位对应的标识,保证了位图中各位对应的标识与磁盘上各扇区的实际数据写入情况相匹配,保证了依据位图实现扇区格式化操作的准确性。
在本申请实施例中,当磁盘容量不大时,子节点位图也可以只有一个层级。图3为本申请实施例提供的一种单层级子节点位图下确定数据写入位置的方法的流程图,该方法包括:
S301:依据父节点位图中每一位与各子节点位图的对应关系,确定出位图索引号对应的目标子节点位图。
父节点位图中每一位都有其对应的一个子节点位图。依据父节点位图的位图索引号可以确定出对应的子节点位图。为了便于区分,可以将与所确定出的位图索引号对应的子节点位图称作目标子节点位图。
S302:遍历目标子节点位图,以筛选出目标子节点位图中具有写入标识的子节点位图索引号。
目标子节点位图包含有多位,每一位有其表征的存储空间,当该存储空间下写入有数据时,该位会设置写入标识。因此在实际应用中,可以依次遍历目标子节点位图,从而筛选出目标子节点位图中具有写入标识的子节点位图索引号。
S303:将子节点位图索引号转换为逻辑区块地址。
不同的位图索引号表征不同的逻辑区块地址。对于磁盘系统而言,在执行格式化操作时依据的是逻辑区块地址,因此在确定出子节点位图索引号之后,需要将其转换为逻辑区块地址。
在本申请实施例中,对于单层级子节点位图,通过遍历子节点位图的方式,可以准确有序的确定出数据写入位置,保证了可以识别出所有写入数据的位置,避免了数据写入位置的遗漏。
在本申请实施例中,在将子节点位图索引号转换为逻辑区块地址之后,可以依据该逻辑区块地址定位到对应的扇区,从而对该扇区进行格式化处理。每完成一个扇区的格式化处理,则将目标子节点位图中与扇区匹配的位的写入标识调整为非写入标识。每完成一个目标子节点的标识调整,则将父节点位图中与目标子节点位图匹配的位的写入标识调整为非写入标识。
图4为本申请实施例提供的一种二级位图对扇区的写入进行记录的示意图,图4中二级位图包括一级位图(Bitmap)和二级位图。其中,一级位图即为父节点位图,二级位图即为同一层级的多个子节点位图。父节点位图中每一位对应有一个子节点位图。图4中黑色斜线框表示写入有数据。对于一块4T的磁盘,一级位图每一个位(bit)代表的是每个连续的64k空间是否有写入操作。比如图4中一级位图中位图索引号(index)为2的bit位置为黑色斜线框,表示这个位置有数据写入,为了便于磁盘系统识别该位置写有数据,可以对该bit位置设置写入标识1,并且申请两个字节的空间作为子节点位图挂载到这个bit之下,用来标识具体的这64k连续空间中具体是哪个连续的4k空间有数据写入。
如图4中一级Bitmap中index为2的位置置为1,表示磁盘中第3个64k空间有数据写入。而相关联的二级Bitmap中位图索引号分别为3,5,14置为1,表示将这64k按照连续的4k空间划分成了16份,其中3、5、14的位置是写操作实际发生的位置。一级Bitmap中index为63的位置置为1,表示磁盘中第64个64k空间有数据写入。而相关联的二级Bitmap中位图索引号分别为0,7,9置为1,表示将这64k按照连续的4k空间划分成了16份,其中0、7、9的位置是写操作实际发生的位置。
一级Bitmap的空间是预先分配的,一级Bitmap信息会同步存储到磁盘内开辟的一块存储空间,这块空间的位置有RAID卡设计时指定,同时提供校验,保证格式化元数据的准确性。二级Bitmap只有对应的一级Bitmap中对应bit位被置为1时才进行申请分配,用来详细表示具体的写入位置。
二级Bitmap的设计既能够大幅度的减少一次内存的申请占用,也能够尽可能的将控制粒度划分的更小,在后续的再次格式化过程中减少实际被操作的扇区的个数,减少操作执行时间。也即只需将使用过程中实际有写入的空间位置在Bitmap记录下来,那么在进行全盘格式化操作时,只需要对二级Bitmap为1的位置进行格式化即可,可以大大加快格式化操作的执行时间。
在实际应用中,会存在磁盘没有对应的格式化元数据的情况,造成该种情况的原因可能是磁盘对应的格式化元数据意外丢失,也可能是磁盘是新盘,还未构建其对应的格式化元数据。
在本申请实施例中,在不存在磁盘对应的格式化元数据的情况下,可以对磁盘分配一个父节点位图;由于父节点位图为新建的位图,其并未记载数据的写入情况,因此此时可以对磁盘所有扇区进行格式化处理。在完成格式化操作后,可以对磁盘对应的父节点位图的每一位均设置非写入标识。
通过对不具有父节点位图的磁盘分配新的父节点位图,可以实现对磁盘后续的数据写入情况的记录,从而保证后续磁盘格式化操作时只需对写入数据的扇区进行格式化即可,提升后续磁盘格式化操作的效率。
在系统执行断电操作的情况下,为了避免父节点位图和子节点位图的丢失,在断电前将可以内存中记录的父节点位图和子节点位图下刷到对应的磁盘。
在具体实现中,磁盘系统可以将父节点位图和子节点位图包含的信息以序列化的方式下刷到磁盘中。
通过将位图中的元数据序列化到磁盘中以实现元数据的持久化,能够将格式化信息在相同类别RAID卡不同环境中进行传递共享,减少了整个存储系统中的格式化操作所占用的时间,提高了存储空间的利用率。
在本申请实施例中,在进行磁盘格式化时需要依赖于格式化元数据,为了提升格式化元数据的访问效率,可以在系统重启的情况下,从磁盘中读取格式化元数据,并将格式化元数据写入内存。
内存的访问效率比磁盘的访问效率高,系统重启时内存中的数据会丢失。在系统完成重启时,通过将格式化元数据从磁盘写入内存,提升了对格式化元数据的访问效率。
考虑到实际应用中,磁盘中存储的格式化元数据往往是序列化数据,不便于磁盘系统识别层级关系。为了便于磁盘系统调用格式化元数据可以快速定位到数据写入位置,在将格式化元数据写入内存时,可以按照各位图存储的先后顺序以及各位图所占用的存储空间,依次从磁盘中读取格式化元数据中包含的各位图对应的元数据;其中,位图包括父节点位图和各层级子节点位图。将各位图对应的元数据按照层级关系写入内存。
在实际应用中,子节点位图往往设置一个层级即可满足要求。以子节点位图只有一个层级为例,在具体实现中,可以按照先后顺序从格式化元数据中读取第一容量的第一格式化元数据;其中,第一容量为父节点位图所占用的容量。将第一格式化元数据转换为父节点位图;在遍历到父节点位图中具有写入标识的第一位图索引号的情况下,从格式化元数据中读取与第一格式化元数据后向相邻的第二容量的第二格式化元数据;其中,第二容量为与父节点位图相邻层级的一个子节点位图所占用的容量。将第二格式化元数据作为第一位图索引号对应的子节点位图。
举例说明,以父节点位图占用的容量为8MB,一个子节点位图占用的容量为2Byte为例,在存在格式化元数据的情况下,可以先按顺序读取前8MByte部分,并加载到内存中形成父节点位图(Bitmap),遍历父节点Bitmap,当某个位图索引号(index)对应位置为1时,表示存在子节点位图,按顺序从磁盘对应位置读取2Byte格式化元数据形成对应父节点位图相应位置的子节点位图。
在本申请实施例中,通过设置两级位图可以有效的降低一次性需要给格式化元数据分配的内存空间大小。
图5为本申请实施例提供的一种向磁盘写入数据时调整位图的方法的流程图,该方法包括:
S501:在接收到携带有目标逻辑区块地址和数据长度的写入指令的情况下,依据父节点位图每位所表征的内存空间、目标逻辑区块地址和数据长度,确定出匹配的目标位图索引号。
目标逻辑区块地址用于表示数据写入的初始位置。父节点位图每一位表征一定的内存空间范围。在具体实现中,根据目标逻辑区块地址以及父节点位图中每位所表示的内存空间范围,可以确定出目标逻辑区块地址所对应的初始位图索引号。然后结合数据长度,可以确定出数据所占用的内存空间所对应的所有位图索引号,可以将这些位图索引号称作目标位图索引号。
S502:判断目标位图索引号所在的位是否设置有写入标识。
在父节点位图中目标位图索引号所在的位设置有写入标识的情况下,说明该位有其对应的子节点位图,此时可以执行S503;在父节点位图中目标位图索引号所在的位未设置写入标识的情况下,说明该位没有对应的子节点位图,此时可以执行S504。
S503:根据数据长度以及目标位图索引号,依次对匹配的子节点位图的相应位设置写入标识。
在具体实现中,可以依据父节点位图中每一位与子节点位图的对应关系以及目标位图索引号,确定出匹配的子节点位图。依据数据长度,确定出匹配的子节点位图中与写入数据相对应的位,对与写入数据相对应的位设置写入标识。
S504:对目标位图索引号所在的位设置写入标识;根据数据长度以及目标位图索引号,构建匹配的子节点位图,并向匹配的子节点位图的相应位设置写入标识。
以一个目标位图索引号表征64K连续空间为例,对LBA地址进行转换,获取到对应一级Bitmap的index位置,判断对应index位置是否为1,为1的话表示此64K空间此前已有过内容写入,二级Bitmap已存在,则直接将对应的二级Bitmap对应的偏移位置置为1,并根据数据长度(length)情况,通过循环遍历的方式对需要置为1的index位置置为1,一次写结束。当对应一级Bitmap index位置为0时,将对应一级Bitmap index位置置为1,并申请2Byte空间作为此位置的二级Bitmap,并根据LBA地址和length进行计算,将需要置为1的二级Bitmap 对应的偏移位置置为1,一次写结束。
在本申请实施例中,根据磁盘的数据写入情况,动态的更新各位图相应位的标识,保证了数据写入情况可以被位图准确记载,从而便于后续依据位图实现磁盘的格式化操作。
图6为本申请实施例提供的一种磁盘格式化装置的结构示意图,装置包括读取单元61、查询单元62、确定单元63、格式化单元64和调整单元65;
读取单元61,用于在获取到磁盘的格式化指令的情况下,读取磁盘所对应的格式化元数据;其中,格式化元数据包括一个父节点位图和至少一个层级的子节点位图;子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识;
查询单元62,用于查询父节点位图,以确定出具有写入标识的位图索引号;
确定单元63,用于根据位图索引号所匹配的目标子节点位图,确定出数据写入位置;
格式化单元64,用于对数据写入位置对应的扇区进行格式化处理;
调整单元65,用于调整数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至父节点位图不存在写入标识,则结束格式化操作。
可选地,查询单元用于依次遍历父节点位图,在检测到具有写入标识的位图索引号的情况下,执行根据位图索引号所匹配的目标子节点位图,确定出数据写入位置的步骤。
可选地,查询单元用于统计父节点位图中所有具有写入标识的位图索引号。
可选地,在子节点位图有多个层级的情况下,确定单元包括子节点位图确定子单元、遍历子单元、统计子单元和转换子单元;
子节点位图确定子单元,用于依据父节点位图中每一位与第一层级中各子节点位图的对应关系,确定出位图索引号对应的第一层级目标子节点位图;
遍历子单元,用于依次遍历第一层级目标子节点位图,在检测到具有写入标识的第一层级位图索引号的情况下,依据第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出第一层级位图索引号对应的第二层级目标子节点位图;
统计子单元,用于在第二层级目标子节点位图为最底层子节点位图的情况下,统计第二层级目标子节点位图中具有写入标识的第二层级位图索引号;
转换子单元,用于将第二层级位图索引号转换为逻辑区块地址;
相应的,格式化单元用于对逻辑区块地址对应的扇区进行格式化处理。
可选地,还包括作为单元;
作为单元,用于在第二层级目标子节点位图不为最底层子节点位图的情况下,将第二层级目标子节点位图作为第一层级目标子节点位图,返回依次遍历第一层级目标子节点位图的步骤。
可选地,调整单元包括底层位图调整子单元和上层位图调整子单元;
底层位图调整子单元,用于每完成一个扇区的格式化处理,则将最底层子节点位图中与扇区匹配的位的写入标识调整为非写入标识;
上层位图调整子单元,用于每完成一个当前层级子节点位图的标识调整,则将上层级节点位图中与当前层级子节点位图匹配的位的写入标识调整为非写入标识;其中,上层级节点位图为当前层级子节点位图所属的上一层级子节点位图或父节点位图。
可选地,上层位图调整子单元用于每完成一个最底层子节点位图的标识调整,则将上一层级子节点位图中与最底层子节点位图匹配的位的写入标识调整为非写入标识;
每完成一个上一层级子节点位图的标识调整,则将与上一层级子节点位图相邻的前一层级子节点位图中与上一层级子节点位图匹配的位的写入标识调整为非写入标识,直至完成父节点位图中所有写入标识的调整。
可选地,在子节点位图只有一个层级的情况下,确定单元包括子节点位图确定子单元、遍历子单元和转换子单元;
子节点位图确定子单元,用于依据父节点位图中每一位与各子节点位图的对应关系,确定出位图索引号对应的目标子节点位图;
遍历子单元,用于遍历目标子节点位图,以筛选出目标子节点位图中具有写入标识的子节点位图索引号;
转换子单元,用于将子节点位图索引号转换为逻辑区块地址。
可选地,调整单元包括子节点调整子单元和父节点调整子单元;
子节点调整子单元,用于每完成一个扇区的格式化处理,则将目标子节点位图中与扇区匹配的位的写入标识调整为非写入标识;
父节点调整子单元,用于每完成一个目标子节点的标识调整,则将父节点位图中与目标子节点位图匹配的位的写入标识调整为非写入标识。
可选地,还包括分配单元和设置单元;
分配单元,用于在不存在磁盘对应的格式化元数据的情况下,对磁盘分配一个父节点位图;
格式化单元,用于对磁盘所有扇区进行格式化处理;
设置单元,用于对磁盘对应的父节点位图的每一位均设置非写入标识。
可选地,还包括写入单元;
写入单元,用于在系统重启的情况下,从磁盘中读取格式化元数据,并将格式化元数据写入内存。
可选地,写入单元包括读取子单元和存储子单元;
读取子单元,用于按照各位图存储的先后顺序以及各位图所占用的存储空间,依次从磁盘中读取格式化元数据中包含的各位图对应的元数据;其中,位图包括父节点位图和各层级子节点位图;
存储子单元,用于将各位图对应的元数据按照层级关系写入内存。
可选地,在子节点位图只有一个层级的情况下,读取子单元用于按照先后顺序从格式化元数据中读取第一容量的第一格式化元数据;其中,第一容量为父节点位图所占用的容量;
将第一格式化元数据转换为父节点位图;
在遍历到父节点位图中具有写入标识的第一位图索引号的情况下,从格式化元数据中读取与第一格式化元数据后向相邻的第二容量的第二格式化元数据;其中,第二容量为与父节点位图相邻层级的一个子节点位图所占用的容量;
将第二格式化元数据作为第一位图索引号对应的子节点位图。
可选地,还包括下刷单元;
下刷单元,用于在系统执行断电操作的情况下,在断电前将内存中记录的父节点位图和子节点位图下刷到对应的磁盘。
可选地,还包括索引号确定单元和标识设置单元;
索引号确定单元,用于在接收到携带有目标逻辑区块地址和数据长度的写入指令的情况下,依据父节点位图每位所表征的内存空间、目标逻辑区块地址和数据长度,确定出匹配的目标位图索引号;
标识设置单元,用于在父节点位图中目标位图索引号所在的位设置有写入标识的情况下,根据数据长度以及目标位图索引号,依次对匹配的子节点位图的相应位设置写入标识。
可选地,标识设置单元用于依据父节点位图中每一位与子节点位图的对应关系以及目标位图索引号,确定出匹配的子节点位图;
依据数据长度,确定出匹配的子节点位图中与写入数据相对应的位,对与写入数据相对应的位设置写入标识。
可选地,还包括构建单元;
标识设置单元。用于在父节点位图中目标位图索引号所在的位未设置写入标识的情况下,对目标位图索引号所在的位设置写入标识;
构建单元,用于根据数据长度以及目标位图索引号,构建匹配的子节点位图;
标识设置单元还用于向匹配的子节点位图的相应位设置写入标识。
图6所对应实施例中特征的说明可以参见图1至图5所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,在获取到磁盘的格式化指令的情况下,读取磁盘所对应的格式化元数据;每个磁盘有其对应的格式化元数据,该格式化元数据中记录了数据的具体写入位置。为了提升数据写入位置的查询效率,格式化元数据可以包括一个父节点位图和至少一个层级的子节点位图;子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识。查询父节点位图,以确定出具有写入标识的位图索引号,每个位图索引号有其表征的存储空间,具有写入标识说明该位图索引号对应的存储空间写有数据。根据位图索引号所匹配的目标子节点位图,可以确定出具体的数据写入位置。对数据写入位置对应的扇区进行格式化处理,并调整数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至父节点位图不存在写入标识,说明已完成磁盘中所有写入数据的扇区的格式化操作,此时可以结束格式化操作。在该技术方案中,采用位图对扇区的写入情况进行记录,在磁盘格式化操作时只需对写入数据的扇区执行格式化操作,大幅度减少了磁盘在系统的整个使用周期中的格式化耗时,减少了业务等待时间,并能够减少格式化过程中的系统消耗。
图7为本申请实施例提供的一种电子设备的结构图,如图7所示,电子设备包括:存储器70,用于存储计算机程序;
处理器71,用于执行计算机程序时实现如上述实施例磁盘格式化方法的步骤。
本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器71可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器71可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器71也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器71可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器71还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器70可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器70还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器70至少用于存储以下计算机程序701,其中,该计算机程序被处理器71加载并执行之后,能够实现前述任一实施例公开的磁盘格式化方法的相关步骤。另外,存储器70所存储的资源还可以包括操作系统702和数据703等,存储方式可以是短暂存储或者永久存储。其中,操作系统702可以包括Windows、Unix、Linux等。数据703可以包括但不限于格式化元数据等。
在一些实施例中,电子设备还可包括有显示屏72、输入输出接口73、通信接口74、电源75以及通信总线76。
本领域技术人员可以理解,图7中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
可以理解的是,如果上述实施例中的磁盘格式化方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述磁盘格式化方法的步骤。
以上对本申请实施例所提供的一种磁盘格式化方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的一种磁盘格式化方法、装置、设备和计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (20)
1.一种磁盘格式化方法,其特征在于,所述方法包括:
在获取到磁盘的格式化指令的情况下,读取所述磁盘所对应的格式化元数据;其中,所述格式化元数据包括一个父节点位图和至少一个层级的子节点位图;所述子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识;
查询所述父节点位图,以确定出具有写入标识的位图索引号;
根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置;
对所述数据写入位置对应的扇区进行格式化处理,并调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至所述父节点位图不存在写入标识,则结束格式化操作。
2.根据权利要求1所述的磁盘格式化方法,其特征在于,所述查询所述父节点位图,以确定出具有写入标识的位图索引号包括:
依次遍历所述父节点位图,在检测到具有写入标识的位图索引号的情况下,执行所述根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置的步骤。
3.根据权利要求1所述的磁盘格式化方法,其特征在于,所述查询所述父节点位图,以确定出具有写入标识的位图索引号包括:
统计所述父节点位图中所有具有写入标识的位图索引号。
4.根据权利要求1所述的磁盘格式化方法,其特征在于,在所述子节点位图有多个层级的情况下,所述根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置包括:
依据所述父节点位图中每一位与第一层级中各子节点位图的对应关系,确定出所述位图索引号对应的第一层级目标子节点位图;
依次遍历所述第一层级目标子节点位图,在检测到具有写入标识的第一层级位图索引号的情况下,依据所述第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出所述第一层级位图索引号对应的第二层级目标子节点位图;
在所述第二层级目标子节点位图为最底层子节点位图的情况下,统计所述第二层级目标子节点位图中具有写入标识的第二层级位图索引号;
将所述第二层级位图索引号转换为逻辑区块地址;
相应的,所述对所述数据写入位置对应的扇区进行格式化处理包括:
对所述逻辑区块地址对应的扇区进行格式化处理。
5.根据权利要求4所述的磁盘格式化方法,其特征在于,在所述依据所述第一层级目标子节点位图中每一位与第二层级中各子节点位图的对应关系,确定出所述第一层级位图索引号对应的第二层级目标子节点位图之后还包括:
在所述第二层级目标子节点位图不为最底层子节点位图的情况下,将所述第二层级目标子节点位图作为第一层级目标子节点位图,返回所述依次遍历所述第一层级目标子节点位图的步骤。
6.根据权利要求5所述的磁盘格式化方法,其特征在于,所述调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识包括:
每完成一个扇区的格式化处理,则将所述最底层子节点位图中与所述扇区匹配的位的写入标识调整为非写入标识;
每完成一个当前层级子节点位图的标识调整,则将上层级节点位图中与当前层级子节点位图匹配的位的写入标识调整为非写入标识;其中,所述上层级节点位图为所述当前层级子节点位图所属的上一层级子节点位图或父节点位图。
7.根据权利要求6所述的磁盘格式化方法,其特征在于,所述每完成一个当前层级子节点位图的标识调整,则将上层级节点位图中与当前层级子节点位图匹配的位的写入标识调整为非写入标识包括:
每完成一个最底层子节点位图的标识调整,则将上一层级子节点位图中与所述最底层子节点位图匹配的位的写入标识调整为非写入标识;
每完成一个上一层级子节点位图的标识调整,则将与所述上一层级子节点位图相邻的前一层级子节点位图中与所述上一层级子节点位图匹配的位的写入标识调整为非写入标识,直至完成所述父节点位图中所有写入标识的调整。
8.根据权利要求1所述的磁盘格式化方法,其特征在于,在所述子节点位图只有一个层级的情况下,所述根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置包括:
依据所述父节点位图中每一位与各子节点位图的对应关系,确定出所述位图索引号对应的目标子节点位图;
遍历所述目标子节点位图,以筛选出所述目标子节点位图中具有写入标识的子节点位图索引号;
将所述子节点位图索引号转换为逻辑区块地址。
9.根据权利要求8所述的磁盘格式化方法,其特征在于,所述调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识包括:
每完成一个扇区的格式化处理,则将所述目标子节点位图中与所述扇区匹配的位的写入标识调整为非写入标识;
每完成一个目标子节点的标识调整,则将所述父节点位图中与所述目标子节点位图匹配的位的写入标识调整为非写入标识。
10.根据权利要求1所述的磁盘格式化方法,其特征在于,还包括:
在不存在所述磁盘对应的格式化元数据的情况下,对所述磁盘分配一个父节点位图;
对所述磁盘所有扇区进行格式化处理,并对所述磁盘对应的父节点位图的每一位均设置非写入标识。
11.根据权利要求1所述的磁盘格式化方法,其特征在于,还包括:
在系统重启的情况下,从磁盘中读取格式化元数据,并将所述格式化元数据写入内存。
12.根据权利要求11所述的磁盘格式化方法,其特征在于,所述从磁盘中读取格式化元数据,并将所述格式化元数据写入内存包括:
按照各位图存储的先后顺序以及各位图所占用的存储空间,依次从磁盘中读取所述格式化元数据中包含的各位图对应的元数据;其中,所述位图包括父节点位图和各层级子节点位图;
将各位图对应的元数据按照层级关系写入内存。
13.根据权利要求12所述的磁盘格式化方法,其特征在于,在所述子节点位图只有一个层级的情况下,所述按照各位图存储的先后顺序以及各位图所占用的存储空间,依次从磁盘中读取所述格式化元数据中包含的各位图对应的元数据包括:
按照先后顺序从所述格式化元数据中读取第一容量的第一格式化元数据;其中,所述第一容量为所述父节点位图所占用的容量;
将所述第一格式化元数据转换为父节点位图;
在遍历到所述父节点位图中具有写入标识的第一位图索引号的情况下,从所述格式化元数据中读取与所述第一格式化元数据后向相邻的第二容量的第二格式化元数据;其中,所述第二容量为与所述父节点位图相邻层级的一个子节点位图所占用的容量;
将所述第二格式化元数据作为所述第一位图索引号对应的子节点位图。
14.根据权利要求1所述的磁盘格式化方法,其特征在于,还包括:
在系统执行断电操作的情况下,在断电前将内存中记录的父节点位图和子节点位图下刷到对应的磁盘。
15.根据权利要求1至14任意一项所述的磁盘格式化方法,其特征在于,还包括:
在接收到携带有目标逻辑区块地址和数据长度的写入指令的情况下,依据所述父节点位图每位所表征的内存空间、所述目标逻辑区块地址和所述数据长度,确定出匹配的目标位图索引号;
在所述父节点位图中所述目标位图索引号所在的位设置有写入标识的情况下,根据所述数据长度以及所述目标位图索引号,依次对匹配的子节点位图的相应位设置写入标识。
16.根据权利要求15所述的磁盘格式化方法,其特征在于,所述根据所述数据长度以及所述目标位图索引号,依次对匹配的子节点位图的相应位设置写入标识包括:
依据所述父节点位图中每一位与子节点位图的对应关系以及所述目标位图索引号,确定出匹配的子节点位图;
依据所述数据长度,确定出所述匹配的子节点位图中与写入数据相对应的位,对与写入数据相对应的位设置写入标识。
17.根据权利要求15所述的磁盘格式化方法,其特征在于,还包括:
在所述父节点位图中所述目标位图索引号所在的位未设置写入标识的情况下,对所述目标位图索引号所在的位设置写入标识;根据所述数据长度以及所述目标位图索引号,构建匹配的子节点位图,并向所述匹配的子节点位图的相应位设置写入标识。
18.一种磁盘格式化装置,其特征在于,所述装置包括读取单元、查询单元、确定单元、格式化单元和调整单元;
所述读取单元,用于在获取到磁盘的格式化指令的情况下,读取所述磁盘所对应的格式化元数据;其中,所述格式化元数据包括一个父节点位图和至少一个层级的子节点位图;所述子节点位图中最底层子节点位图记录有表征数据写入位置的写入标识;
所述查询单元,用于查询所述父节点位图,以确定出具有写入标识的位图索引号;
所述确定单元,用于根据所述位图索引号所匹配的目标子节点位图,确定出数据写入位置;
所述格式化单元,用于对所述数据写入位置对应的扇区进行格式化处理;
所述调整单元,用于调整所述数据写入位置所匹配的父节点位图和目标子节点位图的标识,直至所述父节点位图不存在写入标识,则结束格式化操作。
19.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至17任意一项所述磁盘格式化方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任意一项所述磁盘格式化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310275185.6A CN115993938B (zh) | 2023-03-21 | 2023-03-21 | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310275185.6A CN115993938B (zh) | 2023-03-21 | 2023-03-21 | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115993938A CN115993938A (zh) | 2023-04-21 |
CN115993938B true CN115993938B (zh) | 2023-05-23 |
Family
ID=85995254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310275185.6A Active CN115993938B (zh) | 2023-03-21 | 2023-03-21 | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115993938B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63313360A (ja) * | 1987-06-17 | 1988-12-21 | Brother Ind Ltd | 磁気ディスクのフォ−マット設定装置 |
JPH05205400A (ja) * | 1992-01-29 | 1993-08-13 | Brother Ind Ltd | ディスクメモリ装置 |
EP0936618A2 (en) * | 1998-02-12 | 1999-08-18 | Hewlett-Packard Company | Write pass identifier |
CN101203912A (zh) * | 2005-04-20 | 2008-06-18 | 梅姆派尔有限公司 | 格式化三维光信息载体的方法和装置 |
CN101655772A (zh) * | 2008-08-22 | 2010-02-24 | 北京艾德斯科技有限公司 | 一种标记硬盘的方法 |
CN109542842A (zh) * | 2018-11-02 | 2019-03-29 | 安徽创世科技股份有限公司 | 一种兼容fat32文件系统的视频顺序存储和查询方法及其装置 |
CN109979498A (zh) * | 2019-01-24 | 2019-07-05 | 深圳市景阳信息技术有限公司 | 磁盘视频数据写入、读取的方法及装置 |
CN114327290A (zh) * | 2021-12-31 | 2022-04-12 | 科东(广州)软件科技有限公司 | 一种磁盘分区的结构、格式化方法和访问方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3777143B2 (ja) * | 2002-06-04 | 2006-05-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶装置、該記憶装置を備える情報処理システム、該記憶装置のフォーマット方法、データの記録方法、フォーマットおよびデータの記録を実現するためのプログラム |
-
2023
- 2023-03-21 CN CN202310275185.6A patent/CN115993938B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63313360A (ja) * | 1987-06-17 | 1988-12-21 | Brother Ind Ltd | 磁気ディスクのフォ−マット設定装置 |
JPH05205400A (ja) * | 1992-01-29 | 1993-08-13 | Brother Ind Ltd | ディスクメモリ装置 |
EP0936618A2 (en) * | 1998-02-12 | 1999-08-18 | Hewlett-Packard Company | Write pass identifier |
CN101203912A (zh) * | 2005-04-20 | 2008-06-18 | 梅姆派尔有限公司 | 格式化三维光信息载体的方法和装置 |
CN101655772A (zh) * | 2008-08-22 | 2010-02-24 | 北京艾德斯科技有限公司 | 一种标记硬盘的方法 |
CN109542842A (zh) * | 2018-11-02 | 2019-03-29 | 安徽创世科技股份有限公司 | 一种兼容fat32文件系统的视频顺序存储和查询方法及其装置 |
CN109979498A (zh) * | 2019-01-24 | 2019-07-05 | 深圳市景阳信息技术有限公司 | 磁盘视频数据写入、读取的方法及装置 |
CN114327290A (zh) * | 2021-12-31 | 2022-04-12 | 科东(广州)软件科技有限公司 | 一种磁盘分区的结构、格式化方法和访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115993938A (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303596B2 (en) | Read-write control method for memory, and corresponding memory and server | |
US10120588B2 (en) | Sliding-window multi-class striping | |
CN104620230A (zh) | 管理存储器的方法 | |
CN104050097A (zh) | 在具有不同的最小可寻址数据单元大小的非易失性存储器单元之间进行选择 | |
CN106201652B (zh) | 一种数据处理方法及虚拟机 | |
CN115576505B (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN115951839A (zh) | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 | |
CN109558333A (zh) | 具有可变额外存储空间(op)的固态存储设备命名空间 | |
CN115826878A (zh) | 一种写时拷贝方法、装置、设备及计算机可读存储介质 | |
CN114327272B (zh) | 一种数据处理方法、固态硬盘控制器及固态硬盘 | |
CN116339643B (zh) | 一种磁盘阵列的格式化方法、装置、设备和介质 | |
WO2024119760A1 (zh) | 一种卷创建方法及装置、卷读写方法及装置、电子设备 | |
CN115993938B (zh) | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 | |
CN115237351B (zh) | Nand块动态重映射、读写命令处理方法及存储设备 | |
CN115857811A (zh) | 一种数据处理方法、装置、固态硬盘及可读存储介质 | |
CN112631518B (zh) | 一种数据存储的方法和设备 | |
CN114327942A (zh) | 一种共享内存管理方法和缓存服务组件 | |
CN114138184A (zh) | 一种数据重删的下刷方法、装置、设备和介质 | |
CN113760781A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112015672A (zh) | 一种存储系统中数据处理方法、装置、设备及存储介质 | |
CN110007875A (zh) | 一种有效数据的迁移方法、装置及设备 | |
CN112885402B (zh) | 固态硬盘坏块查询方法、装置及计算机可读存储介质 | |
CN116540949B (zh) | 一种独立冗余磁盘阵列存储空间动态分配方法和装置 | |
CN113741787B (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 |