CN103842968B - 一种内存数据的迁移方法、计算机和装置 - Google Patents
一种内存数据的迁移方法、计算机和装置 Download PDFInfo
- Publication number
- CN103842968B CN103842968B CN201380002307.9A CN201380002307A CN103842968B CN 103842968 B CN103842968 B CN 103842968B CN 201380002307 A CN201380002307 A CN 201380002307A CN 103842968 B CN103842968 B CN 103842968B
- Authority
- CN
- China
- Prior art keywords
- card
- random access
- access memory
- memory
- migration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 407
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000013508 migration Methods 0.000 claims abstract description 396
- 230000005012 migration Effects 0.000 claims abstract description 396
- 230000015654 memory Effects 0.000 claims abstract description 328
- 230000007704 transition Effects 0.000 claims description 32
- 230000001960 triggered effect Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 241001269238 Data Species 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000005611 electricity Effects 0.000 abstract description 25
- 238000012423 maintenance Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000000203 mixture Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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/2058—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 more than 2 mirrored copies
-
- 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/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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
-
- 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/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- 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
-
- 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/2069—Management of state, configuration or failover
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid 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/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
-
- 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/84—Using snapshots, i.e. a logical point-in-time copy of the data
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在本发明实施例提供了一种内存数据的迁移方法、计算机和装置,用于迁移计算机中内存数据,所述计算机的操作系统能够在获取到第一触发指令后中止当前执行的任务,以执行内存数据的迁移,确定待迁移内存数据的源内存卡,为所述源内存卡确定备份内存卡,指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述操作系统的指示读取所述源内存卡的内存数据,将所读取的所述源内存卡的内存数据写入到所述备份内存卡,在计算机不下电的情况下,能够对所述源内存卡的内存数据进行迁移,实现了对故障内存卡的在线维护,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。
Description
技术领域
本发明涉及计算机技术,特别是一种内存数据的迁移方法、计算机和装置。
背景技术
内存(Memory)也被称为主存储器,是计算机中重要的部件之一。计算机中所有程序的运行都是在内存中进行,因此内存的性能对计算机的影响非常大。内存能够用于暂时存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,处理器就会把需要运算的数据调到内存中进行运算,当运算完成后处理器再将结果传送出来,内存的运行也决定了计算机的稳定运行。
在X86架构下,服务器支持的内存数量越来越多,最新的IntelE7V2处理器,单颗处理器最多可以支持2块内存板,每块内存板最多可以支持12根内存条,在一个8P系统中内存条数量可以达到192根。然而,目前系统中内存的故障率能够高达0.1%,内存故障不仅可能引起系统运行不稳定,还可能引起系统的死机。
现有技术无法实现计算机中内存数据的迁移,当系统中出现内存故障时,无法在计算机正常运行的情况下实现故障内存板或者故障内存条中的数据的迁移,因此无法对故障内存进行在线维护,只能先对该计算机下电后才能更换故障内存板或故障内存条。
发明内容
本发明实施例提供了一种内存数据的迁移方法、计算机和装置,能够在计算机不下电的情况下进行内存数据的迁移。
第一方面,本发明实施例提供了一种计算机,该计算机包括:
处理器;
主存储器,用于加载所述计算机的操作系统的指令,所述主存储器包括一个或多个内存卡;
内存控制器,每个内存卡配置对应的内存控制器;
所述操作系统用于获取第一触发指令,根据所述第一触发指令中止当前正在执行的任务,确定待迁移内存数据的源内存卡,为所述源内存卡确定备份内存卡,指示所述源内存卡的内存控制器进行内存数据的迁移;
所述源内存卡的内存控制器用于根据所述操作系统的指示,将所述源内存卡的内存数据迁移到所述备份内存卡。
结合第一方面,在第一种可能的实现方式中,所述操作系统具体用于将所述源内存卡和所述备份内存卡设置为镜像模式,向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据,向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡;所述源内存卡的内存控制器具体用于根据所述操作系统的数据读指令读取所述源内存卡的内存数据,接收所述操作系统发送的所述数据写指令,根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据发送给所述备份内存卡的内存控制器;所述备份内存卡的内存控制器用于将接收到的所述源内存卡的内存数据写入到所述备份内存卡。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述操作系统具体用于获取分次迁移策略,根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迁移。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述操作系统具体用于根据所述分次迁移策略循环执行如下操作a)-d),直至将所述源内存卡的内存数据全部迁移到所述备份内存卡,所述操作a)-d)包括:a)确定当次迁移的数据量,指示所述源内存卡的内存控制器将所述当次迁移的数据量迁移到所述备份内存卡,或者,确定当次迁移的时长,指示所述源内存卡的内存控制器在所述当次迁移的时长内进行内存数据的迁移;b)在确定所述源内存卡的内存控制器完成所述当次迁移之后,中止执行内存数据的迁移;c)接收第二触发指令,所述第二触发指令用于指示所述操作系统继续进行内存数据的迁移;d)返回执行步骤a),直至所述源内存卡的内存数据全部迁移到所述备份内存卡。
结合第一方面或者第一方面的第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第四中可能的实现方式中,所述操作系统还用于在确定所述源内存卡的内存数据全部迁移到所述备份内存卡之后,将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
第二方面,本发明实施例提供了一种内存数据的迁移方法,用于迁移计算机中内存数据,该方法包括:
所述计算机的操作系统获取第一触发指令,所述第一触发指令用于指示所述操作系统执行内存数据的迁移;
所述操作系统中止当前正在执行的任务以启动内存数据的迁移;
所述操作系统确定待迁移内存数据的源内存卡;
所述操作系统为所述源内存卡确定备份内存卡;
所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述操作系统的指示将所述源内存卡的内存数据迁移到所述备份内存卡。
结合第二方面,在第一种可能的实现方式中,该方法还包括:所述操作系统将所述源内存卡和所述备份内存卡设置为镜像模式;所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述处理器的指示读取所述源内存卡的内存数据,将所读取的所述源内存卡的内存数据写入到所述备份内存卡,包括:所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述操作系统的指示读取所述源内存卡的内存数据,将所读取的所述源内存卡的内存数据写入到所述备份内存卡,包括:
所述操作系统向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据;
所述源内存卡的内存控制器根据所述操作系统的数据读指令读取所述源内存卡的内存数据;
所述操作系统向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡;
所述源内存卡的内存控制器接收所述操作系统发送的所述数据写指令,根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据发送给所述备份内存卡的内存控制器,以使得所述备份内存卡的内存控制器将接收到的所述源内存卡的内存数据写入到所述备份内存卡。
结合第二方面的第一种可能的实现方式,在第二可能的实现方式中,在所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移之前,还包括:所述操作系统获取分次迁移策略;则,所述操作系统根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迁移。
结合第二方面的第二种可能的实现方式,在第三可能的实现方式中,所述操作系统根据所述分次迁移策略指示所述源内存卡的内存控制器分多次进行内存数据的迁移,包括:a)所述操作系统确定当次迁移的数据量,指示所述源内存卡的内存控制器将所述当次迁移的数据量迁移到所述备份内存卡,或者,所述操作系统确定当次迁移的时长,指示所述源内存卡的内存控制器在所述当次迁移的时长内进行内存数据的迁移;b)在确定所述源内存卡的内存控制器完成所述当次迁移之后,所述操作系统中止执行内存数据的迁移;c)所述操作系统接收第二触发指令,所述第二触发指令用于指示所述操作系统继续进行内存数据的迁移;d)所述操作系统返回执行步骤a),直至所述源内存卡的内存数据全部迁移到所述备份内存卡。
结合第二方面或者第二方面的第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第四种可能的实现方式中,在所述源内存卡的内存数据全部迁移到所述备份内存卡之后,还包括:所述操作系统将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
第三方面,本发明实施例提供了一种内存数据的迁移装置,用于迁移计算机中内存数据,所述装置包括:
获取单元,用于获取第一触发指令,所述第一触发指令用于指示操作系统执行内存数据的迁移;
确定单元,用于在所述获取单元获取所述第一触发指令之后,中止当前正在执行的任务以启动内存数据的迁移,确定待迁移内存数据的源内存卡,以及为所述源内存卡确定备份内存卡;
迁移单元,用于指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述操作系统的指示将所述源内存卡的内存数据迁移到所述备份内存卡。
结合第三方面,在第一种可能的实现方式中,该装置还包括:镜像单元,用于将所述源内存卡和所述备份内存卡设置为镜像模式;所述迁移单元具体用于向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据,以及向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡,以使得所述源内存卡的内存控制器根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据写入到所述备份内存卡源内存卡的内存数据。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述迁移单元具体用于获取分次迁移策略,根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迁移。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述迁移单元具体用于循环执行如下操作a)-d),直至将所述源内存卡的内存数据全部迁移到所述备份内存卡,所述操作a)-d)包括:a)确定当次迁移的数据量,指示所述源内存卡的内存控制器将所述当次迁移的数据量迁移到所述备份内存卡,或者,确定当次迁移的时长,指示所述源内存卡的内存控制器在所述当次迁移的时长内进行内存数据的迁移;b)在确定所述源内存卡的内存控制器完成所述当次迁移之后,中止执行内存数据的迁移;c)接收第二触发指令,所述第二触发指令用于指示所述操作系统继续进行内存数据的迁移;d)返回执行步骤a),直至所述源内存卡的内存数据全部迁移到所述备份内存卡。
结合第三方面或者第三方面的第一种可能的实现方式或者第二种可能的实现方式或者第三种可能的实现方式,在第四种可能的实现方式中,所述迁移单元还用于确定所述源内存卡的内存控制器完成所述源内存卡的内存数据迁移之后,将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
在本发明实施例中,操作系统能够在接收到第一触发指令后中止当前正在执行的任务以启动内存数据的迁移,确定待迁移内存数据的源内存卡,为所述源内存卡确定备份内存卡,指示所述源内存卡的内存控制器读取所述源内存卡的内存数据并将所读取的所述源内存卡的内存数据写入到所述备份内存卡,从而在计算机不下电的情况下,能够对所述源内存卡的内存数据进行迁移,实现了对故障内存卡的在线维护,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的计算机的系统框图;
图2为本发明实施例提供的内存数据的迁移方法流程图;
图3为本发明实施例提供的又一种内存数据的迁移方法流程图;
图4为本发明实施例提供的又一种内存数据的迁移方法流程图;
图5为本发明实施例提供的内存数据迁移装置的组成图;
图6为本发明实施例提供的又一种内存数据迁移装置的组成图。
具体实施方式
本发明实施例提供了一种内存数据的迁移方法、计算机和系统,能够在计算机正常运行的情况下进行内存数据的迁移。
一种实现内存数据迁移的计算机
如图1所示,为实施本发明实施例的计算机的一个示例,该计算机包括主存储器101、内存控制器102、处理器105、基本输入输出系统(BasicInputOutputSystem,BIOS)104和硬盘(图1未示出)。所述主存储器101包括至少一个内存卡,图1中以3个内存卡为例,内存卡101-A、101-B、101-C。所述内存控制器102用于控制所述主存储器101,可以为所述主存储器101的每个内存卡配置对应的内存控制器102,例如内存卡101-A的内存控制器102-A,内存卡101-B的内存控制器102-B,内存卡101-C的内存控制器102-C。本实施例中的内存卡具体可以是内存板或者内存条等任何可以作为内存的存储介质,一个内存卡可以指一根内存条或一个内存板,也可以指多根内存条的集合或多个内存板的集合。每个内存卡都配置有对应的内存控制器,内存卡和内存控制器的对应关系可以是一对一,也可以是一对多或者多对一,图1只是本发明实施示例之一。
在所述计算机系统开机后,所述主存储器101可以在计算机开机启动时,加载所述BIOS104中的指令以及存储在硬盘中的计算机的操作系统(OperatingSystem,OS)103的指令,所述处理器105可以执行所述BIOS104的指令或所述计算机的操作系统(OperatingSystem,OS)103的指令,例如所述处理器105可以执行BIOS104的指令对所述计算机中的设备进行初始化,以及执行所述OS103的指令对所述内存卡进行读写操作,其中,所述处理器105主要指CPU内核部分,可以是一个CPU内核,也可以是多个CPU内核的集合,在本发明实施例中,所述处理器105是多个CPU内核的集合。所述BIOS104可以是一个处理芯片,在该处理芯片内注册了多个处理指令,所述处理器105可以执行这些处理指令。
本实施例中为了实现内存数据的迁移,需要在计算机中配置备份内存卡,以作为源内存卡的内存数据的迁移的目标内存卡,另外,待进行内存数据迁移的内存卡在本实施例中被称为源内存卡。在图1所示的实施例中,内存卡101-A和101-B可以是源内存卡,内存卡101-C是本发明实施例配置的备份内存卡。本实施例中,以为计算机指定一个备份内存卡101-C为例,实际上,也可以为计算机指定多个备份内存卡。本发明实施例所说的内存数据的迁移的目的是使得备份内存卡能够获得源内存卡中的内存数据,为了实现上述迁移的目的,在具体实现中,可以采用内存数据的复制、拷贝或者搬迁等方式,只要实现了备份内存卡能够获得源内存卡中的内存数据的迁移目的,上述各种具体实现方式都在本发明实施例的“迁移”范畴之类。
本发明实施例对OS103进行功能改进来实现不下电计算机,进行内存数据的迁移,举例来说,可以使得改进后的OS103可以获取第一触发指令,根据所述第一触发指令中止当前正在执行的任务,启动内存数据的迁移,例如确定待迁移内存数据的源内存卡,为所述源内存卡确定备份内存卡,指示所述源内存卡的内存控制器进行内存数据的迁移,使得该源内存卡的内存控制器能够根据所述OS103的指示,将所述源内存卡的内存数据迁移到所述备份内存卡。
本发明实施例的计算机的各组成可以执行如下操作:
所述OS103用于获取第一触发指令,根据所述第一触发指令中止当前正在执行的任务以启动内存数据的迁移,确定待迁移数据的内存卡,例如所述源内存卡101-A,为所述源内存卡确定备份内存卡,例如所述源内存卡101-A确定备份内存卡101-C,以及指示所述源内存卡的内存控制器102-A进行内存数据的迁移。
所述源内存卡的内存控制器102-A用于根据所述OS103的指示,读取所述源内存卡101-A的内存数据,将所读取的所述源内存卡101-A的内存数据写入到所述备份内存卡101-C。
在本发明实施例中,由于所述OS103能够在获取到第一触发指令后中止当前正在执行的任务,执行内存数据的迁移,确定待迁移内存数据的源内存卡101-A,为所述源内存卡确定备份内存卡101-C,指示所述源内存卡的内存控制器102-A将所述源内存卡101-A的内存数据写入所述备份内存卡101-C,在计算机不下电的情况下,能够对所述源内存卡101-A的内存数据进行迁移,实现了对故障内存卡的在线维护,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。
下面对本发明实施例各组成的功能进行展开进行详细地介绍。
关于配置备份内存卡
本实施例中,为了保证OS103顺利的进行内存数据的迁移,需要要计算机中配置备份内存卡,所述备份内存卡作为待迁移的内存数据的目标设备,与计算机中的其他内存卡具有一定的不同之处,例如在内存数据迁移完成之前对OS103不可见,即OS103无法对其进行读写操作;所述处理器105可以执行BIOS104的指令对所述备份内存卡101-C进行特殊初始化,使得所述备份内存卡101-C准备就绪并可以正常使用,但是所述初始化过程避免为所述备份内存卡101-C分配系统地址,从而使得所述OS103无法对所述备份内存卡101-C进行任何读写操作,这样可以保证将源内存卡的内存数据完整迁移到备份卡,保证迁移过程中已经迁移的数据不会被覆盖上其他的数据,使得迁移的内存数据受到破坏。
配置所述备份内存卡可以包括:
1、指定并记录备份内存卡的标识。可以是由用户将备份内存卡插入硬件插槽之后,将该备份内存卡的标识发送给OS103,OS103可以获取指定的备份内存卡的标识并记录在存储模块中,此种情况下,即指定在计算机中已经硬件存在内存卡为备份内存卡;也可以是用户并不将备份内存卡插入硬件插槽,而是指定备份内存卡后续将要插入的硬件插槽的槽位号,将指定的槽位号作为备份内存卡的标识进行记录,此种情况下,即指定在计算机中还没有硬件存在内存卡为备份内存卡。
指定并记录备份内存卡的标识之后,OS103后续可以查询记录的所述内存内存卡的标识,以确定备份内存卡。
2、对备份内存卡执行特殊的初始化。在指定了备份内存卡之后,可以对该备份内存卡进行特殊的初始化,以使得该备份内存卡准备就绪,计算机可以将源内存卡的内存数据写入所述备份内存卡。对备份内存卡初始化,需要该内存卡已经插入硬件插槽,而实际上,何时将备份内存卡插入硬件插槽可以非常灵活,可以是指定备份内存卡之前即插入,也可以是在指定备份内存卡之后,以及执行内存数据的迁移之前的任何时间。具体来说初始化的场景可以分为三种,一种是内存数据的迁移启动之前,由用户按下备份单元上的按钮,该按钮产生初始化中断,使得计算机执行BIOS104对该备份内存卡的特殊初始化,一种是在启动内存数据迁移之前,计算机开机启动时,用户通过所述BIOS104的起始菜单,指定系统中的备份内存卡101-C,使得所述BIOS104重新启动所述计算机,对所述备份内存卡101-C进行特殊的初始化操作,一种是内存数据的迁移启动之后,如果BIOS检测到备份内存卡还没有完成初始化,可以临时启动对备份内存卡的初始化。
其中,对所述备份内存卡进行特殊初始化是指对所述备份内存卡进行配置,使得所述备份内存卡准备就绪并可以正常使用,但是对OS103不可见;所述初始化的过程包含正常初始化的各种行为,除了在初始化过程中避免为该备份内存卡分配系统地址,例如,对所述备份内存卡进行初始化可以包括为所述备份内存卡供电,配置相关性能等参数,配置所述备份内存卡与计算机中的处理器之间的通信连接,检测所述备份内存卡是否能够进行正常的读写操作等。在对所述备份内存卡进行初始化时,避免为所述备份内存卡分配系统地址,从而所述OS103无法获取所述备份内存卡的系统地址,不能对所述备份内存卡进行任何读写操作,即所述备份内存卡虽然已经准备就绪,但对所述OS不可见,此时所述OS不能使用所述备份内存卡。
关于触发内存数据迁移的触发
在本发明实施例中,内存数据的迁移的启动是根据源内存卡的故障情况或者用户的需求而触发并启动的,也就是说,计算机开机启动后,正常执行OS103的指令,根据接收或生成的内存数据迁移的触发指令中止正在执行的任务,启动内存数据的迁移。所述OS103在获取到所述内存数据迁移的触发指令之后,可以是立即中止当前正在执行的任务,执行内存数据的迁移,还可以是在计算机空闲时中止当前正在执行的任务,执行内存数据的迁移,例如,用户可以对OS103进行预先配置,将所述第一触发指令配置为优先级别最高的处理指令,使得所述OS103在获取到所述第一触发指令之后,立即终止当前正在执行的任务,执行内存数据的迁移,保障及时对故障内存卡的内存数据进行迁移。在本发明实施例中,所述OS103在获取到所述内存数据迁移的触发指令时,才进行内存数据的迁移,即针对用户指定的源内存卡或者有明确故障的源内存卡进行内存数据的迁移,不需要预先指定固定的源内存卡,也不需要预先配置源内存卡和备份内存卡的镜像关系,因此,本发明实施例针对明确地源内存卡实现内存数据的迁移的触发,即保证了故障的及时处理,又节约了计算机的资源,保证了计算机的高效率。
本发明实施例中内存数据迁移的触发指令用来指示OS103中止正在执行的任务以启动内存数据的迁移。由于本发明实施例可以实现内存数据的一次迁移,也可以实现内存数据的多次迁移,因此,在本发明实施例中内存数据迁移的触发指令可以包括第一触发指令和第二触发指令,将启动内存数据的第一次迁移的内存数据迁移的触发指令称为第一触发指令,将触发内存数据的后续迁移的内存数据迁移的触发指令称为第二触发指令。
在本发明实施例中,所述第一触发指令用于指示所述OS103执行内存数据的迁移,该第一触发指令的触发可以比较灵活,所述第一触发指令的触发可以比较灵活,例如可以根据用户的指示生成所述第一触发指令,还可以由所述源内存卡的内存控制器102-A触发所述第一触发指令。具体地,例如,
(1)所述源内存卡的内存控制器102-A还可以对所述源内存卡的错误数据进行监控,若所述错误数据超过阈值,触发所述第一触发指令;所述OS103根据所述源内存卡的内存控制器102-A触发的所述第一触发指令,确定错误数据超过阈值的内存卡为所述源内存卡101-A,并根据预先获取的所述备份内存卡的标识,确定所述备份内存卡101-C。
(2)所述第一触发指令还可以由OS根据用户发送的内存数据的迁移的启动指令来生成,也可以由OS根据用户在所述OS中预置的内存数据的迁移的启动策略来产生。例如用户直接向OS发送内存数据的迁移的启动指令,OS根据用户的启动指令产生所述第一触发指令,或者例如用户预先在OS中配置的按照时间或者处理器的运行状态来启动内存数据的迁移的启动策略,在该启动策略被满足时,OS产生所述第一触发指令。所述OS根据所述第一触发指令,中止正在执行的任务,启动内存数据的迁移指令。
关于分多次实现内存数据的迁移
本发明实施例的一个较优的实施例中,将分多次进行内存数据的迁移。由于在进行内存数据迁移的过程中,所述OS103中止了当前正在执行的任务,当内存数据迁移完毕后,所述OS103才能继续执行中止的任务或其它任务,如果待迁移的数据过多,则所述OS103将长时间中止系统的业务,影响了计算机的正常运行,因此,可以分多次将所述源内存卡的内存数据迁移到所述备份内存卡,在完成一次内存数据迁移之后,所述OS103可以中止执行内存数据的迁移,继续执行中止的任务或其它任务,直到进行下一次内存数据迁移时,所述OS103再中止当前正在执行的任务,继续执行内存数据的迁移,避免了计算机业务的长时间中断,保证了计算机的正常运行。
针对上述分多次进行内存数据迁移的方式,在本发明的又一实施例中,可以对所述OS103进行进一步改进,所述OS103还可以获取分次迁移策略,根据所述分次迁移策略指示所述源内存卡的内存控制器102-A分多次进行内存数据的迁移,所述分次迁移策略可以由用户配置,例如用户可以根据需求指定每次迁移的数据量或者每次迁移的时长,所述OS103用于根据所述指定的每次迁移的数据量或者每次迁移的时长,执行如下操作a)-d),直到将所述源内存卡101-A的内存数据全部迁移到所述备份内存卡101-C,所述操作a)-d)包括:
a)根据所述每次迁移指定的数据量确定当次迁移的数据量,指示所述源内存卡的内存控制器102-A将所述当次迁移的数据量迁移到所述备份内存卡101-C,或者,根据每次迁移的时长确定所述当次迁移的时长确定当次迁移的时长,指示所述源内存卡的内存控制器102-A在所述当次迁移的时长内进行内存数据的迁移,或者根据处理器的运行状态,指示所述源内存卡的内存控制器102-A在处理器的运行状态为空闲的时间段内进行内存数据的迁移,其中所述处理器的运行状态为空闲状态可以是处理器的占用率小于设定阈值;
b)在确定所述源内存卡的内存控制器102-A完成所述当次迁移之后,所述OS中止执行内存数据的迁移;
c)接收第二触发指令,所述第二触发指令用于指示所述OS继续进行内存数据的迁移;
d)返回执行步骤a)。
所述OS103通过上述操作a)-d),实现了分多次将所述源内存卡101-A的数据迁移到了所述备份内存卡101-C。
其中,操作c)中的第二触发指令,不仅可以由用户手动触发,还可以是根据预先配置的第二触发指令的触发条件来触发,例如可以在所述迁移策略中配置所述第二触发指令的触发条件,所述第二触发指令的触发条件可以包括每次迁移的间隔时长或者处理器的运行状态,所述OS103可以设置内存数据迁移定时器,所述内存数据迁移定时器根据每次迁移的间隔时长,触发所述第二触发指令,或者对所述处理器的运行状态进行实时监控,当所述中央处理的运行状态为空闲时触发所述第二触发指令。
在本发明实施例中,所述OS103可以根据所述分次迁移策略,指示所述源内存卡的内存控制器102-A分多次将所述源内存卡的内存数据迁移到所述备份内存卡,使得在进行内存数据迁移的过程中,所述OS103能够根据需求中止和恢复执行的任务,使得所述OS能够及时处理计算机中的业务,避免在进行大量内存数据迁移时导致的系统业务的长时间中断,保障了该计算机的正常运行。
关于将所述源内存卡和所述备份内存卡设置为镜像模式
在进行内存数据的迁移之前,所述OS103还可以将所述源内存卡和所述备份内存卡设置为镜像模式,使得所述源内存卡的内存控制102-A可以根据所述OS103的指示以及所述镜像模块,将所述源内存卡的内存数据写入所述备份内存卡。
具体地,在确定所述源内存卡101-A和所述备份内存卡101-C之后,所述OS103可以在所述源内存卡的内存控制器102-A中配置所述备份内存卡的标识,在所述备份内存卡的内存控制器102-C中配置所述源内存卡的标识,以使得所述源内存卡101-A与所述备份内存卡101-C之间设置为镜像模式。
所述OS103还可以向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器102-A读取所述源内存卡101A的数据,接收所述源内存卡的内存控制器102-A发送的所述数据读指令的响应消息,向所述源内存卡的内存控制器102-A发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡,从而所述源内存卡的内存控制器102-A可以根据所述OS103发送的数据读指令,读取所述源内存卡101-A的数据,根据所述OS103发送的数据写指令将所述读取的数据写回所述源内存卡101-A,以及根据所述源内存卡的内存控制器102-A中配置的所述备份内存卡的标识,将所述读取的数据写入所述备份内存卡101-C,从而实现了所述源内存卡101-A的数据迁移到所述备份内存卡101-C。
通过上述方式,所述OS103可以将所述源内存卡101-A的所有数据迁移到所述备份内存卡101-C,而不是只迁移在启动内存数据迁移之后,对所述源内存卡101-A进行写操作的新数据,保证了内存数据的完整迁移。并且,由于源内存卡和备份内存卡设置成了镜像模式,在所述OS继续执行中止的任务或者其它任务时,所述OS对源内存卡的任何写操作都会同时写到备份内存卡上,保证了在备份内存卡上的已经迁移的内存数据的准确性。
关于对非错误数据进行迁移
当内存卡中的错误数据过多时,可能导致内存卡故障甚至引起计算机的重启,因此,在进行内存数据迁移的过程中,可以只对非错误数据进行迁移。
所述OS103还可以指示所述源内存卡的内存控制器102-A确定所述源内存卡101-A中的非错误数据,并根据所述源内存卡的内存控制器102-A确定的所述非错误数据的标记,指示所述源内存卡的内存控制器102-A对所述非错误数据进行迁移,避免将所述源内存卡101-A中的错误数据迁移到所述备份内存卡101-C而可能导致的计算机重启或可能导致的所述备份内存卡101-C故障。
所述源内存卡的内存控制器102-A可以根据所述OS103的指示,确定所述源内存卡101-A中的非错误数据,并标记所述非错误数据,例如记录所述非错误数据或者错误数据的系统地址,使得所述OS103可以根据所述非错误数据或者错误数据的系统地址,指示所述源内存卡的内存控制器对所述非错误数据进行迁移,避免将所述源内存卡中的错误数据迁移到所述备份内存卡而可能导致的计算机重启。
关于迁移条件
为了保证内存数据迁移的顺利进行,在进行内存数据迁移之前,所述OS103可以检查所述备份内存卡101-C是否满足迁移条件,即是否可以作为所述源内存卡101-A数据迁移数据的目标设备,避免由于所述备份内存卡101-C由于未完成初始化或者内存容量不够等情况而导致的数据迁移失败。
具体地,所述BIOS104还可以在进行内存数据迁移之前,确定所述备份内存卡101-C是否完成特殊的初始化,若所述备份内存卡101-C完成特殊的初始化,则表明所述备份内存卡101-C可以正常使用,从而将所述源内存卡101-A和所述备份内存卡101-C设置为镜像模式,以便后续进行内存数据的迁移。
所述OS103还可以确定所述备份板的内存容量是否大于所述源内存卡101-A的内存容量,若所述备份板的内存容量是大于所述源内存卡101-A的内存容量,则确定满足所述迁移条件,可以后续将所述源内存卡的内存数据迁移到所述备份内存卡。
所述OS103还可以确定所述源内存卡101-A与所述备份内存卡101-C是否属于同一个处理器控制,如果不属于,表示可以将所述源内存卡101-A的数据迁移到所述备份内存卡,从而将所述源内存卡106和所述备份内存卡107设置为镜像模式,以便后续进行内存数据的迁移。
所述OS103可以从所述BIOS104获取所述备份内存卡是否完成初始化,所述备份内存卡的内存容量等信息,从而判断所述备份内存卡是否满足迁移条件。
关于内存数据迁移完成之后的备份内存卡与源内存卡的替换
当所述源内存卡的内存控制器102-A将所述源内存卡101-A的数据全部迁移到所述备份内存卡101-C之后,所述OS103还可以建立所述源内存卡101-A的系统地址与所述备份内存卡101-C的映射关系,将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡,使得所述备份内存卡101-C可以替代所述源内存卡101-A,接管所述OS103对所述源内存卡101-A的所有读写操作。
在所述备份内存卡已经替换了所述源内存卡之后,所述OS103还可以对所述源内存卡101-A执行下电操作,例如,对所述源内存卡的内存控制器102-A的寄存器进行配置,从而对所述源内存卡101-A下电,使得在所述计算机在不下电的情况下,可以移除或者更换所述源内存卡101-A,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。
一种内存数据的迁移方法
结合图1所示的计算机,本发明实施例提供了一种内存数据的迁移方法,如图2所示,用于迁移计算机中内存数据,所述方法包括:
S201:所述计算机的OS获取第一触发指令,所述第一触发指令用于指示所述OS执行内存数据的迁移
所述第一触发指令可以是由源内存卡的内存控制器触发的,例如,当源内存卡的内存控制器监控到某一个源内存卡出现多次错误,已经达到预设阈值,可以通过该第一触发指令指示OS对所述出现多次错误的源内存卡启动内存数据的迁移;该第一触发指令可以是由所述OS根据用户的指示生成的,例如,当用户发现某个内存卡性能不稳定或是其它需要更换的情况,可以向所述OS发送的内存数据的迁移的启动指令,以使得所述OS根据所述启动指令生成所述第一触发指令执行内存数据的迁移,又例如,用户可以在操作系统中预先配置内存数据的迁移的启动策略,当所述启动策略被满足时,所述OS生成所述第一触发指令。
S202:所述OS中止当前正在执行的任务以启动内存数据的迁移。
所述OS在接收到所述第一触发指令后,可以中止当前正在执行的任务,进行内存数据的迁移。
S203:所述OS确定待迁移内存数据的源内存卡。
在启动内存数据的迁移之后,所述OS需要确定待迁移内存数据的源内存卡,所述OS可以通过查询计算机的内存控制器,确定触发所述第一触发指令的内存控制器对应的内存卡为源内存卡,或者根据用户的指示确定需要进行迁移内存数据的内存卡为源内存卡。
S204:所述OS为所述源内存卡确定备份内存卡。
所述OS还需要为所述源内存卡确定备份内存卡,以将所述源内存卡的内存数据迁移到所述备份内存卡。所述备份内存卡可以是暂时没有分配系统地址的内存卡,对所述OS不可见,所述OS暂时不会对所述备份内存卡进行写操作。
所述备份内存卡可以是预先配置的,也可以临时插入并指配的,具体实现后续实施例会进行详细的说明。
S205:所述OS指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述操作系统的指示将所述源内存卡的内存数据迁移到所述备份内存卡。
在确定了所述源内存卡和所述备份内存卡之后,所述OS可以指示所述源内存卡的内存控制器开始进行内存数据的迁移,例如,所述OS可以指示所述源内存卡的内存控制器读取该源内存卡的内存数据,然后指示所述源内存卡的内存控制器将读取的源内存卡的内存数据写入所述备份内存卡,从而实现了内存数据的迁移,所述OS通过上述读取和写入所述源内存卡的内存数据的方式,可以将所述源内存卡的所有内存数据迁移到所述备份内存卡,而不是仅仅只迁移启动内存数据迁移后,源内存卡中新写入的数据。
在本发明实施例中,所述OS可以接收第一触发指令,确定待迁移内存数据的源内存卡,为所述源内存卡确定备份内存卡从而可以指示所述源内存卡的内存控制器将所述源内存卡的内存数据写入所述备份内存卡,在计算机不下电的情况下,能够对所述源内存卡的内存数据进行迁移,实现了对故障内存卡的在线维护,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。此外,在本发明实施例中,所述OS在有内存数据迁移的需要时,即接收到所述第一触发指令时,才进行内存数据的迁移,既保证了内存卡故障的及时处理,又节约了系统资源。
方法具体实施例一
结合图1所示的计算机,本发明实施例提供了一种内存数据的迁移方法,如图3所示,用于迁移计算机中内存数据,例如,能够将源内存卡的内存数据迁移到备份内存卡,所述源内存卡为对OS103可见的内存卡,即OS103可以进行读写操作的内存卡,也就是可能产生故障需要迁移数据的内存卡,如本实施例中的内存卡101-A和102-B,所述备份内存卡为对OS103不可见的内存卡,即OS103暂时不可进行读写操作的内存卡,可能作为待迁移数据的目标设备,如本实施例中的内存卡101-C,当内存数据迁移完毕之后,可以更改所述备份内存卡的配置信息,例如为其分配系统地址,使得OS103可以对所述备份内存卡进行读写操作。
在本发明实施例中,所述备份内存卡101-C可以是计算机开机之前已经插入硬件插槽的内存卡,也可以是在计算机开机启动后临时新增的内存卡,在进行内存数据迁移之前,对所述备份内存卡进行特殊初始化(不分配系统地址,后续实施例详细描述)即可。
本发明实施例的内存数据的迁移方法可以包括:
S301:BIOS获取指定的备份内存卡的标识,并将其配置到ACPI列表中。
用户可以在所述计算机开机启动时,通过BIOS的起始菜单配置指定的备份内存卡的标识,所述BIOS可以获得用户配置的备份内存卡的标识并写入高级配置和电故障管理接口(AdvancedConfigurationandPowerManagementInterface,ACPI)列表中,以使得后续OS可以通过查询所述ACPI列表,获取所述备份内存卡的信息。
其中,所述ACPI列表为OS与BIOS交互的信息表的集合,OS和BIOS都可以进行访问,当然,在本发明实施例中,所述备份内存卡的标识不一定要配置在ACPI列表中,只需要配置在BIOS和OS都可以访问的一个存储空间或列表中即可,使得所述BIOS在配置所述备份内存卡的标识之后,所述OS可以获取到所述备份内存卡的标识,本发明实施例在此不作限定。
所述备份单元的标识可以是所述备份内存卡所插入的槽位的槽位编号或者所述槽位相关的号码。在本发明实施例中,在指定备份内存卡的标识时,如果所述备份内存卡已经插入槽位中,则所述备份内存卡的标识可以为当前插入的槽位的槽位编号,如果所述备份内存卡还未插入到槽位中,则所述备份内存卡的标识可以是用户指定的槽位的槽位编号,所述备份内存卡可以在后续需要使用时直接插入所述用户指定的槽位。
步骤301为可选步骤,用户并不一定要在计算机开机启动时将所述备份内存卡的标识提供给BIOS,还可以在计算机开机启动后将所述备份内存卡的标识直接提供给OS,OS记录所述备份内存卡的标识,并在后续使用时获取自身记录的所述备份内存卡的标识,本发明实施例在此不做限定。
S302:所述BIOS对所述备份内存卡进行初始化,所述初始化过程避免为所述备份内存卡分配系统地址。
在所述BIOS获取用户指定的所述备份内存卡的标识之后,可以重新启动计算机,以对所述备份内存卡进行特殊的初始化,即初始化过程避免为所述备份内存卡分配系统地址。
具体地,所述BIOS可以根据所述备份内存卡的标识确定所述备份内存卡是否已经插入槽位,如果已经插入槽位,即确定所述备份内存卡已经硬件存在,则可以在此时对所述备份内存卡进行初始化,使得所述备份内存卡已经准备就绪,但所述OS暂时不可以对所述备份内存卡进行读写操作。
其中,对所述备份内存卡进行初始化是指对所述备份内存卡进行配置,使得所述备份内存卡准备就绪,可以正常使用,例如,对所述备份内存卡进行初始化可以包括为所述备份内存卡供电,配置相关性能等参数,配置所述备份内存卡与计算机中的处理器之间的通信连接,检测所述备份内存卡是否能够进行正常的读写操作等,需要注意的是,在对所述备份内存卡进行初始化时,避免为所述备份内存卡分配系统地址,从而所述OS无法获取所述备份内存卡的系统地址,不能对所述备份内存卡进行任何读写操作,即所述备份内存卡虽然已经准备就绪,但对所述OS不可见,此时所述OS不能使用所述备份内存卡。
在本发明实施例中,对所述备份内存卡进行特殊初始化即指上述初始化过程。
当然,本步骤为可选步骤,实际上,所述BIOS还可以在获取所述备份内存卡的标识之后不对所述备份内存卡进行特殊的初始化,在后续需要使用该备份内存卡的时候再对所述备份内存卡进行特殊的初始化。
S303:源内存卡的内存控制器对所述源内存卡的错误数据进行监控,判断所述错误数据是否超过阈值,若所述错误数据超过阈值,则所述源内存卡的内存控制器触发第一触发指令。
由于当内存卡中的错误数据超过一定值时,可能导致该内存卡发生故障,甚至引起计算机重启,因此,可以对所述源内存卡进行监测,当所述源内存卡中错误数据过多时,OS执行内存数据的迁移,保证问题的解决。
具体地,在计算机开机启动时,用户可以通过所述BIOS的起始菜单对所述源内存卡的内存控制器进行配置,使得所述源内存卡的内存控制器可以对所述源内存卡的错误数据进行监控,当所述源内存卡的错误数据超过阈值时,触发第一触发指令,所述第一触发指令用于指示所述OS启动内存数据的迁移,其中,所述阈值可以由用户指定,还可以是系统的默认值。
如果计算机中的源内存卡有多个时,可以对每个源内存卡的错误数据进行监控,当监控到其中任何一个源内存卡的错误数据超过所述阈值时,触发所述第一触发指令第一触发指令,指示所述OS启动对该内存卡的内存数据迁移。
进一步,所述源内存卡的内存控制器可以在自身的寄存器中记录所述源内存卡的错误数据的数量超过阈值,以便后续指示所述OS确定出问题的内存卡即源内存卡。
在本发明实施例中,能够对计算机中的源内存卡进行监控,针对有问题的源内存卡触发所述第一触发指令,进行内存数据的迁移,能够保证故障及时解决,并且只在源内存卡出现故障时才进行内存数据迁移,节省了系统资源。
S304:所述OS接收到所述第一触发指令,中止当前正在执行的任务以启动内存数据的迁移。
在接收到所述第一触发指令之后,所述OS可以是立即中止当前正在执行的任务,执行内存数据的迁移,还可以是在计算机空闲时中止当前正在执行的任务,执行内存数据的迁移。
进一步,可以对所述OS进行预先配置,将所述第一触发指令配置为优先级别最高的处理指令,使得所述OS在获取到所述第一触发指令之后,立即终止当前正在执行的任务,执行内存数据的迁移,保障及时对故障内存卡的内存数据进行迁移,以及时处理和解决所述计算机中的内存卡故障的问题。
S305:所述OS查询所述源内存卡的内存控制器,确定所述源内存卡。
在所述OS中止当前正在执行的任务,启动内存数据的迁移之后,需要确定待迁移数据的内存卡,即源内存卡,所述OS可以确定触发所述第一触发指令的源内存控制器对应的内存卡为源内存卡,例如,查询所述计算机中的内存控制器的寄存器,通过所述源内存卡的内存控制器的寄存器中记录的信息,确定所述源内存卡。
S306:所述OS查询所述ACPI列表,确定所述备份内存卡的标识。
所述ACPI列表中预先记录了备份内存卡的标识,所述OS在确定执行内存数据迁移之后,可以从所述ACPI列表中获取备份内存卡的标识,所述备份内存卡的标识可能为一个,还可能为多个,如果为多个所述备份内存卡的标识,则所述OS可以从所述ACPI列表中获取多个所述备份内存卡的标识,并根据所述源内存卡的信息,从多个所述备份内存卡的标识中挑选一个作为所述备份内存卡的标识,例如根据所述源内存卡的内存容量,从所述多个备份内存卡中挑选一个内存容量大于所述源内存卡的内存容量的内存卡,确定该内存卡的标识作为所述备份内存卡的标识,又例如,可以根据所述源内存卡归属的处理器的信息,从所述多个备份内存卡中挑选一个与所述源内存卡不属于同一个处理器控制的内存卡,确定该内存卡的标识作为所述备份内存卡的标识。
S307:所述OS确定所述备份内存卡是否满足迁移条件。
在进行所述源内存卡的内存数据的迁移之前,所述BIOS需要确定所述备份内存卡是否满足迁移条件,如果满足迁移条件,才对所述源内存卡进行内存数据的迁移,保证了内存数据迁移的顺利进行,避免由于所述备份内存卡内存容量不够等问题而导致的数据迁移失败。
确定所述备份内存卡是否满足迁移条件具体可以是:确定所述备份内存卡是否完成初始化,若所述备份内存卡完成初始化,则表明所述备份内存卡准备就绪,满足迁移条件;如果在执行本步骤之前,所述步骤S302并未执行,即如果所述备份内存卡没有完成特殊初始化,所述OS可以通过触发系统管理中断,指示所述BIOS对所述备份内存卡进行特殊初始化,使得所述备份内存卡准备就绪,满足迁移条件。
进一步,确定所述备份内存卡是否满足迁移条件还可以是:确定所述备份内存卡的内存容量是否大于所述源内存卡的内存容量,如果大于所述源内存卡的内存容量,则表明可以将所述源内存卡的内存数据迁移到所述备份内存卡,所述备份内存板满足迁移条件;或者,
确定所述源内存卡与所述备份内存卡是否属于同一个处理器控制,如果确定不属于同一个处理器控制,则表明可以将所述源内存卡的内存数据迁移到所述备份内存卡,所述备份内存板满足迁移条件。
所述OS可以从所述BIOS获取所述备份内存卡的信息,例如所述备份内存卡是否完成初始化,所述备份内存卡的内存容量,而且判断所述备份内存卡是否满足迁移条件。
S308:若所述备份内存卡满足迁移条件,则所述OS指示所述源内存卡的内存控制器执行内存巡检操作,以确定所述源内存卡中的非错误数据。
在进行内存数据迁移之前,所述OS可以指示所述源内存卡的内存控制器执行内存巡检操作,以确定所述源内存卡中的非错误数据,并根据检测结果打上检测标记,使得后续将所述源内存卡的内存数据迁移到所述备份内存卡时,可以根据检测标记只迁移所述源内存卡中的非错误数据,避免了将错误数据迁移到所述备份内存卡而导致的计算机重启等问题。
所述源内存卡的内存控制器,能够根据所述OS的指示,启动内存巡检操作,所述内存巡检操作具体可以是,根据设定的检错机制,对所述源内存卡的内存数据进行检测,以判断所述源内存卡中哪些数据是错误数据,并记录所述错误数据的系统地址,即根据检测结果打上检测标记,使得后续进行内存数据迁移时,所述OS能够根据记录的所述错误数据的系统地址,迁移所述源内存卡中的非错误数据。
所述源内存卡的内存控制器在执行完巡检操作之后,可以对自身的寄存器进行配置,所述OS可以通过查询该寄存器,确定所述巡检操作是否完成,当所述巡检操作完成之后,所述OS可以将所述源内存卡和所述备份内存卡设置为镜像模式,以进行内存数据的迁移。
此步骤为可选步骤,所述OS并不一定要指示所述源内存控制器进行内存巡检操作。
S309:若所述备份内存卡满足迁移条件,则所述OS将所述源内存卡和所述备份内存卡设置为镜像模式。
为了实现内存数据的迁移,所述OS可以将所述源内存卡和所述备份内存卡设置为镜像模式,在设置了所述镜像模式之后,所述源内存卡的内存控制能够根据所述OS的指示,将所述源内存卡的内存数据写入所述备份内存卡。
具体地,所述OS可以在所述源内存卡的内存控制器中配置所述备份内存卡的标识,在所述备份内存卡的内存控制器中配置所述源内存卡的标识,以使得所述源内存卡与所述备份内存卡之间设置为镜像模式,从而所述源内存卡能够根据所述OS的指示,将所述源内存卡的内存数据发送到所述备份内存卡的内存控制器,使得所述备份内存卡的内存控制器将所述源内存卡的内存数据写入所述备份内存卡。
此外,将所述源内存卡和所述备份内存卡设置为镜像模式还可以包括,所述OS将所述源内存卡的内存控制器的地址配置信息复制到所述备份内存卡的内存控制器,使得所述备份内存卡按照所述源内存卡的地址分配方式,为所述备份内存卡分配系统地址。
S310:所述OS指示所述源内存卡的内存控制器进行内存数据的迁移。
所述OS在配置所述源内存卡与所述备份内存卡之间的镜像模式之后,可以指示所述源内存卡的内存控制器对所述源内存卡进行内存数据的迁移。
具体地,所述OS可以向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据,在确定所述源内存卡的内存控制器完成所述数据读指令之后,所述OS可以向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡,从而使得所述源内存卡的内存控制器可以根据所述数据读指令,读取所述源内存卡的内存数据,然后再根据所述数据写指令,将所述读取的数据写入所述源内存卡,以及根据所述镜像模式,将所述读取的数据发送给所述备份内存卡的内存控制器,使得所述备份内存卡的内存控制器能够将所述读取的数据写入所述备份内存卡,实现了内存数据的迁移,能够将所述源内存卡的所有内存数据迁移到所述备份内存卡,而不仅仅只迁移启动内存数据迁移后,所述源内存卡中新写入的数据。
由于在所述源内存卡的内存控制器在进行内存数据迁移前,所述操作系统中止了当前正在执行的任务,当内存数据迁移完毕后,所述OS才能继续执行中止的任务或其它任务,如果待迁移的数据过多,则所述OS将长时间中止系统的业务,影响了计算机的正常运行,因此,可以分多次将所述源内存卡的内存数据迁移到所述备份内存卡,在完成一次内存数据迁移之后,所述OS可以中止执行内存数据的迁移,继续执行中止的任务或其它任务,直到进行下一次内存数据迁移时,所述OS再中止当前正在执行的任务,继续执行内存数据的迁移,避免了计算机业务的长时间中断,保证了计算机的正常运行。
在本发明实施例中,为了实现上述分多次进行内存数据的迁移方法,用户可以预先在所述OS中配置每次迁移的数据量或每次迁移的时长,即配置分次迁移策略,使得所述OS可以按照所述分次迁移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迁移,具体地,所述OS可以,通过以下步骤指示所述源内存卡的内存控制器分多次进行内存数据的迁移:
a)所述OS根据所述每次迁移指定的数据量确定当次迁移的数据量,指示所述源内存卡的内存控制器将所述当次迁移的数据量迁移到所述备份内存卡,或者,所述OS根据每次迁移的时长确定所述当次迁移的时长确定当次迁移的时长,指示所述源内存卡的内存控制器在所述当次迁移的时长内进行内存数据的迁移;
b)在确定所述源内存卡的内存控制器完成所述当次迁移之后,所述OS中止执行内存数据的迁移;
c)接收第二触发指令,所述第二触发指令用于指示所述OS继续进行内存数据的迁移;
d)返回执行步骤a),直至所述源内存卡的内存数据全部迁移到所述备份内存卡。
在步骤b)中,当所述计算机中止执行内存数据的迁移时,所述OS可能对所述源内存板进行读写操作,即使所述OS对所述源内存卡中已经迁移的数据块A进行数据写操作,由于设置了镜像模式,所述源内存卡的内存控制器也能够将所述写操作的数据写入所述备份内存卡的数据块A,避免了数据的丢失,保证了所述备份内存卡与所述源内存卡数据的一致性。
此外,用户还可以在所述分次迁移策略中配置所述第二触发指令的触发条件,所述第二触发指令的触发条件可以是每次迁移的间隔时长,则所述OS可以从所述迁移策略中获取所述每次迁移的间隔时长,并根据所述每次迁移的间隔时长配置内存数据迁移定时器,以使得所述内存数据迁移定时器根据所述每次迁移的间隔时长触发所述第二触发指令指示所述OS继续进行内存数据的迁移,所述内存数据迁移定时器可以设置在所述OS中,当所述内存数据迁移定时器定时时间到达时,进入中断处理函数,中止当前执行的任务,继续进行内存数据的迁移。
所述第二触发指令还可以根据处理器的运行状态被触发,所述OS可以监控所述处理器的运行状态,并根据所述处理器的运行状态,确定是否触发所述第二触发指令,执行内存数据的迁移,例如,所述OS可以在CPU处于空闲状态,或者CPU的占用率小于特定阈值时触发自身中断,使得所述OS中止当前执行的任务,继续进行内存数据的迁移。
进一步,所述OS在指示所述源内存卡的内存控制器进行内存数据的迁移时,可以根据所述源内存卡的内存控制器记录的所述错误数据的地址,指示所述源内存卡的内存控制器将所述源内存卡中的非错误数据迁移到所述备份内存卡,避免将所述源内存卡中的错误数据迁移到所述备份内存卡而可能导致的计算机重启。
S311:所述OS将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
在内存数据迁移完成之后,所述OS可以将源内存卡的系统地址映射到所述备份内存卡,使得所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡,所述备份内存卡可以替代所述源内存卡,接管所述OS对所述源内存卡的所有读写操作。
在本发明实施例中,所述OS可以通过配置所述计算机的CPU,将所述源内存卡的系统地址映射到所述备份内存卡。
S312:所述OS对所述源内存卡执行下电操作。
在所述源内存卡的内存数据迁移完成之后,所述OS可以对所述源内存卡执行下电操作,例如,对所述源内存卡的内存控制器进行配置,以对所述源内存卡下电,使得在所述计算机不下电的情况下,可以移除或者更换所述源内存卡,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。
在本发明实施例中,OS可以接收第一触发指令确定所述源内存卡和所述备份内存卡,并在确定所述备份内存卡满足迁移条件后,将所述源内存卡和所述备份内存卡设置为镜像模式,从而可以指示所述源内存卡的内存控制器根据所述镜像模式,将所述源内存卡的内存数据写入所述备份内存卡,在计算机不下电的情况下,能够对所述源内存卡的内存数据进行迁移,实现了对故障内存卡的在线维护,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。并且,在本发明实施例中,所述OS针对有问题的源内存卡的内存控制器触发的第一触发指令,进行内存数据的迁移,能够保证故障及时解决,并且只在源内存卡出现故障时才进行内存数据迁移,有效节约了系统资源。
进一步,所述OS可以获取分次迁移策略,根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次将所述源内存卡的内存数据迁移到所述备份内存卡,使得在进行内存数据迁移的过程中,能够根据需求让所述OS中止和恢复执行的任务,使得所述OS能够及时处理计算机中的业务,避免在进行大量内存数据迁移时导致的系统业务的长时间中断,保障了该计算机的正常运行。
此外,所述OS能够指示所述源内存卡的内存控制器确定所述源内存卡中的非错误数据,并指示所述源内存卡的内存控制器将所述非错误数据迁移到所述备份内存卡,避免将所述源内存卡中的错误数据迁移到所述备份内存卡而可能导致的计算机重启。
在本发明实施例中,所述OS在进行内存数据迁移之前,可以确定所述备份内存卡是否满足迁移条件,如果满足迁移条件,才对所述源内存卡进行内存数据的迁移,保证了内存数据迁移的顺利进行,避免由于所述备份内存卡内存容量不够等问题而导致的数据迁移失败。
具体实施例二
结合图1所示的计算机,本发明实施例提供了一种内存数据的迁移方法,如图4所示,用于迁移计算机中内存数据,例如能够将计算机的源内存卡的内存数据迁移到备份内存卡,所述源内存卡可以是内存卡101-A,所述备份内存卡可以是内存卡101-C,所述内存卡101-C可以是计算机开机之前已经插入硬件插槽的内存卡,也可以是临时新增的内存卡,在进行内存数据迁移之前,所述内存卡101-C的标识被配置在ACPI列表中并在执行迁移之前执行完毕初始化过程即可,本发明实施例的内存数据的迁移方法可以包括:
S401:OS获取并记录指定的备份内存卡的标识。
在OS下,可以配置每一个内存卡所插入的槽位的槽位编号或者所述槽位相关的号码,则所述备份单元的标识可以是所述备份内存卡所插入的槽位的槽位编号或者所述槽位相关的号码,所述备份内存卡可以是在计算机开机启动前就已经插入槽位中,也可以是在计算机开机启动后再插入到槽位中的。
在所述计算机开机启动后,用户可以向所述OS提供指定的备份内存卡的标识,所述OS可以获取并记录指定的备份内存卡的标识,以使得OS后续在确定执行内存数据的迁移时,可以获取所述备份内存卡的信息,所述备份内存卡的标识可以记录在OS中,也可以记录在ACPI列表或者其他存储单元中,本发明实施例在此不作限定。
本步骤为可以步骤,用户还可以将所述备份内存卡的标识提供给所述BIOS,所述OS在进行内存数据迁移前获取所述BIOS记录的所述备份内存卡的标识,确定所示备份内存卡即可,本发明实施例在此不作限定。
进一步,在本发明实施例中,所述备份内存卡作为待迁移数据的目标设备,是对所述OS不可见的内存卡,需要对所述备份内存卡进行特殊的初始化,来保证所述备份内存卡准备就绪,但避免分配系统地址,使得所述备份内存卡对所述OS不可见。当所述指定的备份内存卡是在计算机开机启动后再插入到槽位中的,则可以在所述备份内存卡插入槽位时,通过所述备份内存卡上的触发按钮,触发BIOS对所述备份内存卡进行特殊的初始化,当然,也可以在后续需要使用该备份内存卡的时候再对所述备份内存卡进行初始化。当所述指定的备份内存卡是在计算机开机启动前就已经插入槽位中,则在计算机开机启动时,计算机运行BIOS,用户还需要通过BIOS的起始菜单,配置所述备份内存卡的标识,使得BIOS在确定所述备份内存卡已经硬件存在时,对所述备份内存卡进行特殊的初始化。
其中,对所述备份内存卡进行特殊的初始化是指对所述备份内存卡进行配置,使得所述备份内存卡准备就绪,可以正常使用,例如,对所述备份内存卡进行初始化可以包括为所述备份内存卡供电,配置相关性能等参数,配置所述备份内存卡与计算机中的处理器之间的通信连接,检测所述备份内存卡是否能够进行正常的读写操作等,需要注意的是,在对所述备份内存卡进行初始化时,避免为所述备份内存卡分配系统地址,从而所述OS无法获取所述备份内存卡的系统地址,不能对所述备份内存卡进行任何读写操作,即所述备份内存卡虽然已经准备就绪,但对所述OS不可见,此时所述OS不能使用所述备份内存卡。
在本发明实施例中,对所述备份内存卡进行特殊的初始化即指上述初始化过程。
S402:所述OS获取并记录指定的源内存卡的标识。
在所述计算机开机启动后,当用户发现某个内存卡性能不稳定或是工作时间太长时或者其他需要更换的情况,可以指定该内存卡为待迁移数据的内存卡,即源内存卡,并将所述源内存卡的标识提供给所述OS,所述OS可以记录所述源内存卡的标识,以使得后续所述OS可以获取所述源内存卡的信息,所述备份内存卡的标识可以记录在OS中,也可以记录在ACPI列表或者其他存储单元中,本发明实施例在此不作限定。
S403:所述OS接收根据用户的指示生成第一触发指令,根据所述第一触发指令中止当前正在执行的任务,以启动内存数据的迁移。
当用户需要进行内存数据迁移时,可以向OS发送内存数据的迁移的启动指令,所述OS根据所述启动指令生成所述第一触发指令,并根据所述第一触发指令中止当前正在执行的任务,进入中断处理函数,执行内存数据的迁移。
在本发明实施例中,当用户需要对源内存卡进行内存数据迁移时,可以通过多条指令分别指定所述源内存卡和所述备份内存卡的标识,以及指示所述OS执行内存数据的迁移;还可以是通过一条指令指示所述OS执行内存数据的迁移,所述指令携带所述源内存卡和所述备份内存卡的标识,本发明实施例在此不作限定。
S404:所述OS获取记录的所述源内存卡和所述备份内存卡的标识。
在所述OS获取到用户触发的所述第一触发指令之后,所述OS进入中断处理函数,启动内存数据的迁移,可以获取自身记录的所述源内存卡和所述备份内存卡的标识,即确定所述源内存卡和所述备份内存卡。
当所述备份内存卡有多个时,则所述OS可以根据所述源内存卡的信息,从多个所述备份内存卡的标识中挑选一个作为所述备份内存卡的标识,例如根据所述源内存卡的内存容量,从所述多个备份内存卡中挑选一个内存容量大于所述源内存卡的内存容量的内存卡,确定该内存卡的标识作为所述备份内存卡的标识,又例如,可以根据所述源内存卡归属的处理器的信息,从所述多个备份内存卡中挑选一个与所述源内存卡不属于同一个处理器控制的内存卡,确定该内存卡的标识作为所述备份内存卡的标识。
S405:所述OS确定所述备份内存卡是否满足迁移条件。
S406:若所述备份内存卡满足迁移条件,则所述OS指示所述源内存卡的内存控制器执行内存巡检操作,以确定所述源内存卡中的非错误数据。
S407:若所述备份内存卡满足迁移条件,则所述OS将所述源内存卡和所述备份内存卡设置为镜像模式。
S408:所述OS指示所述源内存卡的内存控制器进行内存数据的迁移。
S409:所述OS将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
S410:所述OS对所述源内存卡执行下电操作。
在本发明实施例中,步骤S405-S410的具体实施方式与步骤S307-S312类似,在此不再赘述。
在本发明实施例中,OS可以接收用户第一触发指令确定所述源内存卡和所述备份内存卡,并在确定所述备份内存卡满足迁移条件后,将所述源内存卡和所述备份内存卡设置为镜像模式,从而可以指示所述源内存卡的内存控制器根据所述镜像模式,将所述源内存卡的内存数据写入所述备份内存卡,在计算机不下电的情况下,能够对所述源内存卡的内存数据进行迁移,实现了对故障内存卡的在线维护,解决了现有技术中需要对整个计算机下电才能进行故障内存卡的更换或维护的问题。并且,在本发明实施例中,在计算机运行过程中,所述OS可以根据用户触发的第一触发指令,进行内存数据的迁移,能够保证故障及时解决,并且只在源内存卡出现故障时才进行内存数据迁移,有效节约了系统资源。
进一步,所述OS可以获取分次迁移策略,根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次将所述源内存卡的内存数据迁移到所述备份内存卡,使得在进行内存数据迁移的过程中,能够根据需求让所述OS中止和恢复执行的任务,使得所述OS能够及时处理计算机中的业务,避免在进行大量内存数据迁移时导致的系统业务的长时间中断,保障了该计算机的正常运行。
此外,所述OS能够指示所述源内存卡的内存控制器确定所述源内存卡中的非错误数据,并指示所述源内存卡的内存控制器将所述非错误数据迁移到所述备份内存卡,避免将所述源内存卡中的错误数据迁移到所述备份内存卡而可能导致的计算机重启。
在本发明实施例中,所述OS在进行内存数据迁移之前,可以确定所述备份内存卡是否满足迁移条件,如果满足迁移条件,才对所述源内存卡进行内存数据的迁移,保证了内存数据迁移的顺利进行,避免由于所述备份内存卡内存容量不够等问题而导致的数据迁移失败。
一种内存数据迁移装置
结合图1所示的计算机,本发明实施例提供了一种内存数据迁移装置,如图6所示,用于迁移计算机中内存数据,例如能够将计算机的源内存卡的内存数据迁移到备份内存卡,所述源内存卡可以是内存卡101-A,所述备份内存卡可以是内存卡101-C,所述内存卡101-C可以是计算机开机之前已经配置在计算机中的内存卡,也可以是临时新增的内存卡,在进行内存数据迁移之前,所述备份内存卡执行完毕初始化过程即可。本发明实施例的内存数据迁移装置可以是OS,所述装置可以包括接获取单元501、确定单元502、镜像单元503和迁移单元504。
所述获取单元501,用于获取第一触发指令,所述第一触发指令用于指示操作系统执行内存数据的迁移,在本发明实施例中,触发所述第一触发指令比较灵活,可以包括如下两种方式:方式一,所述源内存卡的内存控制器可以对所述源内存卡的错误数据进行监控,若所述错误数据超过阈值,触发所述第一触发指令,所述获取单元501具体用于接收所述源内存卡的内存控制器触发的所述第一触发指令;方式二,所述获取单元501根据用户发送的内存数据的迁移的启动指令或者用户预置的内存数据的迁移的启动策略生成所述第一触发指令。
所述确定单元502,用于在所述获取单元获取所述第一触发指令之后,中止当前正在执行的任务以启动内存数据的迁移,确定待迁移内存数据的源内存卡,以及为所述源内存卡确定备份内存卡。所述确定单元502确定所述源内存卡的方式也比较灵活,例如,当所述第一触发指令由所所述源内存卡的内存控制器触发,所述确定单元502可以通过查询所述源内存卡的内存控制器的寄存器,确定触发了所述第一触发指令的内存控制器对应的内存卡为所述源内存卡,所述源内存卡的内存控制器监控到所述源内存卡的错误数据的数量超过阈值时,可以在自身的寄存器中记录所述源内存卡的错误数据的数量超过阈值;又例如,如果所述第一触发指令是根据用户的指示生成,则所述获取单元501还可以接收用户发送的所述源内存卡的标识,则所述装置还可以包括记录单元505,用于记录所述源内存卡的标识,以便后续可以随时获取所述源内存卡的标识,所述确定单元502可以根据所述记录单元505记录的所述源内存卡的标识,确定所述源内存卡。
此外,确定备份内存卡也可以有两种方式,用户可以将所述备份内存卡的标识提供给OS,则所述获取单元501还可以获取用户指定的所述备份内存卡的标识,所述记录单元505还用于记录所述备份内存卡的标识,所述确定单元502可以根据所述记录单元记录的所述备份内存卡的标识,确定所述备份内存卡;或者,用户可以将所述备份内存卡的标识提供给BIOS,所述记录单元505还可以获取所述BIOS记录的备份内存卡的标识,并确定所述备份内存卡。
所述镜像单元503,用于将所述源内存卡和所述备份内存卡设置为镜像模式,例如,所述镜像单元503可以在所述源内存卡的内存控制器中配置所述备份内存卡的标识,在所述备份内存卡的内存控制器中配置所述源内存卡的标识,实现将所述源内存单与所述备份内存卡设置为镜像模式,在设置了所述镜像模式之后,所述源内存卡的内存控制能够根据所述备份内存卡的标识,将所述源内存卡的内存数据写入所述备份内存卡。
所述迁移单元504,用于指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器利用所述镜像单元503设置的镜像模式,将所述源内存卡的内存数据写入到所述备份内存卡,具体地,所述迁移单元504可以向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据,以及向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡,以使得所述源内存卡的内存控制器根据所述镜像模式,将所述读取的数据写入所述备份内存卡,实现将所述源内存卡的内存数据迁移到所述备份内存卡。
进一步,所述迁移单元504还用于获取分次迁移策略,根据所述分次迁移策略指示所述源内存卡的内存控制器分多次进行内存数据的迁移,使得所述计算机在进行内存数据迁移的过程中,能够根据需求中止和恢复执行的任务,及时处理系统业务,避免在进行大量内存数据迁移时导致的系统业务长时间中断,保证了系统的正常运行。
具体地,所述分次迁移策略可以包括每次迁移的数据量或每次迁移的时长,所述迁移单元504具体用于循环执行如下操作a)-d),直至将所述源内存卡的内存数据全部迁移到所述备份内存卡,所述操作a)-d)包括:
a)根据所述每次迁移指定的数据量确定当次迁移的数据量,指示所述源内存卡的内存控制器102-A将所述当次迁移的数据量迁移到所述备份内存卡101-C,或者,根据每次迁移的时长确定所述当次迁移的时长确定当次迁移的时长,指示所述源内存卡的内存控制器102-A在所述当次迁移的时长内进行内存数据的迁移,或者根据处理器的运行状态,指示所述源内存卡的内存控制器102-A在处理器的运行状态为空闲的时间段内进行内存数据的迁移,其中所述处理器的运行状态为空闲状态可以是处理器的占用率小于设定阈值;;
b)在确定所述源内存卡的内存控制器102-A完成所述当次迁移之后,中止执行内存数据的迁移;
c)接收第二触发指令,所述第二触发指令用于指示所述OS继续进行内存数据的迁移;
d)返回执行步骤a)。
其中,所述第二触发指令可以通过预置的第二触发指令的触发条件触发,则所述分次迁移策略还可以包括所述第二触发指令的触发条件,所述第二触发指令的触发条件可以包括每次迁移的间隔时长或处理器的运行状态,所述迁移单元504还用于根据所述每次迁移的间隔时长,配置内存数据迁移定时器,以使得所述内存数据迁移定时器根据所述每次迁移的间隔时长触发所述第二触发指令;或者,根据所述处理器的运行状态,配置内存数据迁移触发模块,以使得所述内存数据迁移触发模块根据所述处理器的运行状态,触发所述第二触发指令。
进一步,所述装置还可以包括:
检错单元506,用于指示所述源内存卡的内存控制器确定所述源内存卡中的非错误数据;则所述迁移单元504具体用于根据所述源内存卡的内存控制器确定的所述非错误数据的信息,指示所述源内存卡的内存控制器对所述非错误数据进行迁移。
进一步,所述迁移单元504还用于在确定所述源内存卡的内存控制器完成所述源内存卡的内存数据迁移之后,建立所述源内存卡的系统地址与所述备份内存卡的映射关系,将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡,使得所述备份内存卡可以替代所述源内存卡,接管所述OS对所述源内存卡的所有读写操作。
在本发明实施例中,所述获取单元501可以接收第一触发指令,所述确定单元502可以在所述获取单元501接收所述第一触发指令之后,中止当前正在执行的任务以启动内存数据的迁移,确定所述源内存卡和所述备份内存卡,所述镜像单元506可以将所述源内存卡和所述备份内存卡设置为镜像模式,从而所述迁移单元504可以指示所述源内存卡的内存控制器根据所述镜像模式,将所述源内存卡的内存数据写入所述备份内存卡,实现了在计算机正常运行的情况下,将所述源内存卡的内存数据的迁移,解决了现有技术中无法进行内存数据迁移的问题,从而能够进行故障内存的在线维护,避免现有技术中对整个计算机下电来进行故障内存的更换或维护。并且,在本发明实施例中,所述装置针对有问题的源内存卡的内存控制器触发的第一触发指令,进行内存数据的迁移,能够保证故障及时解决,并且只在源内存卡出现故障时才进行内存数据迁移,有效节约了系统资源。
进一步,所述迁移单元504还可以获取分次迁移策略,根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次将所述源内存卡的内存数据迁移到所述备份内存卡,使得在进行内存数据迁移的过程中,能够根据需求中止和恢复执行的任务,避免在进行大量内存数据迁移时导致的计算机业务的长时间中断,保障了该计算机的正常运行。
此外,所述检错单元506可以指示所述源内存卡的内存控制器确定所述源内存卡中的非错误数据,使得所述迁移单元可以指示所述源内存卡的内存控制器将所述非错误数据迁移到所述备份内存卡,避免将所述源内存卡中的错误数据迁移到所述备份内存卡而可能导致的计算机重启。
如图6,为本发明实施例提供的内存数据迁移装置的结构组成示意图。本发明实施例提供的内存数据迁移装置可包括:
处理器601、存储器602、系统总线604和通信接口605。处理器601、存储器602和通信接口605之间通过系统总线604连接并完成相互间的通信。
处理器601可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器602可以为高速RAM存储器,也可以为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
存储器602用于计算机执行指令603。具体的,计算机执行指令603中可以包括程序代码。
当所述内存数据迁移装置运行时,处理器601运行计算机执行指令603,可以执行图2-图4任意之一所述的方法流程。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (32)
1.一种计算机,包括:
处理器;
主存储器,用于加载所述计算机的操作系统的指令,所述主存储器包括一个或多个内存卡;
内存控制器,每个内存卡配置有对应的内存控制器;其特征在于,
所述操作系统用于获取第一触发指令,根据所述第一触发指令中止当前正在执行的任务,确定待迁移内存数据的源内存卡,为所述源内存卡确定备份内存卡;
所述操作系统还用于将所述源内存卡和所述备份内存卡设置为镜像模式,向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据,向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡;
所述源内存卡的内存控制器具体用于根据所述操作系统的数据读指令读取所述源内存卡的内存数据,接收所述操作系统发送的所述数据写指令,根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据发送给所述备份内存卡的内存控制器;
所述备份内存卡的内存控制器用于将接收到的所述源内存卡的内存数据写入到所述备份内存卡。
2.根据权利要求1所述的计算机,其特征在于,所述操作系统具体用于获取分次迁移策略,根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迁移。
3.根据权利要求2所述的计算机,其特征在于,所述操作系统具体用于根据所述分次迁移策略循环执行如下操作a)-d),直至将所述源内存卡的内存数据全部迁移到所述备份内存卡,所述操作a)-d)包括:
a)确定当次迁移的数据量,指示所述源内存卡的内存控制器将所述当次迁移的数据量迁移到所述备份内存卡,或者,确定当次迁移的时长,指示所述源内存卡的内存控制器在所述当次迁移的时长内进行内存数据的迁移;
b)在确定所述源内存卡的内存控制器完成所述当次迁移之后,中止执行内存数据的迁移;
c)接收第二触发指令,所述第二触发指令用于指示所述操作系统继续进行内存数据的迁移;
d)返回执行步骤a),直至所述源内存卡的内存数据全部迁移到所述备份内存卡。
4.根据权利要求3所述的计算机,所述分次迁移策略包括每次迁移指定的数据量或每次迁移的时长;
所述操作系统具体用于根据所述每次迁移指定的数据量确定所述当次迁移的数据量,或根据每次迁移的时长确定所述当次迁移的时长。
5.根据权利要求4所述的计算机,其特征在于,所述分次迁移策略还包括每次迁移的间隔时长或处理器的运行状态,所述第二触发指令根据所述每次迁移的间隔时长或处理器的运行状态被触发。
6.根据权利要求1-5任一项所述的计算机,其特征在于,所述源内存卡的内存控制器还用于对所述源内存卡的错误数据进行监控,若所述错误数据的数量超过阈值,所述源内存卡的内存控制器触发所述第一触发指令;
所述操作系统具体用于接收所述源内存卡的内存控制器触发的所述第一触发指令。
7.根据权利要求6所述的计算机,其特征在于,所述源内存卡的内存控制器还用于在自身的寄存器中记录所述源内存卡的错误数据的数量超过阈值;
则,所述操作系统具体用于查询所述源内存卡的内存控制器的寄存器,确定所述源内存卡。
8.根据权利要求1-5任一项所述的计算机,其特征在于,所述操作系统还用于配置内存数据的迁移的启动策略,或者接收用户发送的内存数据的迁移的启动指令,所述操作系统根据所述启动策略或启动指令生成所述第一触发指令。
9.根据权利要求8所述的计算机,其特征在于,所述启动策略或者启动指令还包括所述源内存卡的标识;
所述操作系统还用于将所述源内存卡的标识记录到存储模块;
所述操作系统具体用于查询所述存储模块,确定所述源内存卡的标识。
10.根据权利要求7或9所述的计算机,其特征在于,所述操作系统具体用于根据预先配置的所述备份内存卡的标识,确定所述备份内存卡。
11.根据权利要求1-5或7或9任一项所述的计算机,其特征在于,所述操作系统还用于确定所述备份内存卡是否满足迁移条件,如果满足所述迁移条件,执行所述指示所述源内存卡的内存控制器进行内存数据的迁移的操作;
所述迁移条件包括但不限于以下条件之一或其任意组合:所述备份内存卡完成初始化、所述备份板的内存容量大于或等于所述源内存卡的内存容量。
12.根据权利要求11所述的计算机,其特征在于,所述计算机还包括基本输入输出系统;
所述基本输入输出系统用于根据所述操作系统的指示,对所述备份内存卡进行初始化;
其中,所述初始化避免为所述备份内存卡分配系统地址。
13.根据权利要求1-5或7或9或12任一项所述的计算机,其特征在于,所述操作系统还用于指示所述源内存卡的内存控制器检测所述源内存卡中的非错误数据;
所述源内存卡的内存控制器还用于根据所述操作系统的检测指示,确定所述源内存卡中的非错误数据,并根据检测结果打上检测标记;
所述操作系统具体用于指示所述源内存卡的内存控制器根据所述检测标记对所述非错误数据进行迁移。
14.根据权利要求1-5或7或9或12任一项所述的计算机,其特征在于,所述操作系统还用于在确定所述源内存卡的内存数据全部迁移到所述备份内存卡之后,将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
15.一种内存数据的迁移方法,其特征在于,用于迁移计算机中内存数据,所述方法包括:
所述计算机的操作系统获取第一触发指令,所述第一触发指令用于指示所述操作系统执行内存数据的迁移;
所述操作系统中止当前正在执行的任务以启动内存数据的迁移;
所述操作系统确定待迁移内存数据的源内存卡;
所述操作系统为所述源内存卡确定备份内存卡;
所述操作系统将所述源内存卡和所述备份内存卡设置为镜像模式;
所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述处理器的指示读取所述源内存卡的内存数据,将所读取的所述源内存卡的内存数据写入到所述备份内存卡,包括:
所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述操作系统的指示读取所述源内存卡的内存数据,将所读取的所述源内存卡的内存数据写入到所述备份内存卡,包括:
所述操作系统向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据;
所述源内存卡的内存控制器根据所述操作系统的数据读指令读取所述源内存卡的内存数据;
所述操作系统向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡;
所述源内存卡的内存控制器接收所述操作系统发送的所述数据写指令,根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据发送给所述备份内存卡的内存控制器,以使得所述备份内存卡的内存控制器将接收到的所述源内存卡的内存数据写入到所述备份内存卡。
16.根据权利要求15所述的方法,其特征在于,在所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移之前,还包括:
所述操作系统获取分次迁移策略;
则,所述操作系统根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迁移。
17.根据权利要求16所述的方法,其特征在于,
所述操作系统根据所述分次迁移策略指示所述源内存卡的内存控制器分多次进行内存数据的迁移,包括:
a)所述操作系统确定当次迁移的数据量,指示所述源内存卡的内存控制器将所述当次迁移的数据量迁移到所述备份内存卡,或者,所述操作系统确定当次迁移的时长,指示所述源内存卡的内存控制器在所述当次迁移的时长内进行内存数据的迁移;
b)在确定所述源内存卡的内存控制器完成所述当次迁移之后,所述操作系统中止执行内存数据的迁移;
c)所述操作系统接收第二触发指令,所述第二触发指令用于指示所述操作系统继续进行内存数据的迁移;
d)所述操作系统返回执行步骤a),直至所述源内存卡的内存数据全部迁移到所述备份内存卡。
18.根据权利要求17所述的方法,所述分次迁移策略包括每次迁移指定的数据量或每次迁移的时长;
则所述操作系统根据所述每次迁移指定的数据量确定所述当次迁移的数据量,或根据每次迁移的时长确定所述当次迁移的时长。
19.根据权利要求18所述的方法,其特征在于,所述分次迁移策略还包括每次迁移的间隔时长或处理器的运行状态,所述第二触发指令根据所述每次迁移的间隔时长或处理器的运行状态被触发。
20.根据权利要求15-19任一项所述的方法,其特征在于,还包括:
所述源内存卡的内存控制器对所述源内存卡的错误数据进行监控,若所述错误数据的数量超过阈值,所述源内存卡的内存控制器触发所述第一触发指令;
则,所述操作系统接收所述源内存卡的内存控制器触发的所述第一触发指令。
21.根据权利要求20所述的方法,其特征在于,还包括:
所述源内存卡的内存控制器在自身的寄存器中记录所述源内存卡的错误数据的数量超过阈值;
所述操作系统确定所述源内存卡包括:
所述操作系统查询所述源内存卡的内存控制器的寄存器,确定所述源内存卡。
22.根据权利要求15-19任一项所述的方法,其特征在于,所述操作系统获取第一触发指令包括:
所述操作系统根据预先配置内存数据的迁移的启动策略或用户发送的内存数据的迁移的启动指令,生成所述第一触发指令。
23.根据权利要求22所述的方法,其特征在于,还包括:
所述操作系统获取并记录所述所述启动策略或者启动指令中包含的所述源内存卡的标识;
所述操作系统确定源内存卡包括:
所述操作系统根据记录的所述源内存卡的标识,确定所述源内存卡。
24.根据权利要求21或23所述的方法,其特征在于,还包括:
记录预先配置的所述备份内存卡的标识;
所述操作系统确定备份内存卡包括:
所述操作系统根据记录的所述备份内存卡的标识,确定所述备份内存卡。
25.根据权利要求15-19或21或23任一项所述的方法,其特征在于,所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移之前,还包括:
所述操作系统确定所述备份内存卡是否满足迁移条件,如果满足所述迁移条件,执行所述指示所述源内存卡的内存控制器进行内存数据的迁移的步骤;
所述迁移条件包括但不限于以下条件之一或其任意组合:所述备份内存卡完成初始化、所述备份板的内存容量大于或等于所述源内存卡的内存容量。
26.根据权利要求25所述的方法,其特征在于,若所述备份内存卡未完成初始化,所述方法还包括:
所述操作系统指示基本输入输出系统对所述备份内存卡进行初始化,其中,所述初始化避免为所述备份内存卡分配系统地址。
27.根据权利要求15-19或21或23或26任一项所述的方法,其特征在于,在所述操作系统指示所述源内存卡的内存控制器进行内存数据的迁移之前,还包括:
所述操作系统指示所述源内存卡的内存控制器检测所述源内存卡中的非错误数据并进行标记;
则,所述操作系统指示所述源内存卡的内存控制器根据检测标记对所述非错误数据进行迁移。
28.根据权利要求15-19或21或23或26任一项所述的方法,其特征在于,在所述源内存卡的内存数据全部迁移到所述备份内存卡之后,还包括:
所述操作系统将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
29.一种内存数据的迁移装置,其特征在于,用于迁移计算机中内存数据,所述装置包括:
获取单元,用于获取第一触发指令,所述第一触发指令用于指示操作系统执行内存数据的迁移;
确定单元,用于在所述获取单元获取所述第一触发指令之后,中止当次正在执行的任务以启动内存数据的迁移,确定待迁移内存数据的源内存卡,以及为所述源内存卡确定备份内存卡;
迁移单元,用于指示所述源内存卡的内存控制器进行内存数据的迁移,以使得所述源内存卡的内存控制器根据所述操作系统的指示将所述源内存卡的内存数据迁移到所述备份内存卡;
镜像单元,用于将所述源内存卡和所述备份内存卡设置为镜像模式;
所述迁移单元具体用于向所述源内存卡的内存控制器发送数据读指令,所述数据读指令用于指示所述源内存卡的内存控制器读取所述源内存卡的内存数据,向所述源内存卡的内存控制器发送数据写指令,所述数据写指令用于指示所述源内存卡的内存控制器将所述读取的数据写回所述源内存卡,以使得所述源内存卡的内存控制器根据所述源内存卡和所述备份内存卡之间的镜像模式,将所读取的所述源内存卡的内存数据写入到所述备份内存卡源内存卡的内存数据。
30.根据权利要求29所述的装置,其特征在于,在所述迁移单元具体用于获取分次迁移策略,根据所述分次迁移策略,指示所述源内存卡的内存控制器分多次进行内存数据的迁移。
31.根据权利要求30所述的装置,其特征在于,所述迁移单元具体用于循环执行如下操作a)-d),直至将所述源内存卡的内存数据全部迁移到所述备份内存卡,所述操作a)-d)包括:
a)确定当次迁移的数据量,指示所述源内存卡的内存控制器将所述当次迁移的数据量迁移到所述备份内存卡,或者,确定当次迁移的时长,指示所述源内存卡的内存控制器在所述当次迁移的时长内进行内存数据的迁移;
b)在确定所述源内存卡的内存控制器完成所述当次迁移之后,中止执行内存数据的迁移;
c)接收第二触发指令,所述第二触发指令用于指示所述操作系统继续进行内存数据的迁移;
d)返回执行步骤a),直至所述源内存卡的内存数据全部迁移到所述备份内存卡。
32.根据权利要求29-31任一项所述的装置,其特征在于,所述迁移单元还用于确定所述源内存卡的内存控制器完成所述源内存卡的内存数据迁移之后,将所述源内存卡的系统地址指向的目标内存卡更改为所述备份内存卡。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/087645 WO2015074232A1 (zh) | 2013-11-22 | 2013-11-22 | 一种内存数据的迁移方法、计算机和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103842968A CN103842968A (zh) | 2014-06-04 |
CN103842968B true CN103842968B (zh) | 2015-11-25 |
Family
ID=50804807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380002307.9A Active CN103842968B (zh) | 2013-11-22 | 2013-11-22 | 一种内存数据的迁移方法、计算机和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9632888B2 (zh) |
EP (2) | EP2966571B1 (zh) |
CN (1) | CN103842968B (zh) |
WO (1) | WO2015074232A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2612829T3 (es) * | 2013-11-22 | 2017-05-18 | Huawei Technologies Co., Ltd. | Ordenador y método de migración de datos de memoria |
JP6517549B2 (ja) * | 2015-03-13 | 2019-05-22 | 東芝メモリ株式会社 | メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム |
CN106201905B (zh) * | 2016-07-11 | 2019-09-24 | 浪潮(北京)电子信息产业有限公司 | 一种内存编址方法 |
US10430302B2 (en) * | 2017-04-12 | 2019-10-01 | Qualcomm Incorporated | Data retention with data migration |
US10452501B2 (en) * | 2017-06-15 | 2019-10-22 | International Business Machines Corporation | Copying data from mirrored storage to auxiliary storage arrays co-located with primary storage arrays |
US10810141B2 (en) * | 2017-09-29 | 2020-10-20 | Intel Corporation | Memory control management of a processor |
JP6912421B2 (ja) * | 2018-06-01 | 2021-08-04 | ファナック株式会社 | 制御装置 |
EP3648430B1 (de) * | 2018-11-05 | 2021-06-02 | Wincor Nixdorf International GmbH | Hardware-sicherheitsmodul |
CN110008090B (zh) * | 2019-04-15 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种监控内存错误的方法、装置和计算机可读存储介质 |
CN111966399B (zh) * | 2019-05-20 | 2024-06-07 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN110245127A (zh) * | 2019-06-12 | 2019-09-17 | 成都九洲电子信息系统股份有限公司 | 一种基于流程控制的数据迁移方法 |
CN110333901A (zh) * | 2019-07-09 | 2019-10-15 | 环胜电子(深圳)有限公司 | 存储装置的名称更新方法 |
CN112486313B (zh) * | 2019-09-11 | 2024-03-26 | 华为技术有限公司 | 终端的节电方法和装置 |
CN111557688B (zh) * | 2020-04-03 | 2023-03-10 | 广州市第一人民医院(广州消化疾病中心、广州医科大学附属市一人民医院、华南理工大学附属第二医院) | 一种超声诊断仪、超声诊断仪的数据记录方法及装置 |
JP2023003988A (ja) * | 2021-06-25 | 2023-01-17 | 富士通株式会社 | 情報処理装置および運用監視プログラム |
CN114780473A (zh) * | 2022-05-18 | 2022-07-22 | 长鑫存储技术有限公司 | 内存条热插拔方法及装置、内存条 |
EP4300319A4 (en) | 2022-05-18 | 2024-02-28 | Changxin Memory Technologies, Inc. | HOT PLUGGING METHOD AND APPARATUS FOR MEMORY MODULE, AND MEMORY MODULE |
US20240211416A1 (en) * | 2022-12-27 | 2024-06-27 | Advanced Micro Devices, Inc. | Physical Adjustment to System Memory with Chipset Attached Memory |
CN116909495B (zh) * | 2023-09-14 | 2023-12-15 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453408B1 (en) * | 1999-09-30 | 2002-09-17 | Silicon Graphics, Inc. | System and method for memory page migration in a multi-processor computer |
CN102326149A (zh) * | 2011-07-28 | 2012-01-18 | 华为技术有限公司 | 内存迁移的实现方法和装置 |
CN102662723A (zh) * | 2012-02-28 | 2012-09-12 | 北京邮电大学 | 一种基于停机时间阈值的虚拟机内存迁移方法 |
CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5212784A (en) * | 1990-10-22 | 1993-05-18 | Delphi Data, A Division Of Sparks Industries, Inc. | Automated concurrent data backup system |
JP2923702B2 (ja) * | 1991-04-01 | 1999-07-26 | 株式会社日立製作所 | 記憶装置及びそのデータ修復方法 |
WO1996025801A1 (en) | 1995-02-17 | 1996-08-22 | Trustus Pty. Ltd. | Method for partitioning a block of data into subblocks and for storing and communicating such subblocks |
US5680539A (en) * | 1995-07-11 | 1997-10-21 | Dell Usa, L.P. | Disk array system which performs data reconstruction with dynamic load balancing and user-specified disk array bandwidth for reconstruction operation to maintain predictable degradation |
US6487623B1 (en) * | 1999-04-30 | 2002-11-26 | Compaq Information Technologies Group, L.P. | Replacement, upgrade and/or addition of hot-pluggable components in a computer system |
US6834386B1 (en) * | 1999-07-16 | 2004-12-21 | Microsoft Corporation | Method and system for regulating background tasks using performance measurements |
US6816986B1 (en) * | 1999-12-28 | 2004-11-09 | Intel Corporation | Remapping memory devices during operation |
US6766469B2 (en) * | 2000-01-25 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | Hot-replace of memory |
US6854070B2 (en) * | 2000-01-25 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Hot-upgrade/hot-add memory |
US7028215B2 (en) * | 2002-05-03 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Hot mirroring in a computer system with redundant memory subsystems |
US7139942B2 (en) * | 2003-07-21 | 2006-11-21 | Sun Microsystems, Inc. | Method and apparatus for memory redundancy and recovery from uncorrectable errors |
US7917713B2 (en) * | 2006-12-20 | 2011-03-29 | International Business Machines Corporation | Optimized data migration with a support processor |
US8037266B2 (en) * | 2007-01-02 | 2011-10-11 | Sandisk Il Ltd. | Apparatus and method for archiving digital content |
US7552152B2 (en) * | 2007-03-05 | 2009-06-23 | International Business Machines Corporation | Risk-modulated proactive data migration for maximizing utility in storage systems |
US20090150721A1 (en) * | 2007-12-10 | 2009-06-11 | International Business Machines Corporation | Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System |
US20090222640A1 (en) * | 2008-02-28 | 2009-09-03 | Bauman Ellen M | Memory Migration in a Logically Partitioned Computer System |
US8219851B2 (en) * | 2009-12-29 | 2012-07-10 | Intel Corporation | System RAS protection for UMA style memory |
JP5760614B2 (ja) * | 2011-04-05 | 2015-08-12 | 富士通株式会社 | ライブラリシステム、管理装置、ライブラリ装置、管理方法および管理プログラム |
JP5720483B2 (ja) * | 2011-08-11 | 2015-05-20 | 富士通株式会社 | 移行プログラム、移行装置、および移行方法 |
US9317350B2 (en) * | 2013-09-09 | 2016-04-19 | International Business Machines Corporation | Method and apparatus for faulty memory utilization |
ES2612829T3 (es) * | 2013-11-22 | 2017-05-18 | Huawei Technologies Co., Ltd. | Ordenador y método de migración de datos de memoria |
-
2013
- 2013-11-22 WO PCT/CN2013/087645 patent/WO2015074232A1/zh active Application Filing
- 2013-11-22 CN CN201380002307.9A patent/CN103842968B/zh active Active
- 2013-11-22 EP EP13897815.0A patent/EP2966571B1/en active Active
- 2013-11-22 EP EP17162958.7A patent/EP3282362B1/en active Active
-
2016
- 2016-03-01 US US15/058,100 patent/US9632888B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453408B1 (en) * | 1999-09-30 | 2002-09-17 | Silicon Graphics, Inc. | System and method for memory page migration in a multi-processor computer |
CN102326149A (zh) * | 2011-07-28 | 2012-01-18 | 华为技术有限公司 | 内存迁移的实现方法和装置 |
CN102662723A (zh) * | 2012-02-28 | 2012-09-12 | 北京邮电大学 | 一种基于停机时间阈值的虚拟机内存迁移方法 |
CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103842968A (zh) | 2014-06-04 |
US20160179643A1 (en) | 2016-06-23 |
EP3282362A1 (en) | 2018-02-14 |
EP2966571B1 (en) | 2017-06-21 |
EP3282362B1 (en) | 2019-03-13 |
EP2966571A1 (en) | 2016-01-13 |
US9632888B2 (en) | 2017-04-25 |
EP2966571A4 (en) | 2016-06-01 |
WO2015074232A1 (zh) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103842968B (zh) | 一种内存数据的迁移方法、计算机和装置 | |
CN103827834B (zh) | 一种内存数据的迁移方法、计算机和装置 | |
US9910664B2 (en) | System and method of online firmware update for baseboard management controller (BMC) devices | |
CN107122321A (zh) | 硬件修复方法、硬件修复系统以及计算机可读取存储装置 | |
CN103761122A (zh) | 一种芯片固件的升级方法和系统 | |
CN110780811B (zh) | 数据保护方法、装置及存储介质 | |
CN112199240B (zh) | 一种节点故障时进行节点切换的方法及相关设备 | |
CN102141939A (zh) | 可记录整机重启原因的装置 | |
CN110083491A (zh) | 一种bios初始化方法、装置、设备及存储介质 | |
CN113687779B (zh) | 数据迁移方法、装置、电子设备及可读存储介质 | |
CN105353980A (zh) | 一种内存数据的迁移方法、计算机和装置 | |
CN105824650A (zh) | 计算机系统、可适性休眠控制模块及其控制方法 | |
CN110008105A (zh) | 一种bmc时间保留方法、装置及电子设备和存储介质 | |
CN107729170A (zh) | 一种hba卡生成转存文件的方法及装置 | |
WO2024000535A1 (zh) | 分区表更新方法、装置、电子设备及存储介质 | |
CN114371960A (zh) | 嵌入式设备的参数管理方法以及系统 | |
CN118069057A (zh) | 一种数据写入方法、装置、设备及介质 | |
CN117349094A (zh) | 测试固态硬盘功能交互的方法、装置、设备及存储介质 | |
CN114465880A (zh) | 一种基于bmc的故障网口确认方法、装置及介质 | |
CN117992305A (zh) | 虚拟机监测方法、装置、电子设备及存储介质 | |
CN114301927A (zh) | 一种分布式系统中主节点选取方法、装置及介质 | |
CN115827591A (zh) | 异构系统迁移数据一致性校验方法、装置、终端及介质 | |
CN110750394A (zh) | 一种基于gpio管脚实现主备单板的控制方法及终端 | |
CN116796454A (zh) | 产品安装位置的分配方法、装置、终端设备及介质 | |
JP2018010341A (ja) | 情報処理装置及びその制御方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211221 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |