CN117631968A - 存储服务器以及存储服务器的操作方法 - Google Patents
存储服务器以及存储服务器的操作方法 Download PDFInfo
- Publication number
- CN117631968A CN117631968A CN202310519688.3A CN202310519688A CN117631968A CN 117631968 A CN117631968 A CN 117631968A CN 202310519688 A CN202310519688 A CN 202310519688A CN 117631968 A CN117631968 A CN 117631968A
- Authority
- CN
- China
- Prior art keywords
- storage
- virtual machine
- recovery
- sequence
- storage device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000011084 recovery Methods 0.000 claims abstract description 270
- 230000015654 memory Effects 0.000 claims description 102
- 238000012937 correction Methods 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 15
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 18
- 101100355577 Arabidopsis thaliana ARAC11 gene Proteins 0.000 description 13
- 101100355582 Arabidopsis thaliana ARAC1 gene Proteins 0.000 description 12
- 101100523500 Arabidopsis thaliana ARAC4 gene Proteins 0.000 description 7
- 101100523502 Arabidopsis thaliana ARAC5 gene Proteins 0.000 description 5
- 101100523501 Oryza sativa subsp. japonica RAC4 gene Proteins 0.000 description 5
- 101100198869 Toxoplasma gondii ROP4 gene Proteins 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0712—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
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)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了存储服务器以及存储服务器的操作方法。提供了一种操作存储服务器的方法,该存储服务器包括多个存储装置和被配置为控制多个存储装置的存储节点。所述方法包括:基于第一虚拟机的工作负载特性对第一虚拟机进行分组,以生成虚拟机组表;从被分配给第一虚拟机的第一存储装置接收第一存储装置的属性信息;从第一存储装置收集恢复信息;通过基于虚拟机组表、属性信息和恢复信息确定恢复序列来生成恢复序列表;以及基于恢复序列表向多个存储装置中的第二存储装置提供对应的恢复序列,该第二存储装置被分配给不同于第一虚拟机的新的第二虚拟机。
Description
相关申请的交叉引用
本申请要求于2022年8月29日在韩国知识产权局提交的韩国专利申请第10-2022-0108512号的优先权,其公开内容以引用的方式全部并入本文。
技术领域
本文所描述的本公开的实施例涉及计算机系统,并且更具体地,涉及存储服务器以及所述存储服务器的操作方法。
背景技术
半导体存储器被分类为易失性存储器或者非易失性存储器,易失性存储器诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM),在电源关闭时存储在其中的数据会消失,非易失性存储器诸如闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)或铁电RAM(FRAM),即使在电源关闭时存储在其中的数据也会被保留。
存储装置指的是一种装置,其在诸如计算机、智能电话或智能平板之类的主机装置的控制下存储数据。存储装置包括将数据存储在磁盘上的装置,诸如硬盘驱动器(HDD),或者将数据存储在半导体存储器,特别是非易失性存储器上的装置,诸如固态硬盘(SSD)或存储卡。
非易失性存储器包括配置为存储数据的存储单元。为了增加可以存储在存储装置中的数据的数量,已经做出了努力来增加可以存储在每一个存储单元中的位数。随着存储在每一个存储单元中的位数的增加,存储在存储单元中的数据发生错误的概率可能会增加。
为了保证存储在存储单元中的数据的完整性,经常执行恢复操作,以便即使在存储在所述存储单元中的数据发生错误时也能恢复原始数据,这会导致降低服务器系统的性能。
发明内容
本公开的实施例提供了一种存储服务器以及一种所述存储服务器的操作方法。
根据实施例,提供了一种操作存储服务器的方法,所述存储服务器包括多个存储装置和被配置为控制所述多个存储装置的存储节点,所述方法包括:由所述存储节点基于第一虚拟机的工作负载特性对所述第一虚拟机进行分组,以生成虚拟机组表;由所述存储节点从所述多个存储装置中的被分配给所述第一虚拟机的第一存储装置接收所述第一存储装置的属性信息;由所述存储节点从所述第一存储装置收集恢复信息;由所述存储节点通过基于所述虚拟机组表、所述属性信息和所述恢复信息确定恢复序列来生成恢复序列表;以及由所述存储节点基于所述恢复序列表向所述多个存储装置中的第二存储装置提供对应的恢复序列,所述第二存储装置被分配给不同于所述第一虚拟机的新的第二虚拟机。
根据实施例,提供了一种存储服务器,所述存储服务器包括:多个存储装置;以及存储节点,所述存储节点包括恢复管理器并且被配置为控制所述多个存储装置,其中所述恢复管理器包括:工作负载分析器,所述工作负载分析器被配置为通过监测第一虚拟机与所述多个存储装置中的被分配给所述第一虚拟机的第一存储装置之间的输入和输出来提取所述第一虚拟机的工作负载特性;工作负载分组管理器,所述工作负载分组管理器被配置为基于所述工作负载特性对所述第一虚拟机进行分组并生成虚拟机组表;存储分析器,所述存储分析器被配置为从所述第一存储装置接收属性信息并基于所接收到的属性信息来确定所述第一存储装置的存储属性;恢复收集器,所述恢复收集器被配置为从所述第一存储装置收集恢复信息;恢复序列表生成器,所述恢复序列表生成器被配置为通过基于所述虚拟机组表、所述存储属性和所述恢复信息确定恢复序列来生成恢复序列表;以及恢复序列分配器,所述恢复序列分配器被配置为:通过基于新的第二虚拟机的工作负载特性和所述多个存储装置中的被分配给所述新的第二虚拟机的第二存储装置的存储属性,参考所述恢复序列表,来向所述第二存储装置分配对应的恢复序列。
根据实施例,提供了一种操作存储服务器的方法,所述存储服务器包括多个存储装置和被配置为控制所述多个存储装置的存储节点,所述方法包括:由所述存储节点基于第一虚拟机的工作负载特性对所述第一虚拟机进行分组,以生成虚拟机组表;由所述存储节点从被分配给所述第一虚拟机的第一存储装置接收属性信息;由所述存储节点从所述第一存储装置收集恢复信息;由所述存储节点基于所述虚拟机组表、所述属性信息和所述恢复信息来确定恢复序列,以生成恢复序列表;通过网络从外部存储服务器接收包括第二工作负载特性和第二存储属性的恢复序列请求;以及,基于所述第二工作负载特性和所述第二存储属性,参考所述恢复序列表并向所述外部存储服务器提供对应的恢复序列。
附图说明
通过参考附图对本公开的实施例进行详细描述,本公开的上述及其他目标和特征将变得清楚。
图1是图示根据本公开的实施例的服务器系统的框图。
图2A是图示图1的服务器系统的软件层的图。
图2B是详细图示图1的第一存储装置的框图。
图3是详细图示图1的恢复管理器的框图。
图4是图示图1的存储服务器的操作的示例的流程图。
图5是详细图示图4的操作S100的流程图。
图6是图示虚拟机组表的示例的图。
图7是详细图示图5的操作S170的流程图。
图8A和8B是图示根据本公开的实施例的恢复序列表的示例的图。
图9是详细图示图4的操作S200的流程图。
图10A至图10C是图示图1的服务器系统的操作的示例的图。
图11是图示图1的存储服务器的操作的示例的流程图。
图12是详细图示图11的操作S600的流程图。
图13A至图13C是图示图1的服务器系统的操作的示例的图。
图14是图示根据本公开的实施例的存储器件被应用于的数据中心的图。
具体实施方式
下面,本公开的示例实施例将被详细且清楚地描述,以至于本领域的技术人员能够容易地执行本公开。
下面,为了便于描述,分别描述了具体的示例实施例,但是本公开的范围不限于此;将理解,各种实施例可以相互组合,或者实施例的一部分可以与另一实施例的一部分组合。
图1是图示根据本公开的实施例的服务器系统的框图。参考图1,服务器系统(或者被称为“计算机系统”或“存储系统”)1000可以包括客户端服务器1001和存储服务器1002。服务器系统1000可以指执行各种数据的维护并提供各种服务的数据中心或数据存储中心。服务器系统1000可以是用于数据库的操作的搜索引擎或系统,并且可以是在各种机构中可用的计算系统。服务器系统1000可以指的是提供云服务或本地部署(on-premise)服务的存储系统。
客户端服务器1001可以指使用各种基于数据的服务的用户、用户的终端或用户的计算系统。客户端服务器1001可以将数据存储在存储服务器1002中,或者可以读取存储在存储服务器1002中的数据。
基于客户端服务器1001的请求,存储服务器1002可以存储数据或者可以向客户端服务器1001发送数据。在实施例中,客户端服务器1001和存储服务器1002可以通过网络(未图示)彼此通信。
存储服务器1002可以包括存储节点1100和多个存储装置1200_1至1200_n。存储节点1100可以被配置为管理包括在存储服务器1002中的存储装置1200_1至1200_n。在存储节点1100的控制下,多个存储装置1200_1至1200_n中的每一者可以存储数据或者可以输出所存储的数据。多个存储装置1200_1至1200_n中的每一者可以是高容量的存储介质,诸如固态硬盘(SSD),但是本公开不限于此。
存储节点1100可以将数据存储在多个存储装置1200_1至1200_n中,或者可以读取存储在多个存储装置1200_1至1200_n中的数据。例如,为了将数据存储在多个存储装置1200_1至1200_n中,存储节点1100可以发送写入命令并将数据写入到多个存储装置1200_1至1200_n中的每一者。或者,为了读取存储在多个存储装置1200_1至1200_n中的数据,存储节点1100可以向多个存储装置1200_1至1200_n中的每一者发送读取命令并且可以从多个存储装置1200_1至1200_n中的每一者接收数据。
在实施例中,存储节点1100和多个存储装置1200_1至1200_n可以基于给定的接口彼此通信。在实施例中,给定的接口可以支持诸如以下的各种接口中的至少一者:通用串行总线(USB)接口、小型计算机系统接口(SCSI)、外围组件互连(PCI)快速(PCIe)接口、先进技术附件(ATA)接口、并行ATA(PATA)接口、串行ATA(SATA)接口、串行连接SCSI(SAS)接口、通用闪存(UFS)接口、快速非易失性存储(NVMe)接口和计算快速链接(CXL)接口,但本公开不限于此。
存储节点1100可以包括存储节点控制器1110、存储节点存储器1120和恢复管理器1130。存储节点存储器1120可以作为缓冲存储器,用于临时存储要被传输到多个存储装置1200_1至1200_n的数据或者从多个存储装置1200_1至1200_n传输的数据。在实施例中,存储节点存储器1120可以存储由恢复管理器1130使用的数据或信息。例如,存储节点存储器1120可以存储虚拟机组表VMGT和恢复序列表RST。
根据实施例,存储节点控制器1110和存储节点存储器1120可以用单独的半导体芯片来实现。或者,在一些实施例中,存储节点控制器1110和存储节点存储器1120可以在同一半导体芯片中实现。作为示例,存储节点控制器1110可以是包括在应用处理器中的多个模块中的一个模块;在这种情况下,应用处理器可以用片上系统(SoC)来实现。而且,存储节点存储器1120可以是包括在应用处理器中的嵌入式存储器,或者可以是设置在应用处理器之外的非易失性存储器或存储器模块。
存储节点控制器1110可以管理将存储节点存储器1120的缓冲区的数据(例如,写入数据)存储到存储装置1200_1至1200_n或者将存储装置1200_1至1200_n的数据(例如,读取数据)存储到缓冲区的操作。
在实施例中,恢复管理器1130可以向多个存储装置1200_1至1200_n提供最佳恢复序列。恢复管理器1130可以基于每个虚拟机的工作负载特性来生成并管理虚拟机组表VMGT。恢复管理器1130可以从多个存储装置1200_1至1200_n收集恢复信息。恢复管理器1130可以基于虚拟机组表VMGT、恢复信息和存储属性来生成并管理恢复序列表RST。恢复管理器1130可以基于恢复序列表RST向分配给新的虚拟机的存储装置提供最佳恢复序列。将参考下面的附图详细地描述根据本公开的实施例的服务器系统1000的最佳恢复序列提供方法。
图2A是图示图1的服务器系统的软件层的图。参考图2A,可以在客户端服务器1001上驱动操作系统OS、虚拟机监视器(hypervisor)HV、第一虚拟机VM1和第二虚拟机VM2。操作系统OS可以指被配置为控制包括在客户端服务器1001中的各种硬件和资源、驱动各种程序、以及支持各种服务的系统软件。虚拟机监视器HV可以是被配置为驱动在客户端服务器1001中执行的第一虚拟机VM1和第二虚拟机VM2的逻辑平台。
可以在客户端服务器1001中驱动第一虚拟机VM1和第二虚拟机VM2中的每一者。在实施例中,与第一虚拟机VM1相关联的数据可以存储在存储服务器1002的第一存储区域SA1中,并且与第二虚拟机VM2相关联的数据可以存储在存储服务器1002的第二存储区域SA2中。在实施例中,第一存储区域SA1可以对应于第一存储装置1200_1,而第二存储区域SA2可以对应于第二存储装置1200_2。或者,第一存储区域SA1可以对应于第一命名空间,而第二存储区域SA2可以对应于第二命名空间。命名空间可以指存储装置的存储区域,它们在逻辑上或物理上被分类。也就是说,由第一虚拟机VM1管理的数据可以在逻辑上或物理上区别于由第二虚拟机VM2管理的数据。或者,第一存储区域SA1可以对应于第一分区命名空间,而第二存储区域SA2可以对应于第二分区命名空间。分区命名空间可以指存储装置的命名空间,其被划分为多个区。
在实施例中,可以在客户端服务器1001上驱动操作系统OS以及第一容器和第二容器(未图示)。例如,与第一容器相关联的数据可以存储在存储服务器1002的第一存储区域SA1中,并且与第二容器相关联的数据可以存储在存储服务器1002的第二存储区域SA2中。第一容器和第二容器与第一存储区域SA1和第二存储区域SA2之间的关系可以与第一虚拟机VM1和第二虚拟机VM2与第一存储区域SA1和第二存储区域SA2之间的关系相同或相似,并且因此,将省略额外的描述以避免冗余。
图2B是详细图示图1的第一存储装置1200_1的框图。其余的存储装置1200_2至1200_n中的每一者可以与第一存储装置1200_1相同或相似。
参考图2B,存储装置1200_1可以包括用于基于来自存储节点1100的请求而存储数据的存储介质。作为示例,存储装置1200_1可以包括固态硬盘(SSD)、嵌入式存储器或可移动外部存储器中的至少一者。在存储装置1200_1是SSD的情况下,存储装置1200_1可以是符合快速非易失性存储(NVMe)标准的装置。在存储装置1200_1是嵌入式存储器或外部存储器的情况下,存储装置1200_1可以是符合通用闪存(UFS)或嵌入式多媒体卡(eMMC)标准的装置。存储节点1100和存储装置1200_1中的每一者都可以生成符合适用于其的标准协议的数据包,并且可以发送所生成的数据包。
当存储装置1200_1的非易失性存储器1220包括闪存时,闪存可以包括二维(2D)NAND闪存阵列或三维(3D)(或垂直)NAND(VNAND)存储器阵列。作为另一示例,存储装置1200_1可以用各种不同种类的非易失性存储器来实现。例如,存储装置1200_1可以包括磁性RAM(MRAM)、自旋转移扭矩MRAM(STT-MRAM)、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻式RAM(RRAM)或各种不同种类的存储器中的至少一种。
存储控制器1210可以包括主机装置接口1211、存储器接口1212和中央处理单元(CPU)1213。而且,存储控制器1210还可以包括闪存转换层(FTL)1214、数据包管理器1215、缓冲存储器1216、纠错码(ECC)引擎1217、高级加密标准(AES)引擎1218、以及恢复引擎1219。存储控制器1210还可以包括闪存转换层1214被加载到的工作存储器(未图示),并且可以在CPU 1213执行闪存转换层1214时控制非易失性存储器1220的数据写入操作和数据读取操作。
主机装置接口1211可以与存储节点1100交换数据包。从存储节点1100传输到主机装置接口1211的数据包可以包括命令、要写入非易失性存储器1220中的数据等,并且从主机装置接口1211传输到存储节点1100的数据包可以包括对命令的响应、从非易失性存储器1220读取的数据等。存储器接口1212可以向非易失性存储器1220提供要写入非易失性存储器1220中的数据,并且可以接收从非易失性存储器1220读取的数据。存储器接口1212可以被实现为符合诸如Toggle或ONFI(开放式NAND闪存接口)的标准。
闪存转换层1214可以执行各种功能(或操作),例如地址映射、磨损均衡和垃圾收集。地址映射操作是指将从存储节点1100接收的逻辑地址转换为要用来在非易失性存储器1220中实际存储数据的物理地址的操作。磨损均衡是一种允许非易失性存储器1220中的块被均匀地使用的技术,从而防止特定块的过度劣化。磨损均衡可以例如通过平衡物理块的擦除计数的固件技术来实现。垃圾收集是指通过在将现有块的有效数据复制到新块之后擦除现有块来确保非易失性存储器1220的可用容量的技术。
数据包管理器1215可以生成符合与存储节点1100约定的接口的协议的数据包,或者可以从接收自存储节点1100的数据包中解析各种信息。另外,缓冲存储器1216可以临时存储要写入非易失性存储器1220中的数据或者从非易失性存储器1220读取的数据。缓冲存储器1216可以是存储控制器1210内提供的组件;然而,也可以将缓冲存储器1216设置在存储控制器1210的外部。
ECC引擎1217可以对从非易失性存储器1220读取的数据执行错误检测和纠正功能。详细来说,ECC引擎1217可以为要写入非易失性存储器1220中的写入数据生成奇偶校验位,并且由此生成的奇偶校验位可以与写入数据一起存储在非易失性存储器1220中。当从非易失性存储器1220中读取数据时,将奇偶校验位和读取数据一起从非易失性存储器1220中读取出来,并且ECC引擎1217可以通过使用奇偶校验位来纠正读取数据的错误,并且可以输出经错误纠正的读取数据。
AES引擎1218可以通过使用对称密钥算法对输入到存储控制器1210的数据执行加密操作和解密操作中的至少一者。
恢复引擎1219可以在读取错误发生时执行恢复操作。恢复引擎1219可以基于默认恢复序列执行恢复操作。在从存储节点1100接收到最佳恢复序列之前,恢复引擎1219可以通过基于默认恢复序列执行恢复操作来纠正读取错误。
恢复引擎1219可以存储执行恢复操作的结果。恢复引擎1219可以将关于由此而执行的恢复操作的历史信息存储在缓冲存储器1216中。恢复引擎1219可以存储和管理恢复信息。恢复引擎1219可以基于存储节点1100的请求向存储节点1100发送恢复信息。
恢复引擎1219可以从存储节点1100接收最佳恢复序列。在接收到最佳恢复序列之后,恢复引擎1219可以在读取错误发生时基于最佳恢复序列执行恢复操作。因此,存储装置的性能的降低可以被最小化。
图3是详细图示图1的恢复管理器的框图。参考图1和图3,恢复管理器1130可以包括工作负载分析器1131、工作负载分组管理器1132、存储分析器1133、恢复收集器1134、恢复序列表生成器1135和恢复序列分配器1136。
工作负载分析器1131可以检测和分析用户输入/输出。例如,工作负载分析器1131可以监测客户端服务器1001与多个存储装置1200_1至1200_n之间的用户输入/输出。假定与第一虚拟机VM1相关联的数据被存储在第一存储装置1200_1中。为了提取第一虚拟机VM1的工作负载特性,工作负载分析器1131可以监测或分析在第一虚拟机VM1与第一存储装置1200_1之间交换的读取/写入请求和数据。
工作负载分析器1131可以基于监测结果(或分析结果)提取虚拟机的工作负载特性。例如,工作负载分析器1131可以确定第一虚拟机VM1是否具有第一工作负载特性C1。
工作负载分组管理器1132可以基于虚拟机的工作负载特性对虚拟机进行分组。工作负载分组管理器1132可以将具有相似工作负载特性的虚拟机分类为一个组。工作负载分组管理器1132可以基于工作负载特性生成虚拟机组表VMGT。虚拟机组表VMGT可以包括工作负载特性和关于与该工作负载特性相对应的虚拟机的标识符的信息。
存储分析器1133可以分析多个存储装置1200_1至1200_n的属性。例如,存储分析器1133可以向多个存储装置1200_1至1200_n中的每一者发送属性信息请求。存储分析器1133可以从多个存储装置1200_1至1200_n中的每一者接收属性信息。存储分析器1133可以基于属性信息确定存储装置1200_1至1200_n中的每一者的属性。存储分析器1133可以将所确定的存储属性传输到恢复序列表生成器1135。
由于存储属性随着时间变化,所以存储分析器1133可监测存储装置1200_1至1200_n中的每一者的存储属性。为了基于变化的存储属性来改变最佳恢复序列,存储分析器1133可以周期性地从多个存储装置1200_1至1200_n中的每一者请求存储属性。当最佳恢复序列的变化条件被满足时,存储分析器1133可以向恢复序列分配器1136通知变化条件被满足。
恢复收集器1134可以从多个存储装置1200_1至1200_n收集恢复信息(例如,恢复结果)。例如,为了生成恢复序列表RST,恢复收集器1134可以在给定时间段期间收集恢复信息。恢复收集器1134可以周期性地从多个存储装置1200_1至1200_n请求恢复信息。恢复收集器1134可以从多个存储装置1200_1至1200_n接收恢复信息。恢复收集器1134可以将恢复信息传输到恢复序列表生成器1135。
恢复序列表生成器1135可以生成恢复序列表RST。恢复序列表生成器1135可以基于虚拟机组表VMGT、存储属性和恢复信息来生成恢复序列表RST。恢复序列表生成器1135可以基于工作负载特性和存储属性来确定最佳恢复序列。恢复序列表生成器1135可以通过改变默认恢复序列的顺序来确定最佳恢复序列。默认恢复序列可以指给定的恢复序列。恢复序列表生成器1135可以将基于工作负载特性和存储属性而确定的最佳恢复序列存储在恢复序列表RST中。
恢复序列(或一组恢复操作)可以指当读取错误发生时存储装置执行的恢复操作的顺序。恢复序列(或恢复操作)可以按照从最高优先级到最低优先级的顺序来排列。最佳恢复序列可以指在读取错误发生时能够有效纠正读取错误的恢复操作的序列。例如,最佳恢复序列可以指执行错误纠正所需的时间为最短的恢复序列。
恢复操作可以指在读取错误发生时执行读取错误检测和读取错误纠正的操作。恢复操作可以包括读取重试操作、改变读取电压电平并执行读取操作的操作、基于编程和/或擦除循环的数量改变读取电压电平并执行读取操作的操作、基于机器学习改变读取电压电平并执行读取操作的操作、软判决或软解码操作、硬判决或硬解码操作、等等。
在实施例中,恢复序列表生成器1135可以基于恢复信息来排列恢复操作。例如,恢复序列表生成器1135可以基于恢复信息来比较恢复操作的参数值,并且可以将较高的优先级分配给具有较大参数值的恢复操作。也就是说,恢复序列表生成器1135可以基于参数值来确定恢复操作的顺序。该参数可以包括以下中的至少一者:错误纠正成功率、等待时间、错误纠正率和功率消耗。然而,本公开不限于此。
例如,错误纠正成功率可以指执行恢复操作的次数与错误被纠正的次数的比率。恢复序列表生成器1135可以基于错误纠正成功率来确定为纠正错误而被执行最多的恢复操作。等待时间可以指通过恢复操作纠正错误所花费的时间。恢复序列表生成器1135可以基于等待时间来确定需要最短的时间的恢复操作。错误纠正率可以指总的位数和经过纠正的位数的比率。或者,错误纠正率可以指错误的位数和经过纠正的位数的比率。恢复序列表生成器1135可以基于错误纠正率来确定纠正最多数据的恢复操作。
例如,恢复序列表生成器1135可以向错误纠正成功率较高或等待时间较短的恢复操作分配较高的优先级。恢复序列表生成器1135可以向错误纠正成功率较低或等待时间较长的恢复操作分配较低的优先级。也就是说,恢复序列表生成器1135可以将错误纠正成功率较高或等待时间较短的恢复操作放在恢复序列的前面。
恢复序列分配器1136可以向多个存储装置1200_1至1200_n中的每一者提供最佳恢复序列。例如,恢复序列分配器1136可以基于恢复序列表RST来为分配给新的虚拟机的存储装置选择最佳恢复序列。恢复序列分配器1136可以基于新的虚拟机的工作负载特性和存储装置的存储属性,来从恢复序列表RST中选择最佳恢复序列。恢复序列分配器1136可以将所选择的最佳恢复序列分配给为新的虚拟机分配的存储装置。存储装置可以通过基于最佳恢复序列执行恢复操作来最小化性能的降低。因此,提供具有改进性能的服务器系统1000。
图4是图示图1的存储服务器的操作的示例的流程图。参考图1和图4,在操作S100中,存储服务器1002可以基于工作负载特性和存储装置的属性来生成恢复序列表RST。例如,存储服务器1002可以分析虚拟机(或用户、客户端或容器)的工作负载。存储服务器1002可以提取虚拟机的工作负载特性。例如,工作负载特性可以包括以下中的至少一者:读取密集型、写入密集型、读取比率、工作负载大小、工作集大小、高速缓存状态信息(例如,命中率)、工作流。然而,本公开不限于此。
存储服务器1002可以从多个存储装置1200_1至1200_n中的每一者接收分配给虚拟机的存储装置的属性(或特性、指标或度量)。存储装置的属性(以下称为“存储属性”)可以包括非易失性存储器的状态、非易失性存储器的类型、编程方式(program manner)(或类型)(或每个存储单元存储的位数)(例如、单阶单元(SLC)、多阶单元(MLC)、三阶单元(TLC)或四阶单元(QLC))、编程-擦除(PE)循环数量、耐用性/可靠性、耐久性、访问频率或非易失性存储器的寿命。然而,本公开不限于此。属性信息可以指关于存储属性的信息。
在操作S200中,存储服务器1002可以基于恢复序列表RST向分配给为新的虚拟机分配的存储装置分配最佳恢复序列。将参考图9详细描述最佳恢复序列分配方法。
图5是更详细地图示图4的操作S100的流程图。图6是图示虚拟机组表的示例的图。为了便于描述,假定在客户端服务器1001上驱动第一虚拟机VM1至第十二虚拟机VM12,并且与第一虚拟机VM1至第十二虚拟机VM12相关联的数据被存储在对应的存储装置中。详细来说,假定与第一虚拟机VM1相关联的数据被存储在第一存储装置1200_1中,与第二虚拟机VM2相关联的数据被存储在第二存储装置1200_2中,与第三虚拟机VM3相关联的数据被存储在第三存储装置1200_3中,以及与第四虚拟机VM4相关联的数据被存储在第四存储装置1200_4中。与其余虚拟机VM5至VM12相关联的数据以与上述那些相似的方式被存储,并且因此,将省略额外的描述以避免冗余。
参考图1、图5和图6,操作S100可以包括操作S110至操作S190。在操作S110中,存储服务器1002可以提取虚拟机VM1至VM12的工作负载的特性。例如,存储服务器1002可以监测用户输入/输出I/O。存储服务器1002可以检测多个虚拟机VM1至VM12与对应存储装置之间的用户输入/输出I/O。例如,存储服务器1002可以检测在第一虚拟机VM1与第一存储装置1200_1之间交换的读取/写入请求和数据。
存储服务器1002可以分析用户输入/输出I/O以提取虚拟机的工作负载特性。例如,存储服务器1002可以监测在第一虚拟机VM1与第一存储装置1200_1之间交换的读取/写入请求和数据。存储服务器1002可以分析在第一虚拟机VM1与第一存储装置1200_1之间交换的读取/写入请求和数据,并且可以确定第一虚拟机VM1的工作负载是否具有第一工作负载特性C1(例如,读取密集型)。
在操作S130中,存储服务器1002可以基于工作负载特性来对虚拟机进行分组,并且可以生成虚拟机组表VMGT。在实施例中,存储服务器1002可以基于所提取的工作负载特性,来将具有相似工作负载特性的虚拟机分类为一个组。
下面,假定虚拟机的工作负载特性包括第一工作负载特性C1至第四工作负载特性C4。即,假定根据第一工作负载特性C1至第四工作负载特性C4将多个虚拟机分类为四个虚拟机组。然而,本公开不限于此。例如,用于分组的工作负载特性的数量或虚拟机组的数量可以依据实施的方式而增加或减少。
参考图6,假定第一虚拟机VM1、第三虚拟机VM3和第七虚拟机VM7具有第一工作负载特性C1,第二虚拟机VM2、第四虚拟机VM4和第十二虚拟机VM12具有第二工作负载特性C2,第五虚拟机VM5、第八虚拟机VM8和第十一虚拟机VM11具有第三工作负载特性C3,以及第六虚拟机VM6、第九虚拟机VM9和第十虚拟机VM10具有第四工作负载特性C4。
因为第一虚拟机VM1、第三虚拟机VM3和第七虚拟机VM7具有第一工作负载特性C1,所以存储服务器1002可以将第一虚拟机VM1、第三虚拟机VM3和第七虚拟机VM7分类为第一虚拟机组VMGroup1。因为第二虚拟机VM2、第四虚拟机VM4和第十二虚拟机VM12具有第二工作负载特性C2,所以存储服务器1002可以将第二虚拟机VM2、第四虚拟机VM4和第十二虚拟机VM12分类为第二虚拟机组VMGroup2。因为第五虚拟机VM5、第八虚拟机VM8和第十一虚拟机VM11具有第三工作负载特性C3,所以存储服务器1002可以将第五虚拟机VM5、第八虚拟机VM8和第十一虚拟机VM11分类为第三虚拟机组VMGroup3。因为第六虚拟机VM6、第九虚拟机VM9和第十虚拟机VM10具有第四工作负载特性C4,所以存储服务器1002可以将第六虚拟机VM6、第九虚拟机VM9和第十虚拟机VM10分类为第四虚拟机组VMGroup4。
存储服务器1002可以基于分组结果生成虚拟机组表VMGT。存储服务器1002可以将虚拟机组表VMGT存储在存储节点存储器1120中。
虚拟机组表VMGT可以包括工作负载特性和关于具有该工作负载特性的虚拟机的标识符的信息。例如,虚拟机组表VMGT可以包括:第一工作负载特性C1和关于具有第一工作负载特性C1的虚拟机的标识符(即,第一虚拟机标识符VM1_ID、第三虚拟机标识符VM3_ID和第七虚拟机标识符VM7_ID)的信息;第二工作负载特性C2和关于具有第二工作负载特性C2的虚拟机的标识符(即,第二虚拟机标识符VM2_ID、第四虚拟机标识符VM4_ID和第十二虚拟机标识符VM12_ID)的信息;第三工作负载特性C3和关于具有第三工作负载特性C3的虚拟机的标识符(即,第五虚拟机标识符VM5_ID、第八虚拟机标识符VM8_ID和第十一虚拟机标识符VM11_ID)的信息;以及第四工作负载特性C4和关于具有第四工作负载特性C4的虚拟机的标识符(即,第六虚拟机标识符VM6_ID、第九虚拟机标识符VM9_ID和第十虚拟机标识符VM10_ID)的信息。
在操作S150中,存储服务器1002可以接收关于分配给虚拟机的存储装置的属性的信息。例如,存储节点1100可以向与虚拟机VM1至VM12对应的存储装置1200_1至1200_12中的每一者发送属性信息请求。存储节点1100可以从存储装置1200_1至1200_12中的每一者中接收属性信息。存储节点1100可以基于接收到的属性信息来确定存储装置1200_1至1200_12中的每一者的存储属性。
在操作S170中,存储服务器1002可以从存储装置收集恢复信息(或恢复结果)。例如,存储节点1100可以周期性地(或重复地)从存储装置1200_1至1200_12请求恢复信息。存储节点1100可以从存储装置1200_1至1200_12接收恢复信息。将参考图7详细描述该恢复信息收集方法。
在操作S190中,存储服务器1002可以生成恢复序列表RST。例如,存储节点1100可以基于虚拟机组表VMGT、存储装置的属性和恢复信息来生成恢复序列表RST。存储节点1100可以将恢复序列表RST存储在存储节点存储器1120中。将参考图8A和图8B详细描述恢复序列表RST。
图7是详细图示图5的操作S170的流程图。为了便于描述,将描述接收存储有与第一虚拟机VM1相关联的数据的第一存储装置1200_1的恢复信息的方法。操作S170可以包括操作S171至操作S177。参考图1、图5和图7,在操作S171中,存储节点1100可以向第一存储装置1200_1发送读取请求。例如,该读取请求可以包括与第一虚拟机VM1需要的数据相对应的逻辑块地址LBA。
在操作S172中,第一存储装置1200_1可以确定读取错误是否发生。例如,第一存储装置1200_1可以响应于读取请求而从非易失性存储器1220读取与该读取请求相对应的数据。第一存储装置1200_1可以确定读取错误是否发生在从非易失性存储器1220读取的数据处。当确定读取错误发生时,第一存储装置1200_1执行操作S173。当确定读取错误没有发生时,第一存储装置1200_1执行操作S175。
在操作S173中,第一存储装置1200_1可以执行恢复操作。例如,第一存储装置1200_1可以基于默认恢复序列来执行恢复操作。
在操作S174中,第一存储装置1200_1可以更新恢复信息。或者,第一存储装置1200_1可以更新与恢复信息相关联的日志页。例如,恢复信息可以包括关于恢复序列的恢复操作的执行内容(或执行结果或历史)的信息。恢复信息可以包括读取错误发生频率、在恢复序列的恢复操作之中被执行的恢复操作的标识符、在恢复序列的恢复操作之中读取错误被纠正的恢复操作的标识符、恢复操作的错误纠正成功率、恢复操作的等待时间、恢复操作的错误纠正率、恢复操作的功率消耗、等等。例如,第一存储装置1200_1可以更新读取错误发生频率,并且可以将读取错误被纠正的恢复操作的标识符存储为恢复信息。
在操作S175中,第一存储装置1200_1可以向存储节点1100发送与读取请求相对应的读取数据和完成条目。第一存储装置1200_1可以向存储节点1100发送经错误纠正的读取数据。
在操作S176中,存储节点1100可以向第一存储装置1200_1发送恢复信息请求。例如,存储节点1100可以向第一存储装置1200_1发送包括与恢复信息相对应的日志标识符的“获取日志页”命令。
在操作S177中,第一存储装置1200_1可以响应于恢复信息请求来向存储节点1100发送恢复信息。例如,第一存储装置1200_1可以响应于“获取日志页”命令而向存储节点1100发送“获取日志页”完成和包括恢复信息的日志数据。
在实施例中,存储节点1100可以向第一存储装置1200_1发送恢复信息请求并周期性地或重复地从第一存储装置1200_1接收恢复信息。例如,存储服务器1002可以重复地执行操作S170。存储服务器1002可以在给定时间段期间重复地执行恢复信息收集操作。
在实施例中,存储服务器1002可以重复地执行操作S171至操作S175。在多次收集恢复信息之后,第一存储装置1200_1可以响应于恢复信息请求而向存储节点1100发送所收集的恢复信息。换句话说,在重复地执行读取操作(即操作S171至操作S175)之后,存储节点1100可以从第一存储装置1200_1请求所累积的恢复信息。
图8A和8B是图示根据本公开的示例实施例的恢复序列表的示例的图。参考图8A,恢复序列表RST可以包括多个表RT1至RT4。第一恢复表RT1是与具有第一工作负载特性C1的第一虚拟机组VMGroup1相关联的表,第二恢复表RT2是与具有第二工作负载特性C2的第二虚拟机组VMGroup2相关联的表,第三恢复表RT3是与具有第三工作负载特性C3的第三虚拟机组VMGroup3相关联的表,并且第四恢复表RT4是与具有第四工作负载特性C4的第四虚拟机组VMGroup4相关联的表。
为了便于描述,下面假定存储装置1200_1至1200_12的存储属性包括第一存储属性A1和第二存储属性A2。然而,本公开不限于此。例如,存储装置1200_1至1200_12的存储属性的数量可以依据实施例而增加或减少。例如,存储装置1200_1至1200_12中的每一者可以具有第一存储属性A1和第二存储属性A2中的一者。假定第一存储装置1200_1至第六存储装置1200_6具有第一存储属性A1,且第七存储装置1200_7至第十二存储装置1200_12具有第二存储属性A2。
第一恢复表RT1可以包括关于针对与具有第一工作负载特性C1的虚拟机的有关的第一存储属性A1的最佳恢复序列(例如,第一恢复序列)的信息,并且可以包括关于与具有第一工作负载特性C1的虚拟机的有关的第二存储属性A2的最佳恢复序列(例如,第二恢复序列)的信息。例如,存在四个恢复操作,且第一恢复序列可以指被设置(或排列)为执行第四恢复操作,然后执行第三恢复操作,然后执行第一恢复操作,且然后执行第二恢复操作的序列。第二恢复序列可以包括被设置为执行第二恢复操作,然后执行第三恢复操作,然后执行第一恢复操作,且然后执行第四恢复操作的恢复序列。
第二恢复表RT2可以包括关于针对与具有第二工作负载特性C2的虚拟机有关的第一存储属性A1的最佳恢复序列(例如,第三恢复序列)的信息,并且可以包括关于与具有第二工作负载特性C2的虚拟机有关的第二存储属性A2的最佳恢复序列(例如,第四恢复序列)的信息。第三恢复序列可以包括被设置(或排列)为执行第一恢复操作,然后执行第二恢复操作,然后执行第三恢复操作,且然后执行第四恢复操作的序列。第四恢复序列可以包括被设置为执行第四恢复操作,然后执行第三恢复操作,然后执行第二恢复操作,且然后执行第一恢复操作的序列。
第三恢复表RT3可以包括关于针对与具有第三工作负载特性C3的虚拟机有关的第一存储属性A1的最佳恢复序列(例如,第五恢复序列)的信息,并且可以包括关于与具有第三工作负载特性C3的虚拟机有关的第二存储属性A2的最佳恢复序列(例如,第六恢复序列)的信息。第五恢复序列可以指被设置为执行第三恢复操作,然后执行第四恢复操作,然后执行第一恢复操作,且然后执行第二恢复操作的序列。第六恢复序列可以包括被设置为执行第一恢复操作,然后执行第四恢复操作,然后执行第三恢复操作,且然后执行第二恢复操作的序列。
第四恢复表RT4可以包括关于针对与具有第四工作负载特性C4的虚拟机有关的第一存储属性A1的最佳恢复序列(例如,第七恢复序列)的信息,并且可以包括关于针对与具有第四工作负载特性C4的虚拟机有关的第二存储属性A2的最佳恢复序列(例如,第八恢复序列)的信息。第七恢复序列可以包括被设置为执行第二恢复操作,然后执行第一恢复操作,然后执行第三恢复操作,且然后执行第四恢复操作的序列。第八恢复序列可以包括被设置为执行第三恢复操作,然后执行第一恢复操作,然后执行第二恢复操作,且然后执行第四恢复操作的序列。
例如,参考图6,第一虚拟机组VMGroup1可以包括第一虚拟机VM1、第三虚拟机VM3和第七虚拟机VM7。与第一虚拟机VM1相关联的数据可以被存储在第一存储装置1200_1中,与第三虚拟机VM3相关联的数据可以被存储在第三存储装置1200_3中,且与第七虚拟机VM7相关联的数据可以被存储在第七存储装置1200_7中。第一存储装置1200_1和第三存储装置1200_3可以具有第一存储属性A1,并且第七存储装置1200_7可以具有第二存储属性A2。
存储节点1100可以基于从第一存储装置1200_1和第三存储装置1200_3接收到的恢复信息来选择最佳恢复序列(即,第一恢复序列)。存储节点1100可以基于从第七存储装置1200_7接收到的恢复信息来选择最佳恢复序列(即第二恢复序列)。以与上述那些相似的方式来选择其余的恢复序列(即,第三恢复序列至第八恢复序列),并且因此,将省略额外的描述以避免冗余。
图8A示出了存储关于工作负载特性和存储属性的一个最佳恢复序列的恢复序列表RST。相比之下,图8B示出了该恢复序列表RST可以存储关于工作负载特性和存储属性的多个最佳恢复序列。为简洁起见,图8B仅示出了第一恢复表RT1。
第一恢复表RT1包括与具有第一工作负载特性C1的第一虚拟机组VMGroup1相关联的恢复序列。第一恢复表RT1包括关于第一存储属性A1的第一条目至第三条目。例如,第一条目包括被设置(或排列)为执行第四恢复操作,然后执行第三恢复操作,然后执行第一恢复操作,且然后执行第二恢复操作的恢复序列。第二条目包括被设置为执行第四恢复操作,然后执行第三恢复操作,然后执行第二恢复操作,且然后执行第一恢复操作的恢复序列。第三条目包括被设置为执行第四恢复操作,然后执行第一恢复操作,然后执行第三恢复操作,且然后执行第二恢复操作的恢复序列。
第一恢复表RT1还包括关于第二存储属性A2的第四条目至第六条目。例如,第四条目包括被设置为执行第二恢复操作,然后执行第三恢复操作,然后执行第一恢复操作,且然后执行第四恢复操作的恢复序列。第五条目包括被设置为执行第二恢复操作,然后执行第三恢复操作,然后执行第四恢复操作,且然后执行第一恢复操作的恢复序列。第六条目包括被设置为执行第二恢复操作,然后执行第一恢复操作,然后执行第三恢复操作,且然后执行第四恢复操作的恢复序列。
存储节点1100可以向与第一虚拟机组VMGroup1相对应的存储装置之中的具有第一存储属性A1的存储装置提供与第一条目至第三条目中的一者相对应的最佳恢复序列。存储节点1100可以基于其他存储属性或其他因素选择多个最佳恢复序列中的一个序列,并且可以向存储装置提供所选择的最佳恢复序列。或者,当在先前提供的最佳恢复序列(例如,与第一条目相对应的恢复序列)中错误发生频率很高时,存储节点1100可以向存储装置提供与第二条目相对应的最佳恢复序列。
图9是更详细地图示图4的操作S200的流程图。参考图1、图4和图9,操作S200可以包括操作S210至操作S270。在操作S210中,存储服务器1002可以检测新的虚拟机。例如,存储服务器1002可以检测来自新的虚拟机的用户输入/输出。
在操作S220中,存储服务器1002可以提取新的虚拟机的工作负载特性。例如,存储节点1100可以监测在新的虚拟机与分配给该新的虚拟机的存储装置之间交换的读取/写入请求和数据。存储节点1100可以分析在新的虚拟机与对应的存储装置之间交换的读取/写入请求和数据,并可以确定新的虚拟机的工作负载特性。
在操作S230中,存储服务器1002可以确定是否存在与新的虚拟机在特性上相似的一组虚拟机。例如,可以确定新的虚拟机的工作负载是否具有第一工作负载特性C1至第四工作负载特性C4中的一者。当确定存在与新的虚拟机在特性上相似的一组虚拟机时,存储服务器1002执行操作S240至操作S270。当确定不存在与新的虚拟机在特性上相似的虚拟机组时,存储服务器1002执行图5的操作S130。
例如,当不存在与新的虚拟机在特性上相似的虚拟机组时(即,方法进行到操作S130),存储服务器1002可以更新虚拟机组表VMGT。存储服务器1002可以将新的工作负载特性(例如,第五工作负载特性)和新的虚拟机的标识符添加到虚拟机组表VMGT。存储服务器1002可以接收与新的虚拟机相对应的存储装置的属性。存储服务器1002可以接收与新的虚拟机相对应的存储装置的恢复信息。存储服务器1002可以基于恢复信息来更新恢复序列表RST。存储服务器1002可以基于恢复信息来选择与新的虚拟机相对应的存储装置的最佳恢复序列。存储服务器1002可以生成关于第五工作负载特性的第五恢复表。存储服务器1002可以将第五恢复表添加到恢复序列表RST。第五恢复表可以包括考虑到存储属性而选择的最佳恢复序列。或者,在实施例中,存储服务器1002可以通过使用聚类技术将新的虚拟机包括在具有最相似特性的虚拟机组中。
在操作S240中,存储服务器1002可以更新虚拟机组表VMGT。例如,存储服务器1002可以将新的虚拟机的标识符添加到虚拟机组表VMGT中与新的虚拟机的工作负载特性相同或相似的工作负载特性所对应的虚拟机的标识符。
在操作S250中,存储服务器1002可以从分配给新的虚拟机的存储装置接收存储装置的属性信息。在操作S260中,存储服务器1002可以基于恢复序列表RST选择最佳恢复序列。存储服务器1002可以参考恢复序列表RST(即基于新的虚拟机的工作负载特性和分配给新的虚拟机的存储装置的存储属性)来选择最佳恢复序列。
在操作S270中,存储服务器1002可以向存储装置提供最佳恢复序列。例如,存储服务器1002可以将所选择的最佳恢复序列分配给为新的虚拟机分配的存储装置。
图10A至图10C是图示图1的服务器系统的操作的示例的图。将参考图10A至10C描述基于恢复序列表来分配最佳恢复序列的方法。下面,为了使绘图简洁并便于描述,将省略与上述组件相同或相似的组件相关联的额外描述,以避免冗余。假定在客户端服务器1001上驱动了一个新的虚拟机(即,第十三虚拟机VM13)。
在操作S301中,第十三虚拟机VM13可以向存储节点1100发送新的请求。在操作S302中,存储节点1100可以将第十三存储装置1200_13分配给第十三虚拟机VM13。例如,存储节点1100可以将与第十三虚拟机VM13相关联的数据存储在第十三存储装置1200_13中。存储节点1100可以向第十三存储装置1200_13分配默认恢复序列。当读取错误发生时,第十三存储装置1200_13可以基于默认恢复序列执行恢复操作。
存储节点1100可以检测与第十三虚拟机VM13相关联的用户输入/输出I/O。存储节点1100可以监测在第十三虚拟机VM13与第十三存储装置1200_13之间交换的读取/写入请求和数据。存储节点1100可以分析在第十三虚拟机VM13与第十三存储装置1200_13之间交换的读取/写入请求和数据,并且可以确定第十三存储装置1200_13的工作负载特性。例如,存储节点1100可以确定第十三虚拟机VM13是否具有第一工作负载特性C1。存储节点1100可以确定第十三虚拟机VM13在工作负载特性方面与第一虚拟机组VMGroup1相似。存储节点1100可以确定第十三虚拟机VM13属于第一虚拟机组VMGroup1。
在操作S303中,恢复管理器1130可以更新虚拟机组表VMGT。因为第十三虚拟机VM13具有第一工作负载特性C1,所以恢复管理器1130可以更新虚拟机组表VMGT,使得关于具有第一工作负载特性C1的虚拟机的标识符(即,第一虚拟机标识符VM1_ID、第三虚拟机标识符VM3_ID、第七虚拟机标识符VM7_ID和第十三虚拟机标识符VM13_ID)的信息被包括在其中。也就是说,恢复管理器1130可以将第十三虚拟机标识符VM13_ID添加到关于具有第一工作负载特性C1的虚拟机的标识符的信息中。因此,虚拟机组表VMGT可以包括第一工作负载特性C1和关于具有第一工作负载特性C1的虚拟机的标识符(即,第一虚拟机标识符VM1_ID、第三虚拟机标识符VM3_ID、第七虚拟机标识符VM7_ID和第十三虚拟机标识符VM13_ID)的信息。
参考图10B,在操作S304中,存储节点1100可以向第十三存储装置1200_13发送属性信息请求。例如,存储节点1100可以发送包括日志标识符的“获取日志页”命令。例如,该日志标识符可以对应于SMART和/或健康信息。或者,存储节点1100可以发送“获取特征”命令。或者,存储节点1100可以发送遥测信息请求。
在操作S305中,存储节点1100可以从第十三存储装置1200_13接收属性信息。第十三存储装置1200_13可以响应于属性信息请求而向存储节点1100发送存储属性信息。例如,第十三存储装置1200_13可以向存储节点1100发送包括第一存储属性A1的属性信息。存储节点1100可以基于接收到的属性信息来确定第十三存储装置1200_13具有第一存储属性A1。
或者,在实施例中,存储节点1100可以从第十三存储装置1200_13接收遥测信息。第十三存储装置1200_13可以响应于遥测信息请求而向存储节点1100发送遥测信息。存储节点1100可以基于接收到的遥测信息来确定第十三存储装置1200_13的属性。
参考图10C,存储节点1100可以选择第十三存储装置1200_13的最佳恢复序列。存储节点1100可以基于恢复序列表RST选择最佳恢复序列。因为第十三虚拟机VM13具有第一工作负载特性C1,所以存储节点1100可以参考第一恢复表RT1。因为第十三存储装置1200_13具有第一存储属性A1,所以存储节点1100可以从第一恢复表RT1中选择对应于第一存储属性A1的恢复序列。也就是说,存储节点1100可以选择关于针对第一存储属性A1的最佳恢复序列的信息(即,关于第一恢复序列是具有第四恢复操作ROP4、第三恢复操作ROP3、第一恢复操作ROP1和第二恢复操作ROP2的顺序的序列的信息)。
在操作S306中,存储节点1100可以向第十三存储装置1200_13提供包括第一恢复序列(即,具有第四恢复操作ROP4、第三恢复操作ROP3、第一恢复操作ROP1和第二恢复操作ROP2的顺序的序列)的最佳恢复序列。例如,存储节点1100可以发送包括第一恢复序列的“设置特征”命令。或者,存储节点1100可以通过包括第一恢复序列的“Vendor”命令来分配该第一恢复序列是最佳恢复序列。
第十三存储装置1200_13可以接收包括第一恢复序列的最佳恢复序列。当读取错误发生时,第十三存储装置1200_13可以基于最佳恢复序列来执行恢复操作。
例如,当读取错误发生时,第十三存储装置1200_13可以优先执行第四恢复操作ROP4。当读取错误通过第四恢复操作ROP4被纠正时,第十三存储装置1200_13可以不执行其余的恢复操作(即,第三恢复操作ROP3、第一恢复操作ROP1和第二恢复操作ROP2)。当读取错误没有通过第四恢复操作ROP4得到纠正时,第十三存储装置1200_13可以执行第三恢复操作ROP3。当读取错误通过第三恢复操作ROP3被纠正时,第十三存储装置1200_13可以不执行其余的恢复操作(即,第一恢复操作ROP1和第二恢复操作ROP2)。当读取错误没有通过第三恢复操作ROP3得到纠正时,第十三存储装置1200_13可以执行第一恢复操作ROP1。当读取错误通过第一恢复操作ROP1被纠正时,第十三存储装置1200_13可以不执行其余的恢复操作(即,第二恢复操作ROP2)。当读取错误没有通过第一恢复操作ROP1得到纠正时,第十三存储装置1200_13可以执行第二恢复操作ROP2。
图11是图示图1的存储服务器的操作的示例的流程图。参考图1、图4和图11,在操作S400中,存储服务器1002可以基于工作负载特性和存储装置的属性来生成恢复序列表RST。在操作S500中,存储服务器1002可以基于恢复序列表RST,来向要为新的虚拟机分配的存储装置分配最佳恢复序列。操作S400和操作S500与图4的操作S100和操作S200相似,并且因此,将省略额外的描述以避免冗余。
在操作S600中,存储服务器1002可以改变最佳恢复序列。例如,第一存储装置1200_1的存储属性可以随时间变化。因此,存储服务器1002可以改变第一存储装置1200_1的最佳恢复序列。
图12是详细图示图11的操作S600的流程图。在图12中,假定存储装置是多个存储装置1200_1至1200_n之中的第十三存储装置1200_13。然而,本公开不限于此。例如,其余的存储装置可以与其相似地操作。
参考图1、图11和图12,在操作S610中,存储节点1100可以重复地执行针对第十三存储装置1200_13的监测操作。例如,存储节点1100可以监测第十三存储装置1200_13的存储属性。
详细来说,操作S610可以包括操作S611至操作S613。在操作S611中,存储节点1100可以向第十三存储装置1200_13发送属性信息请求。例如,该属性信息请求可以包括“获取日志页”命令,其包括日志标识符。例如,该日志标识符可以对应于SMART和/或健康信息。或者,存储节点1100可以发送“获取特征”命令。或者,存储节点1100可以发送遥测信息请求。
在操作S612中,第十三存储装置1200_13可以向存储节点1100发送属性信息。例如,第十三存储装置1200_13可以响应于属性信息请求而向存储节点1100发送变化的属性信息。或者,第十三存储装置1200_13可以响应于遥测信息请求而向存储节点1100发送变化的遥测信息。
在操作S613中,存储节点1100可以确定变化条件是否被满足。例如,当第十三存储装置1200_13的存储属性(或特性)变化时,当所监测到的数值达到阈值时,或者当读取错误频率增加时,变化条件可能被满足。当变化条件被满足时,存储节点1100执行操作S620。当变化条件未被满足时,存储节点1100执行操作S611。
例如,基于接收到的属性信息(或遥测信息),存储节点1100可以确定出第十三存储装置1200_13的存储属性从第一存储属性A1改变到第二存储属性A2。因此,存储节点1100可以确定第十三存储装置1200_13的恢复序列的变化条件被满足。
在操作S620中,存储节点1100可以选择新的最佳恢复序列。例如,参考图10C,因为第十三存储装置1200_13具有第二存储属性A2,所以存储节点1100可以从第一恢复表RT1中选择对应于第二存储属性A2的恢复序列。即,存储节点1100可以选择关于针对第二存储属性A2的最佳恢复序列的信息(即,关于第二恢复序列是具有第二恢复操作ROP2、第三恢复操作ROP3、第一恢复操作ROP1和第四恢复操作ROP4的顺序的序列的信息)。
在操作S630中,存储节点1100可以向第十三存储装置1200_13发送新的最佳恢复序列。例如,存储节点1100可以向第十三存储装置1200_13提供包括第二恢复序列(即具有第二恢复操作ROP2、第三恢复操作ROP3、第一恢复操作ROP1和第四恢复操作ROP4的顺序的序列)的最佳恢复序列。
图13A至图13C是图示图1的服务器系统的操作的示例的图。已经参考图1至图12描述了存储节点1100向多个存储装置1200_1至1200_n中的每一者传输一个最佳恢复序列的方法。参考图13A至图13C来描述存储节点1100向多个存储装置1200_1至1200_n中的每一者传输多个最佳恢复序列的方法。假定在客户端服务器1001上驱动了新的虚拟机(即,第十四虚拟机VM14和第十五虚拟机VM15)。
在操作S701中,第十四虚拟机VM14可以向存储节点1100发送第一新的请求。在操作S702中,存储节点1100可以将第十四存储装置1200_14的第一命名空间NS1分配给第十四虚拟机VM14。例如,存储节点1100可以将与第十四虚拟机VM14相关联的数据存储在第十四存储装置1200_14的第一命名空间NS1中。
在操作S703中,第十五虚拟机VM15可以向存储节点1100发送第二新的请求。在操作S704中,存储节点1100可以将第十四存储装置1200_14的第二命名空间NS2分配给第十五虚拟机VM15。例如,存储节点1100可以将与第十五虚拟机VM15相关联的数据存储在第十四存储装置1200_14的第二命名空间NS2中。
存储节点1100可以检测与第十四虚拟机VM14相关联的用户输入/输出I/O。存储节点1100可以监测在第十四虚拟机VM14与第十四存储装置1200_14的第一命名空间NS1之间交换的读取/写入请求和数据。存储节点1100可以分析在第十四虚拟机VM14与第十四存储装置1200_14的第一命名空间NS1之间交换的读取/写入请求和数据,并且可以确定第十四虚拟机VM14的工作负载特性。例如,存储节点1100可以确定第十四虚拟机VM14是否具有第二工作负载特性C2。
存储节点1100可以检测与第十五虚拟机VM15相关联的用户输入/输出I/O。存储节点1100可以监测在第十五虚拟机VM15与第十四存储装置1200_14的第二命名空间NS2之间交换的读取/写入请求和数据。存储节点1100可以分析在第十五虚拟机VM15与第十四存储装置1200_14的第二命名空间NS2之间交换的读取/写入请求和数据,并且可以确定第十五虚拟机VM15的工作负载特性。例如,存储节点1100可以确定第十五虚拟机VM15是否具有第一工作负载特性C1。
在操作S705中,恢复管理器1130可以更新虚拟机组表VMGT。例如,因为第十四虚拟机VM14具有第二工作负载特性C2,所以恢复管理器1130可以更新虚拟机组表VMGT,使得关于具有第二工作负载特性C2的虚拟机的标识符(即,第二虚拟机标识符VM2_ID、第四虚拟机标识符VM4_ID、第十二虚拟机标识符VM12_ID和第十四虚拟机标识符VM14_ID)的信息被包括在其中。也就是说,恢复管理器1130可以将第十四虚拟机标识符VM14_ID添加到关于具有第二工作负载特性C2的虚拟机的标识符的信息中。因此,虚拟机组表VMGT可以包括第二工作负载特性C2和关于具有该第二工作负载特性C2的虚拟机的标识符(即,第二虚拟机标识符VM2_ID、第四虚拟机标识符VM4_ID、第十二虚拟机标识符VM12_ID和第十四虚拟机标识符VM14_ID)的信息。
例如,因为第十五虚拟机VM15具有第一工作负载特性C1,所以恢复管理器1130可以更新虚拟机组表VMGT,使得关于具有第一工作负载特性C1的虚拟机的标识符(即,第一虚拟机标识符VM1_ID、第三虚拟机标识符VM3_ID、第七虚拟机标识符VM7_ID、第十三虚拟机标识符VM13_ID和第十五虚拟机标识符VM15_ID)的信息被包括在其中。也就是说,恢复管理器1130可以将第十五虚拟机标识符VM15_ID添加到关于具有第一工作负载特性C1的虚拟机的标识符的信息中。因此,虚拟机组表VMGT可以包括第一工作负载特性C1和关于具有第一工作负载特性C1的虚拟机的标识符(即,第一虚拟机标识符VM1_ID、第三虚拟机标识符VM3_ID、第七虚拟机标识符VM7_ID、第十三虚拟机标识符VM13_ID和第十五虚拟机标识符VM15_ID)的信息。
参考图13B,在操作S706中,存储节点1100可以向第十四存储装置1200_14的第一命名空间NS1发送属性信息请求。在操作S707中,存储节点1100可以从第十四存储装置1200_14接收属性信息。第十四存储装置1200_14可以响应于属性信息请求而向存储节点1100发送第一命名空间NS1的存储属性信息。例如,第十四存储装置1200_14可以向存储节点1100发送包括第一存储属性A1的属性信息。存储节点1100可以基于接收到的属性信息来确定第十四存储装置1200_14的第一命名空间NS1具有第一存储属性A1。
在操作S708中,存储节点1100可以向第十四存储装置1200_14的第二命名空间NS2发送属性信息请求。在操作S709中,存储节点1100可以从第十四存储装置1200_14接收属性信息。第十四存储装置1200_14可以响应于属性信息请求而向存储节点1100发送第二命名空间NS2的存储属性信息。例如,第十四存储装置1200_14可以向存储节点1100发送包括第二存储属性A2的属性信息。存储节点1100可以基于接收到的属性信息而确定第十四存储装置1200_14的第二命名空间NS2具有第二存储属性A2。
参考图13C,存储节点1100可以为第十四存储装置1200_14的第一命名空间NS1选择最佳恢复序列。存储节点1100可以基于恢复序列表RST选择最佳恢复序列。因为第十四虚拟机VM14具有第二工作负载特性C2,所以存储节点1100可以参考第二恢复表RT2。因为第十四存储装置1200_14的第一命名空间NS1具有第一存储属性A1,所以存储节点1100可以从第二恢复表RT2中选择与第一存储属性A1相对应的恢复序列。也就是说,存储节点1100可以选择关于针对第一存储属性A1的最佳恢复序列的信息(即,关于第三恢复序列是具有第一恢复操作ROP1、第二恢复操作ROP2、第三恢复操作ROP3和第四恢复操作ROP4的顺序的序列的信息)。
在操作S710中,存储节点1100可以向第十四存储装置1200_14的第一命名空间NS1提供包括第三恢复序列(即,具有第一恢复操作ROP1、第二恢复操作ROP2、第三恢复操作ROP3和第四恢复操作ROP4的顺序的序列)的最佳恢复序列。
存储节点1100可以为第十四存储装置1200_14的第二命名空间NS2选择最佳恢复序列。存储节点1100可以基于恢复序列表RST选择最佳恢复序列。因为第十五虚拟机VM15具有第一工作负载特性C1,所以存储节点1100可以参考第一恢复表RT1。因为第十四存储装置1200_14的第二命名空间NS2具有第二存储属性A2,所以存储节点1100可以从第一恢复表RT1中选择与第二存储属性A2相对应的恢复序列。即,存储节点1100可以选择关于针对第二存储属性A2的最佳恢复序列的信息(即,关于第二恢复序列是具有第二恢复操作ROP2、第三恢复操作ROP3、第一恢复操作ROP1和第四恢复操作ROP4的顺序的序列的信息)。
在操作S711中,存储节点1100可以向第十四存储装置1200_14的第二命名空间NS2提供包括第二恢复序列(即,具有第二恢复操作ROP2、第三恢复操作ROP3、第一恢复操作ROP1和第四恢复操作ROP4的顺序的序列)的最佳恢复序列。
如上所述,存储节点1100可以向存储装置提供多个最佳恢复序列。即,存储节点1100可以为存储装置的每个命名空间提供最佳恢复序列。存储装置可以对不同属性的命名空间应用不同的恢复序列。存储装置可以通过针对每个命名空间执行最佳恢复序列来防止性能的降低。
图14是根据实施例的存储器件被应用于的数据中心2000的图。
参考图14,数据中心2000可以是收集各种类型的数据片并提供服务的设施,并且被称为数据存储中心。数据中心2000可以是用来操作搜索引擎和数据库的系统,并且可以是公司(诸如银行)或政府机构所使用的计算系统。数据中心2000可以包括应用服务器2100至2100_n和存储服务器2200至2200_m。应用服务器2100至2100_n的数量和存储服务器2200至2200_m的数量可以根据实施例而不同地确定。应用服务器2100至2100_n的数量可以与存储服务器2200至2200_m的数量不同。
应用服务器2100或存储服务器2200可以包括处理器2110和2210以及存储器2120和2220中的至少一者。现在将作为示例来描述存储服务器2200。处理器2210可以控制存储服务器2200的所有操作,访问存储器2220,并执行存储器2220中加载的指令和/或数据。存储器2220可以是双数据率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储立方体(HMC)、双列直插式存储器模块(DIMM)、傲腾DIMM(Optane DIMM)和/或非易失性DIMM(NVMDIMM)。在一些实施例中,包括在存储服务器2200中的处理器2210和存储器2220的数量可以不同地确定。在实施例中,处理器2210和存储器2220可以提供处理器-存储器对。在实施例中,处理器2210的数量可以与存储器2220的数量不同。处理器2210可以包括单核处理器或多核处理器。上述对存储服务器2200的描述可以类似地适用于应用服务器2100。在一些实施例中,应用服务器2100可以不包括存储装置2150。存储服务器2200可以包括至少一个存储装置2250。包括在存储服务器2200中的存储装置2250的数量可以根据实施例而不同地确定。
应用服务器2100至2100_n可以通过网络2300与存储服务器2200至2200_m通信。网络2300可以通过使用光纤通道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速的数据传输的介质,并使用具有高性能和高可用性的光开关。存储服务器2200至2200_m可以根据网络2300的访问方法而提供为文件存储、块存储或对象存储。
在实施例中,网络2300可以是存储专用网络,诸如存储区域网络(SAN)。例如,SAN可以是FC-SAN,其使用FC网络并根据FC协议(FCP)来实现。作为另一示例,SAN可以是互联网协议(IP)—SAN,它使用传输控制协议(TCP)/IP网络,并根据TCP/IP上的SCSI或互联网SCSI(iSCSI)协议来实现。在另一实施例中,网络2300可以是通用网络,诸如TCP/IP网络。例如,网络2300可以根据诸如以太网上的FC(FCoE)、网络附加存储(NAS)和结构上的NVMe(NVMe-oF)之类的协议来实现。
下面,将主要描述应用服务器2100和存储服务器2200。对应用服务器2100的描述可以应用于另一个应用服务器2100_n,且存储服务器2200的描述可以应用于另一个存储服务器2200_m。
应用服务器2100可以通过网络2300将用户或客户端请求存储的数据存储在存储服务器2200至2200_m中的一个存储服务器中。而且,应用服务器2100可以通过网络2300从存储服务器2200至2200_m中的一个存储服务器获得用户或客户端请求读取的数据。例如,应用服务器2100可以被实现为网络服务器或数据库管理系统(DBMS)。
应用服务器2100可以通过网络2300访问包括在另一个应用服务器2100_n中的存储器2120_n或存储装置2150_n。或者,应用服务器2100可以通过网络2300访问包括在存储服务器2200至2200_m中的存储器2220至2220_m或存储装置2250至2250_m。因此,应用服务器2100可以对存储在应用服务器2100至2100_n和/或存储服务器2200至2200_m中的数据执行各种操作。例如,应用服务器2100可以执行用来在应用服务器2100至2100_n和/或存储服务器2200至2200_m之间移动或复制数据的指令。在这种情况下,数据可以从存储服务器2200至2200_m的存储装置2250至2250_m直接地或者通过存储服务器2200至2200_m的存储器2220至2220_m移动到应用服务器2100至2100_n的存储器2120至2120_n。通过网络2300移动的数据可以是为了安全或隐私而加密的数据。
现在将作为示例来描述存储服务器2200。接口2254可以提供处理器2210与控制器2251之间的物理连接以及网络接口卡(NIC)2240与控制器2251之间的物理连接。例如,接口2254可以使用直接附加存储(DAS)方案来实现,在该直接附加存储(DAS)方案中存储装置2250与专用电缆直接连接。例如,接口2254可以通过使用各种接口方案来实现,诸如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口以及/或者CF卡接口。
存储服务器2200还可以包括开关2230和NIC(网络互连)2240。开关2230可以选择性地将处理器2210连接到存储装置2250,或者通过处理器2210的控制选择性地将NIC 2240连接到存储装置2250。
在实施例中,NIC 2240可以包括网络接口卡和网络适配器。NIC 2240可以通过有线接口、无线接口、蓝牙接口或光学接口连接到网络2300。NIC 2240可以包括内部存储器、数字信号处理器(DSP)和主机总线接口,并通过主机总线接口连接到处理器2210和/或开关2230。主机总线接口可以作为接口2254的上述示例中的一个来实现。在实施例中,NIC 2240可以与处理器2210、开关2230和存储装置2250中的至少一者集成。
在存储服务器2200至2200_m或应用服务器2100至2100_n中,处理器(例如,处理器2110或2210)可以向存储装置2150至2150_n和2250至2250_m或存储器2120至2120_n和2220至2220_m传送命令并对数据进行编程或读取数据。在这种情况下,数据可以是被ECC引擎纠正了错误的数据。数据可以是对其执行了数据总线反转(DBI)操作或数据屏蔽(DM)操作的数据,并可以包括循环冗余码(CRC)信息。该数据可以是为了安全或隐私而加密的数据。
存储装置2150至2150_n和2250至2250_m可以响应于从处理器接收到的读取命令,来将控制信号和命令/地址信号传送到NAND闪存器件2252至2252_m。因此,当从NAND闪存器件2252至2252_m读取数据时,可以输入读取使能(RE)信号作为数据输出控制信号,并且因此,数据可以被输出到DQ总线。可以使用RE信号来生成数据选通信号DQS。命令和地址信号可以根据写入使能(WE)信号的上升沿或下降沿而锁存在页缓冲器中。
控制器2251可以控制存储装置2250的所有操作。在实施例中,控制器2251可以包括SRAM。控制器2251可以响应于写入命令将数据写入NAND闪存器件2252,或者响应于读取命令从NAND闪存器件2252读取数据。例如,写入命令和/或读取命令可以从存储服务器2200至2200_m的处理器2210至2210_m以及应用服务器2100至2100_n的处理器2110至2110_n中的任何一者来提供。DRAM 3253可以临时存储(或缓冲)要写入NAND闪存器件2252的数据或从NAND闪存器件2252读取的数据。另外,DRAM 3253可以存储元数据。这里,元数据可以是用户数据或由控制器2251生成的用于管理NAND闪存器件2252的数据。存储装置2250可以包括用于安全或隐私的安全元件(SE)。
在实施例中,存储服务器2200至2200_m可以包括参考图1至图13C描述的恢复管理器,或者可以基于参考图1至图13C描述的提供最佳恢复序列的方法来操作。例如,基于参考图1至图13C描述的方法,存储服务器2200可以生成和管理虚拟机组表VMGT,可以收集恢复信息,并且可以生成和管理恢复序列表RST。
在实施例中,存储服务器2200可以通过网络NT向任何其他存储服务器(例如,存储服务器2200_m)提供最佳恢复序列。例如,存储服务器2200可以从存储服务器2200_m接收包括工作负载特性和存储属性的最佳恢复序列请求。存储服务器2200可以基于由此接收到的工作负载特性和存储属性,参考恢复序列表RST来选择最佳恢复序列。存储服务器2200可以通过网络NT向存储服务器2200_m提供最佳恢复序列。存储服务器2200_m可以将接收到的最佳恢复序列传输到存储装置2250_m。也就是说,存储服务器2200可以向通过网络NT连接的远程存储装置2250_m提供最佳恢复序列。
在实施例中,存储服务器2200可以通过网络NT向存储服务器2200_m提供恢复序列表RST或与存储服务器2200_m共享恢复序列表RST。存储服务器2200可以通过网络NT将虚拟机组表VMGT、所收集的恢复信息和/或恢复序列表RST发送到存储服务器2200_m。
存储服务器2200_m可以从存储服务器2200接收虚拟机组表VMGT、恢复信息和/或恢复序列表RST。存储服务器2200_m可以监测恢复信息,并且可以不在内部生成恢复序列表RST。存储服务器2200_m可以基于提供给存储服务器2200的恢复序列表RST来向存储装置提供最佳恢复序列。
在上述示例实施例中,根据本公开的组件通过使用术语“第一”、“第二”、“第三”等来描述。然而,术语“第一”、“第二”、“第三”等可以用于将组件彼此区分开来,并且不限制本公开。例如,术语“第一”、“第二”、“第三”等不涉及任何形式的顺序或数字含义。
在上述示例实施例中,根据本公开的实施例的组件通过使用单元、模块、层或块来描述。该单元、模块、层或块可以用各种硬件设备(诸如集成电路(IC)、专用IC(ASIC)、现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD))、硬件设备中驱动的固件、软件(诸如应用程序)、或硬件设备和软件的组合来实现。另外,块可以包括在集成电路中用半导体元件实现的电路,或者注册为知识产权(IP)的电路。
根据本公开,提供了一种具有改进的性能的存储服务器和存储服务器的操作方法。
虽然已经参考其示例实施例描述了本公开,但对于本领域的普通技术人员来说,清楚的是,可以在不偏离所附权利要求及其等同物中阐述的本公开的精神和范围的情况下对其进行各种改变和修改。
Claims (20)
1.一种操作存储服务器的方法,所述存储服务器包括多个存储装置和被配置为控制所述多个存储装置的存储节点,所述方法包括:
由所述存储节点基于第一虚拟机的工作负载特性对所述第一虚拟机进行分组,以生成虚拟机组表;
由所述存储节点从所述多个存储装置中的被分配给所述第一虚拟机的第一存储装置接收所述第一存储装置的属性信息;
由所述存储节点从所述第一存储装置收集恢复信息;
由所述存储节点通过基于所述虚拟机组表、所述属性信息和所述恢复信息确定恢复序列,来生成恢复序列表;以及
由所述存储节点基于所述恢复序列表向所述多个存储装置中的第二存储装置提供第一对应的恢复序列,所述第二存储装置被分配给不同于所述第一虚拟机的新的第二虚拟机。
2.根据权利要求1所述的方法,其中,基于在所述第二存储装置中读取错误发生,基于所述第二存储装置的所述第一对应的恢复序列的恢复操作被执行。
3.根据权利要求1所述的方法,其中,所述虚拟机组表包括工作负载特性和关于具有所述工作负载特性的至少一个虚拟机的标识符的信息。
4.根据权利要求1所述的方法,其中,收集所述恢复信息包括:
由所述存储节点向所述多个存储装置之中的第三存储装置发送读取请求,根据所述读取请求,基于在所述第三存储装置中读取错误发生,基于默认恢复序列的恢复操作被执行并且所述恢复信息被更新;
由所述存储节点从所述第三存储装置接收与所述读取请求相对应的读取数据;
由所述存储节点向所述第三存储装置发送恢复信息请求;以及
由所述存储节点响应于所述恢复信息请求而接收所更新的恢复信息。
5.根据权利要求4所述的方法,其中,发送所述恢复信息请求包括:
向所述第三存储装置发送“获取日志页”命令,所述“获取日志页”命令包括与所述恢复信息相对应的日志标识符。
6.根据权利要求1所述的方法,其中,所述恢复序列表包括与对应的工作负载特性和对应的属性信息相关联的相应的恢复序列。
7.根据权利要求1所述的方法,其中,提供所述第一对应的恢复序列包括:
由所述存储节点检测所述第二虚拟机;
由所述存储节点提取所述第二虚拟机的工作负载特性;
由所述存储节点基于所述第二虚拟机的工作负载特性,参考所述虚拟机组表来确定与所述第二虚拟机相似的虚拟机组;
基于确定出与所述第二虚拟机相似的虚拟机组,由所述存储节点接收所述第二存储装置的属性信息;
由所述存储节点基于所述第二虚拟机的工作负载特性和所述第二存储装置的属性信息,参考所述恢复序列表并选择所述第一对应的恢复序列;以及
由所述存储节点向所述第二存储装置提供所选择的第一对应的恢复序列。
8.根据权利要求7所述的方法,其中,接收所述属性信息包括:
由所述存储节点向所述第二存储装置发送包括日志标识符的“获取日志页”命令或遥测信息请求;以及
由所述存储节点基于所述“获取日志页”命令或所述遥测信息请求,从所述第二存储装置接收所述属性信息或遥测信息。
9.根据权利要求1所述的方法,其中,所述工作负载特性包括以下中的至少一者:读取密集型、写入密集型、读取比率、工作负载大小、工作集大小、高速缓存状态信息、工作流。
10.根据权利要求1所述的方法,其中,所述属性信息包括以下中的至少一者:非易失性存储器的状态、非易失性存储器的类型、编程方式、编程和/或擦除循环数量、可靠性、访问频率、寿命。
11.根据权利要求1所述的方法,其中,确定所述恢复序列包括:
由所述存储节点基于对恢复操作的参数值进行比较来为所述恢复操作分配优先级;以及
基于所述恢复操作的优先级来确定恢复序列。
12.根据权利要求11所述的方法,其中,所述参数值包括以下中的至少一者:错误纠正成功率、等待时间、错误纠正率或功率消耗。
13.根据权利要求1所述的方法,所述方法还包括:
由所述存储节点改变所述第二存储装置的所述第一对应的恢复序列。
14.根据权利要求13所述的方法,其中,改变所述第一对应的恢复序列包括:
由所述存储节点向所述第二存储装置发送属性信息请求;
由所述存储节点基于所述属性信息请求从所述第二存储装置接收属性信息;
由所述存储节点基于所述第二存储装置的所述属性信息来确定恢复序列变化条件是否被满足;
基于所述恢复序列变化条件被满足,由所述存储节点通过基于所述第二存储装置的变化的属性信息参考所述恢复序列表来选择第二对应的恢复序列;以及
由所述存储节点向所述第二存储装置提供所述第二对应的恢复序列。
15.根据权利要求1所述的方法,所述方法还包括:
由所述存储节点检测新的第三虚拟机和新的第四虚拟机;
由所述存储节点向所述新的第三虚拟机分配所述多个存储装置之中的第三存储装置的第一命名空间;
由所述存储节点向所述新的第四虚拟机分配所述第三存储装置的第二命名空间;
由所述存储节点基于所述恢复序列表,向所述第三存储装置的所述第一命名空间提供第二对应的恢复序列;以及
由所述存储节点基于所述恢复序列表,向所述第三存储装置的所述第二命名空间提供不同于所述第二对应的恢复序列的第三对应的恢复序列。
16.一种存储服务器,所述存储服务器包括:
多个存储装置;以及
存储节点,所述存储节点包括恢复管理器并且被配置为控制所述多个存储装置,
其中,所述恢复管理器包括:
工作负载分析器,所述工作负载分析器被配置为通过监测第一虚拟机与所述多个存储装置中的分配给所述第一虚拟机的第一存储装置之间的输入和输出来提取所述第一虚拟机的工作负载特性;
工作负载分组管理器,所述工作负载分组管理器被配置为基于所述工作负载特性对所述第一虚拟机进行分组并生成虚拟机组表;
存储分析器,所述存储分析器被配置为从所述第一存储装置接收属性信息并且基于所接收到的属性信息来确定所述第一存储装置的存储属性;
恢复收集器,所述恢复收集器被配置为从所述第一存储装置收集恢复信息;
恢复序列表生成器,所述恢复序列表生成器被配置为通过基于所述虚拟机组表、所述存储属性和所述恢复信息确定恢复序列来生成恢复序列表;以及
恢复序列分配器,所述恢复序列分配器被配置为:通过基于新的第二虚拟机的工作负载特性和所述多个存储装置中的被分配给所述新的第二虚拟机的第二存储装置的存储属性参考所述恢复序列表,来向所述第二存储装置分配对应的恢复序列。
17.根据权利要求16所述的存储服务器,其中,所述第二存储装置包括:
非易失性存储器;以及
存储控制器,所述存储控制器包括恢复引擎并且被配置为控制所述非易失性存储器,
其中,在从所述存储节点接收所述对应的恢复序列之前,所述恢复引擎被配置为:基于读取错误发生,基于默认恢复序列执行恢复操作;并且
其中,基于从所述存储节点接收到所述对应的恢复序列,所述恢复引擎被配置为:基于所述读取错误发生,基于所接收到的对应的恢复序列来执行所述恢复操作。
18.根据权利要求17所述的存储服务器,其中,所述恢复引擎被配置为:将先前执行的恢复操作的历史存储为所述恢复信息,并且基于来自所述存储节点的恢复信息请求来向所述存储节点发送所述恢复信息。
19.一种操作存储服务器的方法,所述存储服务器包括多个存储装置和被配置为控制所述多个存储装置的存储节点,所述方法包括:
由所述存储节点基于第一虚拟机的工作负载特性对所述第一虚拟机进行分组,以生成虚拟机组表;
由所述存储节点从被分配给所述第一虚拟机的第一存储装置接收属性信息;
由所述存储节点从所述第一存储装置收集恢复信息;
由所述存储节点基于所述虚拟机组表、所述属性信息和所述恢复信息来确定恢复序列,以生成恢复序列表;
通过网络从外部存储服务器接收包括第二工作负载特性和第二存储属性的恢复序列请求;以及
基于所述第二工作负载特性和所述第二存储属性,参考所述恢复序列表并向所述外部存储服务器提供对应的恢复序列。
20.根据权利要求19所述的方法,所述方法还包括:
由所述存储节点向所述外部存储服务器发送所述恢复序列表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0108512 | 2022-08-29 | ||
KR1020220108512A KR20240030021A (ko) | 2022-08-29 | 2022-08-29 | 스토리지 서버 및 스토리지 서버의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117631968A true CN117631968A (zh) | 2024-03-01 |
Family
ID=89999676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310519688.3A Pending CN117631968A (zh) | 2022-08-29 | 2023-05-09 | 存储服务器以及存储服务器的操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240069814A1 (zh) |
KR (1) | KR20240030021A (zh) |
CN (1) | CN117631968A (zh) |
-
2022
- 2022-08-29 KR KR1020220108512A patent/KR20240030021A/ko unknown
-
2023
- 2023-05-09 CN CN202310519688.3A patent/CN117631968A/zh active Pending
- 2023-05-22 US US18/200,215 patent/US20240069814A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20240030021A (ko) | 2024-03-07 |
US20240069814A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11947419B2 (en) | Storage device with data deduplication, operation method of storage device, and operation method of storage server | |
CN115480707A (zh) | 数据存储的方法和装置 | |
KR102493864B1 (ko) | 스토리지 장치의 동작 방법 및 호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법 | |
US11907568B2 (en) | Storage controller, storage device, and operation method of storage device | |
US20220179724A1 (en) | Method for operating storage device and host device, and storage device | |
CN115458013A (zh) | 存储装置及其操作方法 | |
EP4386557A1 (en) | Method and device for log structured merge-tree based key-value data storage | |
KR102425470B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
EP4148572B1 (en) | Computational storage device and storage system including the computational storage device | |
US12056381B2 (en) | Data processing method and data processing device | |
EP4332773A1 (en) | Storage server and operation method of storage server | |
US20240069814A1 (en) | Storage server and operation method of storage server | |
CN114510372A (zh) | 储存装置及其操作方法 | |
EP4258097A1 (en) | Operation method of host device and operation method of storage device | |
US11914879B2 (en) | Storage controller and storage system comprising the same | |
US20230135891A1 (en) | Storage device including storage controller and operating method | |
KR102435910B1 (ko) | 스토리지 장치 및 그것의 동작 방법 | |
US20230325110A1 (en) | Operation method of host device and operation method of storage device | |
US20230153237A1 (en) | Method and device for storing data | |
US20240256159A1 (en) | Electronic device and operating method thereof | |
US20230409200A1 (en) | Method and device for data storage | |
EP4246330A1 (en) | Storage device and operating method thereof | |
US20240193105A1 (en) | Computational storage device and method of operating the same | |
US20240160511A1 (en) | Failure prediction apparatus and method for storage devices | |
US20230393749A1 (en) | Method and device of storage data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |