CN102023810A - 一种写数据的方法、装置以及廉价冗余磁盘阵列 - Google Patents

一种写数据的方法、装置以及廉价冗余磁盘阵列 Download PDF

Info

Publication number
CN102023810A
CN102023810A CN2009101619677A CN200910161967A CN102023810A CN 102023810 A CN102023810 A CN 102023810A CN 2009101619677 A CN2009101619677 A CN 2009101619677A CN 200910161967 A CN200910161967 A CN 200910161967A CN 102023810 A CN102023810 A CN 102023810A
Authority
CN
China
Prior art keywords
data
written
page
ssd
leaf
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
CN2009101619677A
Other languages
English (en)
Other versions
CN102023810B (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies 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 Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN200910161967A priority Critical patent/CN102023810B/zh
Publication of CN102023810A publication Critical patent/CN102023810A/zh
Application granted granted Critical
Publication of CN102023810B publication Critical patent/CN102023810B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种写数据的方法,包括:获取当前指针所指向的硬盘单元DU;当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的固态硬盘SSD中;当待写入数据预占用的空间超过预设的一个分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中。本发明实施例还提供相应的写数据的装置以及廉价冗余磁盘阵列。本发明技术方案由于数据是顺序写入SSD的,从而简化了控制器的处理流程,提高了SSD的写性能。

Description

一种写数据的方法、装置以及廉价冗余磁盘阵列
技术领域
本发明涉及通信技术领域,具体涉及一种写数据的方法、装置以及廉价冗余磁盘阵列。
背景技术
存储系统中,固态硬盘(SSD,Solid State Disk)由于其具有读写性能优越、功耗小、安全性高等特点被越来越广泛的应用于存储界。SSD读写操作的基本单位为1个页,擦除的基本单位为1个块,同时相对于传统磁盘,SSD盘内采用缓存技术对读写操作进行加速。目前SSD可以支持的廉价冗余磁盘阵列(RAID,Redundant Arrays of Inexpensive Disks)包括:RAID0,RAID1和RAID10等级别。需要说明的是,现有技术中,也将廉价冗余磁盘阵列称为独立磁盘冗余阵列(Redundant Array of Independent Disks)。
现有技术中,针对RAID0和RAID1等级别的SSD应用,一般采用缓存单元对接收的数据进行缓存,然后对缓存的数据合并,并将合并后的数据写入SSD中。当缓存单元的存储空间不足时,直接将接收的数据写入SSD中,即当缓存单元的存储空间不足时,数据是随机写入SSD中的。
在对现有技术的研究和实践过程中,发明人发现现有技术中,由于缓存单元的存储空间很小,因此接收的大部分数据都需要随机写入SSD,而根据SSD的特性可知,SSD的随机写性能低于SSD的顺序写性能,从而影响了SSD的写性能。
发明内容
本发明实施例在于提供一种写数据的方法、装置、以及廉价冗余磁盘阵列,能够将接收的数据按顺序写入SSD,从而提升SSD的写性能。
本发明实施例是通过以下技术方案实现的:
本发明实施例提供的一种写数据的方法,包括:
获取当前指针所指向的硬盘单元DU(Disk Unit);
当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的固态硬盘SSD中;
当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中。
本发明实施例提供的一种写数据的装置,包括:
获取单元,用于获取当前指针所指向的硬盘单元DU;
写操作单元,用于当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的固态硬盘SSD中;当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中。
本发明实施例提供的一种廉价冗余磁盘阵列RAID,包括至少两个SSD以及上述写数据的装置。
本发明实施例在存储系统中写入数据时,获取维护的当前指针所指向的DU,当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入获取的DU所属的固态硬盘SSD中;当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入当前指针所指向的DU所属的RAID组中的至少两个SSD中。可见,数据都是顺序写入SSD中的,相对于将数据随机写入SSD中,提高了SSD的写性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施一提供的写数据的方法流程图;
图2是本发明实施二提供的写数据的方法流程图;
图3是本发明实施三提供的写数据的方法流程图;
图4是本发明实施例四提供的写数据的装置示意图;
图5是本发明实施例五提供的写数据的装置示意图;
图6是本发明实施例六提供的写数据的装置示意图;
图7是本发明实施例八提供的写数据的装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
首先,为了使本领域技术人员更好的理解本发明,下面对本发明实施例中涉及的概念进行简要介绍:
RAID组,由存储设备上的至少2个SSD组成,RAID组中的每个SSD包含有一个空闲DU(Disk Unit,硬盘单元)队列,每个空闲DU队列中有一个空闲DU处于待接收数据的状态,以使各SSD接收数据的机会均等。例如,RAID组中包括4个SSD,则需维护4个空闲DU队列。
分条深度,RAID组SSD上的分区可以进一步细分为更小的段,这些更小的段被称为分块。假如分块属于一个分区,而分区又属于一个阵列,那么,分块的长度称为分条深度。
LUN(Logic Unit Number,逻辑单元号),是在RAID组中的基础上创建的,1个RAID组对应至少1个LUN(一般情况下1个RAID组对应1个LUN),LUN相对于存储设备来讲是逻辑设备。当网络中的主机连接到存储设备时,就可以识别到LUN。本发明实施例中,在将主机下发的写请求写入存储设备之前,将写请求主机下发的随机小写请求转化为顺序写操作,从而提高SSD写性能。
全页日志结构管理模式,是指以页(每页容量为4K)为基本单位向SSD下发数据。该模式下,每个LUN维护一张映射表,映射表里的每个表项对应一个页。映射表用于实现从逻辑页(即主机可见空间页)到物理页的转换,假设LUN的容量为2T,那么映射表里就有2T/4K=512M个表项。每个表项具有两个域,其中一个域用于指向当前逻辑页对应的物理页(即当前逻辑页具体存放在哪个物理页上);另一个域用于指向与当前逻辑页页号相同的物理页被哪个逻辑页引用。
垃圾回收,由于LUN的空间是有限的,为了实现垃圾回收,为每个LUN创建一张垃圾回收表,该表中的每一项对应主机可见空间中的一个DU(例如为4M),也就是说对于2T的LUN垃圾回收表里共有2T/4M=512K个表项,每个表项有3个字段,第一个字段是一个struct btree结构的变量,struct btree结构用于维护以DU中的无效页数为键值的二叉查找树,其定义如下:
Figure B2009101619677D0000041
垃圾回收时取出二叉查找树中最右端的至少一个节点,回收这些节点对应的DU即可。为了保证二叉查找树按序排列,DU中的无效页数一旦改变,需要调整二叉查找树,所以这里记录了每个节点的左孩子节点(leftchild)、右孩子节点(rightchild)和父亲节点(father);第2个字段是一个struct list_head结构的变量,该字段用于维护空闲DU队列;第3个字段是DU中页的位图,DU中某个页一旦无效我们就置其在位图中对应的比特位为1,若DU的大小为4M,则一个DU有1024个页,需要1024个比特即128个字节构成位图,垃圾回收时可通过位图中的比特位确定DU中哪些页有效(位图中的比特位为1),从而将有效页搬移,实现DU的回收。
实施例一、
参见图1,为本发明实施一提供的写数据的方法流程图,该方法包括:
S101:获取当前指针所指向的DU(硬盘单元)。
例如,系统中有SSD0-SSDX(其中X为大于等于1的整数),按照预设大小(如4MB)的DU对SSD进行等分,对构建的RAID组(如RAID0)中的每个SSD维护一个空闲DU队列,用于接收待写入数据;同时还维护一个当前指针,用于指向待写入数据当前时刻应该下发到哪一个待接收数据的DU中。若RAID0包括4个SSD,每一时刻都会有4个来自不同SSD的DU用于接收待写入数据,如4个来自不同SSD的包括:DU0,DU4,DU8和DU12,当前指针指向DU0,则获取当前指针所指向的DU0。
S102:确定待写入数据预占用的空间是否超过预设的分条深度,当待写入数据预占用的空间未超过预设的分条深度时,执行S103;否则,待写入数据预占用的空间超过预设的分条深度时,执行S104。
例如,预设的分条深度可以为16K;待写入数据为主机下发的写请求,一个写请求为主机串口一次发送出的数据,当一个写请求所占空间大于16K时,确定该写请求超过预设的分条深度,当一个写请求所占空间小于16K时,确定该写请求未超过一个分条深度。
S103:当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入当前指针所指向的DU所属的固态硬盘SSD中。
例如,待写入数据所占空间大小未超过16K,当前指针所指向的DU为DU0,则在DU0所属SSD(当前SSD)中以页为单位写入待写入数据。
其中,SSD中待写入数据的具体的物理页由当前指针、维护的逻辑页与物理页的映射表、以及DU号共同决定。
S104:当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组的至少两个SSD中。
例如,待写入数据预占用空间大小超过16K,当前指针所指向的DU为DU0,则在DU0所属SSD(当前SSD),以及当前SSD之后的一个SSD中以页为单位写入待写入数据。
其中,RAID组中的每个SSD对应一个空闲DU队列,每一时刻每个SSD从对应的空闲队列中提供一个待接收数据的空闲DU。
其中,当前指针的指向采用轮循的方式,即当前指针指向的DU所属SSD被写满,或者超过预设的阈值时,指针将指向RAID组中下一个SSD提供的待接收数据的DU。
本实施例中,在存储系统中写入数据时,获取维护的当前指针所指向的DU,当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入DU所属的固态硬盘SSD中;当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入当前指针所指向的DU所属的RAID组的至少两个SSD中。可见,数据是按顺序写入SSD的,相对于将数据随机写入SSD,提高了SSD的写性能。
下面分别对待写入数据超过分条深度和未超过分条深度的情况进行详细说明。
实施例二、
参见图2,为本发明实施二提供的写数据的方法流程图,该方法包括:
S201:获取当前指针所指向的DU。
例如,待接收数据的DU包括:DU0、DU4、DU8和DU12,当前指针指向DU0,则获取当前指针所指向的DU0。
S202:若待写入数据预占用空间未超过预设的分条深度(如16K),确定当前指针所指向的DU中剩余页的空间是否大于待写入数据预占用的空间,若是,执行S203;否则,执行S204。
S203:在当前指针所指向的DU中以页为单位写入待写入数据。
例如,待接收数据的DU包括:DU0,DU4,DU8和DU12,当前指针指向DU0,待写入数据未超过预设的分条深度,且DU0剩余页足够写入待写入数据,则以页为单位将待写入数据写入DU0。
S204:在当前指针所指向的DU中以页为单位写入待写入数据,若当前指针所指向的DU被写满时,从当前指针指向的DU所属SSD的空闲DU队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的待写入数据,且将当前指针所指的方向移到RAID组中下一个SSD提供的DU。
例如,待接收数据的DU包括:DU0,DU4,DU8和DU12,当前指针指向DU0,待写入数据未超过预设的分条深度,且DU0剩余页的空间小于待写入数据,则以页为单位将待写入数据写入DU0,当DU0写满时,从维护的DU0所属SSD空闲队列中重新分配一个DU1,在DU1中以页为单位写入剩余的待写入数据。
至此,已完成了当待写入数据已超过分条深度时,将待写入数据写入SSD的过程。在具体的实施过程中,S203或者S204之后,还可以包括:
获取写入待写入数据后的SSD中存放该待写入数据的当前逻辑页,更新维护该逻辑页的映射表表项。
具体包括如下过程:(1)根据当前逻辑页映射表表项的第一个域(用于指向当前逻辑页真实存放在哪个物理页上),获得原来存放当前逻辑页中数据的物理页页号(旧物理页页号)。(2)若当前逻辑页映射表表项的第一个域为0xffffffff,则将选中DU中用于存放当前逻辑页的物理页页号赋给该域;若不为0xffffffff,说明当前逻辑页曾经存放在其它物理页上,此时先根据(1)中获得的旧物理页页号查找与该物理页页号相同的逻辑页的映射表表项,并将该表项的第二个域(用于指向与当前逻辑页页号相同的物理页被哪一个逻辑页引用)置为0xffffffff,表明该物理页无效了,再根据旧物理页页号获得其所在DU在垃圾回收表中的表项,更新该表项中二叉查找树节点的无效页计数值并调整其在树中的位置,同时将表项的页位图中对应比特位置为1,最后将选中DU中用于存放当前逻辑页的物理页页号赋给当前逻辑页映射表表项的第一个域。(3)根据选中DU中用于存放当前逻辑页的物理页页号获得与其页号相同的逻辑页的映射表表项,并更新该表项的第二个域(用于指向与当前逻辑页页号相同的物理页被哪一个逻辑页引用),将当前主机写请求的逻辑页页号赋给该域。
本实施例中,考虑到LUN的空间是有限的,为了使得数据写入各个SSD的机会均等,可以预先定义SSD中已使用DU的阈值,如果系统在运行过程中,某一个SSD已使用DU数超过上限阈值时,系统将启动后台垃圾回收线程,回收DU。在回收DU时,回收线程将确定系统当前是否繁忙,如果繁忙,则回收线程只针对每个SSD回收一个DU;如果系统空闲,则回收线程将对每个SSD进行连续回收直到每个SSD的已使用DU数低于下限阈值。
下面针对一个SSD的DU回收过程进行描述:在对每个盘进行DU回收时,系统首先从当前盘的二叉查找树中摘除最右端节点(通过一个struct btree类型的指针指向该节点),也就是无效页计数值最大的节点,然后根据该节点father字段所在的内存地址减去垃圾回收表的起始地址再除以每个垃圾回收表表项的尺寸(152B)即可确定出待回收DU的序号,接着根据该DU的序号在映射表中找到与其覆盖的所有物理页具有相同页号的逻辑页的映射表表项,然后结合该DU垃圾回收表表项中的页位图,将该DU中有效的页(位图中对应比特位为0)搬移到当前指针指向的待接收DU中(垃圾回收时将根据位图每次搬移一个连续有效页段的数据),在对每个页搬移完成后,根据与待回收DU中当前物理页页号相同的逻辑页的映射表表项的第二个域(用于指向与当前逻辑页页号相同的物理页被哪一个逻辑页引用),找到引用该物理页的逻辑页,并将该逻辑页映射表表项的第一个字段(用于指向当前逻辑页真实存放在哪一个物理页上)更新为当前指针指向的待接收DU中当前写入数据的物理页的页号,最后将与待回收DU中当前物理页页号相同的逻辑页的映射表表项的第二个域置为0xffffffff。当待回收DU中的所有有效页都被成功搬移后,就将其插入空闲DU队列的尾部,并将当前SSD的已使用DU计数值减1。
本实施例实现了待写入数据预占用空间未超过预设的分条深度时,将待写入数据写入SSD的过程,在整个过程中,由于数据是以页为单位顺序写入SSD的,相对于随机小写,提高了SSD的写性能。
实施例三、
参见图3,为本发明实施三提供的写数据的方法流程图,该方法包括:
S301:获取当前指针所指向的DU。
例如,待接收数据的DU包括:DU0、DU4、DU8和DU12,当前指针指向DU0,则获取当前指针所指向的DU0。
S302:若待写入数据预占用空间超过预设的分条深度(如16K),将待写入数据划分为第一待写入数据和第二待写入数据,且确定当前指针所指向的DU中剩余页的空间是否大于第一待写入数据预占用的空间,若是,执行S303;否则,执行S306。
S303:当前指针所指向的DU中剩余页的空间大于第一待写入数据预占用的空间时,进一步确定当前时刻下一个待接收数据的DU中剩余页的空间是否大于第二待写入数据预占用的空间,若是,执行S304;否则,执行S305。
S304:将第一待写入数据以页为单位写入当前指针所指向的DU中,将第二待写入数据以页为单位写入除当前指针所指向的DU外当前时刻下一个待接收数据的DU中。
例如,待接收数据的DU包括:DU0,DU4,DU8和DU12,当前指针指向DU0,待写入数据预占用空间超过预设的分条深度,将待写入数据划分为第一待写入数据和第二待写入数据,若DU0剩余的页足够写入第一待写入数据,DU4剩余的页足够写入第二待写入数据,则以页为单位将第一待写入数据写入DU0,以页为单位将第二待写入数据写入DU4。
S305:将第一待写入数据以页为单位写入当前指针所指向的DU中,将第二待写入数据以页为单位写入除当前指针所指向的DU外当前时刻下一个待接收数据的DU中,当接收第二待写入数据的DU被写满时,从该DU所属SSD的空闲队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的第二待写入数据。
例如,待接收数据的DU包括:DU0,DU4,DU8和DU12,当前指针指向DU0,待写入数据预占用空间超过预设的分条深度,将待写入数据划分为第一待写入数据和第二待写入数据,若DU0剩余的页足够写入第一待写入数据,DU4剩余的页不够写入第二待写入数据,则以页为单位将第一待写入数据写入DU0,以页为单位将第二待写入数据写入DU4,当DU4中所有页都写满时,从维护的DU4所属SSD的空闲队列中重新分配一个DU5,用来接收第二待写入数据中剩余的部分。
S306:当前指针所指向的DU中剩余页的空间小于第一待写入数据预占用的空间时,进一步确定除当前指针指向的DU外,当前时刻下一个待接收数据的DU中剩余页的空间是否大于第二待写入数据预占用的空间,若是,执行S307;否则,执行S308。
S307:将第一待写入数据以页为单位写入当前指针所指向的DU中,若当前指针所指向的DU被写满时,从当前指针指向的DU所属SSD的空闲DU队列中重新分配一个DU,将剩余的第一待写入数据以页为单位写入重新分配的DU中,且将当前指针所指的方向移到RAID组中当前SSD之后,下一个SSD提供的DU;将第二待写入数据以页为单位写入除当前指针所指向的DU外,当前时刻下一个待接收数据的DU中。
例如,待接收数据的DU包括:DU0,DU4,DU8和DU12,当前指针指向DU0,待写入数据预占用空间超过预设的分条深度,将待写入数据划分为第一待写入数据和第二待写入数据,若DU0剩余的页不够写入第一待写入数据,DU4剩余的页足够写入第二待写入数据,则以页为单位将第一待写入数据写入DU0,当DU0写满时,从DU0所属SSD的空闲队列中重新分配一个DU1,接收第一待写入数据中剩余的部分;以页为单位将第二待写入数据写入DU4。
S308:将第一待写入数据以页为单位写入当前指针所指向的DU中,若当前指针所指向的DU被写满,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,将剩余的第一待写入数据以页为单位写入重新分配的DU中,将第二待写入数据以页为单位写入除当前指针指向的DU外,当前时刻下一个待接收数据的DU中,当接收第二待写入数据的DU被写满时,从该被写满DU所属的SSD的空闲队列中重新分配一个DU,将剩余的第二待写入数据以页为单位写入重新分配的DU中。
例如,待接收数据的DU包括:DU0,DU4,DU8和DU12,当前指针指向DU0,待写入数据预占用空间超过预设的分条深度,将待写入数据划分为第一待写入数据和第二待写入数据,若DU0剩余页的不够写入第一待写入数据,且DU4剩余的页不够写入第二待写入数据,则以页为单位将第一待写入数据写入DU0,当DU0写满时,从DU0所属SSD的空闲队列中重新分配一个DU1,接收第一待写入数据中剩余的部分;以页为单位将第二待写入数据写入DU4,当DU4写满时,从DU4所属SSD的空闲队列中重新分配一个DU5,接收第二待写入数据中剩余的部分。
本实施例描述了将第二待写入数据写入除当前指针指向的DU外,当前时刻下一个待接收数据的DU中的情况,在具体的实施例过程中,还可以将第二待写入数据写入除当前指针指向的DU外,至少2个当前时刻待接收数据的DU中,例如,将第一待写入数据写入DU0,将第二待写入数据分发到DU4、DU8、和DU12中。
可以理解的是,在S304、S305、以及S308具体的实施过程中,待写入数据还可以有其它不同的划分方式,例如将待写入数据划分为:第一待写入数据、第二待写入数据、第三待写入数据和第四待写入数据。相应的,将划分后的数据写入DU的过程包括:以页为单位将第一待写入数据写入DU0;以页为单位将第二待写入数据写入DU4;以页为单位将第三待写入数据写入DU8;以页为单位将第四待写入数据写入DU12。
至此,已完成了当待写入数据未超过分条深度时,将待写入数据写入SSD的过程。在具体的实施过程中,S304、或者S305、或者S307、或者S308之后还可以包括:
获取写入待写入数据后的SSD中存放该待写入数据的当前逻辑页,更新维护的该逻辑页的映射表表项。
具体的,该映射表表项具有两个域:一个域用于指向真实存放当前逻辑页的物理页,另一个域用于指向引用与当前逻辑页页号相同的物理页被哪一个逻辑页引用。具体的实施例过程可参考实施例二中的描述,此处不再赘述。
本实施例中,考虑到LUN的空间是有限的,为了使得数据写入各个SSD的机会均等,可以预先定义SSD中已使用DU的阈值,如果系统在运行过程中,某一个SSD已使用DU数超过上限阈值时,系统将启动后台垃圾回收线程,回收DU。在回收时,回收线程将确定系统当前是否繁忙,如果繁忙,则回收线程只针对每个SSD回收一个DU;如果系统空闲,则回收线程将对每个SSD进行连续回收直到每个SSD的已使用DU数低于下限阈值。关于针对一个SSD的DU回收过程的描述可参考实施例二,此处不再赘述。
本实施例实现了待写入数据预占用空间超过预设的分条深度时,将待写入数据以页为单位写入SSD的过程,在此个过程中,由于数据是顺序写入SSD的,相对于随机小写,提高了SSD的写性能。
下面对本发明实施例提供的基于全页日志结构管理模式的写数据的装置进行描述。
实施例四、
参见图4,为本发明实施例四提供的一种写数据的装置示意图,该装置包括:
获取单元401,用于获取当前指针所指向的DU(硬盘单元)。
例如,系统中有SSD0-SSDX(其中X为大于等于1的整数),按照预设大小(如4MB)的DU对SSD进行等分,对构建的RAID组(如RAID0)中的每个SSD维护一个空闲DU队列,用于接收待写入数据;同时还维护一个当前指针,用于指向待写入数据当前时刻应该下发到哪一个待接收数据的DU中。若RAID0包括4个SSD,每一时刻都会有4个来自不同SSD的DU用于接收待写入数据,如4个来自不同SSD的包括:DU0,DU4,DU8和DU12,当前指针指向DU0,则获取当前指针所指向的DU0。
写操作单元402,用于当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的固态硬盘SSD中;当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中。
例如,预设的分条深度可以为16K;待写入数据为主机下发的写请求,一个写请求为主机串口一次发送出的数据,当一个写请求所占空间大于16K时,即该写请求超过预设的分条深度,将该待写入数据以页为单位写入所述DU所属的固态硬盘SSD中;当一个写请求所占空间小于16K时,即该写请求未超过分条深度,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中。
本实施例中,获取单元401获取当前指针所指向的DU,当待写入数据预占用的空间未超过预设的分条深度时,写操作单元402将待写入数据以页为单位写入当前指针所指向的DU所属的固态硬盘SSD中;当待写入数据预占用的空间超过预设的分条深度时,写操作单元402将待写入数据以页为单位写入获取单元401获取的DU所属的RAID组的至少两个SSD中。由于数据是顺序写入SSD的,因此相对于将待写入数据随机写入SSD,提高了SSD的写性能。
实施例五、
参见图5,为本发明实施例五提供的一种写数据的装置示意图,该实施例相对于实施例四,还包括:
维护单元501,用于对RAID组的每个SSD维护一个空闲DU队列,每个空闲DU队列中有一个空闲DU处于待接收数据的状态。
本发明实施例中的写操作单元402可以为第一写操作子单元502,用于确定待写入数据预占用的空间未超过预设的分条深度时,在当前指针所指向的DU中以页为单位写入待写入数据,若当前指针所指向的DU被写满,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的待写入数据。
例如,待接收数据的DU包括:DU0,DU4,DU8和DU12,当前指针指向DU0,待写入数据未超过预设的分条深度,且DU0剩余页的空间小于待写入数据,则以页为单位将待写入数据写入DU0,当DU0写满时,从维护的DU0所属SSD空闲队列中重新分配一个DU1,在DU1中以页为单位写入剩余的数据。
该实施例相对于实施例四,实现了待写入数据预占用的空间未超过预设的分条深度,在当前指针所指向的DU中顺序写入待写入数据,以提高SSD写性能的过程。
实施例六、
参见图6,为本发明实施例六提供的一种写数据的装置示意图,该实施例相对于实施例四,还包括:
维护单元501,用于对RAID组的每个SSD维护一个空闲DU队列,每个空闲DU队列中有一个空闲DU处于待接收数据的状态。
本发明实施例中的写操作单元402可以包括:
划分子单元601,用于确定待写入数据预占用的空间超过预设的分条深度时,将待写入数据划分为第一待写入数据和第二待写入数据。
第二写操作子单元602,用于将第一待写入数据以页为单位写入当前指针所指向的DU中,若当前指针所指向的DU被写满,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,将剩余的第一待写入数据以页为单位写入重新分配的DU中;将第二待写入数据以页为单位写入除当前指针所指向的DU外至少一个当前时刻待接收数据的DU中,若接收第二待写入数据的DU被写满时,从该被写满的DU所属的SSD的空闲队列中重新分配一个DU,将剩余的第二待写入数据以页为单位写入重新分配的DU中。
例如,在当前指针所指向的DU中剩余页的空间大于第一待写入数据预占用的空间,且维护单元501维护的待接收数据的DU中除当前指针指向的DU外,当前时刻下一个待接收数据的DU中剩余页的空间大于第二待写入数据预占用的空间的情况下,第二写操作子单元602在当前指针所指向的DU中以页为单位写入第一待写入数据,在维护单元501维护的待接收数据的DU中除当前指针所指向的DU外,当前时刻下一个待接收数据的DU中以页为单位写入第二待写入数据;以及
在当前指针所指向的DU中剩余页的空间大于第一待写入数据预占用的空间,且维护单元501维护的待接收数据的DU中除当前指针指向的DU外,当前时刻下一个待接收数据的DU中剩余页的空间小于第二待写入数据预占用的空间的情况下,第二写操作子单元602在当前指针所指向的DU中以页位单位写入第一待写入数据,在维护单元501维护的待接收数据的DU中除当前指针指向的DU外,当前时刻下一个待接收数据的DU中以页为单位写入第二待写入数据,当接收第二待写入数据的DU被写满时,从该被写满的DU所属的SSD的空闲队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的第二待写入数据;以及
在当前指针所指向的DU中剩余页的空间小于第一待写入数据预占用的空间,且维护单元501维护的待接收数据的DU中除当前指针指向的DU外,当前时刻下一个待接收数据的DU中剩余页的空间大于第二待写入数据预占用的空间的情况下,第二写操作子单元602在当前指针所指向的DU中以页为单位写入第一待写入数据,前指针所指向的DU被写满后,从前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的第一待写入数据,在维护单元501维护的待接收数据的DU中除当前指针所指向的DU外,当前时刻下一个待接收数据的DU中以页为单位写入第二待写入数据;以及
在当前指针所指向的DU中剩余页的空间小于第一待写入数据预占用的空间,且维护单元501维护的待接收数据的DU中除当前指针指向的DU外,当前时刻下一个待接收数据的DU中剩余页的空间小于第二待写入数据预占用的空间的情况下,第二写操作子单元602在当前指针所指向的DU中以页为单位写入第一待写入数据,当前指针所指向的DU被写满后,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的第一待写入数据,在除当前指针所指向的DU外,当前时刻下一个待接收数据的DU中以页为单位写入第二待写入数据,当接收第二待写入数据的DU被写满时,从该被写满第二待写入数据的DU所属的SSD的空闲队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的第二待写入数据。
本实施例描述了将第二待写入数据写入除当前指针指向的DU外,当前时刻下一个待接收数据的DU中的情况,在具体的实施例过程中,还可以将第二待写入数据写入除当前指针指向的DU外,至少2个当前时刻待接收数据的DU中,例如,将第一待写入数据写入DU0,将第二待写入数据分发到DU4、DU8、和DU12中。
该实施例相对于实施例四,实现了待写入数据预占用的空间超过预设分条深度,在当前指针所指向的DU中按顺序写入待写入数据,以提高SSD写性能的过程。
实施例七、
本实施例相对于实施例四,包括实施例五或者实施例六中的维护单元501、实施例五中的第一写操作子单元502、以及实施例六中的划分子单元601以及第二写操作子单元602。各单元的具体实施过程此处不再赘述。
该实施例相对于实施例四,实现了待写入数据预占用的空间未超过预设的分条深度,在当前指针所指向的DU所属的固态硬盘SSD中顺序写入待写入数据,以提高SSD写性能的过程;以及待写入数据预占用的空间超过预设的分条深度,在当前指针所指向的DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中按顺序写入待写入数据,以提高SSD写性能的过程。
实施例八、
参见图7,为本发明实施例八提供的写数据的装置示意图,相对于上述实施例四至实施例七中的任意一个实施例,还包括:
回收单元701,用于在写操作单元402向SSD写数据的过程中,当RAID组中任意一个SSD已使用DU数量超过预设的阈值时,根据维护的以DU中无效页数作为健值的二叉查找树,选择待回收DU,并回收该DU。具体的实施过程可参考实施例二,此处不再赘述。
本实施例相对于实施例四,当RAID组中任意一个SSD已使用DU数量超过预设的阈值时,将启动后台垃圾回收线程,回收DU,从而能够实现资源的充分利用。
实施例九、
该实施例提供了一种廉价冗余磁盘阵列RAID,该RAID包括至少两个SSD以及实施例四至实施例八任意一个实施例所述的写数据的装置。
通过该实施例,待写入数据可以顺序写入RAID中的SSD,从而提高RAID中SSD的写性能。
以上实施例可以看出,通过维护的当前指针,获取当前指针指向的DU,当确定待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入获取的DU所属的固态硬盘SSD中;当确定待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入当前指针所指向的DU所属的RAID组的至少两个SSD中,可以看出数据是顺序写入SSD的,相对于将数据随机写入SSD中,提高了SSD的写性能;并且通过将待写入数据写入至少2个SSD中,实现了全页日志结构管理模式下数据的并发;另外,当RAID组中任意一个SSD已使用DU数量超过预设的阈值时,将启动后台垃圾回收线程,回收DU,从而使得数据写入各个SSD的机会均等。
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种写数据的方法,其特征在于,包括:
获取当前指针所指向的硬盘单元DU;
当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的固态硬盘SSD中;
当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中。
2.根据权利要求1所述的方法,其特征在于,所述RAID组中的每个SSD包含有一个空闲DU队列,每个空闲DU队列中有一个空闲DU处于待接收数据的状态。
3.根据权利要求2所述的方法,其特征在于,当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的固态硬盘SSD中,包括:
当待写入数据预占用的空间未超过预设的分条深度时,在当前指针所指向的DU中以页为单位写入待写入数据,若当前指针所指向的DU被写满,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的待写入数据。
4.根据权利要求2所述的方法,其特征在于,当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组的至少两个SSD中,包括:
当待写入数据预占用的空间超过预设的分条深度时,将待写入数据划分为第一待写入数据和第二待写入数据;
将第一待写入数据以页为单位写入当前指针所指向的DU中,若当前指针所指向的DU被写满,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,将剩余的第一待写入数据以页为单位写入重新分配的DU中;
将第二待写入数据以页为单位写入除当前指针所指向的DU外至少一个当前时刻待接收数据的DU中,若接收第二待写入数据的DU被写满时,从该被写满的DU所属SSD的空闲队列中重新分配一个DU,将剩余的第二待写入数据以页为单位写入重新分配的DU中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述RAID组中任意一个SSD已使用DU数量超过预设的阈值时,根据维护的以DU中无效页数作为健值的二叉查找树,选择待回收DU,并回收该DU。
6.一种写数据的装置,其特征在于,包括:
获取单元,用于获取当前指针所指向的硬盘单元DU;
写操作单元,用于当待写入数据预占用的空间未超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的固态硬盘SSD中;当待写入数据预占用的空间超过预设的分条深度时,将待写入数据以页为单位写入所述DU所属的廉价冗余磁盘阵列RAID组中的至少两个SSD中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
维护单元,用于对所述RAID组中的每个SSD维护一个空闲DU队列,每个空闲DU队列中有一个空闲DU处于待接收数据的状态。
8.根据权利要求7所述的装置,其特征在于,所述写操作单元包括:
第一写操作子单元,用于当待写入数据预占用的空间未超过预设的分条深度时,在当前指针所指向的DU中以页为单位写入待写入数据,若当前指针所指向的DU被写满,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,在重新分配的DU中以页为单位写入剩余的待写入数据;
划分子单元,用于当待写入数据预占用的空间超过预设的分条深度时,将待写入数据划分为第一待写入数据和第二待写入数据;
第二写操作子单元,用于将第一待写入数据以页为单位写入当前指针所指向的DU中,若当前指针所指向的DU被写满,从当前指针所指向的DU所属SSD的空闲DU队列中重新分配一个DU,将剩余的第一待写入数据以页为单位写入重新分配的DU中;将第二待写入数据以页为单位写入除当前指针所指向的DU外至少一个当前时刻待接收数据的DU中,若接收第二待写入数据的DU被写满时,从该被写满的DU所属的SSD的空闲队列中重新分配一个DU,将剩余的第二待写入数据以页为单位写入重新分配的DU中。
9.根据权利要求6-8任意一项所述的装置,其特征在于,所述装置还包括:
回收单元,用于所述RAID组中任意一个SSD已使用DU数量超过预设的阈值时,根据维护的以DU中无效页数作为健值的二叉查找树,选择待回收DU,并回收该DU。
10.一种廉价冗余磁盘阵列RAID,其特征在于,所述RAID包括至少两个SSD以及如权利要求6-9任意一项所述的写数据的装置。
CN200910161967A 2009-09-10 2009-09-10 一种写数据的方法、装置以及廉价冗余磁盘阵列 Active CN102023810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910161967A CN102023810B (zh) 2009-09-10 2009-09-10 一种写数据的方法、装置以及廉价冗余磁盘阵列

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910161967A CN102023810B (zh) 2009-09-10 2009-09-10 一种写数据的方法、装置以及廉价冗余磁盘阵列

Publications (2)

Publication Number Publication Date
CN102023810A true CN102023810A (zh) 2011-04-20
CN102023810B CN102023810B (zh) 2012-08-29

Family

ID=43865146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910161967A Active CN102023810B (zh) 2009-09-10 2009-09-10 一种写数据的方法、装置以及廉价冗余磁盘阵列

Country Status (1)

Country Link
CN (1) CN102023810B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262882A (zh) * 2011-06-20 2011-11-30 成都市华为赛门铁克科技有限公司 硬盘阵列的读/写方法及装置、网络设备
CN103634350A (zh) * 2012-08-24 2014-03-12 阿里巴巴集团控股有限公司 一种存储系统及其实现方法
CN104169864A (zh) * 2014-03-13 2014-11-26 华为技术有限公司 重定向写入方法及装置
CN104424110A (zh) * 2013-09-10 2015-03-18 Lsi公司 固态驱动器的主动回收
US9372642B2 (en) 2013-07-22 2016-06-21 International Business Machines Corporation RAID 10 reads optimized for solid state drives
CN106033320A (zh) * 2015-03-11 2016-10-19 中兴通讯股份有限公司 高性能廉价磁盘冗余阵列raid机制的处理方法及装置
CN106648469A (zh) * 2016-12-29 2017-05-10 华为技术有限公司 一种缓存数据处理方法、装置和存储控制器
WO2017088185A1 (zh) * 2015-11-27 2017-06-01 华为技术有限公司 一种存储设备存储数据的方法及存储设备
CN107203330A (zh) * 2016-03-17 2017-09-26 北京忆恒创源科技有限公司 一种面向读写数据流的闪存数据分布方法
CN107656939A (zh) * 2016-07-26 2018-02-02 南京中兴新软件有限责任公司 文件写入方法及装置
CN107665090A (zh) * 2016-07-27 2018-02-06 北京忆恒创源科技有限公司 实现全局磨损均衡的方法
CN113468567A (zh) * 2021-07-02 2021-10-01 罗克佳华(重庆)科技有限公司 数据处理方法及数据处理设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1302392C (zh) * 2003-01-24 2007-02-28 华为技术有限公司 一种磁盘在线重构方法
CN201237907Y (zh) * 2008-08-11 2009-05-13 湖南源科创新科技股份有限公司 单盘结构的固态raid系统

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262882B (zh) * 2011-06-20 2013-12-04 华为数字技术(成都)有限公司 硬盘阵列的读/写方法及装置、网络设备
CN102262882A (zh) * 2011-06-20 2011-11-30 成都市华为赛门铁克科技有限公司 硬盘阵列的读/写方法及装置、网络设备
CN103634350B (zh) * 2012-08-24 2017-05-17 阿里巴巴集团控股有限公司 一种存储系统及其实现方法
CN103634350A (zh) * 2012-08-24 2014-03-12 阿里巴巴集团控股有限公司 一种存储系统及其实现方法
US10031808B2 (en) 2013-07-22 2018-07-24 International Business Machines Corporation Raid 10 reads optimized for solid state drives
US9372642B2 (en) 2013-07-22 2016-06-21 International Business Machines Corporation RAID 10 reads optimized for solid state drives
CN104424110A (zh) * 2013-09-10 2015-03-18 Lsi公司 固态驱动器的主动回收
CN104424110B (zh) * 2013-09-10 2017-11-14 Lsi公司 固态驱动器的主动回收
CN104169864B (zh) * 2014-03-13 2017-03-29 华为技术有限公司 重定向写入方法及装置
CN104169864A (zh) * 2014-03-13 2014-11-26 华为技术有限公司 重定向写入方法及装置
CN106033320A (zh) * 2015-03-11 2016-10-19 中兴通讯股份有限公司 高性能廉价磁盘冗余阵列raid机制的处理方法及装置
CN106033320B (zh) * 2015-03-11 2020-04-14 中兴通讯股份有限公司 高性能廉价磁盘冗余阵列raid机制的处理方法及装置
CN109656486A (zh) * 2015-11-27 2019-04-19 华为技术有限公司 一种存储设备存储数据的方法及存储设备
CN107003809A (zh) * 2015-11-27 2017-08-01 华为技术有限公司 一种存储设备存储数据的方法及存储设备
CN107003809B (zh) * 2015-11-27 2019-01-18 华为技术有限公司 一种存储设备存储数据的方法及存储设备
KR101962359B1 (ko) 2015-11-27 2019-03-26 후아웨이 테크놀러지 컴퍼니 리미티드 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치
CN109656486B (zh) * 2015-11-27 2022-07-12 华为技术有限公司 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器
KR101871471B1 (ko) * 2015-11-27 2018-08-02 후아웨이 테크놀러지 컴퍼니 리미티드 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치
WO2017088185A1 (zh) * 2015-11-27 2017-06-01 华为技术有限公司 一种存储设备存储数据的方法及存储设备
KR20170081133A (ko) * 2015-11-27 2017-07-11 후아웨이 테크놀러지 컴퍼니 리미티드 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치
KR20180072855A (ko) * 2015-11-27 2018-06-29 후아웨이 테크놀러지 컴퍼니 리미티드 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치
RU2642349C1 (ru) * 2015-11-27 2018-01-24 Хуавэй Текнолоджиз Ко., Лтд. Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных
CN107203330A (zh) * 2016-03-17 2017-09-26 北京忆恒创源科技有限公司 一种面向读写数据流的闪存数据分布方法
CN107656939A (zh) * 2016-07-26 2018-02-02 南京中兴新软件有限责任公司 文件写入方法及装置
CN107665090B (zh) * 2016-07-27 2021-09-03 北京忆恒创源科技有限公司 实现全局磨损均衡的方法
CN107665090A (zh) * 2016-07-27 2018-02-06 北京忆恒创源科技有限公司 实现全局磨损均衡的方法
CN106648469A (zh) * 2016-12-29 2017-05-10 华为技术有限公司 一种缓存数据处理方法、装置和存储控制器
CN106648469B (zh) * 2016-12-29 2020-01-17 华为技术有限公司 一种缓存数据处理方法、装置和存储控制器
CN113468567A (zh) * 2021-07-02 2021-10-01 罗克佳华(重庆)科技有限公司 数据处理方法及数据处理设备
CN113468567B (zh) * 2021-07-02 2023-04-07 罗克佳华(重庆)科技有限公司 数据处理方法及数据处理设备

Also Published As

Publication number Publication date
CN102023810B (zh) 2012-08-29

Similar Documents

Publication Publication Date Title
CN102023810B (zh) 一种写数据的方法、装置以及廉价冗余磁盘阵列
US20240126433A1 (en) Method of controlling nonvolatile semiconductor memory
CN106547703B (zh) 一种基于块组结构的ftl优化方法
CN103186350B (zh) 混合存储系统及热点数据块的迁移方法
US8782324B1 (en) Techniques for managing placement of extents based on a history of active extents
CN103049397B (zh) 一种基于相变存储器的固态硬盘内部缓存管理方法及系统
CN101458613B (zh) 一种混合分级阵列的实现方法、混合分级阵列和存储系统
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
CN101446924B (zh) 一种数据存储及获取方法、系统
CN105930282B (zh) 一种用于nand flash的数据缓存方法
CN102087586B (zh) 数据处理方法及装置
US10061704B2 (en) Systems and methods for managing cache of a data storage device
CN104794070A (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN104115109A (zh) 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法
CN110413537B (zh) 一种面向混合固态硬盘的闪存转换层及转换方法
CN1934529A (zh) 海量存储加速器
CN103440207A (zh) 缓存方法及装置
CN105138286A (zh) 一种在磁盘文件系统中混合利用ssd和smr硬盘的方法
CN103838853A (zh) 一种基于不同存储介质的混合文件系统
CN101620572A (zh) 非易失性内存及控制方法
CN106055679A (zh) 一种多层次缓存感知型索引方法
CN102520885B (zh) 一种混合硬盘的数据管理系统
CN110427347A (zh) 重复数据删除的方法、装置、存储节点及存储介质
KR20120037218A (ko) Ssd 장치의 매핑 테이블 관리 방법
CN102591816A (zh) 一种多通道Nandflash存储系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20220831

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right