CN110945472B - 用于冗余阵列数据对准的系统和方法 - Google Patents

用于冗余阵列数据对准的系统和方法 Download PDF

Info

Publication number
CN110945472B
CN110945472B CN201880048816.8A CN201880048816A CN110945472B CN 110945472 B CN110945472 B CN 110945472B CN 201880048816 A CN201880048816 A CN 201880048816A CN 110945472 B CN110945472 B CN 110945472B
Authority
CN
China
Prior art keywords
data storage
storage device
partitions
subset
data
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
Application number
CN201880048816.8A
Other languages
English (en)
Other versions
CN110945472A (zh
Inventor
G·蒂尔尼
W·A·斯沃茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mastercard International Inc
Original Assignee
Mastercard International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mastercard International Inc filed Critical Mastercard International Inc
Publication of CN110945472A publication Critical patent/CN110945472A/zh
Application granted granted Critical
Publication of CN110945472B publication Critical patent/CN110945472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

数据对准(DA)计算设备通信地耦合到第一和第二数据存储设备。第一数据存储设备存储包括分区的第一子集和第二子集的分区的阵列、以及包括用于每个分区的引用指针的与阵列相关联的元数据。DA计算设备更新元数据以移除用于分区的第二子集的引用指针并且由此从阵列移除第二子集,存储定义第一数据存储设备内的第一子集和第二数据存储设备内的第二子集的分区表,在第二数据存储设备内存储与阵列相关联的元数据,更新第二数据存储设备以包括分区的第二子集,以及更新由数据存储设备存储的元数据以将分区的第二子集链接到阵列。

Description

用于冗余阵列数据对准的系统和方法
相关申请的交叉引用
本申请要求2017年8月2日提交的美国专利申请No.15/667,036的权益和优先权。以上申请的整个公开通过引用并入本文。
背景技术
本公开的领域一般涉及数据存储配置,并且更具体地涉及在操作系统转换期间分区的存储设备的数据对准。
服务器和其它数据存储设备被用于存储和传递各种应用的数据。例如,服务器可以被用于存储与支付网络相关联的数据,其促进使用支付卡(例如,信用卡或借记卡)和支付账户的交易。服务器通常包括多个数据存储设备(例如,硬盘驱动器和固态驱动器)以提供数据冗余和/或增加的数据存储。在每个服务器上安装操作系统以使得服务器能够执行标准功能,诸如与其它设备进行通信、存储数据以及显示图形用户界面(GUI)。操作系统包括用于每个功能的协议的集合,使得根据操作系统支持的具体格式接收、处理和传输数据。例如,操作系统可以包括用于连接的存储设备存储数据的一个或多个文件系统架构,诸如文件分配表(FAT)、第四扩展文件系统(ext4)和新技术文件系统(NTFS)。
在一些情况下,可以调度服务器切换或转换操作系统(即,由于缺乏支持、替代操作系统等)。然而,在操作系统之间进行转换可能导致以新操作系统不支持的文件系统架构存储的数据出现问题。因此,服务器可能需要现场技术观察、附加的数据存储设备和/或一次或多次重启来安装新操作系统。对于试图访问服务器和由服务器存储的数据的用户,特别是对于对由服务器执行的特定处理或服务关键的数据,由安装和转换处理导致的停机时间可能长并且不方便。
发明内容
在一个方面,一种数据对准(DA)计算设备包括通信地耦合到第一数据存储设备和第二数据存储设备的处理器、以及与处理器通信的存储器。第一数据存储设备存储分区的阵列和与分区的阵列相关联的元数据。分区的阵列包括分区的第一子集和镜像分区的第一子集的分区的第二子集,并且元数据包括用于分区的阵列的每个分区的引用指针。存储器存储指令,这些指令在由处理器执行时使处理器更新元数据以移除用于分区的第二子集的引用指针并且由此从分区的阵列移除分区的第二子集,在第一和第二数据存储设备内存储定义第一数据存储设备内的分区的第一子集和第二数据存储设备内的分区的第二子集的分区表,在第二数据存储设备内存储与分区的阵列相关联的元数据,更新第二数据存储设备以包括分区的第二子集,以及更新由第一数据存储设备和第二数据存储设备存储的元数据以将分区的第二子集链接到分区的阵列。
在另一方面,提供了一种用于在包括分区的第一子集和分区的第二子集的分区的阵列中对准数据的方法。第一数据存储设备存储分区的阵列和与分区的阵列相关联的元数据。方法至少部分地由DA计算设备执行。方法包括更新元数据以移除用于分区的第二子集的引用指针并且由此从分区的阵列移除分区的第二子集,在第一数据存储设备和第二数据存储设备内存储定义第一数据存储设备内的分区的第一子集和第二数据存储设备内的分区的第二子集的分区表,在第二数据存储设备内存储与分区的阵列相关联的元数据,更新第二数据存储设备以包括分区的第二子集,以及更新由第一数据存储设备和第二数据存储设备存储的元数据以将分区的第二子集链接到分区的阵列。
在还另一方面,提供了至少一种具有包含在其上的计算机可执行指令的非暂态计算机可读存储介质。当由至少一个处理器执行时,计算机可执行指令使处理器更新与包括分区的第一子集和分区的第二子集的分区的阵列相关联的元数据以移除用于分区的第二子集的引用指针并且由此从分区的阵列移除分区的第二子集。元数据和分区的阵列存储在第一数据存储设备上。指令还使处理器在第一和第二数据存储设备内存储定义第一数据存储设备内的分区的第一子集和第二数据存储设备内的分区的第二子集的分区表,在第二数据存储设备内存储与分区的阵列相关联的元数据,更新第二数据存储设备以包括分区的第二子集,以及更新由第一数据存储设备和第二数据存储设备存储的元数据以将分区的第二子集链接到分区的阵列。
附图说明
图1-7示出了本文中描述的方法和系统的示例实施例。
图1是图示根据本公开的一个实施例的用于在操作系统转换期间对准数据的示例数据对准(DA)系统的框图。
图2是包括与主机计算设备通信的DA计算设备的示例DA系统的框图。
图3是图1中示出的系统的示例数据示意图。
图4是用于在图1中示出的系统中使用的远程设备的示例实施例的扩展框图。
图5图示了用于在图1中示出的系统中使用的主机系统的示例配置。
图6是用于使用图1中示出的系统在操作系统转换期间对准数据的示例处理的流程图。
图7是可以在描述的系统和方法的实施例中使用的一个或多个示例计算设备的组件的示图。
具体实施方式
根据本公开的系统和方法针对数据存储配置,并且更具体地针对在操作系统转换期间分区的存储设备的数据对准。
本文中描述了数据对准(DA)系统,用于跨多个物理数据存储设备对准数据存储分区,特别是在操作系统(OS)之间的转换期间。在示例实施例中,DA系统包括第一数据存储设备和第二数据存储设备。第一和第二数据存储设备可以是硬盘驱动器(HDD)、固态驱动器(SSD)和/或任何其它合适类型的数据存储。每个数据存储设备包括多个分区。在至少一些实施例中,第一和第二数据存储设备被以多盘(MD)阵列配置,以用于数据冗余、增加存储和/或改善性能。例如,第一和第二数据存储设备可以处于独立盘冗余阵列(RAID)配置,诸如RAID 1或RAID 5。在RAID 1配置中,存储在第一数据存储设备上的数据被镜像或复制到第二数据存储设备。如本文中使用的,“镜像”是指冗余阵列内存储数据的匹配副本的多个分区。冗余阵列(诸如RAID 1)用于在存储设备故障的情况下防止数据丢失。即,当冗余阵列内的分区或存储设备发生故障时,可经由阵列内的相应的镜像访问由故障分区存储的数据的副本。
在示例实施例中,第一和第二数据存储设备存储与冗余阵列相关联的元数据。元数据包括用于冗余阵列内的每个分区的引用指针。在一些实施例中,引用指针识别与分区相关联的块设备文件。块设备文件是使得软件能够与数据存储设备的设备驱动程序交互以在分区上读取和写入数据的接口。在一个示例中,引用指针与引用相应的块设备文件的块设备标识符相关联。在至少一些实施例中,元数据是由第一和第二数据存储设备两者存储的超级块的一部分。
在示例实施例中,第一和第二数据存储设备与一个或多个处理器以及被配置为存储用于处理器的指令的存储器设备通信。第一和第二数据存储设备存储与OS相关联的指令和数据,这些指令和数据在由处理器执行时使处理器作为计算设备(诸如服务器)操作。OS包括用于计算设备的各种功能的具体格式和协议的集合,包括但不限于文件系统架构、网络协议、内核架构等。第一和第二数据存储设备根据安装的OS支持的一个或多个文件系统架构进行格式化。
在至少一些实施例中,安装的OS(“第一OS”)可以被新的OS(“第二OS”)替换。例如,如果安装的OS由于缺乏支持而贬值,那么可以在计算设备上安装新的OS。为了将计算设备转换到第二OS,与第二OS相关联的映像文件由处理器执行以将第二OS安装在第一和第二数据存储设备中的至少一个上。在示例实施例中,第二OS被安装在第一数据存储设备上,而第二数据存储设备具有被安装的第一OS。更具体地,在每个数据存储设备上生成分区(在本文中称为“OS分区”)以安装相应的OS,使得用户可以测试第二OS同时保持返回第一OS的能力。OS分区以相应的OS支持(但其它OS可能不支持)的特定文件系统架构进行格式化。可以在第一和第二数据存储设备上安装附加的分区以存储数据。在某些实施例中,附加的分区可以以第一和第二OS两者都支持的文件系统架构进行格式化。
为了防止冗余阵列跨第一和第二数据存储设备进行同步(这将重写OS分区中的一个),利用映像文件执行kickstart配置文件以在单个数据存储设备(即,第一数据存储设备)上配置阵列。即,kickstart配置文件将阵列配置为仅包括第一数据存储设备的分区,并将镜像的另一半视为故障设备。通过将镜像的一部分视为故障设备,第二OS不重写第二数据存储设备上的数据以完成阵列的镜像。相反,阵列继续利用每个镜像中的至少分区进行操作。因此,第一和第二OS两者都被存储并且可以由计算设备选择性地启动。在确定完全转换到第二OS之后,移除第一OS并更新冗余阵列以完全利用第一和第二数据存储设备。
在示例实施例中,DA系统包括DA计算设备。在一些实施例中,DA计算设备包括与第一和第二数据存储设备通信的处理器以及存储器设备。在其它实施例中,DA计算设备通信地耦合到与第一和第二数据存储设备通信的处理器。在这样的实施例中,处理器和存储器设备是包括第一和第二数据存储设备的主机计算设备的一部分。
DA计算设备被配置为通过执行数据对准处理来对准第一和第二数据存储设备,以使得第一和第二数据存储设备能够利用第二OS作为阵列进行操作。即,为了操作阵列中的数据存储设备,第一和第二数据存储设备内的分区必须包括要被添加到相应镜像的匹配大小和匹配文件系统。在至少一些已知的系统中,对准两个数据存储设备可能需要附加的数据存储设备和/或计算设备的一次或多次重启以初始化阵列,这可能中断由计算设备提供的服务。在示例实施例中,DA计算设备使用由kickstart配置文件配置的“故障”设备和冗余阵列的“热交换”能力来对准第一和第二数据存储设备,而不使用附加的数据存储设备或重启计算设备。
在示例实施例中,DA计算设备被配置为在对准数据存储设备之前确定第一和/或第二数据存储设备是否正在经历同步或镜像恢复处理。更具体地,DA计算设备分析元数据以检测任何正在进行的同步或恢复处理。元数据包括指示阵列中的每个镜像的当前状态的状态文件或状态数据。在确定没有同步或恢复处理正在发生之后,DA计算设备开始数据对准处理。
DA计算设备还被配置为对阵列内的镜像设置数据传送速度以促进在后台执行数据对准处理,而不中断使用存储在第一和第二数据存储设备中的数据的处理或服务。在一些实施例中,DA计算设备生成指令并将其传输到与阵列镜像相关联的块设备文件以设置数据传送速度边界。
DA计算设备扫描元数据以识别并移除与先前的阵列相关联的任何数据。当DA计算设备检测到与先前的阵列相关联的数据时,DA计算设备重写或移除数据以防止该数据影响数据对准处理。在整个数据对准处理中,DA计算设备可以多次扫描元数据以移除与任何先前的阵列相关联的数据。
DA计算设备更新至少由第一数据存储设备存储的元数据以移除指向由kickstart配置文件识别为故障设备的分区的引用指针。如本文中使用的,“分区的第一子集”是指由第一数据存储设备存储的未被识别为故障设备的分区,并且“分区的第二子集”是指被识别为故障设备的分区。在至少一些实施例中,DA计算设备从元数据移除与分区的第二子集相关联的引用指针。
在示例实施例中,DA计算设备对第一和第二数据存储设备生成分区表。在一些实施例中,DA计算设备从远程计算设备检索分区表。分区表包括定义通过数据对准处理要在相应的数据存储设备上生成的预定义分区的数据。分区表还包括每个分区的附加信息,诸如数据容量、当前使用的数据大小和用于每个分区的块设备标识符。块设备标识符是指示与分区相关联的块设备文件的数据或指针。在示例实施例中,分区表包括匹配分区的第一子集和分区的第二子集的数据条目。DA计算设备将分区表存储在第二数据存储设备上以重写由第二数据存储设备存储的现有分区表。重写现有分区表从第二数据存储设备移除先前的分区,包括存储初始OS的OS分区。在示例实施例中,DA计算设备在第二数据存储设备上存储与分区的阵列相关联的元数据使得匹配元数据由第一和第二数据存储设备存储。存储匹配元数据使得阵列即使在第一或第二数据存储设备机能失常的情况下也能够正确地操作。因此,当更新或以其它方式编辑元数据时,在第一和第二数据存储设备两者内更新元数据。
在示例实施例中,DA计算设备被配置为更新第二数据存储设备以包括分区的第二子集。更具体地,DA计算设备从第二数据存储设备移除与先前的分区相关联的至少一个块设备标识符。DA计算设备然后在存储的分区表中扫描分区的第二子集,并基于分区表对第二数据存储设备上的分区的第二子集生成新的块设备标识符。通过对先前与故障设备相关联的分区的子集移除先前的块设备标识符并生成新的设备标识符,DA计算设备已将分区的阵列的一部分从单个数据存储设备移动到两个数据存储设备,而不需要重启计算设备。即,DA计算设备使用冗余阵列的热交换能力将分区的第二子集移动到第二数据存储设备,而不中断使用由第一和第二数据存储设备存储的数据的服务或处理。
在示例实施例中,DA计算设备被配置为通过更新存储在第一和第二数据存储设备中的元数据以包括与分区的第二子集相关联的引用指针来将分区的第二子集链接到分区的阵列。引用指针被配置为引用或识别第二数据存储设备的新的块设备标识符。分区的第二子集与分区的第一子集同步以镜像由分区的第一子集存储的数据。
为了对准数据存储设备,第一数据存储设备还被配置为匹配第二数据存储设备,因为至少一些冗余阵列(即,RAID 1)要求冗余阵列中的每个镜像包括至少两个匹配分区。DA计算设备对第一数据存储设备执行与对第二数据存储设备的处理类似的处理。特别地,在示例实施例中,DA计算设备:(i)从元数据移除与分区的第一子集相关联的引用指针,(ii)存储来自第二数据存储设备的分区表,(iii)从第一数据存储设备移除与分区的第一子集相关联的至少一个块设备标识符,(iv)扫描存储的分区表以对第一数据存储设备上的分区的第一子集生成新的块设备标识符,以及(v)更新元数据以包括用于分区的第一子集的引用指针,由此将分区的第一子集链接回分区的阵列。在第一数据存储设备的配置期间,可访问第二数据存储设备以检索和存储数据,由此防止使用第一和第二数据存储设备存储的数据执行的任何服务或处理中断。在元数据已被更新以包括用于分区的第一子集的引用指针之后,第一和第二数据存储设备的数据已被对准,并且分区的阵列被配置为使用两个数据存储设备。
在示例实施例中,DA计算设备扩展阵列的至少一个镜像以包括第一和第二数据存储设备上的任何未使用的空间。每个镜像包括来自每个数据存储设备的至少一个分区,因此扩展一个镜像将扩展每个数据存储设备上的相应的分区。DA计算设备然后将元数据保存到与冗余阵列相关联的阵列配置文件,使得阵列在任何重启之后将保留。在至少一些实施例中,DA计算设备在第一和第二数据存储设备两者上安装引导加载程序(诸如GrandUnified Bootloader(GRUB)),使得新的OS可从任一数据存储设备引导。引导加载程序被配置为确定哪些设备以及以什么次序访问以启动OS。
在其中DA计算设备直接与数据存储设备通信的一些实施例中,DA计算设备可以从远程计算设备接收使DA计算设备执行上述数据对准处理的脚本或指令集。在其它实施例中,DA计算设备与包括第一和第二数据存储设备的主机计算设备通信。在这样的实施例中,DA计算设备被配置为生成使主机计算设备执行数据对准处理的脚本。替代地,脚本可以在本地生成和处理(即,不从另一个计算设备接收)。使用脚本使得数据对准处理能够至少部分地被自动化,以减少完成该处理所需的专业观察。
为了生成脚本,远程计算设备或DA计算设备被配置为收集与数据存储设备相关联的环境变量,诸如但不限于日志文件数据、主机名以及与第一和第二数据存储设备相关联的盘大小。日志文件数据在其由接收计算设备处理时识别记录关于脚本的信息的日志文件的位置和格式。主机名识别被指定运行脚本的计算设备。这些环境变量被收集并插入到脚本中以针对特定的接收方计算设备定制脚本。
本文中描述的方法和系统可以使用包括计算机软件、固件、硬件或者其任意组合或子集的工程技术或计算机编程来实现,其中可以通过执行以下步骤中的一个来实现技术效果:(i)通过将分区的第二子集识别为故障分区来更新与包括分区的第一子集和第二子集的分区的阵列相关联的元数据以移除分区的第二子集;(ii)在第一和第二数据存储设备处存储识别分区的第一和第二子集的分区表;(iii)通过从第二数据存储设备移除与先前的分区相关联的至少一个块设备标识符并在存储的分区表中扫描分区的第二子集以对分区的第二子集生成新的块设备标识符来更新第二数据存储设备以包括分区的第二子集;(iv)通过更新元数据以包括与用于分区的第二子集的新的块设备标识符相关联的分区的第二子集的引用指针来将分区的第二子集链接到分区的阵列;(v)在将分区的第二子集链接到分区的阵列之后,移除引用指针从元数据移除与分区的第一子集相关联的引用指针;(vi)从第一数据存储设备移除与分区的阵列相关联的至少一个块设备标识符;(vii)在存储的分区表中扫描分区的第一子集以对第一数据存储设备上的分区的第一子集生成新的块设备标识符;(viii)更新元数据以包括用于分区的第一子集的引用指针;(ix)扩展分区的第一和第二子集中的至少一个分区以包括第一和第二数据存储设备的未使用的数据存储空间;以及(x)在第一和第二数据存储设备上安装引导加载程序,以使得存储在第一和第二数据存储设备上的操作系统能够从第一数据存储设备或第二数据存储设备初始化。
本文中描述的系统和方法被配置为促进(a)减少与使用存储在在OS之间转换的数据存储设备上的数据的服务和处理的带宽和处理干扰;(b)通过使用脚本使数据对准处理自动化来减少专业观察;
(c)通过在后台执行数据对准处理来减少对准两个数据存储设备上的阵列所需的时间;以及(d)通过在冗余阵列中测试新OS的同时提供返回到初始OS的选项来改善数据安全。
本文中描述的是计算机系统,诸如主机计算设备和DA计算设备。如本文中描述的,所有这样的计算机系统包括处理器和存储器。
另外,本文中提及的计算机设备中的任何处理器还可以指一个或多个处理器,其中处理器可以在一个计算设备或并行工作的多个计算设备中。此外,本文中提及的计算机设备中的任何存储器还可以指一个或多个存储器,其中存储器可以在一个计算设备或并行工作的多个计算设备中。
如本文中使用的,处理器可以包括任何可编程系统,其包括使用微控制器、精简指令集电路(RISC)、专用集成电路(ASIC)、逻辑电路以及能够执行本文中描述的功能的任何其它电路或处理器的系统。以上示例仅仅是示例,因此不意图以任何方式限制术语“处理器”的定义和/或含义。
如本文中使用的,术语“数据库”可以指数据体、关系数据库管理系统(RDBMS)或两者。如本文中使用的,数据库可以包括任何数据集,包括分层数据库、关系数据库、平面文件数据库、对象关系数据库、面向对象的数据库以及存储在计算机系统中的任何其它结构化的记录或数据集。以上示例仅仅是示例,因此不意图以任何方式限制术语数据库的定义和/或含义。RDBMS的示例包括但不限于包括Database、MySQL、/>DB2、SQL Server、/>和PostgreSQL。然而,可以使用使得能够实现本文中描述的系统和方法的任何数据库。(Oracle是Oracle Corporation,Redwood Shores,California的注册商标;IBM是International Business Machines Corporation,Armonk,New York的注册商标;Microsoft是Microsoft Corporation,Redmond,Washington的注册商标;并且Sybase是Sybase,Dublin,California的注册商标。)
在一个实施例中,提供了计算机程序,并且该程序包含在计算机可读介质上。在示例实施例中,系统在单个计算机系统上执行,而不需要连接到服务器计算机。在另外的实施例中,系统在环境中运行(Windows是Microsoft Corporation,Redmond,Washington的注册商标)。在还另一个实施例中,系统在大型机环境和/>服务器环境上运行(UNIX是位于Reading,Berkshire,United Kingdom的X/Open Company Limited的注册商标)。应用是灵活的并且被设计为在各种不同的环境中运行,而不损害任何主要功能。在一些实施例中,系统包括分布在多个计算设备中的多个组件。一个或多个组件可以是包含在计算机可读介质中的计算机可执行指令的形式。
如本文中使用的,以单数形式记载并且前面带有词“一”或“一个”的元素或步骤应当被理解为不排除多个元素或步骤,除非明确地记载了这样的排除。此外,对本公开的“示例实施例”或“一个实施例”的提及不意图被解释为排除也包含记载的特征的附加实施例的存在。
如本文中使用的,术语“软件”和“固件”是可互换的,并且包括存储在存储器中以供处理器执行的任何计算机程序,该存储器包括RAM存储器、ROM存储器、EPROM存储器、EEPROM存储器和非易失性RAM(NVRAM)存储器。以上存储器类型仅仅是示例,因此不限制可用于存储计算机程序的存储器的类型。
系统和处理不限于本文中描述的具体实施例。此外,每个系统和每个处理的组件可以与本文中描述的其它组件和处理独立并且分离地实践。每个组件和处理也可以与其它组装包和处理组合地使用。
以下详细描述通过示例的方式而非通过限制的方式图示了本公开的实施例。预期本公开具有在操作系统转换期间在数据存储设备之间对准数据的一般应用。
图1是用于在冗余阵列中的两个数据存储设备之间对准数据的示例数据对准(DA)系统100的框图。在示例实施例中,系统100包括DA计算设备102。DA计算设备102包括处理器104、与处理器104通信的存储器设备106、第一数据存储设备108和第二数据存储设备110。在一些实施例中,第一和/或第二数据存储设备108、110与DA计算设备102分离。例如,第一和第二数据存储设备108、110可以被配置为与DA计算设备102通信的网络附属存储(NAS)。在其它实施例中,系统100可以包括附加的、更少的或替代的组件,包括本文中其它地方描述的那些。例如,DA计算设备102可以包括三个或更多个数据存储设备。
DA计算设备102被配置为提供与存储在第一和第二数据存储设备108、110中的数据相关联的一个或多个处理或服务。例如,DA计算设备102可以被配置为促进支付网络中不同方之间的数据通信,诸如传输和接收关于认证、授权、结算和/或以其它方式处理支付网络中的支付交易的消息。在其它实施例中,DA计算设备102被配置为使用存储在数据存储设备108、110中的数据来提供不同的服务或处理。
在示例实施例中,第一和第二数据存储设备108、110具有被划分成多个分区112的数据存储容量。分区112是数据存储设备108、110的子区段。在本文中描述的数据对准处理之前,第一数据存储设备108与第一操作系统(OS)相关联,并且第二数据存储设备110与不同于第一OS的第二OS相关联。特别地,第一数据存储设备108包括至少一个分区112,该分区112根据与第一OS相关联的文件系统架构进行格式化,并且对于第二数据存储设备110和第二OS是类似的。在一些实施例中,至少一些分区112可由第一和第二OS两者访问。
每个分区112与块设备文件(图1中未示出)相关联。块设备文件使得软件应用(包括OS)能够与分区112进行交互。每个块设备文件可以与多个分区相关联。数据存储设备108、110包括引用或指向相关联的块设备文件的一个或多个块设备标识符(图1中未示出)。在一些实施例中,分区112可以与字符设备文件、而不是块设备文件相关联。
为了识别每个数据存储设备108、110上的分区112,数据存储设备108、110包括相应的分区表114。分区表114定义关于相应的数据存储设备108或110上的每个分区112的信息,诸如但不限于数据存储容量、当前使用的数据存储、分区标识符(即,相应的分区112的名称)、以及用于分区112的阵列的一个或多个引用指针。分区表114由DA计算设备使用以识别数据存储设备108、110的分区112并与之交互。
在示例实施例中,第一数据存储设备108和/或第二数据存储设备110包括与分区的阵列(诸如独立盘冗余阵列(RAID))相关联的元数据116。阵列被用于在数据存储设备上提供冗余和/或性能增加。例如,第一数据存储设备108被以RAID 1配置进行配置以包括使用第一数据存储设备108上的分区112的一个或多个镜像。在其它实施例中,第一数据存储设备108处于不同的阵列配置(例如,RAID 5或RAID 6)。在示例实施例中,元数据116包括用于阵列中的分区的多个引用指针(图1中未示出)。每个引用指针识别与相应的分区112相关联的块设备文件。在一个实施例中,引用指针是与分区112相关联的块设备标识符。在另一个实施例中,引用指针识别块设备标识符。在示例实施例中,当阵列仅存储在第一数据存储设备108上时,元数据116可以不存储在第二数据存储设备110上。
在示例实施例中,分区的阵列包括一个或多个镜像。每个镜像包括多个分区112。镜像内的每个分区112存储匹配数据。在从与第二数据存储设备110相关联的第二OS到与第一数据存储设备108相关联的第一OS的OS转换期间,第一数据存储设备108被配置为包括仅使用第一数据存储设备108的分区112的分区的阵列。即,第一数据存储设备108的元数据116被更新为仅包括用于第一数据存储设备108的分区112的引用指针。阵列中的每个镜像的至少一个分区112被DA计算设备102识别为“故障”设备。在示例实施例中,将分区112识别为故障将防止第一OS的内核试图将第一数据存储设备108上的数据与第二数据存储设备110同步,由此在第一OS的测试期间维持第二数据存储设备110上的第二OS。
在已确定使用第一OS之后,如本文中描述的,由DA计算设备102执行数据对准处理。数据对准处理用于将故障分区112从第一数据存储设备108传送到第二数据存储设备110以利用两个数据存储设备,而不中断由DA计算设备102执行的服务或处理。即,不需要DA计算设备102多次重启以利用第一OS重新初始化分区的阵列。
图2是与系统100(图1中示出)类似的示例DA系统200的框图。与系统100不同,DA系统200包括与DA计算设备220通信的主机计算设备202。主机计算设备202包括一个或多个处理器204、存储器设备206、第一数据存储设备208和第二数据存储设备210。在其它实施例中,主机计算设备202包括附加的、更少的或替代的组件,包括本文中其它地方描述的那些。
DA计算设备220是远程计算设备,其被配置为生成脚本222并将脚本222传输到主机计算设备202。脚本222是存储指令或命令的数据文件,这些指令或命令在由处理器204执行时,使主机计算设备202与DA计算设备102(图1中示出)类似地进行操作。更具体地,主机计算设备222被配置为基于脚本222如本文中描述的使用第一和第二数据存储设备208、210执行数据对准处理。
在示例实施例中,DA计算设备220被配置为从主机计算设备202检索一个或多个环境变量224。环境变量224包括特定于主机计算设备202的信息,诸如日志文件数据、设备标识符以及第一和第二数据存储设备208、210的数据存储容量。DA计算设备220还被配置为利用环境变量224填充脚本222以使得脚本222能够在主机计算设备202上恰当地执行。即,脚本222可以被存储为利用环境变量224填充的模板以部署到主机计算设备202。在一些实施例中,脚本222由主机计算设备202生成和执行。
图3是示例数据对准处理期间的系统100(图1中示出)的数据示意图。在已使用“故障”分区在第一数据存储设备108上存储第二OS并且第二数据存储设备110存储第一OS之后,执行示例数据对准处理。尽管在图3中将第一和第二数据存储设备108、110描绘为与DA计算设备102分离,但是要理解的是,DA计算设备102可以包括第一和/或第二数据存储设备108、110。在一些实施例中,可以在不同情形下执行数据对准处理。在其它实施例中,数据对准处理包括附加的、更少的或替代的数据和/或步骤,包括本文中其它地方描述的那些。
关于图1和3,在示例实施例中,DA计算设备102被配置为在对准数据存储设备之前确定第一和/或第二数据存储设备108、110是否正在经历同步或镜像恢复处理。更具体地,DA计算设备分析元数据116以检测任何正在进行的同步或恢复处理。同步或恢复处理被执行以确保匹配数据存储在镜像的每个分区112中。元数据116包括指示阵列中的每个镜像的当前状态的状态文件或状态数据302。例如,但不限制,状态数据302可以将每个镜像标识为“正在操作”、“故障”、“正在同步”等。在确定没有同步或恢复处理正在发生之后,DA计算设备102开始数据对准处理。
DA计算设备102被配置为对阵列内的镜像设置数据传送速度以促进在后台执行数据对准处理,而不中断使用存储在第一和第二数据存储设备108、110中的数据的任何处理或服务。在一些实施例中,DA计算设备102生成指令并将其传输到与阵列镜像相关联的块设备文件304以设置数据传送速度边界。
DA计算设备102扫描元数据116以识别并移除与先前的阵列相关联的任何数据。数据可以包括但不限于与先前配置的阵列相关联的引用指针。当DA计算设备102检测到与先前的阵列相关联的数据时,DA计算设备102从元数据116移除或重写该数据以防止该数据影响数据对准处理。在整个数据对准处理中,DA计算设备102可以多次扫描元数据116以移除与任何先前的阵列相关联的数据。
DA计算设备102更新至少由第一数据存储设备108存储的元数据116以移除与由kickstart配置文件识别为故障设备的分区112相关联的引用指针306。如本文中使用的,“分区的第一子集308”是指由第一数据存储设备108存储的未被识别为故障设备的分区112,并且“分区的第二子集310”是指被识别为故障设备的分区112。在至少一些实施例中,DA计算设备102从元数据116移除与分区的第二子集310相关联的引用指针306。
在示例实施例中,DA计算设备102对第一和第二数据存储设备108、110生成分区表312。在其它实施例中,DA计算设备102从存储器设备106、远程数据库(未示出)和/或不同的存储器设备检索分区表312。分区表312包括定义通过数据对准处理要在相应的数据存储设备上配置的预定分区112的数据。即,第一数据存储设备108上的分区表312包括定义第一数据存储设备108内的分区的第一子集308的数据,并且第二数据存储设备110上的分区表312包括定义第二数据存储设备110内的分区的第二子集310的数据。在示例实施例中,每个数据存储设备108、110的分区表312包括分别定义第一和第二数据存储设备108、110内的分区的两个子集308、310的数据。分区表312还包括每个分区112的附加信息,诸如数据容量、当前使用的数据大小和用于每个分区112的块设备标识符314。块设备标识符314是指示与分区112相关联的块设备文件的数据或指针。DA计算设备102将分区表312存储在第二数据存储设备110上以重写由第二数据存储设备110存储的先前的分区,包括与先前的OS(即,第一OS)相关联的任何先前的分区316。例如,至少一个先前的分区316可以以先前的OS支持的文件系统架构进行格式化。
DA计算设备102在第二数据存储设备110内存储与分区的阵列相关联的元数据116以促进将分区的第二子集310移动到第二数据存储设备110。在一个实施例中,可以从由第一数据存储设备108存储的元数据116复制元数据116。元数据116的匹配副本存储在第一和第二数据存储设备108、110上,使得对元数据116的任何更新或编辑都由两个数据存储设备108、110存储。匹配元数据116使得分区的阵列即使在设备故障的情况下也能够继续操作。
在示例实施例中,DA计算设备102被配置为更新第二数据存储设备110以包括分区的第二子集310。更具体地,DA计算设备102从第二数据存储设备110移除与先前的分区316相关联的至少一个块设备标识符314。DA计算设备102然后在存储的分区表312中扫描分区的第二子集310,并对第二数据存储设备110上的分区的第二子集310生成新的块设备标识符314。通过对先前与故障设备相关联的分区的子集移除先前的块设备标识符314并生成新的设备标识符314,DA计算设备102已将分区的阵列的一部分从单个数据存储设备移动到两个数据存储设备,而不需要重启计算设备。即,DA计算设备102使用冗余阵列的热交换能力将分区的第二子集310移动到第二数据存储设备110,而不中断使用由第一和第二数据存储设备108、110存储的数据的服务或处理。
在示例实施例中,DA计算设备102被配置为通过更新存储在第一和第二数据存储设备108、110中的元数据116以包括与分区的第二子集310相关联的引用指针306来将分区的第二子集310链接到分区的阵列。引用指针306被配置为引用或识别第二数据存储设备110的新的块设备标识符314。分区的第二子集310与分区的第一子集308同步以镜像由分区的第一子集308存储的数据。
为了对准数据存储设备108、110,第一数据存储设备108还被配置为匹配第二数据存储设备110,因为至少一些冗余阵列(即,RAID 1)要求冗余阵列中的每个镜像包括至少两个匹配分区。DA计算设备102对第一数据存储设备108执行与对第二数据存储设备110的处理类似的处理。特别地,在示例实施例中,DA计算设备102:(i)从元数据116移除与分区的第一子集308相关联的引用指针306,(ii)存储来自第二数据存储设备110的分区表312,(iii)从第一数据存储设备108移除与分区的第一子集308相关联的至少一个块设备标识符314,(iv)扫描存储的分区表312以对第一数据存储设备108上的分区的第一子集308生成新的块设备标识符314,以及(v)更新存储在第一和第二数据存储设备108、110中的元数据116以包括用于分区的第一子集308的引用指针306,由此将分区的第一子集308链接到分区的阵列。在第一数据存储设备108的配置期间,可访问第二数据存储设备110以检索和存储数据,由此防止使用存储的数据的服务和/或处理中断。在元数据116已被更新以包括用于分区的第一子集308的引用指针306之后,第一和第二数据存储设备108、110的数据已被对准,并且分区的阵列被配置为使用两个数据存储设备108、110。
在示例实施例中,DA计算设备102扩展阵列的至少一个镜像以包括第一和第二数据存储设备108、110上的任何未使用的空间。每个镜像包括来自每个数据存储设备108、110的至少一个分区112,因此扩展一个镜像将扩展每个数据存储设备108、110上的相应的分区112。DA计算设备102然后将元数据116保存到与冗余阵列相关联的阵列配置文件318,使得阵列在任何重启之后将保留。在一些实施例中,阵列配置文件318存储在第一和/或第二数据存储设备108、110内。在其它实施例中,阵列配置文件318存储在分离的数据存储设备(诸如阵列控制器(未示出))中。在至少一些实施例中,DA计算设备102在第一和第二数据存储设备108、110上安装引导加载程序320(诸如Grand Unified Bootloader(GRUB)),使得新的OS可从任一数据存储设备108、110引导。引导加载程序320被配置为确定哪些设备以及以什么次序访问以启动OS。
图4描绘了远程或用户计算设备402(诸如DA计算设备202(图2中示出))的示例性配置。计算设备402可以包括用于执行指令的处理器405。在一些实施例中,可执行指令可以存储在存储器区域410中。处理器405可以包括一个或多个处理单元(例如,以多核配置)。存储器区域410可以是允许存储和检索诸如可执行指令和/或其它数据的信息的任何设备。存储器区域410可以包括一个或多个计算机可读介质。
计算设备402还可以包括用于向用户401呈现信息的至少一个媒体输出组件415。媒体输出组件415可以是能够向用户401传达信息的任何组件。在一些实施例中,媒体输出组件415可以包括输出适配器,诸如视频适配器和/或音频适配器。输出适配器可以操作地耦合到处理器405并且可操作地耦合到输出设备,诸如显示设备(例如,液晶显示器(LCD)、有机发光二极管(OLED)显示器、阴极射线管(CRT)或“电子墨水”显示器)或音频输出设备(例如,扬声器或耳机)。在一些实施例中,媒体输出组件415可以被配置为向用户401呈现交互式用户界面(例如,web浏览器或客户端应用)。
在一些实施例中,计算设备402可以包括用于接收来自用户401的输入的输入设备420。输入设备420可以包括例如键盘、指点设备、鼠标、触控笔、触敏面板(例如,触摸板或触摸屏)、相机、陀螺仪、加速度计、位置检测器和/或音频输入设备。诸如触摸屏的单个组件可以用作媒体输出组件415的输出设备和输入设备420两者。
计算设备402还可以包括通信接口425,其可以可通信地耦合到远程设备。通信接口425可以包括例如用于与移动电话网络(例如,全球移动通信系统(GSM)、3G、4G或蓝牙)或其它移动数据网络(例如,全球微波接入互操作性(WIMAX))一起使用的有线或无线网络适配器或无线数据收发器。
存储在存储器区域410中的是例如计算机可读指令,以用于经由媒体输出组件415向用户401提供用户界面,并且可选地,从输入设备420接收并处理输入。除了其它可能性之外,用户界面可以包括web浏览器和客户端应用。web浏览器使得用户401能够显示通常嵌入在来自与商家相关联的web服务器的网页或网站上的媒体和其它信息并与之交互。客户端应用允许用户401与例如与供应商或企业相关联的服务器应用交互。
图5描绘了主机计算设备502(诸如DA计算设备102(图1中示出)和主机计算设备202(图2中示出))的示例性配置。主机计算设备502可以包括用于执行指令的处理器505。指令可以存储在例如存储器区域510中。处理器505可以包括一个或多个处理单元(例如,以多核配置)。
处理器505可以操作地耦合到通信接口515,使得主机计算设备502可以能够与诸如图4中示出的计算设备402或另一个主机计算设备502的远程设备通信。例如,通信接口515可以经由互联网从用户计算设备402接收请求。
处理器505还可以操作地耦合到存储设备525(例如,图1中示出的第一和第二数据存储设备108、110)。存储设备525可以是适合于存储和/或检索数据的任何计算机操作的硬件。在一些实施例中,存储设备525可以被集成在主机计算设备502中。例如,主机计算设备502可以包括一个或多个硬盘驱动器作为存储设备525。在其它实施例中,存储设备525可以在主机计算设备502外部,并且可以由多个主机计算设备502访问。例如,存储设备525可以包括多个存储单元,诸如廉价盘冗余阵列(RAID)配置中的硬盘或固态盘。存储设备525可以包括存储区域网络(SAN)和/或网络附属存储(NAS)系统。
在一些实施例中,处理器505可以经由存储接口520操作地耦合到存储设备525。存储接口520可以是能够向处理器505提供对存储设备525的访问的任何组件。存储接口520可以包括例如高级技术附件(ATA)适配器、串行ATA(SATA)适配器、小型计算机系统接口(SCSI)适配器、RAID控制器、SAN适配器、网络适配器和/或向处理器405提供对存储设备525的访问的任何组件。
存储器区域410(图4中示出)和510可以包括但不限于诸如动态RAM(DRAM)或静态RAM(SRAM)的随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和非易失性RAM(NVRAM)。以上存储器类型仅仅是示例,并且因此关于可用于存储计算机程序的存储器的类型不是限制性的。
图6是用于使用诸如系统100(图1中示出)的DA系统在两个数据存储设备之间对准分区的阵列的数据的示例方法600的流程图。方法600至少部分地由DA计算设备(例如,图1中示出的DA计算设备102)执行。在其它实施例中,方法600可以包括附加的、更少的或替代的步骤,包括本文中其它地方描述的那些。
方法600开始于DA计算设备更新602由至少第一数据存储设备存储的与分区的阵列相关联的元数据以移除用于分区的阵列的分区的第二子集的引用指针。移除引用指针还从分区的阵列移除分区的第二子集。DA计算设备在第一数据存储设备和第二数据存储设备内存储604分区表。分区表定义第一数据存储设备内的分区的第一子集和第二数据存储设备内的分区的第二子集。DA计算设备在第二数据存储设备内存储606与分区的阵列相关联的元数据,使得第一和第二数据存储设备两者都包括元数据的副本。DA计算设备还更新608第二数据存储设备以包括分区的第二子集。在至少一些实施例中,DA计算设备通过从第二数据存储设备移除与先前的分区相关联的至少一个块设备标识符并且在存储的分区表中扫描分区的第二子集以基于分区表对分区的第二子集生成新的块设备标识符来包括分区的第二子集。DA计算设备还更新610由第一和第二数据存储设备存储的元数据以将分区的第二子集链接回分区的阵列。在示例实施例中,DA计算设备通过更新610元数据以包括分区的第二子集的引用指针来将分区的第二子集链接到分区的阵列。用于分区的第二子集的引用指针与用于分区的第二子集的新的块设备标识符相关联。
在示例实施例中,响应于将分区的第二子集链接到分区的阵列,DA计算设备将分区的第一子集与分区的第二子集对准612。在一些实施例中,DA计算设备通过以下操作来对准612分区的两个子集:(i)从元数据移除与分区的第一子集相关联的引用指针,(ii)从第一数据存储设备移除与分区的阵列相关联的至少一个块设备标识符,(iii)在存储的分区表中扫描分区的第一子集以对第一数据存储设备上的分区的第一子集生成新的块设备标识符,以及(iv)更新元数据以包括用于分区的第一子集的引用指针。
图7是可以在图6中示出的方法中使用的一个或多个示例计算设备的组件的示图700。图7还示出了数据存储系统710的配置,该数据存储系统710耦合到DA计算设备102(图1中示出)内执行具体任务的若干个分离的组件。
DA计算设备102包括更新组件702,该更新组件702被配置为更新与分区的阵列相关联的元数据以移除用于分区的第二子集的引用指针。更新组件702还被配置为通过从第二数据存储设备移除与先前的分区相关联的至少一个块设备标识符并且在存储的分区表中扫描分区的第二子集以对分区的第二子集生成新的块设备标识符来更新第二数据存储设备以包括分区的第二子集。DA计算设备102还包括存储组件704,该存储组件704被配置为在第一和第二数据存储设备处存储识别分区的第一和第二子集的分区表。存储组件704还被配置为在第二数据存储设备内存储与分区的阵列相关联的元数据。DA计算设备102还包括链接组件706,该链接组件706被配置为通过更新元数据以包括与新的块设备标识符相关联的分区的第二子集的引用指针来将分区的第二子集链接到分区的阵列。在至少一些实施例中,DA计算设备102还包括对准组件708,该对准组件708被配置为通过以下操作来对准分区的第一和第二子集:(i)从元数据移除与分区的第一子集相关联的引用指针,(ii)从第一数据存储设备移除与分区的阵列相关联的至少一个块设备标识符,(iii)在存储的分区表中扫描分区的第一子集以对第一数据存储设备上的分区的第一子集生成新的块设备标识符,以及(iv)更新元数据以包括用于分区的第一子集的引用指针。
在示例性实施例中,数据存储系统710被划分成多个区段,包括但不限于阵列数据区段712、OS数据区段714、设备元数据区段716和脚本数据区段718。这些区段通过DA计算设备102互连以根据需要更新和检索信息。
如基于前面的说明书将认识到的,本公开的以上讨论的实施例可以使用包括计算机软件、固件、硬件或者其任何组合或子集的工程技术或计算机编程来实现。根据本公开的讨论的实施例,具有计算机可读和/或计算机可执行指令的任何这样的所得到的计算机程序可以在一个或多个计算机可读介质内体现或提供,由此制造计算机程序产品,即,制造物。这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或以汇编/机器语言实现。如本文中使用的,术语“机器可读介质”、“计算机可读介质”和“计算机可读媒介”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。然而,“机器可读介质”、“计算机可读介质”和“计算机可读媒介”不包括瞬态的信号(即,它们是“非瞬态的”)。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本书面描述使用示例来公开本发明,包括最佳模式,并且还使得本领域技术人员能够实践本发明,包括制造和使用任何设备或系统以及执行任何结合的方法。本发明的专利范围由权利要求限定,并且可以包括本领域技术人员想到的其它示例。如果这样的其它示例具有不与权利要求的字面语言不同的结构元素,或者如果这样的其它示例包括与权利要求的字面语言无实质区别的等同结构元素,那么它们意图在权利要求的范围内。

Claims (21)

1.一种数据对准(DA)计算设备,所述数据对准(DA)计算设备被配置为促进冗余阵列存储系统上的新的操作系统OS的测试,所述数据对准(DA)计算设备包括:
处理器,所述处理器通信地耦合到第一数据存储设备和第二数据存储设备,所述第一数据存储设备和所述第二数据存储设备被以分区的镜像阵列配置,分区的镜像阵列由存储在所述第一数据存储设备和所述第二数据存储设备上的元数据来定义,其中,分区的镜像阵列包括分区的第一子集和分区的第二子集,分区的第二子集镜像分区的第一子集,并且所述元数据包括分区的第一子集和第二子集中的每一个的引用指针,其中,初始地(i)所述第一数据存储设备和所述第二数据存储设备在初始的OS下操作,(ii)分区的第一子集位于所述第一数据存储设备上,并且(iii)分区的第二子集位于所述第二数据存储设备上;以及
存储器,所述存储器与所述处理器通信,所述存储器存储指令,所述指令在由所述处理器执行时使所述处理器:
在所述第一数据存储设备上安装新的OS;
更新所述元数据以(i)移除分区的第二子集的引用指针并且由此从分区的镜像阵列移除所述第二数据存储设备,以及(ii)仅在所述第一数据存储设备上重新建立包括分区的第二子集的镜像阵列;
将所述第一数据存储设备上的分区的第二子集识别为故障设备;
在仅在所述第一数据存储设备上定义镜像阵列并且所述第一数据存储设备上的分区的第二子集被识别为故障设备时,验证新的OS的可操作性;
响应于验证新的OS的可操作性,在所述第二数据存储设备上安装新的OS;以及
与在所述第二数据存储设备上安装新的OS同时地或者在所述第二数据存储设备上安装新的OS之后,更新所述元数据以重新建立所述第一数据存储设备内的分区的第一子集和所述第二数据存储设备内的分区的第二子集。
2.根据权利要求1所述的数据对准(DA)计算设备,其中,所述指令在由所述处理器执行时进一步使所述处理器通过以下操作来更新所述元数据以重新建立所述第二数据存储设备内的分区的第二子集:
从所述第二数据存储设备移除与先前的分区相关联的至少一个块设备标识符,其中,所述先前的分区在更新所述元数据以移除所述引用指针之前被定义;以及
生成要与所述第二数据存储设备内的重新建立的分区的第二子集相关联的新的块设备标识符。
3.根据权利要求2所述的数据对准(DA)计算设备,其中,所述第二数据存储设备的先前的分区包括与初始的OS相关联的至少一个分区,其中,当从所述第二数据存储设备移除与所述先前的分区相关联的所述至少一个块设备标识符时,所述至少一个分区被从所述第二数据存储设备移除。
4.根据权利要求2所述的数据对准(DA)计算设备,其中,所述指令在由所述处理器执行时进一步使所述处理器通过更新由所述第一数据存储设备和所述第二数据存储设备存储的元数据以包括所述新的块设备标识符作为分区的第二子集的引用指针、来将所述第二数据存储设备上的重新建立的分区的第二子集链接到分区的镜像阵列。
5.根据权利要求1所述的数据对准(DA)计算设备,其中,所述指令在由所述处理器执行时进一步使所述处理器与在所述第二数据存储设备上安装新的OS同时地或者在所述第二数据存储设备上安装新的OS之后,通过以下操作来更新所述元数据以重新建立分区的第一子集:
移除与所述第一数据存储设备的先前的分区相关联的至少一个块设备标识符,其中,所述先前的分区在更新所述元数据以重新建立分区的第一子集之前被定义;以及
生成要与所述第一数据存储设备内的重新建立的分区的第一子集相关联的新的块设备标识符。
6.根据权利要求1所述的数据对准(DA)计算设备,其中,所述指令在由所述处理器执行时进一步使所述处理器以独立盘冗余阵列(RAID)1配置对所述第一数据存储设备内的重新建立的分区的第一子集和所述第二数据存储设备内的重新建立的分区的第二子集进行配置。
7.根据权利要求1所述的数据对准(DA)计算设备,其中,所述指令在由所述处理器执行时进一步使所述处理器在所述第一数据存储设备和所述第二数据存储设备上安装新的OS的引导加载程序。
8.根据权利要求1所述的数据对准(DA)计算设备,其中,所述指令在由所述处理器执行时进一步使所述处理器将所述第二数据存储设备上的重新建立的分区的第二子集与所述第一数据存储设备上的重新建立的分区的第一子集同步。
9.一种用于促进冗余阵列存储系统上的新的操作系统OS的测试的方法,所述冗余阵列存储系统包括第一数据存储设备和第二数据存储设备,所述第一数据存储设备和所述第二数据存储设备被以分区的镜像阵列配置,分区的镜像阵列由存储在所述第一数据存储设备和所述第二数据存储设备上的元数据来定义,其中,分区的镜像阵列包括分区的第一子集和分区的第二子集,分区的第二子集镜像分区的第一子集,其中,初始地(i)所述第一数据存储设备和所述第二数据存储设备在初始的OS下操作,(ii)分区的第一子集位于所述第一数据存储设备上,并且(iii)分区的第二子集位于所述第二数据存储设备上,所述方法包括:
由数据对准(DA)计算设备在所述第一数据存储设备上安装新的OS;
由所述数据对准(DA)计算设备更新所述元数据以(i)从分区的镜像阵列移除所述第二数据存储设备的引用指针,以及(ii)仅在所述第一数据存储设备上重新建立包括分区的第二子集的镜像阵列;
由所述数据对准(DA)计算设备将所述第一数据存储设备上的分区的第二子集识别为故障设备;
在仅在所述第一数据存储设备上定义镜像阵列并且所述第一数据存储设备上的分区的第二子集被识别为故障设备时,由所述数据对准(DA)计算设备验证新的OS的可操作性;
响应于验证新的OS的可操作性,由所述数据对准(DA)计算设备在所述第二数据存储设备上安装新的OS;以及
与在所述第二数据存储设备上安装新的OS同时地或者在所述第二数据存储设备上安装新的OS之后,由所述数据对准(DA)计算设备更新所述元数据以重新建立所述第一数据存储设备内的分区的第一子集和所述第二数据存储设备内的分区的第二子集。
10.根据权利要求9所述的方法,其中,更新所述元数据以重新建立分区的第二子集进一步包括:
从所述第二数据存储设备移除与先前的分区相关联的至少一个块设备标识符,其中,所述先前的分区在更新所述元数据以移除所述引用指针之前被定义;以及
生成要与所述第二数据存储设备内的重新建立的分区的第二子集相关联的新的块设备标识符。
11.根据权利要求10所述的方法,其中,所述第二数据存储设备的先前的分区包括与初始的OS相关联的至少一个分区,其中,从所述第二数据存储设备移除与所述先前的分区相关联的所述至少一个块设备标识符进一步从所述第二数据存储设备移除所述至少一个分区。
12.根据权利要求10所述的方法,其中,更新所述元数据以重新建立所述第二数据存储设备内的分区的第二子集进一步包括通过更新所述元数据以包括所述新的块设备标识符作为分区的第二子集的引用指针、来将所述第二数据存储设备上的重新建立的分区的第二子集链接到分区的镜像阵列。
13.根据权利要求9所述的方法,进一步包括:
与在所述第二数据存储设备上安装新的OS同时地或者在所述第二数据存储设备上安装新的OS之后,通过以下操作来更新所述元数据以重新建立分区的第一子集:
移除与所述第一数据存储设备的先前的分区相关联的至少一个块设备标识符,其中,所述先前的分区在更新所述元数据以重新建立分区的第一子集之前被定义;以及
生成要与所述第一数据存储设备内的重新建立的分区的第一子集相关联的新的块设备标识符。
14.根据权利要求9所述的方法,进一步包括以独立盘冗余阵列(RAID)1配置对所述第一数据存储设备内的重新建立的分区的第一子集和所述第二数据存储设备内的重新建立的分区的第二子集进行配置。
15.根据权利要求9所述的方法,进一步包括由所述数据对准(DA)计算设备在所述第一数据存储设备和所述第二数据存储设备上安装新的OS的引导加载程序。
16.根据权利要求9所述的方法,进一步包括将所述第二数据存储设备上的重新建立的分区的第二子集与所述第一数据存储设备上的重新建立的分区的第一子集同步。
17.至少一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质具有包含在其上的计算机可执行指令以用于促进冗余阵列存储系统上的新的操作系统OS的测试,所述冗余阵列存储系统包括第一数据存储设备和第二数据存储设备,所述第一数据存储设备和所述第二数据存储设备被以分区的镜像阵列配置,分区的镜像阵列由存储在所述第一数据存储设备和所述第二数据存储设备上的元数据来定义,其中,分区的镜像阵列包括分区的第一子集和分区的第二子集,分区的第二子集镜像分区的第一子集,其中,初始地(i)所述第一数据存储设备和所述第二数据存储设备在初始的OS下操作,(ii)分区的第一子集位于所述第一数据存储设备上,并且(iii)分区的第二子集位于所述第二数据存储设备上,其中,所述计算机可执行指令在由至少一个处理器执行时使所述至少一个处理器:
在所述第一数据存储设备上安装新的OS;
更新所述元数据以(i)从分区的镜像阵列移除所述第二数据存储设备的引用指针,以及(ii)仅在所述第一数据存储设备上重新建立包括分区的第二子集的镜像阵列;
将所述第一数据存储设备上的分区的第二子集识别为故障设备;
在仅在所述第一数据存储设备上定义镜像阵列并且所述第一数据存储设备上的分区的第二子集被识别为故障设备时,验证新的OS的可操作性;
响应于验证新的OS的可操作性,在所述第二数据存储设备上安装新的OS;以及
与在所述第二数据存储设备上安装新的OS同时地或者在所述第二数据存储设备上安装新的OS之后,更新所述元数据以重新建立所述第一数据存储设备内的分区的第一子集和所述第二数据存储设备内的分区的第二子集。
18.根据权利要求17所述的计算机可读存储介质,其中,所述计算机可执行指令进一步使所述处理器通过以下操作来更新所述元数据以重新建立分区的第二子集:
从所述第二数据存储设备移除与先前的分区相关联的至少一个块设备标识符,其中,所述先前的分区在更新所述元数据以移除所述引用指针之前被定义;以及
生成要与所述第二数据存储设备内的重新建立的分区的第二子集相关联的新的块设备标识符。
19.根据权利要求18所述的计算机可读存储介质,其中,所述第二数据存储设备的先前的分区包括与初始的OS相关联的至少一个分区,其中,当从所述第二数据存储设备移除与所述先前的分区相关联的所述至少一个块设备标识符时,所述至少一个分区被从所述第二数据存储设备移除。
20.根据权利要求18所述的计算机可读存储介质,其中,所述计算机可执行指令进一步使所述处理器通过更新所述元数据以包括所述新的块设备标识符作为分区的第二子集的引用指针、来重新建立所述第二数据存储设备内的分区的第二子集。
21.根据权利要求17所述的计算机可读存储介质,其中,所述计算机可执行指令进一步使所述处理器:
与在所述第二数据存储设备上安装新的OS同时地或者在所述第二数据存储设备上安装新的OS之后,通过以下操作来更新所述元数据以重新建立所述第一数据存储设备内的分区的第一子集:
移除与所述第一数据存储设备的先前的分区相关联的至少一个块设备标识符,其中,所述先前的分区在更新所述元数据以重新建立分区的第一子集之前被定义;以及
生成要与所述第一数据存储设备内的重新建立的分区的第一子集相关联的新的块设备标识符。
CN201880048816.8A 2017-08-02 2018-07-13 用于冗余阵列数据对准的系统和方法 Active CN110945472B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/667,036 US10437503B2 (en) 2017-08-02 2017-08-02 Systems and methods for redundant array data alignment
US15/667,036 2017-08-02
PCT/US2018/041947 WO2019027655A1 (en) 2017-08-02 2018-07-13 SYSTEMS AND METHODS FOR ALIGNING REDUNDANT NETWORK DATA

Publications (2)

Publication Number Publication Date
CN110945472A CN110945472A (zh) 2020-03-31
CN110945472B true CN110945472B (zh) 2023-08-25

Family

ID=63209652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880048816.8A Active CN110945472B (zh) 2017-08-02 2018-07-13 用于冗余阵列数据对准的系统和方法

Country Status (6)

Country Link
US (2) US10437503B2 (zh)
EP (1) EP3662358A1 (zh)
JP (1) JP6983999B2 (zh)
CN (1) CN110945472B (zh)
CA (1) CA3071803A1 (zh)
WO (1) WO2019027655A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202103850WA (en) 2018-10-16 2021-05-28 Eluvio Inc Decentralized content fabric
WO2020259942A1 (de) * 2019-06-28 2020-12-30 Siemens Mobility GmbH Betriebsverfahren für eine computeranordnung und computeranordnung
US11216200B2 (en) * 2020-05-06 2022-01-04 EMC IP Holding Company LLC Partition utilization awareness of logical units on storage arrays used for booting
US20240070065A1 (en) * 2022-08-30 2024-02-29 Dell Products L.P. Method to offload memory tiering from the cpu to the memory device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360030B1 (en) * 2004-06-01 2008-04-15 Sanbolic, Inc. Methods and apparatus facilitating volume management

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332180B1 (en) 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
US6260068B1 (en) 1998-06-10 2001-07-10 Compaq Computer Corporation Method and apparatus for migrating resources in a multi-processor computer system
US6381682B2 (en) 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US7353240B1 (en) 1999-09-29 2008-04-01 Hitachi, Ltd. Method and storage system that enable sharing files among multiple servers
JP2004506980A (ja) 2000-08-11 2004-03-04 3ウェア、 インコーポレイテッド コンピュータネットワークを介してブロックレベルストレージアクセスを提供するためのアーキテクチャ
CA2391717A1 (en) 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Transferring data and storing metadata across a network
US6996743B2 (en) * 2002-07-26 2006-02-07 Sun Microsystems, Inc. Method for implementing a redundant data storage system
US7340638B2 (en) * 2003-01-30 2008-03-04 Microsoft Corporation Operating system update and boot failure recovery
US6941430B2 (en) * 2003-02-18 2005-09-06 Lucent Technologies Inc. Mirrored disk partition with disk partition modification contemporaneous with client application access
CN1658185A (zh) 2004-02-18 2005-08-24 国际商业机器公司 相互独立地共存多个操作系统的计算机系统与其切换方法
JP4982971B2 (ja) 2004-09-29 2012-07-25 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
US7870332B2 (en) 2005-01-31 2011-01-11 Broadcom Corporation Retention of functionality and operational configuration for a portable data storage drive
US7516315B2 (en) 2005-03-18 2009-04-07 Research In Motion Ltd. Electronic device having an alterable configuration and methods of manufacturing and configuring the same
US7877592B2 (en) 2006-12-04 2011-01-25 Ntt Docomo, Inc. System and methods for efficient and cooperative operating system switching
TW201248499A (en) 2011-05-18 2012-12-01 Asustek Comp Inc Method of swapping between operating systems applied to computer system
GB2520489A (en) 2013-11-20 2015-05-27 Ibm Deletion of content in digital storage systems
TWI588747B (zh) 2014-01-14 2017-06-21 仁寶電腦工業股份有限公司 切換作業系統的方法及電子裝置
US20150277934A1 (en) 2014-03-25 2015-10-01 Microsoft Technology Licensing, Llc One time dual boot mobile phone device
US9430223B2 (en) 2014-09-25 2016-08-30 International Business Machines Corporation Live operating system update mechanisms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360030B1 (en) * 2004-06-01 2008-04-15 Sanbolic, Inc. Methods and apparatus facilitating volume management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
What Is A Boot Loader;Rouse;《https://searchdatacenter.techtarget.com/definition/boot-loader-boot-manager》;20061231;第1-4页 *

Also Published As

Publication number Publication date
CN110945472A (zh) 2020-03-31
CA3071803A1 (en) 2019-02-07
US10437503B2 (en) 2019-10-08
WO2019027655A1 (en) 2019-02-07
JP6983999B2 (ja) 2021-12-17
US20200019333A1 (en) 2020-01-16
US10877681B2 (en) 2020-12-29
US20190042135A1 (en) 2019-02-07
JP2020530155A (ja) 2020-10-15
EP3662358A1 (en) 2020-06-10

Similar Documents

Publication Publication Date Title
US10877681B2 (en) Systems and methods for redundant array data alignment
CN110998517B (zh) 用于定制化的操作系统转换的系统和方法
US8832028B2 (en) Database cloning
EP2731013B1 (en) Backing up method, device, and system for virtual machine
US8719497B1 (en) Using device spoofing to improve recovery time in a continuous data protection environment
US9348827B1 (en) File-based snapshots for block-based backups
US10678663B1 (en) Synchronizing storage devices outside of disabled write windows
US11513921B1 (en) Leveraging file-based backups to facilitate bare-metal and system-state recovery operations
US7792800B1 (en) Data repository upgrade process
CN110209735B (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
US20100280996A1 (en) Transactional virtual disk with differential snapshots
US11409614B2 (en) Systems and methods for multiple recovery types using single backup type
US20190187977A1 (en) Dual boot operating system installation using multiple redundant drives
US10223206B1 (en) Method and system to detect and delete uncommitted save sets of a backup
US10445183B1 (en) Method and system to reclaim disk space by deleting save sets of a backup
US11630742B2 (en) System and method of performing recovery using a backup image
US20190138407A1 (en) Systems and methods of deploying an operating system from a resilient virtual drive
US10282254B1 (en) Object layout discovery outside of backup windows
US10936430B2 (en) Method and system for automation of differential backups
US10599412B2 (en) Operating system installation on a computing device with multiple redundant drives
US11467738B2 (en) Failsafe mechanism to import snapshots
US20230143903A1 (en) Method and system for idempotent synthetic full backups in storage devices
US11513829B2 (en) Method and system for instant recovery of application data using virtual machine backups

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