CN110244905A - 具有数据量削减功能的计算机系统,和存储控制方法 - Google Patents

具有数据量削减功能的计算机系统,和存储控制方法 Download PDF

Info

Publication number
CN110244905A
CN110244905A CN201810964800.3A CN201810964800A CN110244905A CN 110244905 A CN110244905 A CN 110244905A CN 201810964800 A CN201810964800 A CN 201810964800A CN 110244905 A CN110244905 A CN 110244905A
Authority
CN
China
Prior art keywords
storage
region
layer
logical
data set
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
CN201810964800.3A
Other languages
English (en)
Other versions
CN110244905B (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN110244905A publication Critical patent/CN110244905A/zh
Application granted granted Critical
Publication of CN110244905B publication Critical patent/CN110244905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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
    • G06F3/0641De-duplication techniques
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

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

本发明的数据量削减功能的计算机系统、和存储控制方法,对于单独区域,迅速地进行存储区域的回收、和存储区域之间的数据集的复制。在与发出数据输入输出请求的外部计算机、和保存数据的存储设备连接的计算机系统中,存在存储设备方的第1层的逻辑存储区域、和外部计算机方的第2层的逻辑存储区域。第1层的逻辑存储区域具有共用区域和单独区域。共用区域的存储区域与第2层的逻辑存储区域的一个或多个存储区域相关联。单独区域的存储区域与第2层的逻辑存储区域的一个存储区域相关联。计算机系统进行多个数据集的重复判断,通过使判断为重复的多个数据集与共用区域相对应,来使共用区域的存储区域与第2层的逻辑存储区域的多个存储区域相关联。

Description

具有数据量削减功能的计算机系统,和存储控制方法
技术领域
本发明主要涉及具有数据量削减功能的计算机系统中的存储控制。
背景技术
作为计算机系统的一例,有存储系统。作为具有数据量削减功能的存储系统,例如,已知专利文献1中公开的存储系统、即具有垃圾回收(garbage collection)功能的存储系统。专利文献1中公开了以下内容。
存储系统具有存储设备、和具有垃圾回收功能的存储控制器。存储控制器管理虚拟地址与存储设备的物理地址的映射。存储控制器在发生了对虚拟地址的写的情况下,进行对于该虚拟地址、代替已分配的物理地址地映射新的写目标的空闲物理地址这样的映射更新(地址转换表的更新)。结果,无效数据(符合对虚拟地址的映射已被解除的物理地址的数据)增加。存储控制器执行复制有效数据(符合已映射至某一个虚拟地址的物理地址的数据)并删除无效数据的垃圾回收。由此,数据量被削减,空闲物理地址(空闲区域)增加。
现有技术文献
专利文献
专利文献1:US 8,527,544
发明内容
发明要解决的课题
一般而言,在存储系统中,存在逻辑存储区域的多个层。以下,将多个层中的第1层的逻辑存储区域称为“第1逻辑存储区域”,将多个层中的第2层的逻辑存储区域称为“第2逻辑存储区域”。第2层是比第1层更上的层。第1逻辑存储区域由多个部分区域构成。第2逻辑存储区域例如是符合Thin Provisioning的虚拟卷(虚拟的逻辑卷),该情况下,第1逻辑存储区域是由可以对虚拟卷分配的多个页(部分区域的一例)构成的池。
作为数据量削减功能之一,有重复去除功能。重复去除功能一般而言是在检测出与多个逻辑地址(2个以上的第2逻辑存储区域中的不同的多个写目标)分别对应的多个数据集(data set)的重复的情况下,将多个逻辑地址的参照目标设为保存多个数据集中的某一个数据集(重复数据集)的部分区域,删除其余数据集的功能。
在部分区域中,可以同时存在重复数据集和单独数据集(与任一数据集都不重复的数据集)。
因此,难以迅速地进行对已分配的部分区域适当地回收(使其成为未使用的部分区域)。例如,作为部分区域的回收,有时将分配给删除对象的第2逻辑存储区域的部分区域回收,但此时,需要按回收对象的部分区域内的每个数据集判别是重复数据集和单独数据集中的哪一方。另外,例如,作为部分区域的回收,有时在部分区域之间复制有效数据集(某一个逻辑地址的参照目标的区域内的数据集)并回收复制源的部分区域(垃圾回收处理),但在重复数据集是有效数据集的情况下需要对多个逻辑地址进行参照目标的更新。
另外,部分区域之间的数据集的复制也可能难以迅速地进行。这是因为,在复制对象的数据集是重复数据集的情况下,如上所述,需要对多个逻辑地址进行参照目标的更新。另外,“复制”可以是在复制源中残留数据集的“replication”、和从复制源中删除数据集的迁移中的某一方。
同样的问题,在采用具有数据量削减功能的服务器系统(例如具有HDD(Hard DiskDrive)这样的辅助存储设备的服务器)作为计算机系统的一例的情况下也可能存在。
用于解决课题的方法
一种与发出数据输入输出请求的外部计算机和保存数据的存储设备连接的计算机系统,多个层的逻辑存储区域具有存储设备一方的第1层的逻辑存储区域、和外部计算机一方的第2层的逻辑存储区域。第1层的逻辑存储区域具有共用区域和单独区域。共用区域的存储区域与第2层的逻辑存储区域的一个或多个存储区域相关联。单独区域的存储区域与第2层的逻辑存储区域的一个存储区域相关联。计算机系统进行多个数据集的重复判断,通过使判断为重复的多个数据集与共用区域相对应,来使共用区域的存储区域与第2层的逻辑存储区域的多个存储区域相关联。
发明效果
对于单独区域,能够迅速地进行存储区域的回收、和存储区域之间的数据集的复制。
附图说明
图1表示本发明的一个实施方式的概要。
图2表示一个比较例的概要。
图3表示包括存储系统的系统整体的结构。
图4表示存储控制器内的存储器的结构、和该存储器内的程序和管理信息。
图5表示存储系统内的存储层级。
图6示意性地表示对追记(追加)页的追记(追加)。
图7示意性地表示重复去除处理。
图8表示VOL管理表的结构。
图9表示地址转换表的结构。
图10表示有效区域管理表的结构。
图11表示页转换表的结构。
图12表示页分配管理表的结构。
图13表示子块管理表的结构。
图14表示追记目标检索表的结构。
图15表示重复检查表的结构。
图16表示哈希管理表的结构。
图17表示重复管理表的结构。
图18表示共用区域分配管理表的结构。
图19表示共用区域参照源检查表的结构。
图20表示前端写处理的流程。
图21表示数据量削减处理的流程。
图22表示重复去除处理的流程。
图23表示重复判断处理的流程。
图24表示追记处理的流程。
图25表示读处理的流程。
图26表示提供卷删除处理的流程。
图27表示垃圾回收处理的流程。
图28表示共用区域释放处理的流程。
附图标记说明
200…存储系统
具体实施方式
以下说明中,“接口部”可以是1个以上的接口。该1个以上的接口可以是1个以上的同类的通信接口设备(例如1个以上的NIC(Network Interface Card)),也可以是2个以上的不同类的通信接口设备(例如NIC和HBA(Host Bus Adapter))。
另外,以下说明中,“存储器部”是1个以上的存储器,典型而言可以是主存储设备。存储器部中的至少1个存储器可以是易失性存储器,也可以是非易失性存储器。
另外,以下说明中,“PDEV部”部是1个以上的PDEV,典型而言可以是辅助存储设备。“PDEV”意即物理的存储设备(Physical storage DEVice),典型而言,是非易失性的存储设备、例如HDD(Hard Disk Drive)或SSD(Solid State Drive)。
另外,以下说明中,“存储部”是存储器部和PDEV部的至少一部分中的至少一方(典型而言至少是存储器部)。
另外,以下说明中,“处理器部”是1个以上的处理器。至少1个处理器,典型而言,是CPU(Central Processing Unit)这样的微处理器,但也可以是GPU(Graphics ProcessingUnit)这样其他种类的处理器。至少1个处理器可以是单核也可以是多核。至少1个处理器也可以是进行处理的一部分或全部的硬件电路(例如FPGA(Field Programmable GateArray)或ASIC(Application Specific Integrated Circuit))等广义的处理器。
另外,以下说明中,有时用“xxx表”这样的表达说明对于输入得到输出的信息,但该信息可以是任意结构的数据,也可以是产生与输入对应的输出的神经网络这样的学习模型。从而,能够将“xxx表”称为“xxx信息”。另外,以下说明中,各表的结构是一例,1个表可以被分割为2个以上的表,2个以上的表的全部或一部分也可以是1个表。
另外,以下说明中,存在以“程序”为主语说明处理的情况,但程序通过被处理器部执行而适当使用存储部和/或接口部等进行规定的处理,所以处理的主语也可以改为处理器部(或者,具有该处理器部的控制器这样的设备)。程序可以从程序源安装在计算机这样的装置中。程序源例如可以是程序发布服务器或计算机能够读取的(例如非临时的)记录介质。另外,以下说明中,可以将2个以上的程序作为1个程序实现,也可以将1个程序作为2个以上的程序实现。
另外,以下说明中,“计算机系统”是包括1台以上物理计算机的系统。物理计算机可以是通用计算机也可以是专用计算机。物理计算机可以起到发出I/O(Input/Output)请求的计算机(例如主机计算机)的作用,也可以起到响应I/O请求进行数据的I/O的计算机(例如存储装置)的作用。即,计算机系统可以是发出I/O请求的1台以上主机计算机即主机系统、和响应I/O请求进行数据的I/O的1台以上存储装置即存储系统中的至少一方。可以在至少1台物理计算机中,运行1台以上虚拟计算机(例如VM(Virtual Machine))。虚拟计算机可以是发出I/O请求的计算机,也可以是响应I/O请求进行数据的I/O的计算机。
另外,计算机系统可以是由1台以上(典型而言是多台)物理节点装置构成的分布式系统。物理节点装置是物理计算。
另外,可以通过物理计算机(例如节点装置)执行规定的软件,而在该物理计算机、或包括该物理计算机的计算机系统中,构建SDx(Software-Defined anything)。作为SDx,例如能够采用SDS(Software Defined Storage)或SDDC(Software-defined Datacenter)。例如,可以通过用物理的通用计算机执行具有存储功能的软件,而构建作为SDS的存储系统。另外,至少1台物理计算机(例如存储装置)可以执行作为主机系统的1台以上虚拟计算机、和作为存储系统的存储控制器(典型而言,是响应I/O请求对PDEV部输入输出数据的装置)的虚拟计算机。换言之,该至少1台物理计算机可以具有作为主机系统的至少一部分的功能、和作为存储系统的至少一部分的功能双方。
另外,计算机系统(典型而言是存储系统)可以具有冗余结构组。冗余结构可以是Erasure Coding、RAIN(Redundant Array of Independent Nodes)和节点间镜像这样由多个节点装置组成的结构,也可以是作为PDEV部的至少一部分的1个以上的RAID(RedundantArray of Independent(or Inexpensive)Disks)组这样由单一的计算机(例如节点装置)组成的结构。
另外,以下说明中,“数据集”指的是由应用程序这样的程序看来的一个逻辑的电子数据的集合,例如可以是记录、文件、键值对和元组中的某一方。
另外,以下说明中,使用识别编号作为各种对象的识别信息,但也能够采用识别编号以外的种类的识别信息(例如包括英文字母和符号的识别符)。
另外,以下说明中,在不区分同类要素地进行说明的情况下,使用参照符号(或参照符号中的共通符号),在区分同类要素地进行说明的情况下,使用要素的识别编号(或参照符号)。例如,在不特别区分页地进行说明的情况下,记载为“页51”,在区分各个页地进行说明的情况下,有时记载为“页0”、“页1”,或者记载为“页51P”、“页51C”。
以下,参照附图,说明本发明的一个实施方式。
图1表示本发明的一个实施方式的概要。另外,在参照图1的说明中,适当使用图3中记载的参照符号。
作为计算机系统的一例,采用存储系统200。在存储系统200中,存在逻辑存储区域(逻辑地址空间)的多个层。属于第1层的1个以上的第1逻辑存储区域的一例,是1个以上的池503。属于第2层(比第1层更上级的层)的多个第2逻辑存储区域的一例,是多个逻辑卷501。逻辑卷501是符合容量虚拟化技术(典型而言是Thin Provisioning)的虚拟的逻辑卷。对逻辑卷501的写目标逻辑地址,分配池503中的未分配(空闲)的页51。
存储系统200具有存储控制器101。存储控制器101是包括处理器部的控制器的一例。存储控制器101具有重复去除功能作为数据量削减功能。
本实施方式中,准备保存重复数据集的空间即共用区域80、和保存单独数据集的空间即单独区域70。换言之,存储系统200中的逻辑地址空间被逻辑地区分为共用区域80和单独区域70。例如,多个逻辑卷501包括可以分别被I/O源识别的2个以上的逻辑卷即2个以上的提供卷501P。
存储控制器101进行判断符合以提供卷0为写目标的写请求的对象数据集是否与某1个以上的数据集重复的数据集的重复判断处理。重复判断处理可以是在该写请求的处理中进行的处理(内部处理)、和在保存符合该写请求的对象数据集之后与该写请求的处理非同步地进行的处理(后处理)中的任一者。作为重复判断处理的对象的多个数据集,包括与写请求相关的数据集、和与单独区域70关联的数据集、和与共用区域80关联的数据集中的至少两个数据集。即,存储系统200内已经存在重复的数据集的情况下,也可能存在3个以上的数据集重复的情况。另外,在内部处理中的重复判断处理中,判断与写请求相关的数据集,是否与与单独区域70关联的数据集、或者与共用区域80关联的数据集重复。判断为重复的情况下,与写请求相关的数据集被删除(重复去除),所以不需要删除单独区域70中的数据集(例如后述的单独页51P的回收)。
如果重复判断处理的结果是对象数据集是与任一数据集都不重复的单独数据集A,则存储控制器101将关于该数据集A的保存目标设为属于单独区域70的与提供卷0对应的页0。以下有时将属于单独区域70的页称为“单独页”。根据图1的例子,页0和1分别是单独页51P。
如果重复判断处理的结果是对象数据集是与某1个以上的数据集重复的数据集B(或C),则存储控制器101将关于重复数据集B(或C)的保存目标设为属于共用区域80的页2。页2从重复数据集B和C各自的多个写目标(提供卷0和1)被直接或间接地参照。以下有时将属于共用区域80的页称为“共用页”。根据图1的例子,页2是共用页51C。重复判断处理是后处理的情况下,存储控制器101从对提供卷0和1分别分配的多个单独页0和1,分别将数据集B和C复制至共用页2,从多个单独页0和1中分别删除数据集B和C。
由此,能够避免发生图2中举例示出的一个比较例这样的状况,即,发生1个页60中同时存在单独数据集A和重复数据集C这样的状况,由此,对于单独页51P,能够迅速地进行页51的回收、和页51之间的数据集的复制。
例如,存储控制器101在将提供卷0作为删除对象的情况下,对于分配给提供卷0的全部单独页51P,无需对于该全部单独页51P分别检查该单独页51P是否从某一其他区域被参照,并且无需检查提供卷0中的某一区域是否参照了共用区域80,就能够释放。因此,能够迅速地回收分配给提供卷0的全部单独页51P。
另外,例如,存储控制器101在单独页51P的垃圾回收处理中,将该单独页51P中的全部有效的单独数据集追记地复制至某一其他页51,解除复制源的页51P的分配。对于单独页51P,在页51之间复制的数据集是单独数据集,不会是重复数据集。因此,参照目标的更新,仅对于该单独数据集的1个逻辑地址(属于提供卷501P的逻辑地址)进行即可,无需对于多个逻辑地址分别进行。因此,能够迅速地进行从单独页51P向其他页51的数据集的复制,结果,使单独页51P的垃圾回收处理的效率提高。
以下,详细说明本实施方式。
图3表示包括存储系统200的系统整体的结构。
存储系统200具有多个(或1个)PDEV220、和与多个PDEV220连接的存储控制器101。
存储控制器101具有S-I/F214、M-I/F215、P-I/F213、存储器212、和与它们连接的处理器211。S-I/F214、M-I/F215和P-I/F213是接口部的一例。存储器212是存储部的一例。处理器211是处理器部的一例。处理器部可以包括进行压缩和解压缩的硬件电路。本实施方式中,处理器211进行压缩和解压缩。即,存储控制器101在重复去除功能之外,还具有压缩功能作为数据量削减功能。
S-I/F214是作为服务器系统201与存储控制器101之间的数据交换的中介的通信接口设备。在S-I/F214上,经由FC(Fibre Channel)网络203连接服务器系统201。服务器系统201对存储控制器101发送指定了I/O目标(例如LUN(Logical Unit Number)这样的逻辑卷编号、LBA(Logical Block Address)这样的逻辑地址)的I/O请求(写请求或读请求)。
M-I/F215是作为管理系统205与存储控制器101之间的数据交换的中介的通信接口设备。在M-I/F215上,经由IP(Internet Protocol)网络204连接管理系统205。网络203和204可以是同一通信网络。管理系统205对存储系统200进行管理。
P-I/F213是作为多个PDEV220与存储控制器101之间的数据交换的中介的通信接口设备。在P-I/F213上,连接多个PDEV220。
存储器212存储处理器211执行的程序、和处理器211使用的数据。处理器211执行存储器212中保存的程序。本实施方式中,例如,存储器212和处理器211的组被二重化。
图4表示存储器212的结构、和存储器212内的程序和管理信息。
存储器212包括本地存储器401、缓存存储器402、和共享存储器404这些存储器区域。这些存储器区域中的至少1个可以是独立的存储器。
本地存储器401被与包括该本地存储器401的存储器212属于同一组的处理器211使用。在本地存储器401中,保存读程序411、前端写程序412、后端写程序413、数据量削减程序414、VOL管理程序415、池容量管理程序416和共用区域释放程序417。对于这些程序在后文中叙述。
在缓存存储器402中,暂时地保存对PDEV220写或读的数据集。
共享存储器404被与包括该共享存储器404的存储器212属于同一组的处理器211和属于不同组的处理器211双方使用。在共享存储器404中,保存管理信息。管理信息包括VOL管理表421、地址转换表422(重复去除信息的一例)、池管理表423、有效区域管理表424、页转换表425、页分配管理表426、子块管理表427、追记目标检索表428、哈希管理表429、重复管理表430和共用区域分配管理表431。这些表中,对于池管理表423以外的表,参照附图在后文中叙述。池管理表423是保存关于池503的信息的表,例如,按每个池503,表示池#(池503的编号)、RG#(作为池503的基础的1个以上的RG504的编号)、池容量(池503的容量)和池使用容量(池容量中已使用的容量(典型而言,是池503中的已分配页的总容量))。
图5表示存储系统200内的存储层级。另外,以下说明中,将第n层称为“层n”(n是自然数)。n越小,则是越上级的层。
存在提供卷501P、追记卷502、池503和RG504。
提供卷501P是层1(第2层的一例)的逻辑存储区域,是对服务器系统201提供的(从服务器系统201可见的)上述逻辑卷。另外,作为层1的逻辑存储区域,进而在本实施方式中,如后所述,存在属于共用区域80的逻辑卷即不对服务器系统201提供的(从服务器系统201不可见的)共用卷。
追记卷502是层2(第3层的一例)的逻辑存储区域,是追记用的逻辑卷。对于1个追记卷502,关联某一个逻辑卷501。反之,对于1个逻辑卷501,关联1个或多个追记卷502。从而,追记卷502(层2的逻辑存储区域)与逻辑卷501(层1的逻辑存储区域)是1:1或1:多的关系。本实施方式中,为了简化说明,设追记卷502与逻辑卷501为1:1。
池503是层3(第1层的一例)的逻辑存储区域,是基于1个以上的RG504的逻辑存储区域。池503由多个页51构成。另外,池503的全部或一部分也可以代替至少1个RG504或在其之外地,基于存储系统200的外部的存储资源。
RG504是层4的逻辑存储区域,是由多个PDEV220构成的RAID组的空间。
图5中举例表示的提供卷501P的一部分是2个以上的提供卷501P中的至少一部分,是使压缩有效的区域即“有效区域”的全部或一部分。对于2个以上的提供卷501P中的有效区域以外的区域,因为是使压缩无效的区域,所以称为“无效区域”。
存储控制器101在写对象的数据集A的写目标是有效区域的情况下,将该写对象的数据集A压缩,在分配给与提供卷501P对应的追记卷502的页51Pa(对该写目标分配的单独页51Pa)中,追记该压缩后的数据集A'。即,对于有效区域,页51Pa是分配给与提供卷501P对应的追记卷502的页51,换言之,是对提供卷501P间接地分配的页51。在页51Pa中,追记地保存压缩后数据集A'。换言之,分配给追记卷502的页51是不可覆盖的。能够将分配给追记卷502的页(对提供卷501P间接地分配的页)称为“追记页”。
另一方面,存储控制器101在写对象的数据集B的写目标是无效区域的情况下,不对该写对象的数据集B进行压缩,就在对该写目标分配的页51Pb中,保存该非压缩的数据集B。即,对于无效区域,页51Pb是对提供卷501P直接地(不经过追记卷502地)分配的页51。在页51Pb中,保存非压缩的数据集B。对提供卷501P直接分配的页51是可覆盖的。能够将对提供卷501P直接分配的页称为“覆盖页”。
图6示意性地表示对追记页51的追记。
逻辑卷501由多个单位区域即多个块601构成。本实施方式中,数据集是块单位的数据。
在分配给与逻辑卷501对应的追记卷502的追记页51P中,逐次追记压缩后数据集。以下说明中,将追记页51P中、压缩后数据集占据的区域602称为“子块602”。子块602是子页区域和子部分区域各自的一例。另外,也可以在追记页51P中追记非压缩的数据集,但本实施方式中,追记压缩后数据集。
图7示意性地表示重复去除处理。具体而言,图7示意性地表示后处理的重复去除处理的一例。
作为逻辑卷501,在提供卷501P之外,还存在共用卷501C。共用卷501C如上所述,是属于共用区域80的不对服务器系统201提供的逻辑卷。图示的共用卷501C的至少一部分是有效区域。另外,也可以准备属于有效区域的共用卷、和属于无效区域的共用卷。
地址转换表422和追记卷502分别按每个逻辑卷501设置。图7的说明中,有时将与逻辑卷m(VOL#“m”的逻辑卷(m是0以上的整数))对应的地址转换表422称为“地址转换表m”。另外,图7的说明中,有时将与逻辑卷m对应的追记卷502称为“追记卷m”。
另外,在以下说明中,有时使用以下用语。
·提供块:提供卷中的块。
·共用块:共用卷中的块。
·重复目标块:作为重复数据集的写目标(复制目标)的共用块。
·追记单独页:是单独页并且是追记页的页。
·追记共用页:是共用页并且是追记页的页(分配给与共用卷对应的追记卷的页)。
存在提供卷1和2,所以存在地址转换表1和2、和追记卷1和2。另外,存在共用卷3,所以存在地址转换表3、和追记卷3。追记卷1和2属于单独区域70,追记卷3属于共用区域80。
重复去除处理之前的状况的一例,如图7的上侧所示,如下所述。
·提供卷1和2分别具有的2个提供块601P中,分别存在数据集A。结果,对追记卷1和2分别分配的2个追记单独页51P中,分别存在压缩后数据集A'。
·地址转换表1和2中,数据集A的写目标提供块601P的逻辑地址的参照目标,是追记单独页51P中的子块602(存在压缩后数据集A'的子块602)的逻辑地址。
存储控制器101在上述重复判断处理中,检测出提供卷1和2中存在重复的数据集A。该情况下,存储控制器101例如进行包括以下处理的重复去除处理。
·存储控制器101将重复数据集A(相当于压缩后数据集A'的解压缩后数据集)从提供卷1和2中的有效区域的提供块601P复制至共用卷3的有效区域中的某一个未使用的共用块601C中。复制目标的共用块601C是重复目标块601C(重复目标区域的一例)。
·存储控制器101对与重复目标块601C对应的追记卷3分配页51。所分配的页51是追记共用页51C。
·存储控制器101将重复数据集A压缩,将压缩后数据集A'追记至追记共用页51C中。
·存储控制器101对地址转换表3进行更新。更新后的地址转换表3中,重复目标块601C的逻辑地址的参照目标,是追记共用页51C中的子块602(存在压缩后数据集A'的子块602)的逻辑地址。
·存储控制器101对地址转换表1和2进行更新。更新后的地址转换表1和2中,提供块601P的逻辑地址的参照目标分别代替追记单独页51P中的子块602(存在压缩后数据集A'的子块602)的逻辑地址地,成为重复目标块601C的逻辑地址。
·存储控制器101将对追记卷1和2分别分配的2个追记单独页51P各自中的、保存了压缩后数据集A'的子块602,如黑色所示地作为无效子块(未分配)进行管理。
·存储控制器101对重复管理表430进行更新。更新后的重复管理表430中,重复目标块601C的逻辑地址的参照源,是复制源的2个提供块601P的逻辑地址。
以上是重复去除处理的一例。另外,即使对共用区域80中的数据集进行参照的单独区域70内的参照源成为一个,也可以不将该数据集移动至单独区域70中(该数据集可以继续残留在共用区域80中)。在重复去除处理中,存储控制器101可以代替将重复数据集A复制至共用块601C地,将某一个压缩后数据集A'追记地复制至属于共用区域80的页51C中,将2个提供块601P的逻辑地址的参照目标设为复制目标页51C的子块602的逻辑地址,使复制源的子块602成为无效子块。采用这样的处理的情况下,共用卷501C也可以不存在。
存储控制器101例如接收了用于在提供卷1中的数据集A的写目标提供块601P中写入更新后的数据集F的写请求。该情况下,对于追记卷1的追记单独页51P,进行以下的(c1)~(c3)。(c2)是在重复去除处理前接受了该写请求的情况下进行的处理。(c3)是在重复去除处理后接受了该写请求的情况下进行的处理。
(c1)存储控制器101判断旧子块602的参照源(旧参照源)是否提供卷1中的某一个提供块601P的逻辑地址。“旧子块”指的是保存了写对象的压缩后数据集F'的更新前的压缩后数据集A'的子块。“写对象的压缩后数据集F'”指的是对写目标提供块601P的写对象的数据集F的压缩后数据集。
(c2)(c1)的判断结果为真的情况下,因为旧子块602存在于追记单独页51P中,所以存储控制器101使该旧子块602成为无效子块(未使用的子块),将写对象的压缩后数据集F'追记至新的子块中,将写目标提供块601P的逻辑地址的参照目标从旧子块602的逻辑地址变更为该新的子块的逻辑地址。
(c3)(c1)的判断结果为假的情况下,因为旧子块602存在于追记共用页51C中,所以存储控制器101不使该旧子块602成为无效子块,就将写对象的压缩后数据集F'追记至追记单独页51C中的新的子块中,将写目标提供块的逻辑地址的参照目标从重复目标块601C的逻辑地址变更为该新的子块的逻辑地址。
因此,可能发生以下(x1)和(x2)这样的状况。
(x1)在追记单独页51P中,有效的压缩后数据集(有效的子块602)的逻辑地址成为非连续的(成为有效的压缩后数据集离散的状态)。
(x2)共用卷501C中的重复目标块601C虽然不再从任一提供卷501P中的提供块601P参照,但保存为使用中,结果,共用卷501C的空闲容量不增加,并且,在共用页51C中持续残留有不必要的压缩后数据块。
因为可能发生(x1)的状况,所以对于单独区域70,需要进行垃圾回收处理。本实施方式中,能够高效率地进行对单独区域70的垃圾回收处理。这是因为,由于垃圾回收处理中有效的任一压缩后数据集都是单独数据集的压缩后数据集,所以对于各有效的压缩后数据集,参照源是1个,仅对于该1个参照源进行参照目标的变更即可。
因为可能发生(x2)的状况,所以存储控制器101进行用于使重复目标块601C成为未使用的释放处理。具体而言,在该释放处理中,存储控制器101从重复目标块601C的1个以上的参照源块601P(1个以上的提供卷501P中的1个以上的提供块601P)中,将参照目标不是该重复目标块601C的参照源块601P去除。存储控制器101在因为全部参照源块601P都被去除而不存在以该重复目标块601C为参照目标的参照源的情况下,将该重复目标块601C释放为未使用。同时,存储控制器101使该重复目标块601C的参照目标的子块602(共用页51C内的子块602)成为无效子块。另外,共用卷501C中的重复目标块601C的参照源块601P仅有1个的情况下,存储控制器101可以进行以下中的某一项。
·存储控制器101将与该重复目标块601C对应的压缩后数据集从共用页51C追记地复制至与包括该参照源块601P的提供卷501P对应的追记页51P中,使复制源的子块602(共用页51C中的子块602)成为未使用(未分配),使重复目标块601C成为未使用。由此,能够增加共用卷501C的空闲容量。
·存储控制器101保存将与该重复目标块601C对应的压缩后数据集保存在共用页51C中的状态。由此,能够降低页51之间的复制的发生频度。
以下,说明几个表。
图8表示VOL管理表421的结构。
本实施方式中,能够将提供卷501P这样对服务器系统201提供的逻辑卷、和共用卷501C和追记卷502这样不对服务器系统201提供的逻辑卷总称为“VOL”。VOL管理表421保存关于VOL的信息。例如,VOL管理表421按每个VOL具有条目。各条目保存VOL#801、VOL属性802、VOL容量803和池#804等信息。以下,以1个VOL(图8的说明中是“对象VOL”)为例。
VOL#801表示对象VOL的编号(识别编号)。VOL属性802表示对象VOL的属性(例如,提供卷是“提供”,追记卷是“追记”,共用卷是“共用”)。VOL容量803表示对象VOL的容量。池#804表示与对象VOL关联的池503的编号。
图9表示地址转换表422的结构。
地址转换表422对于每个逻辑卷501(层1的逻辑卷)存在。地址转换表422保存关于参照源的逻辑地址与参照目标的逻辑地址的关系的信息。例如,地址转换表422按每个块601具有条目。各条目保存VOL内地址901、参照目标VOL#902、参照目标VOL内地址903、数据大小904和参照目标VOL种类905等信息。以下以1个块601(图9的说明中是“对象块601”)为例。
VOL内地址901表示对象块601的逻辑地址(例如起始逻辑地址)。参照目标VOL#902表示对象块601的逻辑地址的参照目标VOL(追记卷或共用卷)的编号。参照目标VOL内地址903表示对象块601的逻辑地址的参照目标的逻辑地址(参照目标VOL内的逻辑地址)。数据大小904表示以对象块601为写目标的数据集的压缩后数据集的大小。参照目标VOL种类905表示对象块601的逻辑地址的参照目标VOL的种类(“单独”(追记卷)或“共用”(共用卷))。
图10表示有效区域管理表424的结构。
有效区域管理表424对于每个逻辑卷501存在。有效区域管理表424保存关于有效区域的信息。例如,有效区域管理表424按每个块具有条目。各条目保存VOL内地址1001和有效标志1002等信息。以下,以1个块601(图10的说明中是“对象块601”)为例。
VOL内地址1001表示对象块601的逻辑地址。有效标志1002表示对象块601属于(“有”)还是不属于(“无”)有效区域。
图11表示页转换表425的结构。
页转换表425对于每个逻辑卷501和每个追记卷502存在。页转换表425保存关于逻辑卷501中的区域(例如与页51的大小相同数量的块601)与页51的关系的信息。例如,页转换表425对于逻辑卷501中的每个区域具有条目。各条目保存VOL内地址1101、分配标志1102和页#1103等信息。以下,以1个区域(图11的说明中是“对象区域”)为例。
VOL内地址1001表示对象区域的逻辑地址(例如起始逻辑地址)。分配标志1102表示对于对象区域已分配(“已分配”)还是未分配(“未分配”)页51。页编号1103表示已对对象区域分配的页51的编号。
图12表示页分配管理表426的结构。
页分配管理表426对于每个池503存在。页分配管理表426保存关于页51与其分配目标的关系的信息。例如,页分配管理表426按每个页51具有条目。各条目保存页#1201、分配标志1202、分配目标VOL#1203和分配目标VOL内地址1204等信息。以下,以1个页51(图12的说明中是“对象页”51)为例。
页#1201表示对象页51的编号。分配标志1202表示对象页51已分配(“已分配”)还是未分配(“未分配”)。分配目标VOL#1203表示对象页51的分配目标VOL(逻辑卷501或追记卷502)的编号。分配目标VOL内地址1204表示对象页51的分配目标VOL中的区域的逻辑地址(例如起始逻辑地址)。
图13表示子块管理表427的结构。
子块管理表427对于每个追记卷502存在。子块管理表427保存关于子块602的信息。例如,子块管理表427按每个子块602具有条目。各条目保存页#1301、页内地址1302、分配标志1303、VOL内地址1304和子块大小1305等信息。以下,以1个子块602(图13的说明中是“对象子块602”)为例。
页#1301表示包括对象子块602的页51的编号。页内地址1302表示对象子块602的逻辑地址。分配标志1303表示对象子块602已分配(“已分配”)还是未分配(“未分配”),换言之,对象子块602是使用中还是未使用。VOL内地址1304表示对象子块602的分配目标的逻辑地址(追记卷502中的区域的逻辑地址)。子块大小1305表示对象子块602的大小(换言之,是对象子块602中保存的压缩后数据集的大小)。
图14表示追记目标检索表428的结构。
追记目标检索表428表示压缩后数据集的追记目标。追记目标检索表428例如按每个追记卷502具有条目。各条目保存VOL#1401、追记目标地址1402和末端地址1403等信息。以下,以1个追记卷502(图14的说明中是“对象追记卷502”)为例。
VOL#1401表示对象追记卷502的编号。追记目标地址1402表示对象追记卷502中的追记目标的逻辑地址(对对象追记卷502分配的追记页51P中的追记目标的逻辑地址)。末端地址1403表示可以成为追记目标的逻辑地址的末端的逻辑地址。
在符合追记目标的逻辑地址与末端的逻辑地址的差的大小不足压缩后数据大小的情况下,因为不可追记,所以可以将对象追记卷502的起始的逻辑地址再次作为追记目标。具体而言,例如,存储控制器101可以从接近对象追记卷502的起始的逻辑地址的追记页51P起优先地进行垃圾回收处理。由此,可以从接近对象追记卷502的起始的逻辑地址的追记页51P起优先地解除追记页51P的分配,结果,从接近对象追记卷502的起始的逻辑地址的区域起优先地设为未使用。
图15表示重复检查表489的结构。
重复检查表489在重复判断处理中生成并使用。重复检查表489对于作为重复判断处理的对象的数据生成,例如保存在存储器212中。此处所谓“数据”,典型而言,是规定的处理对象的数据,比块的大小更大。因此,重复判断处理(和保存至单独区域70或共用区域80)可以按块单位(数据集单位)进行,但本实施方式中,代替块单位地以处理对象的数据的单位一并进行。具体而言,例如,处理对象的数据是符合对某一个提供卷501P的写请求的数据,该数据的大小可以是块的大小的整数倍,重复判断处理(和保存至单独区域70或共用区域80)可以以符合写请求的数据的单位(即I/O请求的单位)进行。这样,重复判断处理(和保存至单独区域70或共用区域80)以处理对象的数据的单位一并进行,所以是高效率的。
重复检查表489例如对于与构成数据的1个以上的数据集分别对应的1个以上的块601分别具有条目。各条目保存对象VOL#1501、对象VOL内地址1502、哈希值1503、命中标志1504、比较目标VOL#1505、比较目标VOL内地址1506、比较成功标志1507、保存目标VOL#1508和保存目标VOL内地址1509等信息。以下,以1个块601(图15的说明中是“对象块601”)为例。
对象VOL#1501表示包括对象块601的逻辑卷501的编号。对象VOL内地址1502表示对象块601的逻辑地址。哈希值1503表示与对象块601对应的哈希值(以对象块601为写目标的数据集的哈希值)。
命中标志1504表示哈希值命中(“Hit”)还是未命中(“Miss”)。“哈希值命中”指的是与对应于对象块601的哈希值一致的哈希值已经存在。
比较目标VOL#1505在对于对象块601发生了哈希值命中的情况下有效,表示比较目标VOL的编号。“比较目标VOL”指的是保存与对应于对象块601的哈希值一致的哈希值的数据集的逻辑卷501,是作为数据集彼此之间的比较目标的逻辑卷501。比较目标VOL是提供卷501P和共用卷501C中的某一方。比较目标VOL内地址1506表示保存与对应于对象块601的哈希值一致的哈希值的数据集的块601的逻辑地址(比较目标VOL中的块601的逻辑地址)。对于对象块601,比较目标VOL#1505和比较目标VOL内地址1506的组可以存在多个。
比较成功标志1507表示对于对象块601发生了哈希值命中的情况下进行的数据集彼此之间的比较是成功(“成功”)还是不成功(“失败”)。数据集彼此之间相互一致的情况下,比较成功标志1507是“成功”。
保存目标VOL#1508表示保存目标VOL的编号。“保存目标VOL”指的是以对象块601为写目标的数据集的保存目标的逻辑卷501。如果以对象块601为写目标的数据集是单独数据集,则保存目标VOL是追记卷502。如果以对象块601为写目标的数据集是重复数据集,则保存目标VOL是共用卷501C。保存目标VOL内地址1509表示以对象块601为写目标的数据集的保存目标块的逻辑地址(保存目标VOL内的块的逻辑地址)。
图16表示哈希管理表429的结构。
哈希管理表429保存关于数据集的哈希值的信息。哈希管理表429例如按每个哈希值具有条目。各条目保存哈希值1601、登记标志1602、VOL#1603和VOL内地址1604等信息。以下,以1个哈希值(图16的说明中是“对象哈希值”)为例。
哈希值1601表示对象哈希值。登记标志1602表示以对象哈希值为哈希值的数据集在存储系统200内存在(“已”)还是不存在(“未”)。
VOL#1603表示保存以对象哈希值为哈希值的数据集的逻辑卷501的编号。VOL内地址1604表示保存以对象哈希值为哈希值的数据集的块601的逻辑地址。在重复判断处理中,对于对象哈希值发生了哈希值命中的情况下,与对象哈希值对应的VOL#1603和VOL内地址1604被设为图15所示的重复检查表489中的比较目标VOL#1505和比较目标VOL内地址1506。
图17表示重复管理表430的结构。
重复管理表430表示重复数据集的位置(逻辑地址)。重复管理表430例如对于构成共用卷501C的多个块601C,分别具有VOL内地址(逻辑地址)。对于存在参照源的块601C,例如以队列形式关联该参照源的条目。参照源的条目保存VOL#(包括参照源的块601的逻辑卷501的编号)、和VOL内地址(参照源的块601的逻辑地址)。
图18表示共用区域分配管理表431的结构。
共用区域分配管理表431对于每个共用卷501C存在。共用区域分配管理表431表示共用卷501C的空闲状况。共用区域分配管理表431例如对于构成共用卷501C的多个块601C分别具有条目。各条目保存VOL内地址1801和使用中标志1802等信息。以下,以1个块601C(图18的说明中是“对象块601C”)为例。
VOL内地址1801表示对象块601C的逻辑地址。使用中标志1802表示对象块601C是使用中(“使用中”)还是非使用中(“未使用”)。使用中标志1802“使用中”表示对于对象块601C直接地(不经过追记卷)或间接地(经过追记卷)分配了页51。使用中标志1802“未使用”表示对于对象块601C未分配页51,即,是空闲的。
图19表示共用区域检查表432的结构。
共用区域检查表432对于每个共用卷501C存在。共用区域检查表432表示对共用卷501C的参照状况。共用区域检查表432例如对于构成共用卷501C的多个块601C分别具有条目。各条目保存VOL内地址1901和参照标志1902等信息。以下,以1个块601C(图19的说明中是“对象块601C”)为例。
VOL内地址1901表示对象块601C的逻辑地址。参照标志1902表示对于对象块601C存在(“有”)还是不存在(“无”)1个以上的参照源块601。
以下,说明本实施方式中进行的几个处理。另外,以下说明中,数据集的压缩和解压缩可以由数据量削减程序414(或者通过由数据量削减程序414调用)执行。
图20表示前端写处理的流程。前端写处理在接受了对逻辑卷501的写请求的情况下进行。
前端写程序412判断是否缓存命中(S2001)。对于写请求,“缓存命中(cache hit)”指的是已确保了与符合写请求的写目标对应的缓存段(缓存存储器402中的区域)。
S2001的判断结果为假的情况下(S2001:No),前端写程序412从缓存存储器402中确保缓存段(S2002)。
S2001的判断结果为真的情况下(S2001:Yes)、或者在S2002之后,前端写程序412在已确保的缓存段中,写入符合写请求的写对象数据(S2003)。
前端写程序412基于与写目标的逻辑卷501对应的有效区域管理表424,判断写目标是否属于有效区域(S2004)。
S2004的判断结果为真的情况下(S2004:Yes),前端写程序412将分别关于构成写对象数据的1个以上的数据集的写命令蓄积在数据量削减脏队列中(S2005)。“数据量削减脏队列”指的是蓄积脏(dirty)的数据集(未保存在页51中的数据集)且需要压缩的数据集的写命令的队列。
S2004的判断结果为假的情况下(S2004:No),前端写程序412将分别对于构成写对象数据的1个以上的数据集的写命令,蓄积在离台脏队列(destage dirty queue)中(S2006)。“离台脏队列”指的是蓄积脏的数据集(未保存在页51中的数据集)且不需要压缩的数据集的写命令的队列。
在S2005或S2006之后,前端写程序412对写请求的发送源返回Good响应(写完成报告)(S2007)。
另外,对写请求的Good响应,也可以在后端写处理完结的情况下返回。即,后端写处理可以与前端处理同步或非同步地进行。后端写处理由后端写程序413进行。具体而言,例如,后端写程序413对于离台脏队列中存在的写命令,将非压缩或压缩后的数据集写入对于写目标分配的页51中。
图21表示数据量削减处理的流程。数据量削减处理例如定期地进行。
数据量削减程序414参照数据量削减脏队列(S2101)。如果该队列中不存在命令(S2102:No),则数据量削减处理结束。
如果该队列中存在命令(S2102:Yes),则数据量削减程序414从数据量削减脏队列中取得写命令,即,选择脏的数据集(S2103)。
数据量削减程序414对S2103中选择出数据集进行重复去除处理(S2104)。因为该选择出数据集是单独数据集所以未进行重复去除的情况下(S2105:No),数据量削减程序414对该单独数据集进行追记处理(S2106)。
因为S2103中选择出数据集是重复数据集所以进行了重复去除的情况下(S2105:Yes)、或者在S2106之后,数据量削减程序414将该选择出数据集丢弃(例如从缓存存储器402中删除)(S2107)。
图22表示重复去除处理的流程。重复去除处理对于图21的S2103中选择出数据集进行。以下,在图22和图23的说明中,将该选择出数据集称为“写数据集”,将对象数据集的写目标块称为“写目标块”,将包括写目标块的逻辑卷称为“写目标卷”。
数据量削减程序414对于写数据集进行重复判断处理(S2201)。如果S2201的结果是写数据集是单独数据集(S2202:No),则重复去除处理结束。
如果S2201的结果是写数据集是重复数据集(S2202:Yes),则数据量削减程序414判断与写数据集重复的其他重复数据集是否存在于单独区域70中(S2203)。
另外,对于写数据集、和与该写数据集重复的其他重复数据集,在图22的以下说明中总称为“重复数据集”。即,在图22的以下说明中,“重复数据集”可以是包括写数据集的2个以上的数据集中的任意一个。重复数据集是单独区域70中已存在的数据集的情况下,在后述S2204和S2205的某一方中,该数据集的压缩后数据集先被数据量削减程序414解压缩,该解压缩后数据集可以是重复数据集。
另外,S2203的判断例如基于与写目标块对应的比较目标VOL#1505是与VOL属性802“提供”的VOL#801一致、还是与VOL属性802“共用”的VOL#801一致进行。如果与写目标块对应的比较目标VOL#1505与VOL属性802“提供”的VOL#801一致,则因为其他重复数据集存在于单独区域70中,所以S2203的判断结果为真。如果与写目标块对应的比较目标VOL#1505与VOL属性802“共用”的VOL#801一致,则因为其他重复数据集存在于共用区域80中,所以S2203的判断结果为假。
S2203的判断结果为真的情况下(S2203:Yes),进行以下处理。即,数据量削减程序414选择使用中标志1802是“未使用”的共用块601C(S2204)。以下,在本段落中,将该选择出共用块601C称为“对象共用块601C”,将包括对象共用块601C的共用卷501C称为“对象共用卷501C”。数据量削减程序414对重复数据集进行压缩,将该压缩后数据集追记至追记共用页51C(对于与对象共用卷501C对应的追记卷502分配的页51C)中(S2205)。数据量削减程序414对重复管理表430进行更新,具体而言,对于对象共用块601C,关联与全部重复数据集分别对应的全部块601P作为参照源(S2206)。数据量削减程序414对重复检查表489进行更新,具体而言,登记对象共用卷501C的编号、和对象共用块601C的逻辑地址,作为与写目标块对应的保存目标VOL#1508和保存目标VOL内地址1509(S2207)。数据量削减程序414对哈希管理表429进行更新,例如,登记哈希值1601(重复数据集的哈希值)、登记标志1602(“已”)、VOL#1603(对象共用卷501C的编号)、和VOL内地址1604(对象共用块601C的逻辑地址)(S2208)。数据量削减程序414对与保存写数据集以外的重复数据集的提供卷501P对应的地址转换表422进行更新,具体而言,将与重复数据集对应的参照目标VOL#902和参照目标VOL内地址903变更为对象共用卷501C的编号、和对象共用块601C的逻辑地址,并且将与重复数据集对应的参照目标VOL种类905变更为“共用”(S2209)。数据量削减程序414对关于与保存写数据集以外的重复数据集的提供卷501P对应的追记卷502的子块管理表427进行更新,具体而言,将与保存写数据集以外的重复数据集的压缩后数据集的子块对应的分配标志1303变更为“未分配”(S2210)。
在S2203的判断结果为假的情况下(S2203:No),进行以下处理。即,数据量削减程序414对重复管理表430进行更新,具体而言,对于保存了重复数据集的共用块601C,将写目标块601P新作为参照源关联(S2211)。数据量削减程序414对重复检查表489进行更新,具体而言,登记保存了重复数据集的共用块601C的逻辑地址、和包括该共用块601C的共用卷501C的编号,作为与写目标块对应的保存目标VOL内地址1509和保存目标VOL#1508(S2212)。
在S2210或S2212之后,数据量削减程序414对与写目标卷501P对应的地址转换表422进行更新,具体而言,将与写目标块(写数据集)对应的参照目标VOL#902和参照目标VOL内地址903变更为共用卷501C的编号、和共用块601C的逻辑地址,并且,将与写目标块对应的参照目标VOL种类905变更为“共用”(S2213)。如果写数据集的压缩后数据集存在于追记单独页51P中,则数据量削减程序414对关于与写目标卷501P对应的追记卷502的子块管理表427进行更新,具体而言,将与保存写数据集的压缩后数据集的子块对应的分配标志1303变更为“未分配”(S2214)。
本实施方式中,重复去除处理是上述作为后处理的处理,但是作为内部处理的处理的情况下,例如可以不进行图22的S2214。这是因为无需追记写数据集的压缩后数据集(或无需进行写数据集的压缩)就进行了重复去除。
图23表示重复判断处理的流程。
数据量削减程序414对于写数据集生成重复检查表489(S2301)。重复去除处理例如以I/O单位这样的规定的处理对象的数据的单位进行,结果,数据包括多个数据集的情况下,重复检查表489具有与该多个数据集分别对应的多个条目。
数据量削减程序414登记写数据集的哈希值,作为与写目标块对应的哈希值1503(S2302)。
数据量削减程序414判断与S2302中登记的哈希值一致的哈希值是否在哈希管理表429中已登记,即,是否发生哈希值命中(S2303)。
S2303的判断结果为真的情况下(S2303:Yes),数据量削减程序414对重复检查表489进行更新,具体而言,登记对应于与S2302中登记的哈希值一致的哈希值的VOL#1603和VOL内地址1604,作为与写目标块601P对应的比较目标VOL#1505和比较目标VOL内地址1506(S2304)。数据量削减程序414对写数据集、与基于比较目标VOL#1505和比较目标VOL内地址1506取得的数据集(例如解压缩后数据集)进行比较(S2305)。S2305的比较也可以是压缩后数据集彼此之间的比较。
S2303的判断结果为假的情况下(S2303:No),数据量削减程序414对哈希管理表429进行更新,具体而言,在新的条目中,登记哈希值1601(写数据的哈希值)、登记1602“已”、VOL#1603(写目标卷501P的编号)、和VOL内地址1604(写目标块601P的逻辑地址)(S2306)。
在S2305或S2306之后,数据量削减程序414对重复检查表489进行更新,具体而言,登记与写目标块601P对应的比较成功标志1507(S2307)。具体而言,S2305中得到一致的情况下,比较成功标志1507是“成功”。S2305中未得到一致的情况、或者进行了S2306的情况下,比较成功标志1507是“失败”。
图24表示追记处理的流程。追记处理对于图21的S2103中选择出数据集进行。以下,在图24的说明中,将该选择出数据集称为“写数据集”,将对象数据集的写目标块称为“写目标块”,将包括写目标块的逻辑卷称为“写目标卷”。
数据量削减程序414将写数据集压缩,将压缩后数据集例如保存在缓存存储器402中(S2401)。数据量削减程序414判断对与写目标卷501P对应的追记卷502已分配的页51P中是否存在压缩后数据集的大小以上的空白(S2402)。这样的判断例如能够通过以对与该追记卷502对应的追记目标地址1402属于的区域分配的页51P的编号为键,参照与该追记卷502对应的子块管理表427而进行。
S2402的判断结果为假的情况下(S2402:No),数据量削减程序414对与写目标卷501P对应的追记卷502,分配未分配的页51(S2403)。
S2402的判断结果为真的情况下(S2402:Yes)、或者在S2403之后,数据量削减程序414分配作为追记目标的子块(S2404)。数据量削减程序414将写数据集的压缩后数据集复制至追记卷502,例如,将该压缩后数据集复制至追记卷502用的区域(缓存存储器402中的区域)(S2405)。数据量削减程序414将压缩后数据集的写命令登记在离台脏队列中(S2406)。数据量削减程序414对与写目标卷501P对应的地址转换表422进行更新,具体而言,将与写目标块对应的参照目标VOL#902和参照目标VOL内地址903变更为追记卷502的编号、和S2404中分配的子块的逻辑地址,并且,将与写目标块对应的参照目标VOL种类905变更为“单独”(S2407)。
数据量削减程序414判断旧子块的参照源(旧参照源)是否写目标块601P的逻辑地址(即是否单独区域70)(S2408)。“旧子块”指的是保存了写数据集的压缩后数据集的更新前的压缩后数据集的子块。即,S2408的判断是写数据集是单独区域70内的数据集的更新后的数据集、还是共用区域80内的数据集的更新后的数据集的判断。
S2408的判断结果为真的情况下(S2408:Yes),数据量削减程序414将与旧子块对应的分配标志1303更新为“未分配”(S2409)。
图25表示读处理的流程。读处理在接受了对逻辑卷501的读请求的情况下进行。
读程序411基于有效区域表424,判断符合读请求的读源是否属于有效区域(S2501)。
S2501的判断结果为真的情况下(S2501:Yes),读程序411参照与读源的提供卷501P对应的地址转换表422(S2502)。读程序411对于构成读源的区域的各个块,进行以下处理。
·读程序411判断与该块对应的参照目标VOL种类905是否“单独”(S2503)。
·在S2503的判断结果为假的情况下(S2503:No),基于与该块对应的参照目标VOL#902和参照目标VOL内地址903,参照与共用卷501C对应的地址转换表422(S2504)。
·在S2503的判断结果为真的情况下(S2503:Yes),或者在S2504之后,读程序411基于页转换表425确定与该块对应的页51(S2505)。读程序411从确定的页51读取与该块对应的压缩后数据集,对压缩后数据集进行解压缩,将解压缩后数据集保存在缓存存储器402中(S2506)。
S2501的判断结果为真的情况(S2501:Yes)下,对于构成读源的区域的各个块,S2503~S2506结束时,因为符合读请求的数据存在于缓存存储器402中,所以读程序411对于读请求对发送源传输该数据(S2507)。
S2501的判断结果为假的情况下(S2501:No),读程序411基于页转换表425确定对读源的区域分配的页51(S2505)。读程序411从确定的页51读取读对象的数据(S2506),对于读请求对发送源传输读取的数据(S2507)。
图26表示提供卷删除处理的流程。提供卷删除处理例如在接受了指定了某一个提供卷501P的卷删除请求的情况下进行。
VOL管理程序415基于有效区域管理表424判断删除对象的提供卷501P是否属于有效区域(S2601)。
对于S2601的判断结果为真的区域(S2601:Yes),VOL管理程序415删除与删除对象的提供卷501P对应的各种表(具体而言,是表422、424和425)(S2602)。另外,VOL管理程序415也删除与删除对象的提供卷501P对应的子块管理表427(S2603)。
对于S2601的判断结果为假的区域(S2601:No)、以及在S2603之后,VOL管理程序415将对删除对象的提供卷501P分配的全部页51释放为未分配(S2604)。本段落中所谓“全部页51”指的是对删除对象的提供卷501P直接分配的全部页51、和对删除对象的提供卷501P间接分配的全部页51(对与删除对象的提供卷501P对应的追记卷502分配的全部页51)。
如上所述,以提供卷为删除对象的情况下,对于对提供卷直接或间接分配的全部页,无需对于该全部页分别检查该页是否从某一其他区域参照,并且无需检查提供卷中的某一区域是否参照了共用区域80,就能够释放。
图27表示垃圾回收处理的流程。图示的垃圾回收处理是回收追记页的处理。该处理例如可以定期地开始,也可以在由池容量管理程序416检测出未分配的页51的总容量相对于池503的容量的比率不足规定值等情况下开始。
池容量管理程序416在垃圾回收处理中选择作为复制源的页(S2701)。
池容量管理程序416参照与分配了复制源页的追记卷502对应的子块管理表427,对于S2701中选择的复制源页,判断是否存在该垃圾回收处理中未检查的子块(S2702)。
在S2702的判断结果为真的情况下(S2702:Yes),进行以下处理。即,池容量管理程序416选择未检查的子块中的一个子块(S2703)。如果该选择的子块的分配标志1303是“已分配”(S2704:Yes),则池容量管理程序416分配复制目标的页中的子块(S2705),将压缩后数据集从S2703中选择的子块复制至S2705中分配的子块(S2706)。在S2706中,复制源的子块的参照源,用复制目标的子块代替复制源的子块作为参照目标。在S2706之后,处理返回S2702。
S2702的判断结果为假的情况下(S2702:No),换言之,复制源页内的有效的压缩后数据集已全部被复制至复制目标页的情况下,池容量管理程序416回收复制源页,即,将复制源页的分配标志1202变更为“未分配”(S2707)。
如上所述,在追记页的垃圾回收处理中,在S2706中参照目标被更新,但如果该追记页是单独页,则复制的数据集总是单独数据集的压缩后数据集。因此,复制源子块的参照源总是1个。因此,对于各复制源子块,参照目标的更新仅对于1个参照源进行即可。从而,追记单独页的垃圾回收处理的效率提高。
图28表示共用区域释放处理的流程。共用区域释放处理例如定期地进行。在共用区域释放处理中,与处理对象的共用卷501C对应的共用区域检查表432,可以由共用区域释放程序417生成,也可以预先在共享存储器404中准备。
共用区域释放程序417选择某一个共用块601C(S2801)。在图28的说明中将S2801中选择的共用块601C称为“对象共用块601C”。
共用区域释放程序417参照重复管理表430,判断参照对象共用块601C的参照源是否存在至少1个(S2802)。
S2802的判断结果为真的情况下(S2802:Yes),进行以下处理。即,共用区域释放程序417从重复管理表430中选择与对象共用块601C对应的某一个参照源条目,根据该参照源条目确定参照源的VOL#和逻辑地址(S2803)。共用区域释放程序417根据与S2803中确定的VOL#对应的地址转换表422,确定与S2803中确定的逻辑地址对应的参照目标VOL#902和参照目标VOL内地址903(S2804)。如果S2804中确定的参照目标(参照目标VOL#902和参照目标VOL内地址903)与对象共用块601C一致(S2805:Yes),则共用区域释放程序417将与对象共用块601C对应的参照标志1902设为“有”(S2806)。另一方面,如果S2804中确定的参照目标与对象共用块601C不一致(S2805:No),则共用区域释放程序417将S2803中选择的参照源条目从与对象共用块601C对应的参照源条目中删除(S2807)。另外,对象共用块601C中存在以同一提供卷501P为参照源的多个参照源条目的情况下,可以对于与该同一提供卷501P对应的多个参照源条目分别表示的多个逻辑地址,一并地进行S2803~S2807。
S2802的判断结果为假的情况下(S2802:No),对于与对象共用块601C对应的全部参照源条目已进行了S2803~S2807,或者对象共用块601C中不存在1个参照源条目。该情况下,共用区域释放程序417判断与对象共用块601C对应的参照标志1902是否为“有”(S2808)。
S2808的判断结果为假的情况下(S2808:No),换言之,与对象共用块601C对应的参照标志1902是“无”的情况下,因为以对象共用块601C为参照目标的参照源1个都不存在,所以进行以下处理。即,共用区域释放程序417对哈希管理表429进行更新,具体而言,对于保存了与对象共用块601C对应的VOL#1603和VOL内地址1604的条目,将登记标志1602更新为“无”,删除VOL#1603和VOL内地址1604(S2809)。另外,共用区域释放程序417将对象共用块601C释放为未使用,具体而言,将与对象共用块601C对应的使用中标志1802更新为“未使用”(S2810)。
在S2808的判断结果为真的情况下(S2808:Yes),不进行S2809和S2810。这是因为存在以对象共用块601C为参照目标的至少1个参照源。
通过以上的共用区域释放处理,能够检测出参照源不再存在的共用块601C,能够将检测出的共用块601C释放为未使用。由此,能够增加共用卷501C的空闲容量(空闲块)。
以上说明了一个实施方式,但这是用于说明本发明的示例,并不将本发明的范围仅限定于该实施方式。本发明也能够用其他各种方式实施。例如,写请求这样的I/O请求的发送源(I/O源)在上述实施方式中是服务器系统201,但也可以是存储系统200中的未图示的程序(例如在VM上执行的应用程序)。

Claims (9)

1.一种计算机系统,其具有处理器部和存储器,并且与发出数据输入输出请求的外部计算机和保存数据的存储设备连接,所述计算机系统的特征在于:
所述处理器部,生成多个层的逻辑存储区域,所述多个层的逻辑存储区域彼此的层的存储区域是相关联的,
所述多个层的逻辑存储区域具有所述存储设备一方的第1层的逻辑存储区域、和所述外部计算机一方的第2层的逻辑存储区域,
所述第1层的逻辑存储区域具有共用区域和单独区域,所述共用区域的存储区域与所述第2层的逻辑存储区域的一个或多个存储区域相关联,所述单独区域的存储区域与所述第2逻辑存储区域的一个存储区域相关联,
所述处理器部进行多个数据集的重复判断,通过使判断为重复的多个数据集与所述共用区域相对应,来使所述共用区域的存储区域与所述第2逻辑存储区域的多个存储区域相关联。
2.如权利要求1所述的计算机系统,其特征在于:
所述处理器部进行如下处理:
第1删除处理,在接受了与所述单独区域的存储区域相对应的数据集的删除请求的情况下,释放所述单独区域的存储区域;
第2删除处理,在接受了与所述共用区域的存储区域相对应的数据的删除请求的情况下,解除所述关于该数据的第1层的逻辑存储区域的存储区域、与所述第2层的逻辑存储区域的存储区域的关联;和
共用区域释放处理,释放所述共用区域的存储区域中的、没有与所述第2层的逻辑存储区域相关联的存储区域。
3.如权利要求2所述的计算机系统,其特征在于:
具有重复去除信息,其记录关于与所述共用区域相对应地保存的数据集的第1层的逻辑存储区域的存储区域、与所述第2层的逻辑存储区域的存储区域的关系信息,
所述处理器部,在进行了对所述共用区域的存储区域的关联的情况、和进行了所述第2删除处理的情况下,对所述重复去除信息进行更新,
所述处理器部参照所述重复去除信息进行所述共用区域释放处理。
4.如权利要求1所述的计算机系统,其特征在于:
作为所述重复判断的对象的多个数据集,包括关于写请求的数据集、与所述单独区域相对应的数据集、和与所述共用区域相对应的数据集中的至少两个数据集。
5.如权利要求1所述的计算机系统,其特征在于:
关于写请求的数据集、与所述单独区域相对应的数据集、和与所述共用区域相对应的数据集,相当于作为所述重复判断的对象的多个数据集,
在判断为与所述单独区域关联的多个数据集重复的情况下,所述处理器部对于关于该多个数据集的第2层的逻辑存储区域,使其与所述共用区域的存储区域相关联,并且解除其与关于该多个数据集的所述单独区域的存储区域的关联。
6.如权利要求2所述的计算机系统,其特征在于:
所述共用区域的存储区域,与所述第2层的逻辑存储区域的1个或多个所述存储区域相关联,
通过所述第2删除处理,相关联的所述第2层的逻辑存储区域的存储区域减少,通过所述共用区域释放处理被释放。
7.如权利要求1所述的计算机系统,其特征在于:
具有第3层的逻辑存储区域,其关联了所述第1层的逻辑存储区域和所述第2层的逻辑存储区域的存储区域,
所述第3层的逻辑存储区域由不能进行数据的覆盖的追记空间构成,具有分别与所述单独区域和所述共用区域相关联的追记单独区域和追记共用区域。
8.一种存储控制方法,其为与发出数据输入输出请求的外部计算机和保存数据的存储设备连接的计算机系统的存储控制方法,所述存储控制方法的特征在于:
生成彼此的层的存储区域相关联的多个层的逻辑存储区域,
所述多个层的逻辑存储区域具有所述存储设备一方的第1层的逻辑存储区域、和所述外部计算机一方的第2层的逻辑存储区域,
所述第1层的逻辑存储区域具有共用区域和单独区域,所述共用区域的存储区域与所述第2层的逻辑存储区域的一个或多个存储区域相关联,所述单独区域的存储区域与所述第2逻辑存储区域的一个存储区域相关联,
进行多个数据集的重复判断,
通过使判断为重复的多个数据集与所述共用区域相对应,来使所述共用区域的存储区域与所述第2逻辑存储区域的多个存储区域相关联。
9.一种计算机存储介质,其存储有计算机程序,所述计算机存储介质的特征在于:
所述计算机程序使与发出数据输入输出请求的外部计算机和保存数据的存储设备连接的计算机执行如下步骤:
生成彼此的层的存储区域相关联的多个层的逻辑存储区域,
所述多个层的逻辑存储区域具有所述存储设备一方的第1层的逻辑存储区域、和所述外部计算机一方的第2层的逻辑存储区域,
所述第1层的逻辑存储区域具有共用区域和单独区域,所述共用区域的存储区域与所述第2层的逻辑存储区域的一个或多个存储区域相关联,所述单独区域的存储区域与所述第2逻辑存储区域的一个存储区域相关联,
进行多个数据集的重复判断,
通过使判断为重复的多个数据集与所述共用区域相对应,来使所述共用区域的存储区域与所述第2逻辑存储区域的多个存储区域相关联。
CN201810964800.3A 2018-03-09 2018-08-23 具有数据量削减功能的计算机系统,和存储控制方法 Active CN110244905B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018043550A JP6722216B2 (ja) 2018-03-09 2018-03-09 データ量削減機能を有する計算機システム、及び、記憶制御方法
JP2018-043550 2018-03-09

Publications (2)

Publication Number Publication Date
CN110244905A true CN110244905A (zh) 2019-09-17
CN110244905B CN110244905B (zh) 2022-07-22

Family

ID=67843965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810964800.3A Active CN110244905B (zh) 2018-03-09 2018-08-23 具有数据量削减功能的计算机系统,和存储控制方法

Country Status (3)

Country Link
US (1) US10739999B2 (zh)
JP (1) JP6722216B2 (zh)
CN (1) CN110244905B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11567683B2 (en) * 2019-03-28 2023-01-31 Intel Corporation Technologies for providing edge deduplication
US11063811B2 (en) * 2019-04-24 2021-07-13 Vmware, Inc. Multi-tenant event sourcing and audit logging in a cloud-based computing infrastructure
KR20210017401A (ko) * 2019-08-08 2021-02-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법과, 이를 위한 컨트롤러
US11269776B2 (en) * 2019-10-17 2022-03-08 EMC IP Holding Company LLC Direct input/output path to compressed data
KR102426611B1 (ko) * 2020-07-29 2022-07-29 주식회사 지에프씨코리아 위성 통신을 이용하여 금융 거래 메시지를 송수신하기 위한 송신 장치, 수신 장치 및 데이터 처리 방법
JP2023061253A (ja) 2021-10-19 2023-05-01 株式会社日立製作所 ストレージシステム、データコピー制御方法、及びデータコピー制御プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1785828A1 (en) * 2005-11-01 2007-05-16 Hitachi, Ltd. Storage system
CN101193408A (zh) * 2006-12-01 2008-06-04 富士通株式会社 移动通信系统中缓存服务器的有效利用
CN103270487A (zh) * 2011-02-02 2013-08-28 株式会社日立制作所 存储系统及其数据控制方法
WO2016046911A1 (ja) * 2014-09-24 2016-03-31 株式会社日立製作所 ストレージシステム及びストレージシステムの管理方法
WO2016203612A1 (ja) * 2015-06-18 2016-12-22 株式会社日立製作所 ストレージ装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4990828B2 (ja) * 2008-03-25 2012-08-01 株式会社日立製作所 ストレージ装置及びこれの制御方法
WO2011018852A1 (ja) * 2009-08-13 2011-02-17 株式会社日立ソリューションズ 重複排除機能付きデータ格納装置及び当該データ格納装置の検索インデックスを作成する制御装置
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1785828A1 (en) * 2005-11-01 2007-05-16 Hitachi, Ltd. Storage system
CN101193408A (zh) * 2006-12-01 2008-06-04 富士通株式会社 移动通信系统中缓存服务器的有效利用
CN103270487A (zh) * 2011-02-02 2013-08-28 株式会社日立制作所 存储系统及其数据控制方法
WO2016046911A1 (ja) * 2014-09-24 2016-03-31 株式会社日立製作所 ストレージシステム及びストレージシステムの管理方法
WO2016203612A1 (ja) * 2015-06-18 2016-12-22 株式会社日立製作所 ストレージ装置

Also Published As

Publication number Publication date
US20190278484A1 (en) 2019-09-12
CN110244905B (zh) 2022-07-22
JP2019159605A (ja) 2019-09-19
US10739999B2 (en) 2020-08-11
JP6722216B2 (ja) 2020-07-15

Similar Documents

Publication Publication Date Title
CN110244905A (zh) 具有数据量削减功能的计算机系统,和存储控制方法
DE112018004178B4 (de) Mehrstufige speicherung in einem verteilten dateisystem
US10620862B2 (en) Efficient recovery of deduplication data for high capacity systems
CN106662981B (zh) 存储设备、程序和信息处理方法
CN103874980B (zh) 存储系统中的映射
CN103635900B (zh) 基于时间的数据分割
US20230013281A1 (en) Storage space optimization in a system with varying data redundancy schemes
CN103827806B (zh) 闪存阵列中的逻辑扇区映射
CN103797470B (zh) 存储系统
JP2021082156A (ja) ストレージシステム
CN106687910A (zh) 优化分段清除技术
US9448927B1 (en) System and methods for removing obsolete data in a distributed system of hybrid storage and compute nodes
CN103955530B (zh) 一种在线重复数据删除系统的数据重建优化方法
CN1622087A (zh) 管理文件系统版本
Wu et al. KVSSD: Close integration of LSM trees and flash translation layer for write-efficient KV store
CN101676855A (zh) 可变动的辅助存储系统和方法
CN109478183A (zh) 数据库中的存储器中单元的版本化和非破坏性服务
Sun et al. A novel approach to data deduplication over the engineering-oriented cloud systems
CN107924291A (zh) 存储系统
CN105493080B (zh) 基于上下文感知的重复数据删除的方法和装置
CN113574498A (zh) 在重复数据删除存储系统的垃圾收集操作中标记受影响的相似群
CN106446044A (zh) 存储空间回收方法及装置
JP2001142752A (ja) データベース管理方法
CN1791873B (zh) 还原数据库系统中的对象和从属对象
US11288006B2 (en) Storage system and volume copying method where changes to address conversion table is rolled back

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