CN113342262A - 用以进行全快闪存储器阵列伺服器的碟管理的方法与设备 - Google Patents
用以进行全快闪存储器阵列伺服器的碟管理的方法与设备 Download PDFInfo
- Publication number
- CN113342262A CN113342262A CN202110230841.1A CN202110230841A CN113342262A CN 113342262 A CN113342262 A CN 113342262A CN 202110230841 A CN202110230841 A CN 202110230841A CN 113342262 A CN113342262 A CN 113342262A
- Authority
- CN
- China
- Prior art keywords
- disk
- node
- pool
- failed
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000015654 memory Effects 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 claims abstract description 194
- 238000012545 processing Methods 0.000 claims abstract description 16
- 239000007787 solid Substances 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000006399 behavior Effects 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 32
- 238000004891 communication Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 16
- 102220534543 Pseudouridylate synthase 7 homolog-like protein_S35A_mutation Human genes 0.000 description 11
- 102220588441 Keratin, type I cytoskeletal 18_S30A_mutation Human genes 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 102220554706 Holliday junction recognition protein_S30T_mutation Human genes 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 102220062469 rs786203185 Human genes 0.000 description 8
- 102220492455 2'-5'-oligoadenylate synthase 3_S36A_mutation Human genes 0.000 description 6
- 102220588435 Keratin, type I cytoskeletal 18_S34A_mutation Human genes 0.000 description 6
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 102220104796 rs879254247 Human genes 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 102220588436 Keratin, type I cytoskeletal 18_S31A_mutation Human genes 0.000 description 4
- 102220476563 NF-kappa-B inhibitor alpha_S32A_mutation Human genes 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 102220064657 rs786205565 Human genes 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 102220471486 Protein MON2 homolog_S36C_mutation Human genes 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 102220198146 rs1057519886 Human genes 0.000 description 3
- 102220198036 rs121913400 Human genes 0.000 description 3
- 102220293834 rs1553603207 Human genes 0.000 description 3
- 102220571247 Cell division cycle protein 20 homolog_S41A_mutation Human genes 0.000 description 2
- 102220588433 Keratin, type I cytoskeletal 18_S42A_mutation Human genes 0.000 description 2
- 102220554721 Transmembrane protease serine 11A_S43A_mutation Human genes 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 102220588444 Keratin, type I cytoskeletal 18_S44A_mutation Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism 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
- 102200044885 rs121913403 Human genes 0.000 description 1
- 102220198042 rs121913407 Human genes 0.000 description 1
Images
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/0727—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 storage system, e.g. in a DASD or network based storage system
-
- 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/0751—Error or fault detection not based on redundancy
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2015—Redundant power supplies
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Hardware Redundancy (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种用以进行全快闪存储器阵列(简称AFA)伺服器的碟管理的方法及AFA伺服器,该方法包含:利用运行在该AFA伺服器的多个节点中的任一节点上的多个程序模块中的一碟管理器模块来触发该任一节点的一硬件层,以在该AFA伺服器的高可用性架构中进行碟交换控制,以控制该任一节点来启用该任一节点和一组储存装置之间的一组碟交换路径;以及利用该碟管理器模块以一并行处理方式进行分别对应于多个碟池的多组操作,以便用该多个碟池来管理该组储存装置,其中该多个碟池包含一现用碟池、一插入碟池以及一故障碟池。
Description
技术领域
本发明有关于存储器控制,尤指一种用以进行全快闪存储器阵列(All FlashArray,简称AFA)伺服器的碟(disk)管理的方法以及相关设备(apparatus)诸如AFA伺服器及其控制电路等。
背景技术
数据储存伺服器可以被设置为储存一个或多个用户的用户数据,并且在现有技术中已经提出了针对数据储存伺服器的各种控制方法,以便给用户带来良好的用户体验。由于快闪存储器(Flash memory)已经被广泛应用于各种数据储存装置诸如固态硬碟(solidstate drive,SSD)等,现有技术中提出将数据储存伺服器用快闪存储器作为其储存介质的快闪存储器类型数据储存伺服器来实现,例如其中安装有多个SSD的AFA伺服器。但是,可能会出现某些问题。例如,存取该多个SSD中的任一SSD的快闪存储器的管理会很复杂。为了确保这个SSD中的快闪存储器的存取控制符合相关规范,这个SSD中的快闪存储器的控制器通常配备有某些管理机制以妥善地管理其内部操作。虽然SSD制造商可能试着使SSD看起来像是替代硬式磁碟机(HDD)的不错的解决方案,但是SSD的某些特性与HDD完全不同。如此一来,上述控制方法对于安装有多个SSD的AFA伺服器可能变得不适合或无效,进而导致AFA伺服器的整体效能下降。因此,需要以在没有副作用或较不会带来副作用的情况下提供一种新颖的方法和相关的架构来解决这些问题。
发明内容
本发明之一目的在于提供一种用以进行一全快闪存储器阵列(All Flash Array,简称AFA)伺服器的碟管理的方法与相关设备(例如AFA伺服器及其控制电路等),以解决上述的问题。
本发明之另一目的在于提供一种用以进行AFA伺服器的碟管理的方法与相关设备(例如AFA伺服器及其控制电路等),以保护AFA伺服器中的数据并且确保其碟操作。
本发明的至少一实施例揭示了一种用以进行一全快闪存储器阵列(All FlashArray,AFA)伺服器的碟管理的方法,该方法包含:利用运行在该全快闪存储器阵列伺服器的多个节点中的任一节点上的多个程序模块中的一碟管理器模块来触发该任一节点的一硬件层,以在该全快闪存储器阵列伺服器的高可用性(high availability,HA)架构中进行碟交换控制,以控制该任一节点来启用该任一节点和一组储存装置之间的一组碟交换路径,该组碟交换路径是在该多个节点和多组储存装置之间的多组碟交换路径的其中一组,该多组储存装置包含该组储存装置,其中,该多组储存装置分别用多组固态硬碟(solidstate drive,SSD)来实现;以及利用该碟管理器模块以一并行处理方式进行分别对应于多个碟池的多组操作,以便用该多个碟池来管理该组储存装置,其中该多个碟池包含一现用碟池(active disk pool)、一插入碟池(inserted disk pool)以及一故障碟池(failuredisk pool),以及该多组操作包含:对应于该现用碟池的一第一组操作,用以管理该现用碟池中的多个现用储存装置;对应于该插入碟池的一第二组操作,用以管理该插入碟池中的任一插入储存装置,其中该任一插入储存装置代表加到该组储存装置中的任一新储存装置;以及对应于该故障碟池的一第三组操作,用以管理该故障碟池中的任一故障储存装置,其中该任一故障储存装置代表需要从该组储存装置移除的任一危急(critical)或无效储存装置。
本发明的至少一实施例揭示了一种全快闪存储器阵列(All Flash Array,AFA)伺服器,其包含多个节点以及多个储存装置。该多个节点的任一节点包含至少一处理器以及多个硬件组件,其中该至少一处理器用以在多个程序模块的控制下控制该任一节点的操作,而该多个硬件组件在该任一节点的一硬件层中。该多个储存装置包含多组储存装置,其中该多组储存装置分别用多组固态硬碟(solid state drive,SSD)来实现。举例来说:该任一节点利用在该任一节点上运行的该多个程序模块中的一碟管理器模块来触发该任一节点的硬件层,以在该全快闪存储器阵列伺服器的高可用性(high availability,HA)架构中执行碟交换控制,以控制该任一节点来启用该任一节点和一组储存装置之间的一组碟交换路径,该组碟交换路径是在该多个节点和多组储存装置之间的多组碟交换路径的其中一组,该多组储存装置包含该组储存装置;以及该任一节点利用该碟管理器模块以一并行处理方式进行分别对应于多个碟池的多组操作,以便用该多个碟池来管理该组储存装置,其中该多个碟池包含一现用碟池、一插入碟池以及一故障碟池,以及该多组操作包含:对应于该现用碟池的一第一组操作,用以管理该现用碟池中的多个现用储存装置;对应于该插入碟池的一第二组操作,用以管理该插入碟池中的任一插入储存装置,其中该任一插入储存装置代表加到该组储存装置中的任一新储存装置;以及对应于该故障碟池的一第三组操作,用以管理该故障碟池中的任一故障储存装置,其中该任一故障储存装置代表需要从该组储存装置移除的任一危急或无效储存装置。
本发明的方法和相关设备(例如AFA伺服器及其控制电路等)可以提高整体效能,并依据该方法的多种控制方案保护数据,尤其是要保证AFA伺服器的正确的碟操作。另外,本发明的方法和相关设备可以在没有副作用或较不会带来副作用的情况下解决现有技术所产生的问题。
附图说明
图1是依据本发明一实施例的一全快闪存储器阵列(All Flash Array,简称AFA)伺服器的示意图。
图2是依据本发明一实施例中如图1所示的该AFA伺服器的某些实施细节的示意图。
图3是依据本发明一实施例所绘示的如图1所示的该AFA伺服器的一双节点架构的示意图。
图4是依据本发明一实施例所绘示的如图1所示的多个节点的任一节点中的某些程序模块的示意图。
图5是依据本发明一实施例所绘示的一种用以进行一AFA伺服器诸如图1所示的AFA伺服器的碟管理的方法的一写入控制方案的示意图。
图6是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一碟交换控制方案的示意图。
图7是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一多池控制方案的示意图。
图8是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一角色及状态转变控制方案的示意图。
图9是依据本发明另一实施例所绘示的如图7所示该多池控制方案的示意图。
图10是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一故障转移(failover)控制方案的示意图。
图11是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一热插拔控制方案的示意图。
图12是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的流程图。
【符号说明】
10A,10B:机架顶(TOR)交换机
12A,12B:固态硬碟(SSD)群组
100:全快闪存储器阵列(AFA)伺服器
100A,100B:节点
100S:固态硬碟(SSD)
100R:背板电路
110A,110B:处理器
112:程序模块
112A,112B:程序模块
120A,120B:动态随机存取存储器(DRAM)
122A,122B:复制到快闪存储器(C2F)固态硬碟(SSD)
130A,130B:网络接口(IF)模块
132A,132B,134A,134B:网络接口(IF)电路
140A,140B:非透明网桥(NTB)通信电路
150A,150B:主机板管理控制器(BMC)
152A,152B:暂存器电路
160A,160B:储存接口(IF)模块
162A,162B,164A,164B:储存接口(IF)电路
170A,170B:备用电源单元
S01~S11,S20~S26,S28~S30,S30A~S36A,S32A',S35A',S36A',S30B~S37B,S36B',S30C~S38C,S35C',S40,S41A~S45A,S41B~S45B,S46,S50~S52:步骤
具体实施方式
图1是依据本发明一实施例的一全快闪存储器阵列(All Flash Array,简称AFA)伺服器100的示意图。AFA伺服器100可以包含多个节点,诸如二节点,分别为节点100A和节点100B,其中该多个节点中的任一个(例如节点100A和节点100B的其中一个)可以具有与该多个节点中的另一个(例如节点100A和节点100B中的另一个)相同或相似的架构。例如,节点100A可包含可以被统称为处理器110A的至少一处理器(例如,一个或多个处理器诸如一个或多个中央处理单元(Central Processing Units.CPU)),并包含一动态随机存取存储器(Dynamic Random Access Memory,DRAM)120A、一复制到快闪存储器(Copy-to-Flash,简称C2F)固态硬碟(Solid State Drive,简称SSD)122A、包含有一个或多个网络接口(interface,IF)电路诸如网络接口电路132A和134A(分别标示为“网络IF CKT”以求简明)的一网络接口(IF)模块130A、一非透明网桥(Non-Transparent Bridge,简称NTB)模块(或NTB)诸如一NTB通信电路140A(标示为“NTB CKT”以求简明)、一主机板管理控制器(BoardManagement Controller,简称BMC)150A、一暂存器(register)电路152A(标示为“REG CKT”以求简明)其耦接至BMC 150A、一储存接口(IF)模块160A其包含一个或多个储存接口电路诸如储存接口电路162A和164A(分别标示为“储存IF CKT”以求简明)以及一备用电源诸如一备用电源单元170A(例如,电池),其中这些组件的至少一部分(例如,一部分或全部)可以藉由节点100A的总线彼此耦接,但本发明不限于此。依据某些实施例,节点100A的架构可以作不同变化。
相似地,节点100B可包含可以统称为处理器110B的至少一处理器(例如,一个或多个处理器诸如一个或多个CPU),并包含一DRAM 120B、一C2F SSD 122B、包含有一个或多个网络接口(IF)电路诸如网络接口电路132B和134B(分别标示为“Network IF CKT”以求简明)的一网络接口(IF)模块130B、一NTB模块(或NTB)诸如一NTB通信电路140B标示为“NTBCKT”以求简明)、一BMC 150B、一暂存器电路152B(标示为“Register CKT”以求简明)其耦接至BMC 150B、一储存接口(IF)模块160B其包含一个或多个储存接口电路诸如储存接口电路162B和164B(分别标示为“Storage IF CKT”以求简明)以及一备用电源诸如一备用电源单元170B(例如,电池),其中这些组件的至少一部分(例如,一部分或全部)可以藉由节点100B的总线彼此耦接,但本发明不限于此。依据某些实施例,节点100B的架构可以作不同变化。
如图1所示,AFA伺服器100可以还包含耦接到节点100A和100B的多个SSD,诸如一SSD群组12A和一SSD群组12B,SSD群组12A和12B可以耦接到节点100A和100B,且可以预设分别连接/连线(link)到节点100A和100B,其中节点100A和100B与SSD群组12B和12A之间的虚线可指出多个可选的(optional)连线。举例来说,节点100A可以利用储存接口模块160A以启动储存接口电路164A和SSD群组12A之间的连线,以存取SSD群组12A中的数据,且节点100B可以利用储存接口模块160B启动储存接口电路164B和SSD群组12B之间的连线,以进一步存取SSD群组12B中的数据。当需要时,节点100A和100B与SSD群组12A和12B之间的连线关系可以改变。例如节点100A可以利用储存接口模块160A来启动储存接口电路162A和SSD群组12B之间的连线,以存取SSD群组12B中的数据,且节点100B可以利用储存接口模块160B来启动储存接口电路162B和SSD群组12A之间的连线,以存取SSD群组12A中的数据。
运行着程序模块112A的处理器110A可用以控制节点100A的操作。DRAM120A可用以缓冲数据(例如待写入SSD群组12A的数据),并且C2F SSD 122A可用以将DRAM 120A中的缓冲后数据(简称“缓冲数据”)复制到C2F SSD 122A中的快闪存储器中,以在需要时避免缓冲数据的数据遗失(data loss)。举例来说,C2F SSD 122A可以藉由安装在节点100A内的主电路板(例如主机板或母板)上的一扩充卡诸如一M.2模块(例如具有符合M.2规范的连接器的电路板)来实现,其中C2F SSD 122A可以包含一储存控制器、一个或多个快闪存储器芯片等,但本发明不限于此。另外,包含有网络接口电路132A和134A的网络接口模块130A可用以将节点100A(例如该主电路板上的处理器110A、DRAM 120A等)藉由至少一网络交换机诸如机架顶(top-of-rack,可简称TOR)交换机10A和10B耦接到至少一网络(例如区域网络(Local Area Network,LAN)、广域网络(Wide Area Network,WAN)、网际网络(Internet)等)。另外,包含储存接口电路162A和164A的储存接口模块160A可用以将节点100A(例如该主电路板上的处理器110A、DRAM 120A等)耦接到多个快闪储存装置(例如节点100A和100B共享的SSD群组12A和12B),用以存取(例如读取或写入)该多个快闪储存装置中的数据。如此一来,AFA伺服器100可用以藉由节点100A提供用户储存服务。
相似地,运行着程序模块112B的处理器110B可用以控制节点100B的操作。DRAM120B可用以缓冲数据(例如待写入SSD群组12B的数据),并且C2F SSD122B可用以将DRAM120B中的缓冲后数据(简称“缓冲数据”)复制到C2F SSD122B中的快闪存储器中,以在需要时避免缓冲数据的数据遗失。举例来说,C2F SSD 122B可以藉由安装在节点100B内的主电路板(例如主机板或母板)上的一扩充卡诸如一M.2模块(例如具有符合M.2规范的连接器的电路板)来实现,其中C2F SSD 122B可以包含一储存控制器、一个或多个快闪存储器芯片等,但本发明不限于此。另外,包含有网络电路132B和134B的网络接口模块130B可用以将节点100B(例如该主电路板上的处理器110B、DRAM 120B等)藉由至少一网络交换机诸如TOR交换机10A和10B耦接到至少一网络(例如LAN、WAN、网际网络等)。另外,包含储存接口电路162B和164B的储存接口模块160B可用以将节点100B(例如该主电路板上的处理器110B、DRAM 120B等)耦接到多个快闪储存装置(例如节点100A和100B共享的SSD群组12A和12B),用以存取(例如读取或写入)该多个快闪储存装置中的数据。如此一来,AFA伺服器100可用以藉由节点100B提供用户储存服务。
关于节点100A及其对等(peer)节点(例如节点100B)之间的通信,该NTB模块(例如NTB通信电路140A)可用以藉由在节点100A和100B之间的一NTB路径(标示为“NTB”以求简明)与对应的NTB模块(例如NTB通信电路140B)通信,使节点100A和100B的数据和储存状态同步,并进一步使它们相同。相似地,关于节点100B及其对等节点(例如节点100A)之间的通信,该NTB模块(例如NTB通信电路140B)可用以藉由在节点100A和100B之间的该NTB路径(标示为“NTB”以求简明)与对应的NTB模块(例如NTB通信电路140A)通信,使节点100A和100B的数据和储存状态同步,并进一步使它们相同。尤其,诸如NTB通信电路140A和140B的NTB模块可以提供节点100A和100B之间一传输桥的功能以及分离节点100A和100B的各自的地址域以使节点100A和100B分别有彼此独立的地址域,以在没有任何地址冲突的情况下提供/加强节点100A和100B之间的通信。例如,节点100A和100B的各个总线可以符合快捷外设组件互联(Peripheral Component Interconnect Express,PCIe)标准,并且节点100A和100B中的每一节点的NTB模块可以被认为是该节点的一端点(endpoint),其中节点100A和100B可以透过该传输桥彼此通信和共享装置,但本发明不限于此。依据某些实施例,诸如NTB通信电路140A和140B的NTB模块可以透过客制化的网络接口电路来实现,以控制节点100A和100B彼此通信,使得它们就像正在透过网络接口电路进行通信一样。
在运行着程序模块112A的处理器110A和运行着程序模块112B的处理器110B的控制下,节点100A和100B可维持和监控NTB上的脉搏,以判断对等节点的可用性,以进行高可用性(High Availability,HA)控制。举例来说,节点100B可用以向节点100A发送脉搏信号,且节点100A可用以检测并监控来自节点100B的脉搏信号以判断节点100B的可用性,其中来自节点100B的脉搏信号是否存在可以指出节点100B是否可用(或健康程度)。对于另一个例子来说,节点100A可用以向节点100B发送脉搏信号,并且节点100B可用以检测并监控来自节点100A的脉搏信号以判断节点100A的可用性,其中来自节点100A的脉搏信号是否存在可以指出节点100A是否可用(或健康程度)。依据图1所示的架构,如图1所示,当节点100A和100B其中一个不可使用时,节点100A和100B其中的另一个可以继续为用户提供AFA伺服器100的储存服务。
需注意的是,AFA伺服器100配备了超过一个的节点间(inter-node)通信路径(例如节点之间的超过一个的相互通信路径)。除NTB路径外,AFA伺服器100还可配置为具有一个或多个其他通信路径,例如BMC 150A和150B之间的一BMC路径,其中BMC 150A可用以管理节点100A的硬件层的至少一部分(例如一部分或全部),而BMC 150B可用以管理节点100B的硬件层的至少一部分(例如一部分或全部)。关于节点100A及其对等节点(例如节点100B)之间的通信,BMC 150A可用以透过该BMC路径与BMC 150B通信以存取(例如读取或写入)暂存器电路152B中的一个或多个暂存器的一个或多个暂存器值,以在节点100B上进行状态检查操作等。相似地,关于节点100B及其对等节点(例如节点100A)之间的通信,BMC 150B可用以透过该BMC路径与BMC 150A通信以存取(例如读取或写入)暂存器电路152A中一个或多个暂存器的一个或多个暂存器值,以在节点100A上进行状态检查操作等。尤其,BMC 150A与BMC150B可独立地管理节点100A与100B的各自的硬件层,而不需要仰赖处理器110A与110B。举例来说,当处理器110A发生故障时,BMC 150A可以处理节点100A的未完成的工作,而当处理器110B发生故障时,BMC 150B可以处理节点100B的未完成的工作,但本发明不限于此。依据某些实施例,BMC 150A和150B可用以分别接管(take over)节点100A和100B,以进行紧急处理操作来减少数据遗失的机率。
依据本实施例,AFA伺服器100可以被配置为由多个类型的电源供电。节点100A和100B的每一节点可以包含至少一主电源(例如至少一电源供应器),用以于主电源处于正常电源状况下提供电力给该节点的其他组件。举例来说,节点100A的主电源可以供电给节点100A的主电路板,并且节点100B的主电源可以供电给节点100B的主电路板。当检测到一个或多个节点(例如节点100A及/或节点100B)的异常电源状况时,AFA伺服器100中的一个或多个相关的备用电源(例如备用电源单元170A及/或备用电源单元170B)可用以提供备用电力。举例来说,当节点100A的主电源发生电源故障时,备用电源单元170A可以供电给节点100A的主电路板(例如处理器110A、DRAM 120A、C2F SSD 122A、NTB通信电路140A、BMC150A、暂存器电路152A等),当节点100B的主电源发生电源故障时,备用电源单元170B可以供电给节点100B的主电路板(例如处理器110B、DRAM 120B、C2F SSD 122B、NTB通信电路140B、BMC150B、暂存器电路152B等)。
依据某些实施例,节点100A和100B的每一节点(例如节点100A和100B的各自的主电路板中的每一节点)可以还包含多个感测器(sensor)/检测器(detector)用以至少对该节点的组件进行检测以产生检测结果(例如从这些传感器/检测器中的任一个所取得的状态信息)。举例来说,这些检测结果中的一功率检测结果可以表示该节点的主电源的功率状态,尤其,可以指出该节点是否发生异常电源状况,以供触发该节点启动备用电源(例如备用电源单元170A或备用电源单元170B)以提供备用电力。
图2依据本发明一实施例绘示图1所示的AFA伺服器100的某些实施细节,其中,可以将SSD 100S作为图1所示实施例中提到的多个SSD的例子。除了节点100A和100B以及SSD100S,AFA伺服器100可还包含一背板(backplane)电路100R。背板电路100R可用以将诸如SSD群组12A和12B的SSD 100S电气连接到节点100A和100B。举例来说,背板电路100R可以藉由具有相关连接器等的背板电路板来实现。另外,可以在背板电路100R内实现NTB通信电路140A和140B之间的该NTB路径的局部(partial)路径,以及BMC 150A和150B之间的该BMC路径的局部路径。由于该BMC路径和该NTB路径中的每一路径都不通过可能易于损坏的任何电缆,所以节点100A和100B之间的通信路径很稳健,且因此节点100A和100B可以保持有效的通信以及相关的控制,以确保AFA伺服器100的整体效能及正常运行。
依据某些实施例,SSD 100S中的每一SSD可以是一单埠(single port)SSD,尤其,可以是一单埠的基于装置的(device-based)SSD。另外,藉助于背板电路100R,AFA伺服器100可以支援SSD 100S中的每一SSD的热插拔。
依据某些实施例,两个节点100A和100B中的一个可以在AFA伺服器100的高可用性(High Availability简称HA)架构中用来作为一现用节点(active node),也就是扮演该现用节点的角色,并且两个节点100A和100B中的另一个可在AFA伺服器100的该HA架构中用来作为一待命节点(standby node),也就是扮演该待命节点的角色。诸如现用节点和待命节点的两个节点100A和100B可以彼此互动,尤其,可以藉由至少两条通信路径(诸如NTB通信电路140A和140B之间的NTB路径以及BMC 150A和150B之间的BMC路径)来交换节点信息,并且可以藉由NTB路径来同步数据,但本发明不限于此。依据某些实施例,AFA伺服器100可以配备有超过两个的节点间(inter-node)通信路径(例如节点之间的超过两个的相互通信路径)。
图3是依据本发明一实施例所绘示的如图1所示的AFA伺服器100的一双节点架构的示意图。依据本实施例,节点100A和100B可以被分别配置为该现用节点和该待命节点,但本发明不限于此。举例来说,节点100A和100B可以在需要时交换它们所扮演的角色。如图3所示,除了某些硬件(hardware,HW)组件诸如图1或图2所示的架构中的部分组件外,还可绘示某些软件(software,SW)程序/程序,例如HA框架程序、网络(Web)伺服器程序、数据库(database)程序、操作于一服务模式的储存控制模块程序以及操作于一待机模式的储存控制模块程序(分别标示为“HA框架”、“Web伺服器”、“数据库”、“于服务模式下的储存控制模块”以及“于待机模式下的储存控制模块”以求简明)以指出AFA伺服器100中的关联互动,其中,上述程序的名称分别代表其相关功能。
运行于节点100A上的软件程序(例如,HA框架程序,Web伺服器程序,数据库程序和操作于该服务模式的储存控制模块程序)可作为程序模块112A的例子,并且运行于节点100B上的软件程序(例如,HA框架程序,Web伺服器程序,数据库程序和操作于该待机模式的储存控制模块程序)可作为程序模块112B的例子,但本发明不限于此。另外,网络接口模块130A的该一个或多个网络接口电路可还包含网络接口电路136A,并且网络接口模块130B的该一个或多个网络接口电路可还包含网络接口电路136B。因此,AFA伺服器100可以配备有至少三个节点间(inter-node)通信路径(例如节点之间的至少三个相互通信路径),诸如NTB路径、BMC路径以及网络接口电路136A和136B之间的网络路径。举例来说,节点100A和100B可用以藉由NTB路径进行快取镜像(cache mirroring)操作,并透过BMC路径检查本地/远端控制器状态,以及藉由网络接口电路136A和136B之间的网络路径进行额外的通信操作。
图4是依据本发明一实施例所绘示的如图1所示的多个节点100A与100B的任一(例如每一)节点中的程序模块112的示意图。例如,程序模块112可以代表运行在节点100A的处理器110A上的程序模块112A或运行在节点100B的处理器110B上的程序模块112B。如图4所示,程序模块112可以包含某些主程序模块,例如储存协定及区块输入/输出(IO)接口模块、储存快取模块、储存池模块、储存服务连续HA模块、储存功能模块以及储存管理模块(分别标示为“储存协定及区块IO接口”、“储存快取”、“储存池”、“储存服务连续HA”、“储存功能”以及“储存管理”以求简明),其中这些主程序模块中的任一程序模块可以包含一个或多个子模块。另外,程序模块112中的某些程序模块之间的箭头指出这些程序模块可以彼此在各自所属的多个层的程序模块之间互动。举例来说,储存协定及区块IO接口模块可以被视为储存快取模块上方的一上层(例如一上层程序模块),储存池模块可以被视为储存快取模块下方一下层(例如一下层程序模块),储存功能模块和储存快取模块可被安排在一中间层以作为中间层程序模块,其中储存协定及区块IO接口模块以及储存池模块可用以与客户端装置和SSD群组互动,但本发明不限于此。当需要时,该节点可以触发其他程序模块与这些程序模块中的一个或多个进行互动。
储存协定及区块IO接口模块可以包含某些子模块诸如小型计算机系统接口(Small Computer System Interface,简称SCSI)模块、网际网络SCSI(Internet SCSI,简称iSCSI)模块和区块装置(Block Device)模块(分别标示为“SCSI”、“iSCSI”和“区块装置”以求简明)。储存快取模块可以包含某些子模块诸如使用软件实现的永久存储器(Persistent Memory using SW implementation)模块和写入缓冲模块(Write Buffermodule;也可称为“写入缓冲器模块”),于图中分别标示为“永久存储器(软件实现)”和“写入缓冲”以求简明。储存池模块可以包含一子模块诸如快闪存储器阵列(Flash Array)模块(为简便起见标示为“快闪存储器阵列”)。储存服务连续HA模块可以包含一子模块诸如HA框架模块(标示为“HA框架”以求简明)。储存功能模块可以包含某些子模块诸如卷管理器(Volume Manager)模块和数据减少模块(分别标示为“卷管理器”和“数据减少”以求简明),其中数据减少模块可以包含某些子模块诸如压缩引擎(Compression Engine)模块和重复数据删除引擎(Deduplication Engine)模块,可以分别称为“压缩引擎”和“重复数据删除引擎”。储存管理模块可以包含某些子模块诸如网络(Web)用户接口(User Interface,UI)模块、应用程序编程接口(Application Programming Interface,API)伺服器模块、请求代理(Request Broker)模块和数据库模块(分别标示为“网络UI”、“API伺服器”、“请求代理”和“数据库”以求简明)。上列模块的名称分别指出其相关功能。为了便于理解,对某一模块诸如卷管理器模块、压缩引擎模块、重复数据删除引擎模块等而言,某些实施例中所提到的咨询(consult)该模块的操作可包含对这个模块进行呼叫、查询等操作以从它取得对应的处理结果,但本发明不限于此。
依据某些实施例,AFA伺服器100(例如,该现用节点,诸如节点100A和100B的其中之一)可用以从AFA伺服器100外部的客户端装置接收请求诸如写入请求、读取请求等,并分别因应这些请求来操作。
图5是依据本发明一实施例所绘示的一种用以进行一AFA伺服器诸如图1所示的AFA伺服器100的碟管理的方法的一写入控制方案的示意图。该方法可以应用于图1所示的AFA伺服器100。为了更好地理解,节点100A和100B可以分别用来作为该现用节点和该待命节点,尤其分别扮演该现用节点和该待命节点的角色,但本发明不限于此。因应写入请求,现用节点(例如节点100A和100B的其中之一,诸如在本实施例中的节点100A)可以利用写入缓冲模块来接收对应于写入请求的数据(例如4千位元组(kilobytes,KB)数据,可称为“4KB数据”以求简明),并在步骤S01中将该数据写入(例如缓冲)至其写入缓冲器(例如该节点的DRAM)中,且于步骤S02中藉由NTB路径将该数据诸如4KB数据镜像到待命节点(例如节点100A和100B中的另一个,诸如在本实施例中的节点100B),并且于步骤S03中对用户的客户端装置发送与写入请求相对应的一确认(acknowledgement,Ack)。由于数据已被镜像到远端侧(例如在本实施例中的DRAM 120B),所以镜像的数据由待命节点(例如其写入缓冲模块)所保护。
针对现用节点的后续操作,在步骤S04中,对于每一4KB数据查询(query),写入缓冲模块可以使用卷管理器模块来为该数据获取或分配(allocate)一储存池逻辑区块地址(storage pool logical block address,SLBA)。在步骤S05中,写入缓冲模块可以咨询重复数据删除引擎以对该数据进行重复数据删除功能。在步骤S06中,写入缓冲模块可以咨询压缩引擎以对数据进行压缩功能。在步骤S07中,当该DRAM(例如本实施例中的DRAM 120A)中的缓冲数据(例如待写入的数据)的数据量达到预定临界值时,例如,现用节点已经收集了N组压缩数据,并且该N组压缩数据的总数据量适合被储存为一全条带(full stripe),现用节点可以利用快闪记体阵列模块将该N组压缩数据(可以称为N个压缩数据以求简明)聚合(aggregate)成该全条带。举例来说,该全条带可以表示包含预定数量的组块(chunk)(例如十二个组块)的一条带,其中这些组块可以包含一第一预定数量的数据组块(例如十个数据组块)和一第二预定数量的奇偶校验组块(例如两个奇偶校验组块)。在步骤S08中,在收集一个或多个条带诸如一预定数量的条带(例如:一个条带、两个条带、三个条带、四个条带等例子中的任一者,可依据于该方法中的各种控制方案来决定)之后,现用节点可以利用写入缓冲模块将阵列信息诸如一SLBA阵列(SLBA所组成的阵列)、一压缩数据阵列(压缩数据所组成的阵列)等(例如该SLBA阵列与该压缩数据阵列所组成的一阵列:{SLBA阵列,压缩数据阵列})提交给快闪存储器阵列模块(或储存池模块),以供编写(尤其,写入)该一个或多个条带。在步骤S09中,快闪存储器阵列模块可以对各个碟(例如,现用节点的SSD群组,诸如本实施例中的SSD群组12A)进行条带写入操作。举例来说,由于该压缩引擎已在步骤S06中进行了压缩功能,因此4KB空间包含多个SLBA的各自的压缩数据。
在进行如图5所示的步骤S01至S09的操作之后,现用节点可以将相关的管理信息发送到待命节点以更新待命节点中的管理信息,以使待命节点在需要时能够替换现用节点以继续为用户提供AFA伺服器100的储存服务。举例来说,在步骤S10中,现用节点的卷管理器模块可以将卷管理器模块的重映射表同步(例如更新和发送)到待命节点存储器(例如待命节点的存储器),以控制(例如产生、更新等)由卷管理器模块所管理的某些映射关系。在步骤S11中,现用节点的快闪存储器阵列模块可以向待命节点快闪存储器阵列(例如待命节点的快闪存储器阵列模块)发出重映射表更新指令,以将快闪存储器阵列模块的重映射表更新至待命节点存储器(例如待命节点的存储器),以控制(例如产生、更新等)由快闪存储器阵列模块所管理的某些映射关系。如上所述,现用节点能够因应写入请求来进行这些操作;现用节点还能够因应读取请求来进行相关操作以复原(recover)该数据,举例来说,依据分别由卷管理器模块和快闪存储器阵列模块所管理的映射关系,其中,在后续的某些实施例中将描述针对管理这些映射关系的某些实施细节。
如图5的上半部所示,藉助于软件模拟,节点100A和100B中的任一节点(例如,每一节点)可以包含基于该多个节点中的另一个节点的一模拟永久存储器(emulatedpersistent memory;也可以称为PMem以求简明),其中PMem可以操作在NTB路径上,且因此可被视为基于NTB的PMem。举例来说,该任一节点诸如节点100A可以扮演现用节点的角色,而另一节点诸如节点100B可以扮演待命节点的角色。当现用节点的主电源的电源故障发生(例如节点100A和100B各自的主电源这两者的电源故障都发生)时,现用节点可以将其DRAM中的现有信息(例如:缓冲数据、管理表等)刷新到内部非挥发性存储器(Non-VolatileMemory简称NVM)储存装置(例如:现用节点的C2F SSD,诸如本实施例中的C2F SSD 122A)和PMem这两者。尤其,由于这些节点中的每一节点都配备有自己的内部NVM储存装置和PMem,待命节点可以将其DRAM中的刷新自现用节点的现有信息(例如,刷新自现用节点的缓冲数据、管理表等)刷新到内部NVM储存装置(例如:待命节点的C2F SSD,诸如本实施例中的C2FSSD 122B)中。
对于现用节点,虽然基于NTB的PMem中的DRAM 120A和120B是挥发性存储器,AFA伺服器100可以藉助于软件模拟将基于NTB的PMem利用作为永久存储器,这是因为在其写入缓冲模块控制下操作的待命节点可以保护刷新自现用节点的任何现有信息。当发生电源故障时,现用节点可以将其DRAM中的现有信息刷新到内部NVM储存装置诸如符合M.2规范的多个NVM储存装置的其中之一当中,且藉由将现有信息通过NTB路径发送到待命节点的DRAM,可以将其DRAM(现用节点本身的DRAM)中的现有信息刷新到PMem中。如此一来,待命节点可以将其DRAM中的现有信息刷新到其内部NVM储存装置(例如,符合M.2规范的多个NVM储存装置的其中之一)当中。
依据某些实施例,节点100A和100B可以从现用节点和待命节点的角色互相交换,并且可以进行如上所述的关于节点100B和100A的相对应的操作。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
依据某些实施例,在用AFA伺服器100来实现的高可用性(HA)架构中,两个节点100A和100B诸如现用节点和待命节点可以彼此互动以藉由BMC路径和NTB路径交换节点信息。尤其,两个节点100A和100B中的任一节点(例如,每一节点)可以包含安装在主电路(例如,主电路板,具有某些硬件(HW)组件于其上,如图1所示的实施例和某些相关实施例中所述)上的一或多个储存装置,诸如包含NVM(例如快闪存储器)的一或多个非挥发性存储器(NVM)储存装置。在该一或多个NVM储存装置的NVM储存装置数量大于一的情况下,该一或多个NVM储存装置可以包含多个如上所述的NVM储存装置。例如,该一或多个NVM储存装置可以符合M.2规范,且可以被实现为这个节点的一或多个内部安装的扩充卡,但本发明不限于此。另外,当发生电源故障时,该节点的AFA中的一或多个下层诸如SSD可能无法使用,该节点的主电路以及这个主电路的硬件组件(例如,处理器、DRAM、BMC、暂存器等)可以使用该主电路的备用电源(例如电池)作为其电源,且该节点(例如,在处理器上运行的软件模块,例如程序模块112A或112B)可以进行一C2F操作以保存任何待保护的信息(或任何要保护的信息),诸如暂时储存在该节点中的DRAM的缓冲数据等以及暂时储存在该节点的暂存器电路的暂存器中的节点信息等,尤其将该任何待保护的信息存入该一或多个NVM储存装置中以避免数据丢失。例如,该节点的C2F SSD可以包含符合M.2规范的该一或多个NVM储存装置。
图6是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一碟交换控制方案的示意图。根据本实施例,两个节点100A和100B可以分别被视为一主节点(master node)或一从属节点(slave node),其中,主节点可以代表两个节点100A和100B中较靠近AFA伺服器100的电源的节点,而从属节点可以代表两个节点100A和100B中的另一个。例如,在预设情况下,主节点和从属节点可以分别扮演现用节点和待命节点的角色。如图6所示,节点100A的储存接口电路162A和164A以及节点100B的储存接口电路162B和164B可以藉由名为PEX9765的PCIe交换电路(PCIe switch circuit)来实现(标示为“PCIe交换机PEX 9765”以求简明),且在本实施例中,背板电路100R可以由SSD背板来实现。这些PCIe交换电路中的任一PCIe交换电路也可以称为9765以求简明。
在两个节点100A和100B中的任一节点(例如每一节点)中,运行着程序模块的处理器(例如,于图6中分别标示为“主节点(A)现用”及“从属节点(B)待命”的这两个区块的其中之一)可以透过一或多个交换电路(例如这些PCIe交换电路中的一或多个)和一连接电路(例如SSD背板)以控制该AFA,而BMC可以透过一或多个交换电路和该连接电路来自行控制该AFA。为了更好地理解,该AFA可以代表在AFA系统(例如,AFA软件/程序模块诸如图3所示两个节点100A和100B的对应节点的储存控制模块)的控制下的SSD群组12A和12B中的某个SSD群组的SSD阵列。例如,在节点100A中,运行着程序模块112A的处理器110A(例如“主节点(A)现用”)可以透过其一或多个PCIe交换电路和该SSD背板来控制该AFA。对于另一例子来说,在节点100B中,运行着程序模块112B的处理器110B(例如“从属节点(B)待命”)可以透过其一或多个PCIe交换电路和该SSD背板来控制该AFA。
根据某些实施例,两个节点100A和100B的任一节点(例如每一节点)的硬件层可以提供用以进行交换控制的一硬件(hardware,HW)功能。以图6所示的架构为例,针对碟交换控制的工作流程可以包含:
(1)节点100B利用节点100B的硬件层的BMC 150B来与该多个节点诸如两个节点100A和100B中的一远端节点(例如节点100A)的一对应硬件层的一对应BMC(例如BMC 150A)进行通信,以关闭该远端节点的电源,以断开一目标SSD群组(例如两个SSD群组12A和12B的其中之一)与该远端节点之间的任何可能的连线;
(2)节点100B利用BMC 150B在节点100B的硬件层中选择一时脉(clock)多工器(multiplexer,MUX),以进行对应于节点100B和该目标SSD群组之间的一组目标碟交换路径的时脉多工(clock multiplexing);
(3)节点100B利用BMC 150B启用(enable)该目标SSD群组的各自的SSD重设(reset)信号{PERST};以及
(4)节点100B利用在节点100B上运行的程序模块112B中的操作系统(operatingsystem,简称OS)来启用节点100B的储存接口电路162B和164B中的一目标储存接口电路的下游埠(downstream port),诸如分别耦接至该目标SSD群组的多个通信埠;
其中,这个工作流程的上列操作中的前三个操作对应于该硬件功能,但本发明不限于此。例如,在这个工作流程的上列操作中,两个节点100A和100B可以交换。
依据本实施例,可以用独立碟冗余阵列(Redundant Array of IndependentDisks,RAID)6级(level 6)(以下简称RAID-6)配置来保护节点100A和100B的每一节点,其中节点100A和100B的各自的快闪存储器阵列模块可以依据RAID-6配置来进行条带写入操作或条带读取操作,但本发明不限于此。另外,该目标SSD群组可以实现为RAID,因此可以被视为一RAID群组。
图7是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一多池控制方案的示意图。当有需要时,两个节点100A和100B的任一节点(例如每一节点)可以准备连线到一组SSD诸如该目标SSD群组,并管理这组SSD。在该节点的处理器上运行的程序模块的控制下,该节点可以被配置为管理多个碟池(disk pool)以进行碟管理。例如,该多个碟池包含一个现用碟池,并且进一步包含一插入碟池和一故障碟池(分别标示为“插入池”及“故障池”以求简明)。根据某些观点,该插入碟池和该故障碟池也可以分别称为新碟池和坏碟池。
在步骤S25中,两个节点100A和100B的任一节点(例如每一节点)可以利用在该节点上运行的多个程序模块中的一碟管理器模块(标示为“碟管理器”以求简明)来触发该节点的硬件层在AFA伺服器100的HA架构中进行上述碟交换控制(例如,藉由呼叫(call)该硬件功能以进行对应于该硬件功能的那三个操作),以控制该节点来启用在两个节点100A和100B与两个SSD群组12A和12B之间的四组碟交换路径当中的在该节点和该目标SSD群组之间的一组碟交换路径。以图6所示的架构为例,四组碟交换路径可以实现为从四个PCIe交换电路(在图6中标示为“PCIe交换机PEX 9765”以求简明)分出的四组通信路径(图6中用虚线表示)。例如,碟管理器模块可以被配置为在该OS上运行并且利用该OS来启用耦接至该目标SSD群组的目标储存接口电路的下游埠,但是本发明不限于此。
在步骤S26中,该节点可以利用碟管理器模块来检查区块装置诸如该目标SSD群组(例如其中的SSD)。例如,碟管理器模块可以等待该目标SSD群组中的所有SSD已备妥(ready)(标示为“所有碟已备妥”以求简明)直到逾时。如果等待时间达到一等待时间阈值诸如15秒(second,s)(标示为“逾时(15s)”以求简明),则流程进入步骤S25;否则,如果所有SSD均已备妥、或者碟管理器模块已经藉由重新进入步骤S25重试了一次,则流程进入步骤S28。
根据本实施例,可以用多执行绪方式来实现碟管理器模块。例如,在该节点上运行的碟管理器模块包含多个执行绪,诸如执行绪#0、#1、#2、#3等,其中执行绪#0可被视为主执行绪。从碟管理器模块开始在该节点上运行起,在该节点上运行的主执行绪(诸如执行绪#0)可以控制碟管理器模块的操作,尤其,可以执行步骤S25、S26和S28的操作。
在步骤S28中,碟管理器模块(例如执行绪#0)可以启动与该多个碟池(例如现用碟池、插入碟池和故障碟池)的各自管理相对应的所有执行绪,诸如至少三个执行绪#1、#2及#3中的所有执行绪,以进行步骤S30中所示的多组操作,以分别管理现用碟池、插入碟池和故障碟池。
在步骤S30中,该节点可以利用碟管理器模块(例如执行绪#1、#2及#3)以一并行处理方式进行分别对应于该多个碟池的该多组操作,以便用该多个碟池来管理该目标SSD群组。例如,步骤S30可以包含多个子步骤诸如步骤S30A、S30B及S30C,尤其可以包含步骤S30A、S30B和S30C的并行处理,并且该多组操作可以包含对应于现用碟池的一第一组操作(例如步骤S30A的操作)、对应于插入碟池的一第二组操作(例如步骤S30B的操作)以及对应于故障碟池的一第三组操作(例如步骤S30C的操作)。
在步骤S30A中,碟管理器模块(例如执行绪#1)可以进行对应于现用碟池的该第一组操作,以管理现用碟池中的多个现用SSD。为了更好地理解,该现用碟池可以代表用于管理该目标SSD群组中所有可检测到的SSD(例如,该节点可以扫描或检测到的所有SSD)的碟池,而该多个现用SSD可以代表这些可检测到的SSD(例如,该节点可以扫描或检测到的这些SSD),因此,现用碟池也可以称为所有碟池。
在步骤S31A中,碟管理器模块(例如执行绪#1)可以扫描区块装置诸如该目标SSD群组中的所有现有SSD,以查询(query)快闪存储器阵列(Flash Array,FA)碟状态诸如上述AFA的任一SSD的状态(标示为“扫描区块装置以查询FA碟状态”以求简明),例如,藉由检测这个SSD的自我监控及分析及报告技术(Self-Monitoring,Analysis and ReportingTechnology,SMART)信息。由于可以在步骤S30A的一或多个循环(loop)中多次执行步骤S31A,因此碟管理器模块(例如执行绪#1)可以扫描该目标SSD群组中的所有现有SSD,以逐一监控这些SSD,尤其,反复地监视他们。
在步骤S32A中,碟管理器模块(例如执行绪#1)可以检查是否有任一新碟(例如任一新SSD)被加到该目标SSD群组中。如果是,则流程进入步骤S33A;如果否,则流程进入步骤S34A。
在步骤S33A中,碟管理器模块(例如执行绪1)可以将任一新碟(例如任一新SSD)加到插入碟池中。
在步骤S34A中,碟管理器模块(例如,执行绪#1)可以检查在该目标SSD群组中是否存在任一危急(critical)碟诸如任一危急SSD(例如,任一坏的SSD、任何损坏严重且有无法使用的危险的SSD等)。如果是,则流进入步骤S35A;如果否,则流程进入步骤S31A。
在步骤S35A中,碟管理器模块(例如执行绪#1)可以将该任一危急碟诸如该任一危急SSD加到故障碟池中。
在步骤S36A中,碟管理器模块(例如执行绪#1)可以等待一段时间,例如,藉由延迟3秒(标示为「延迟3秒」以求简明)。例如,藉由在步骤S36A中等待一段时间,碟管理器模块可以在步骤S30的并行处理过程中,利用该第二组操作(例如步骤S30B的操作)适当地处理插入碟池中的该任一新碟(例如该任一新SSD)及/或利该第三组操作(例如步骤S30C的操作)适当地处理故障碟池中的该任一危急碟诸如该任一危急SSD。之后,流程进入步骤S31A以处理现用碟池中的下一个SSD。
在步骤S30B中,碟管理器模块(例如执行绪#2)可执行对应于插入碟池的该第二组操作,以管理插入碟池中的任一插入的SSD,其中该任一插入的SSD代表加到该目标SSD群组中的该任一新SSD。
在步骤S31B中,碟管理器模块(例如执行绪#2)可以检查插入碟池,以在插入碟池中的一或多个插入的SSD(如果存在)中选择该任一插入的SSD。
在步骤S32B中,碟管理器模块(例如执行绪#2)可以读取该任一插入的SSD的一全球通用名称(World Wide Name,简称WWN)。例如,该WWN可以包含这个SSD的识别符(identifier,ID)代码(例如,制造商名称、序号(serial number,S/N)等)。
在步骤S33B中,碟管理器模块(例如执行绪#2)可以依据AFA伺服器100的一或多个预定清单(例如白名单及/或黑名单)来检查该任一插入的SSD是否为一无效碟诸如任一无效SSD。如果是(例如这个SSD不是在白名单中、及/或是在黑名单中),则流程进入步骤S34B;如果否(例如该SSD是在白名单中、及/或不是在黑名单中),则流程进入步骤S35B。
在步骤S34B中,碟管理器模块(例如执行绪#2)可以将该任一插入的SSD(其刚刚被判断为该无效碟)加到故障碟池中。
在步骤S35B中,碟管理器模块(例如执行绪#2)可以将该任一插入的SSD(其刚刚被判断为一有效碟而非该无效碟)的最新状态同步到该远端节点(例如两个节点100A和100B中的另一个节点)用以更新远端侧的HA碟表(标示为「同步到远端」以求简明)。HA碟表可以储存HA架构中的SSD的各自的状态,且两个节点100A和100B可以分别维护各自的HA碟表版本,并且,当发生任何更改时,尝试使该HA碟表的这些版本的更新且彼此相等,例如,藉由尽快更新该HA碟表的这些版本中的一个版本,尤其,依据该HA碟表的这些版本中的另一个版本来更新该HA碟表的这些版本中的这一个版本。
在步骤S36B中,碟管理器模块(例如执行绪#2)可以利用该AFA系统将插入碟池中的该任一插入的SSD组合到上述AFA的RAID群组中(标示为「将碟组合到RAID群组」以求简明)。
在步骤S37B中,碟管理器模块(例如执行绪#2)可以从插入碟池中移除该任一插入的SSD。之后,流程进入步骤S31B,以处理插入碟池中的下一个SSD(如果存在)。
在步骤S30C中,碟管理器模块(例如执行绪#3)可执行对应于故障碟池的该第三组操作,以管理故障碟池中的任一故障SSD,其中该任一故障SSD可代表需要从该目标SSD群组中移除的任一危急或无效SSD(例如,任一坏的SSD、任何损坏严重且有无法使用的危险的SSD、AFA伺服器100的黑名单中的任何SSD、不在AFA伺服器100的白名单中的任一SSD等)。
在步骤S31C中,碟管理器模块(例如执行绪#3)可以检查故障碟池以在故障碟池中的一或多个故障SSD(如果存在)中选择该任一故障SSD。
在该节点的两个储存接口电路中(例如,储存接口电路162A和164A诸如图6左侧的两个PCIe交换电路;或储存接口电路162B和164B诸如图6右侧的两个PCIe交换电路),该节点的硬件层的某个储存接口电路可以被配置成提供步骤S25的操作中提到的该组碟交换路径,取决于两个SSD群组12A和12B中的哪个SSD群组是该目标SSD群组。在步骤S32C和S33C中,碟管理器模块(例如执行绪#3)可以利用该节点的硬件层的BMC来检查是否存在该任一故障SSD,以供在某些后续步骤中依据是否存在该任一故障SSD来适应性地禁用(disable)或启用(enable)这个储存接口电路当中的对应于该任一故障SSD的某一埠(例如用于将该节点耦接至该任一故障SSD的埠)。
在步骤S32C中,碟管理器模块(例如执行绪#3)可以检查针对该任一故障SSD的插入检测信息,以判断是否存在该任一故障SSD(标示为「检查碟存在」以求简明),例如,藉由经由该节点的BMC取得针对该任一故障SSD的感测器/检测器状态,其中BMC可以从该节点的多个感测器/检测器的一感测器/检测器收集或监控感测器/检测器状态。例如,在该任一故障SSD从用于安装该目标SSD群组的多个插槽中的对应的插槽被移除之前,该插入检测信息可以指出该任一故障SSD存在。又例如,当该任一故障SSD已经从该对应的插槽被移除时,该插入检测信息可以指出该任一故障SSD不存在。
在步骤S33C中,碟管理器模块(例如执行绪#3)可以根据该插入检测信息来判断该任一故障SSD是否存在(例如在插槽中)。如果是,则流程进入步骤S34C;如果否,则流程进入步骤S36C。
在步骤S34C中,因应该任一故障SSD存在,碟管理器模块(例如执行绪#3)可以将该任一故障SSD的最新状态同步到该远端节点(例如两个节点100A和100B中的该另一个节点)以更新远端侧的HA碟表(标示为「同步到远端」以求简明)。
在步骤S35C中,因应该任一故障SSD存在,碟管理器模块(例如执行绪#3)可以暂时禁用该储存接口电路的该多个埠当中的对应于该任一故障SSD的埠(标示为“禁用9765”以更好地理解),以避免该任一故障SSD的任何再现(revival)行为的发生,来防止由于该任何再现行为而对该节点上运行的该多个程序模块中的任一程序模块进行任何误判。
如图7所示,包含步骤S31C~S33C的一局部工作流程可以多次被执行以分别产生多个检查结果。例如,该多个检查结果包含指出该任一故障SSD存在的一第一检查结果,以及指出该任一故障SSD不存在的一第二检查结果。可以因应该第一检查结果来随后执行步骤S34C、S35C及S38C,并且可以因应该第二检查结果来随后执行步骤S36C~S38C。
在步骤S36C中,因应该任一故障SSD不存在,碟管理器模块(例如执行绪#3)可以启用对应该任一故障SSD的埠(标示为「启用9765」以更好地理解),其中该第二检查结果(例如该任一故障SSD不存在)是在从该目标SSD群组移除该任一故障SSD之后产生。
在步骤S37C中,在启用对应于该任一故障SSD的埠之后,碟管理器模块(例如执行绪#3)可以从故障碟池移除该任一故障SSD,以容许在对应于该任一故障SSD的埠上的针对该任一插入的SSD的进一步检测。
在步骤S38C中,碟管理器模块(例如执行绪#3)可以等待一段时间,例如,藉由延迟1秒(标示为“延迟1秒”以求简明)。例如,藉由在步骤S38C中等待一段时间,碟管理器模块可以藉由减少步骤S30C的操作中之不必要的负荷来增强整体效能,这是因为可以在步骤S30A和S30B中的任何一个步骤中判断该任一故障SSD,之后,流程进入步骤S31C,以处理故障碟池中的下一个SSD(如果存在)。
在该多个碟池中,插入碟池和故障碟池可以预设为空的。例如,当在步骤S30A中判断有该任一插入的SSD时,插入碟池变为不是空的,并且需要步骤S30B的处理。又例如,当在步骤S30A和S30B中的任何一个步骤中判断有该任一故障SSD时,故障碟池变为不是空的,并且需要步骤S30C的处理。
为了更好地理解,可以用图7所示的工作流程来说明该方法,但是本发明不限于此。依据某些实施例,一个或多个步骤可于图7所示的工作流程中增加、删除或修改。
依据某些实施例,该至少三个执行绪#1、#2及#3可以分别扮演至少三个轮询器(poller)#1、#2及#3的角色,以供监控(例如轮询)该多个碟池的各自的状态以分别管理该多个碟池。例如,
在该节点上运行的执行绪#1可被配置成充当轮询器#1以监控现用碟池并依据现用碟池的监控结果来管理现用碟池,
在该节点上运行的执行绪#2可被配置成充当轮询器#2以监控插入碟池并依据插入碟池的监控结果来管理插入碟池,而
在该节点上运行的执行绪#3可被配置成充当轮询器#3以监控故障碟池并依据故障碟池的监控结果来管理故障碟池。
根据某些实施例,在软件层(例如,软件模块诸如HA框架模块等)的控制下,两个节点100A和100B的任一节点(例如每一节点)可被配置成决定该节点的角色。
图8是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一角色及状态转变控制方案的示意图。在软件层(例如,软件模块诸如HA框架模块等)的控制下,两个节点100A和100B的任一节点(例如每一节点)可用以依据该角色及状态转变控制方案进行角色及状态转变控制。
在步骤S40中,该节点可以进行初始化(例如该节点的系统的初始化)。
在步骤S41A中,在该节点的角色已被定义为现用节点之后,该节点可以进行现用初始化(例如与现用节点的角色有关的初始化)。
在步骤S41B中,在该节点的角色已被定义为待命节点之后,该节点可以进行待命初始化(例如与待命节点的角色有关的初始化)。
在步骤S42A中,在该节点诸如现用节点已被初始化之后,该节点可以在现用节点的角色的独立运转(standalone)状态中来操作(标示为「现用独立运转」以求简明)。
在步骤S42B中,在该节点诸如待命节点已被初始化之后,该节点可以在待命节点的角色的不同步(Out of Sync)状态下进行操作(标示为“待命不同步”以求简明),这是由于此时待命节点可能与现用节点不同步(标示为“待命已不同步”以求简明)。
在步骤S43A中,当该节点诸如现用节点已将储存在现用节点中的最新数据同步到待命节点时,该节点诸如现用节点可以在现用节点的角色的运行状态下进行操作(标示为“现用运行”以求简明)。例如,当该节点诸如现用节点不能将储存在现用节点中的最新数据同步到待命节点时,进入步骤S42A。
在步骤S43B中,当该节点诸如待命节点已同步来自现用节点的最新数据以使储存在待命节点中的数据等于储存在现用节点中的最新数据时,该节点可以在待命节点的角色的运行状态下进行操作(标记为“”命运行”以求简明)。例如,当待命节点变得相对于现用节点不同步时(标示为「待命已不同步」以求简明),进入步骤S42B。
在步骤S44A中,当该节点诸如现用节点检测到其故障时,该节点可以在现用节点的角色的降级状态进行操作(标示为“”用降级”以求简明)。
在步骤S44B中,当检测到现用节点发生故障(标记为“”用故障”以求简明)时,该节点诸如待命节点可以在待命节点的角色的升级状态(标示为“待命升级”以求简明)进行操作。如图8所示,从步骤S44B指向步骤S43A的箭头指出,当该节点诸如待命节点将其角色更改为现用节点的角色时(标示为“角色更改为现用”以求简明),这个节点变为两个节点100A和100B中最新的现用节点。
在步骤S45A中,当该节点诸如现用节点停止工作时(例如,该节点可以停止其HA框架模块),该节点可以进入现用节点的角色的停止状态(标示为“现用停止”以求简明),其中该节点停止其服务。然后该节点可以自动重新启动。
在步骤S45B中,当该节点诸如待命节点停止工作时(例如,该节点可以停止其HA框架模块),该节点可以进入待命节点的角色的停止状态(标示为“待命停止”以求简明),其中该节点停止其服务。然后该节点可以自动重新启动。
在步骤S46中,当该节点诸如待命节点检测到其故障时,该节点可以在待命节点的角色的异常状态下进行操作(标示为“”命异常”以求简明)。举例来说,如果该节点诸如待命节点停止工作(例如,该节点可以停止其HA框架模块),进入步骤S45B;否则,进入步骤S42B。
依据某些实施例,两个节点100A和100B中的任一节点(例如每一节点)可被配置成依据图8所示的工作流程来监控该节点的状态,尤其,对该节点的多个类型的资源进行资源管理。为了便于理解,HA框架模块所管理的任何组件(例如软件组件)可被称为资源。可应用于资源的动作的例子包含(但不限于):开始(例如启用(enable))、停止(例如禁用(disable))、降级(例如使资源变为非现用状态;尤其,对于该节点的整体来说,释放或放弃现用节点的角色)、升级(例如使资源变为现用;尤其,对于该节点的整体来说,将其角色从待命更改为现用)、C2F(例如进行C2F操作)、设定独立运转(例如将该节点诸如现用节点设定为向用户提供服务,而不将储存在现用节点中的最新数据同步/复制到待命节点)以及取消独立运转(例如,将该节点诸如现用节点设定为向用户提供服务,且同时能够将现用节点中储存的最新数据同步/复制到待命节点)。
图9是依据本发明另一实施例所绘示的如图7所示该多池控制方案的示意图。与图7所示的工作流程相比,在本实施例中增加了步骤S20、S21及S24,其中,步骤S34A、S35A及S35B被移除,并且相关的局部工作流程被对应地改变了。
在步骤S20中,两个节点100A和100B中的任一节点(例如每一节点)可以依据图8所示的工作流程的一局部工作流程(例如:至少包含步骤S40和S41A的一第一局部工作流程、或至少包含步骤S40和S41B的一第二局部工作流程)来定义该节点的角色。例如,当该节点代表被实现为主节点的节点100A时,该节点可以预设扮演现用节点的角色。又例如,当该节点代表被实现为从属节点的节点100B时,该节点可以预设扮演待命节点的角色。
在步骤S21中,因应该节点的角色被定义为待命节点(标示为“待命”以求简明),碟管理器模块(例如执行绪#0)可以检查该节点的多个储存接口电路中的每一储存接口电路是否已被禁用,尤其,可以禁用这些储存接口电路中尚未被禁用的任一储存接口电路(标示为“检查9765已被禁用”以更好地理解)。
在步骤S24中,因应该节点的角色被定义为现用节点(标示为“现用”以求简明),碟管理器模块(例如执行绪#0)可以等待该远端节点诸如待命节点检查该远端节点的的多个储存接口电路中的每一储存接口电路是否已被禁用,尤其,可以等待该远程节点禁用这些储存接口电路中尚未被禁用的任一储存接口电路(标示为“等待待命检查9765”以更好地理解)。之后,流程进入步骤S25,为简明起见,于本实施例中类似的内容在此不重复赘述。
为了更好地理解,可以用图9所示的工作流程来说明该方法,但是本发明不限于此。依据某些实施例,一个或多个步骤可于图9所示的工作流程中增加、删除或修改。例如,碟管理器模块(例如执行绪#1)可以进行如图7所示的步骤S34A和S35A的操作,其中步骤S30A可以被保持成与图7所示的相同。又例如,碟管理器模块(例如执行绪#1)可以进行如图7所示的步骤S34A、S35A及S35B的操作,其中步骤S30A和S30B可以被保持成与图7所示的相同。再例如,碟管理器模块(例如执行绪#1)可以进行如图7所示的步骤S35B的操作,其中步骤S30B可以被保持成与图7所示的相同。
图10是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一故障转移(failover)控制方案的示意图。与图7所示的工作流程相比,在本实施例中增加了步骤S22、S23、S32A'以及S35A',其中步骤S34A、S35A以及S32B~S35B被移除,步骤S36A由步骤S36A'来代替,并且相关的局部工作流程被对应地改变了。在两个节点100A和100B的任一节点(例如每一节点)的角色先前被定义为待命节点并且该节点正要变成最新的现用节点的情况下,可以在如图9所示的步骤S21的操作之后进入步骤S22,但是本发明不限于此。依据某些实施例,可以在步骤S21和S22之间增加一个或多个步骤。
在步骤S22中,碟管理器模块(例如执行绪#0)可以关闭该远端节点的电源,例如,藉由利用该节点的硬件层的BMC来与该远端节点的对应的硬件层的对应的BMC(例如BMC150A)进行通信。
在步骤S23中,碟管理器模块(例如执行绪#0)可以等待一段时间,例如,藉由在一预定睡眠时段(诸如10秒)的期间睡眠(标示为“睡眠10秒”以求简明)来等待。之后,流程进入步骤S25。
由于步骤S22的操作可以与对应于该硬件功能的该三个操作中的第一个操作相似或相同,因此在步骤S25中,碟管理器模块(例如执行绪#0)可以呼叫(call)对应于该硬件功能的该三个操作中的第二个和第三个操作,以完成上述碟交换控制。针对从步骤S26进入步骤S25的情况和从步骤S26进入S28的情况,若等待时间达到等待时间阈值诸如30秒(标示为“逾时(30秒)”以求简明),则流程进入步骤S25;否则,如果该目标SSD群组中的SSD数量等于如该HA碟表所指出的一预期数量(标示为“碟数量=预期数量”以求简明)、或者碟管理器模块已经藉由重新进入步骤S25重试了一次,则流程进入步骤S28。
在步骤S32A'中,碟管理器模块(例如执行绪#1)可以该检查HA碟表中是否有该任一新碟诸如该任一新SSD。如果是,则流程进入步骤S33A;如果否,则流程进入步骤S35A'。
在步骤S35A'中,碟管理器模块(例如执行绪#1)可以将该任一新碟(例如该任一新SSD)加到故障碟池中。例如,步骤S35A'的操作可以避免使用者在故障转移的期间将任何无效的碟(例如无效的SSD)强行地加到该目标SSD群组中。
在步骤S36A'中,碟管理器模块(例如执行绪#1)可以等待故障转移完成(标示为“等故障转移完”以求简明),为简明起见,于本实施例中类似的内容在此不重复赘述。
为了更好的理解,可以用图10所示的工作流程来说明该方法,但是本发明不限于此。依据某些实施例,一个或多个步骤可于图10所示的工作流程中增加、删除或修改。例如,可以从图10所示的工作流程中移除步骤S34C,并且可以在图10所示的工作流程中,因应步骤S33C的检查结果为“是”,执行步骤S35C。
图11是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的一热插拔控制方案的示意图。与图7所示的工作流程相比,在本实施例中增加了步骤S29、S36B'以及S35C',其中,步骤S35B被移除,且相关的局部工作流程被对应地改变了。虽然步骤S25和S26未被绘示于图11中,两个节点100A和100B的任一节点(例如每一节点)可以进行如图7所示的步骤S25和S26的操作,但本发明不限于此。根据某些实施例,该节点可以进行如图9所示的步骤S20及S24~S26的操作。
对应于故障碟池的该第三组操作(例如步骤S30C的操作)可以进一步被配置成管理故障碟池中的任一不需要的(unwanted)SSD。当AFA伺服器100的使用者计划要移除该目标SSD群组中的某个碟(例如某个SSD)(标示为“使用者计划移除碟”以求简明)时,碟管理器模块(例如执行绪#0)可以利用在该节点上运行的该多个程序模块中的一UI模块(例如图4中所示的网络UI模块)从使用者端取得一移除指令,其中该移除指令指出需要移除该任一不需要的SSD。
在步骤S29中,因应该移除指令,该节点可以利用碟管理器模块(例如执行绪#0)将该任一不需要的SSD加到故障碟池中(标示为“将碟加到故障池”以求简明)。之后,流程进入步骤S31C。
在步骤S36B'中,碟管理器模块(例如执行绪#2)可以检查步骤S36B的操作是否成功(例如,检查该AFA系统是否已经成功地将该任一插入的SSD组合到该RAID群组中)。如果是(例如,该AFA系统检测到在该RAID群组中有该任一插入的SSD为可利用(available)/可使用(usable)的),则流程进入步骤S37B;如果否(例如,该AFA系统检测到该任一插入的SSD在该RAID群组中为不可利用(unavailable)/不可使用(unusable)的,也就是说,并非可利用/可使用的),则流程进入步骤S34B。
在图11所示的步骤S30中,碟管理器模块(例如执行绪#0)可以用类似管理该任一故障SSD的方式来管理该任一不需要的SSD,尤其,可处置该任一不需要的SSD犹如该任一不需要的SSD就是该任一故障SSD(例如,将该任一不需要的SSD视为该任一故障SSD),其中在步骤S35C和S38C之间插入了步骤S35C'。
在步骤S35C'中,碟管理器模块(例如执行绪#3)可以启动对应于该任一不需要的SSD的至少一红色发光二极体(Light-Emitting Diode,简称LED)(例如,该任一不需要的SSD中的一红色LED及/或安装有该任一不需要的SSD的插槽的一红色LED),以指出该任一不需要的SSD已被移除。
为了更好地理解,可以用图11所示的工作流程来说明该方法,但是本发明不限于此。依据某些实施例,一个或多个步骤可于图11所示的工作流程中增加、删除或修改。
图12是依据本发明一实施例所绘示的用以进行该AFA伺服器的碟管理的方法的流程图。
在步骤S50中,两个节点100A和100B中的任一节点(例如每一节点)可以利用碟管理器模块(例如,执行绪#0)来触发该节点的硬件层,以在AFA伺服器100的HA架构中进行上述的碟交换控制(例如,藉由呼叫该HW功能以进行对应于该HW功能的该三个操作),用以控制该节点来启用该节点和一组储存装置(例如SSD群组12A和12B中的一个SSD群组)之间的一组碟交换路径,该组碟交换路径是在该多个节点(例如两个节点100A和100D)和多组储存装置(例如两个SSD群组12A和12B)之间的多组碟交换路径的其中一组(就是该多组碟交换路径中的一组碟交换路径),诸如在步骤S25中提到的那一组碟交换路径。
在步骤S51中,该节点可以利用碟管理器模块(例如执行绪#0)来检查步骤S50的操作是否成功(例如藉由进行步骤S26的操作)。如果是,则流程进入步骤S52;如果否,则流程进入步骤S50。
在步骤S52中,该节点可以利用碟管理器模块(例如执行绪#1、#2及#3)以该并行处理方式进行分别对应于该多个碟池的该多组操作,以便用该多个碟池来管理该组储存装置(例如该目标SSD群组),其中,该多组操作可以包含对应于该现用碟池的该第一组操作、对应于该插入碟池的该第二组操作以及对应于该故障碟池的该第三组操作,诸如上列实施例中的一个或多个实施例的步骤S30A~S30C的各自的操作。为简明起见,于本实施例中类似的内容在此不重复赘述。
为了更好的理解,可以用图12所示的工作流程来说明该方法,但是本发明不限于此。依据某些实施例,一个或多个步骤可于图12所示的工作流程中增加、删除或修改。
根据某些实施例,该多组储存装置可分别用多组单埠SSD来实现,而步骤S50中所述的这一组储存装置可以用该多组单埠SSD中的一组单埠SSD来实现。碟管理器模块可被配置成以该并行处理方式进行分别对应于该多个碟池的该多组操作,以便用该多个碟池来管理这组单埠SSD,来避免这组单埠SSD中的任一单埠SSD的故障。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
以上所述仅为本发明之较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (12)
1.一种用以进行一全快闪存储器阵列(All Flash Array,AFA)伺服器的碟管理的方法,该方法包含:
利用运行在该全快闪存储器阵列伺服器的多个节点中的任一节点上的多个程序模块中的一碟管理器模块来触发该任一节点的一硬件层,以在该全快闪存储器阵列伺服器的高可用性(high availability,HA)架构中进行碟交换控制,以控制该任一节点来启用该任一节点和一组储存装置之间的一组碟交换路径,该组碟交换路径是在该多个节点和多组储存装置之间的多组碟交换路径的其中一组,该多组储存装置包含该组储存装置,其中,该多组储存装置分别用多组固态硬碟(solid state drive,SSD)来实现;以及
利用该碟管理器模块以一并行处理方式进行分别对应于多个碟池的多组操作,以便用该多个碟池来管理该组储存装置,其中该多个碟池包含一现用碟池、一插入碟池以及一故障碟池,以及该多组操作包含:
对应于该现用碟池的一第一组操作,用以管理该现用碟池中的多个现用储存装置;
对应于该插入碟池的一第二组操作,用以管理该插入碟池中的任一插入储存装置,其中该任一插入储存装置代表加到该组储存装置中的任一新储存装置;以及
对应于该故障碟池的一第三组操作,用以管理该故障碟池中的任一故障储存装置,其中该任一故障储存装置代表需要从该组储存装置移除的任一危急或无效储存装置。
2.如权利要求1所述的方法,其特征在于在该任一节点上运行的该碟管理器模块包含多个执行绪,以及该多个执行绪包含:
运行于该任一节点上的一主执行绪,该主执行绪用以触发该任一节点的该硬件层以进行该碟交换控制,来控制该任一节点启用该多组碟交换路径中的该组碟交换路径,并且启动在该多个执行绪中的至少三个其他执行绪,以该并行处理方式进行分别对应于该多个碟池的该多组操作,以便用该多个碟池来管理该组储存装置。
3.如权利要求2所述的方法,其特征在于,该多个执行绪中的该至少三个其他执行绪包含:
该至少三个其他执行绪中的一第一执行绪,该第一执行绪用以进行对应于该现用碟池的该第一组操作;
该至少三个其他执行绪中的一第二执行绪,该第二执行绪用以进行对应于该插入碟池的该第二组操作;以及
该至少三个其他执行绪中的一第三执行绪,该第三执行绪用以进行对应于该故障碟池的该第三组操作。
4.如权利要求1所述的方法,其特征在于,在该任一节点上运行的该碟管理器模块包含至少三个执行绪,并且该至少三个执行绪被配置成以该并行处理方式进行分别对应于该多个碟池的该多组操作,以便分别用该多个碟池来管理该组储存装置。
5.如权利要求4所述的方法,其特征在于,该至少三个执行绪包含:
运行于该任一节点上的一第一执行绪,该第一执行绪被配置成充当一第一轮询器以监控该现用碟池;
运行于该任一节点上的一第二执行绪,该第二执行绪被配置成充当一第二轮询器以监控该插入碟池;以及
运行于该任一节点上的一第三执行绪,该第三执行绪被配置成充当一第三轮询器以监控该故障碟池。
6.如权利要求4所述的方法,其特征在于,该至少三个执行绪包含:
运行于该任一节点上的一第一执行绪,该第一执行绪被配置成监控该现用碟池并且依据该现用碟池的监控结果来管理该现用碟池;
运行于该任一节点上的一第二执行绪,该第二执行绪被配置成监控该插入碟池并且依据该插入碟池的监控结果来管理该插入碟池;以及
运行于该任一节点上的一第三执行绪,该第三执行绪被配置成监控该故障碟池并且依据该故障碟池的监控结果来管理该故障碟池。
7.如权利要求1所述的方法,其特征在于,该任一节点的该硬件层的一储存接口电路被配置成提供该组碟交换路径;以及该第三组操作包含:
利用该任一节点的该硬件层的一主机板管理控制器(Board Management Controller,BMC)来检查是否存在该任一故障储存装置;
因应存在该任一故障储存装置,在该储存接口电路的多个埠中暂时禁用对应于该任一故障储存装置的一埠,以避免该任一故障储存装置发生任何再现行为,来防止由于该任何再现行为而对该任一节点上运行的该多个程序模块中的任一程序模块进行任何误判。
8.如权利要求7所述的方法,其特征在于,利用该任一节点的该硬件层的该主机板管理控制器来检查是否存在该任一故障储存装置的步骤被执行多次以分别产生多个检查结果,其中该多个检查结果包含指出存在该任一故障储存装置的一第一检查结果,以及指出不存在该任一故障储存装置的一第二检查结果;暂时禁用对应于该任一故障储存装置的该埠的步骤是因应该第一检查结果而被执行;以及该第三组操作另包含:
因应该第二检查结果,启用对应于该任一故障储存装置的该埠,其中该第二检查结果是在从该组储存装置移除该任一故障储存装置之后产生;以及
在启用对应于该任一故障储存装置的该埠之后,从该故障碟池移除该任一故障储存装置,以容许在对应于该任一故障储存装置的该埠上的针对该任一插入储存装置的进一步检测。
9.如权利要求1所述的方法,其特征在于,对应于该故障碟池的第三组操作进一步被配置成管理该故障碟池中的任一不需要的(unwanted)储存装置;以及该方法另包含:
利用在该任一节点上运行的该多个程序模块中的一用户接口(user interface,UI)模块,从该全快闪存储器阵列伺服器的一用户取得一移除指令,其中,该移除指令指出需要移除该任一不需要的储存装置;以及
因应该移除指令,利用该碟管理器将该任一不需要的储存装置加到该故障碟池中。
10.如权利要求1所述的方法,其特征在于,该碟交换控制的一工作流程包含:
利用该任一节点的该硬件层的一主机板管理控制器(Board Management Controller,BMC)来与该多个节点中的一远端节点的一对应的硬件层的一对应的主机板管理控制器进行通信,以关闭该远端节点的电源,以断开该组储存装置和该远端节点之间的任何可能的连线;
利用该主机板管理控制器选择一时脉(clock)多工器(multiplexer,MUX),以执行对应于该组碟交换路径的时脉多工(clock multiplexing);以及
利用该主机板管理控制器来启用藉由固态硬碟实现的该组储存装置的各自的固态硬碟重设信号。
11.如权利要求1所述的方法,其特征在于,该多组储存装置分别用多组单埠固态硬碟来实现,且该组储存装置是用该多组单埠固态硬碟中的一组单埠固态硬碟来实现;以及该碟管理器模块被配置成以该并行处理方式进行分别对应于该多个碟池的该多组操作,以便用该多个碟池来管理该组单埠固态硬碟,来避免该组单埠固态硬碟中的任一单埠固态硬碟的故障。
12.一种全快闪存储器阵列(All Flash Array,AFA)伺服器,包含:
多个节点,其中该多个节点的任一节点包含:
至少一处理器,用以在多个程序模块的控制下控制该任一节点的操作;以及
多个硬件组件,在该任一节点的一硬件层中;以及
多个储存装置,包含多组储存装置,其中该多组储存装置分别用多组固态硬碟(solidstate drive,SSD)来实现;
其中:
该任一节点利用在该任一节点上运行的该多个程序模块中的一碟管理器模块来触发该任一节点的硬件层,以在该全快闪存储器阵列伺服器的高可用性(high availability,HA)架构中执行碟交换控制,以控制该任一节点来启用该任一节点和一组储存装置之间的一组碟交换路径,该组碟交换路径是在该多个节点和多组储存装置之间的多组碟交换路径的其中一组,该多组储存装置包含该组储存装置;以及
该任一节点利用该碟管理器模块以一并行处理方式进行分别对应于多个碟池的多组操作,以便用该多个碟池来管理该组储存装置,其中该多个碟池包含一现用碟池、一插入碟池以及一故障碟池,以及该多组操作包含:
对应于该现用碟池的一第一组操作,用以管理该现用碟池中的多个现用储存装置;
对应于该插入碟池的一第二组操作,用以管理该插入碟池中的任一插入储存装置,其中该任一插入储存装置代表加到该组储存装置中的任一新储存装置;以及
对应于该故障碟池的一第三组操作,用以管理该故障碟池中的任一故障储存装置,其中该任一故障储存装置代表需要从该组储存装置移除的任一危急或无效储存装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062983767P | 2020-03-02 | 2020-03-02 | |
US62/983,767 | 2020-03-02 | ||
US17/149,730 US11573737B2 (en) | 2020-03-02 | 2021-01-15 | Method and apparatus for performing disk management of all flash array server |
US17/149,730 | 2021-01-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342262A true CN113342262A (zh) | 2021-09-03 |
CN113342262B CN113342262B (zh) | 2024-07-26 |
Family
ID=77463042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110230841.1A Active CN113342262B (zh) | 2020-03-02 | 2021-03-02 | 用以进行全快闪存储器阵列伺服器的碟管理的方法与设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11573737B2 (zh) |
CN (1) | CN113342262B (zh) |
TW (1) | TWI773155B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI802269B (zh) * | 2022-02-14 | 2023-05-11 | 神雲科技股份有限公司 | 伺服設備與其輸入輸出裝置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11334279B2 (en) * | 2019-11-14 | 2022-05-17 | Western Digital Technologies, Inc. | Hierarchical blacklisting of storage system components |
US11314431B2 (en) | 2019-11-14 | 2022-04-26 | Western Digital Technologies, Inc. | Distributed data blocks using storage path cost values |
US11573737B2 (en) * | 2020-03-02 | 2023-02-07 | Silicon Motion, Inc. | Method and apparatus for performing disk management of all flash array server |
TWI777664B (zh) * | 2021-07-12 | 2022-09-11 | 神雲科技股份有限公司 | 嵌入式系統的開機方法 |
TWI796211B (zh) * | 2022-04-29 | 2023-03-11 | 神雲科技股份有限公司 | 連接埠的設定方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143419A1 (en) * | 2004-12-02 | 2006-06-29 | Akhil Tulyani | Managing disk storage media |
US20090019251A1 (en) * | 2006-07-13 | 2009-01-15 | International Business Machines Corporation | Dynamic storage pools with thin provisioning |
CN104639469A (zh) * | 2015-02-06 | 2015-05-20 | 方一信息科技(上海)有限公司 | 一种基于pcie互连的计算和存储集群系统 |
CN104965677A (zh) * | 2015-06-26 | 2015-10-07 | 北京百度网讯科技有限公司 | 存储系统 |
US20170329714A1 (en) * | 2016-05-10 | 2017-11-16 | Nimble Storage, Inc. | Fibre Channel Scale-Out With Physical Path Discovery and Volume Move |
US20180232142A1 (en) * | 2017-02-13 | 2018-08-16 | Hewlett Packard Enterprise Development Lp | Hyperconverged infrastructure supporting storage and compute capabilities |
TW201928977A (zh) * | 2016-04-27 | 2019-07-16 | 慧榮科技股份有限公司 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702848B2 (en) | 2004-06-10 | 2010-04-20 | Marvell World Trade Ltd. | Adaptive storage system including hard disk drive with flash interface |
US10235198B2 (en) | 2016-02-24 | 2019-03-19 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVME SSD |
US10929243B2 (en) * | 2019-04-11 | 2021-02-23 | EMC IP Holding Company LLC | Service-level rebuild |
US11573737B2 (en) * | 2020-03-02 | 2023-02-07 | Silicon Motion, Inc. | Method and apparatus for performing disk management of all flash array server |
-
2021
- 2021-01-15 US US17/149,730 patent/US11573737B2/en active Active
- 2021-02-25 TW TW110106745A patent/TWI773155B/zh active
- 2021-03-02 CN CN202110230841.1A patent/CN113342262B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143419A1 (en) * | 2004-12-02 | 2006-06-29 | Akhil Tulyani | Managing disk storage media |
US20090019251A1 (en) * | 2006-07-13 | 2009-01-15 | International Business Machines Corporation | Dynamic storage pools with thin provisioning |
CN104639469A (zh) * | 2015-02-06 | 2015-05-20 | 方一信息科技(上海)有限公司 | 一种基于pcie互连的计算和存储集群系统 |
CN104965677A (zh) * | 2015-06-26 | 2015-10-07 | 北京百度网讯科技有限公司 | 存储系统 |
TW201928977A (zh) * | 2016-04-27 | 2019-07-16 | 慧榮科技股份有限公司 | 快閃記憶體裝置及快閃記憶體儲存管理方法 |
US20170329714A1 (en) * | 2016-05-10 | 2017-11-16 | Nimble Storage, Inc. | Fibre Channel Scale-Out With Physical Path Discovery and Volume Move |
US20180232142A1 (en) * | 2017-02-13 | 2018-08-16 | Hewlett Packard Enterprise Development Lp | Hyperconverged infrastructure supporting storage and compute capabilities |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI802269B (zh) * | 2022-02-14 | 2023-05-11 | 神雲科技股份有限公司 | 伺服設備與其輸入輸出裝置 |
Also Published As
Publication number | Publication date |
---|---|
TWI773155B (zh) | 2022-08-01 |
CN113342262B (zh) | 2024-07-26 |
US11573737B2 (en) | 2023-02-07 |
TW202134881A (zh) | 2021-09-16 |
US20210271418A1 (en) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113342262B (zh) | 用以进行全快闪存储器阵列伺服器的碟管理的方法与设备 | |
CN106776159B (zh) | 具有故障转移的快速外围元件互连网络系统与操作方法 | |
EP1736879A2 (en) | DIsk array apparatus and method for controlling the same | |
TWI773152B (zh) | 伺服器與應用於伺服器的控制方法 | |
US11636012B2 (en) | Method and apparatus for performing node information exchange management of all flash array server | |
CN113342258B (zh) | 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备 | |
CN113342593B (zh) | 用以进行全快闪存储器阵列伺服器的高可用性管理的方法与设备 | |
US20230112764A1 (en) | Cloud defined storage | |
CN113342261B (zh) | 伺服器与应用于伺服器的控制方法 | |
CN113345495B (zh) | 伺服器及相关的控制方法 | |
CN113342260B (zh) | 伺服器与应用于伺服器的控制方法 | |
TWI766590B (zh) | 伺服器及相關的控制方法 | |
US20240364582A1 (en) | Systems and methods for fail-over witness sled operations | |
US20240362129A1 (en) | Systems and methods for high-availability witness sleds | |
US11074144B2 (en) | Active firmware replacement in storage system and in storage controller, and computer-readable recording medium having stored therein program for active firmware replacement in controlling storage | |
CN113342257A (zh) | 伺服器及相关的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |