[go: up one dir, main page]

CN107533482B - Combine operating system volumes - Google Patents

Combine operating system volumes Download PDF

Info

Publication number
CN107533482B
CN107533482B CN201680022955.4A CN201680022955A CN107533482B CN 107533482 B CN107533482 B CN 107533482B CN 201680022955 A CN201680022955 A CN 201680022955A CN 107533482 B CN107533482 B CN 107533482B
Authority
CN
China
Prior art keywords
computing device
target
operating system
volume
system volume
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
CN201680022955.4A
Other languages
Chinese (zh)
Other versions
CN107533482A (en
Inventor
H·斯
N·德拉
M·齐
B·韦
J·娜
U·S·韦德
S·I·拉瓦纳基
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107533482A publication Critical patent/CN107533482A/en
Application granted granted Critical
Publication of CN107533482B publication Critical patent/CN107533482B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

一些示例提供包括相邻计算设备的系统,相邻计算设备包括已部署操作系统(OS)卷,以及对应于已部署OS卷的相应的相邻位表。该系统可以包括目标计算设备,目标计算设备包括目标操作系统(OS)卷。目标计算设备可以确定对应于目标OS卷的目标位表。目标位表中的每个位指示目标OS卷的数据块相对于基本OS卷是否不同。目标计算设备可以基于位表来确定与已部署OS卷的第二组数据块等同的第一组数据块。目标计算设备可以接收来自相邻计算设备的第二组数据块中的至少一个数据块,并且组合目标OS。

Figure 201680022955

Some examples provide a system including an adjacent computing device, the adjacent computing device including a deployed operating system (OS) volume, and a corresponding adjacent bit table corresponding to the deployed OS volume. The system may include a target computing device, the target computing device including a target operating system (OS) volume. The target computing device may determine a target bit table corresponding to the target OS volume. Each bit in the target bit table indicates whether a data block of the target OS volume is different relative to a base OS volume. The target computing device may determine a first set of data blocks that is equivalent to a second set of data blocks of the deployed OS volume based on the bit table. The target computing device may receive at least one data block from the second set of data blocks from the adjacent computing device and assemble a target OS.

Figure 201680022955

Description

组合操作系统卷Combine operating system volumes

背景技术Background technique

计算设备可以执行操作系统。操作系统可以对计算设备的资源的利用进行管理。A computing device may execute an operating system. The operating system may manage the utilization of the resources of the computing device.

附图说明Description of drawings

在下面的具体实施方式中,并且参考附图,描述了某些示例,在附图中:In the following detailed description, and with reference to the accompanying drawings, some examples are described, in which:

图1是可以组合操作系统卷的示例计算系统的概念图:Figure 1 is a conceptual diagram of an example computing system that can combine operating system volumes:

图2是可以组合操作系统卷的示例计算系统的另一概念图。2 is another conceptual diagram of an example computing system that can combine operating system volumes.

图3是可以组合操作系统卷的示例计算系统的另一概念图;3 is another conceptual diagram of an example computing system that can combine operating system volumes;

图4是用于组合操作系统卷的示例方法的流程图:4 is a flowchart of an example method for combining operating system volumes:

图5是用于组合操作系统卷的示例方法的流程图;以及5 is a flowchart of an example method for combining operating system volumes; and

图6是用于组合操作系统卷的示例的框图。6 is a block diagram of an example for combining operating system volumes.

具体实施方式Detailed ways

数据中心可以包括多个计算设备,例如,服务器。服务器中的每一个都执行操作系统(OS)。必须先安装每个操作系统,然后才能使用该服务器的资源。在一些环境中,目标计算设备(例如,必须预分配的服务器)可以请求OS媒体(例如,OS卷)以安装操作系统。预分配计算设备(例如,媒体服务器)可以经由链路(例如,网络链路等)将卷传送到目标计算设备。A data center may include multiple computing devices, eg, servers. Each of the servers executes an operating system (OS). Each operating system must be installed before the server's resources can be used. In some environments, a target computing device (eg, a server that must be preallocated) may request OS media (eg, an OS volume) to install the operating system. A pre-allocated computing device (eg, a media server) may transfer the volume to the target computing device via a link (eg, a network link, etc.).

响应于接收到对请求或命令的请求,媒体服务器可以将包括用于目标计算设备的目标OS卷的OS映像从媒体服务器流送到目标计算设备。目标计算设备可以接收并安装来自媒体服务器的OS映像。In response to receiving the request for the request or command, the media server may stream the OS image including the target OS volume for the target computing device from the media server to the target computing device. The target computing device can receive and install the OS image from the media server.

然而,从媒体服务器流送媒体相对较慢,这可能会导致冗长的OS安装时间。媒体服务器可能由于各种因素而缓慢地流送OS映像。例如,媒体服务器可能基于可用的网络带宽而吞吐量受限。预分配的计算设备与媒体服务器之间的同时连接的数量进一步划分已经受限的网络带宽。媒体服务器的OS预分配速度也可能受到预分配给媒体服务器的输入-输出操作(IOPS)的最大数量的限制。与网络带宽一样,媒体服务器的IOPS在媒体服务器当前预分配的计算设备中的每一个之间划分。However, streaming media from a media server is relatively slow, which can lead to lengthy OS installation times. A media server may be streaming OS images slowly due to various factors. For example, a media server may be limited in throughput based on available network bandwidth. The pre-allocated number of simultaneous connections between computing devices and media servers further divides the already constrained network bandwidth. The OS pre-allocation speed of the media server may also be limited by the maximum number of input-output operations (IOPS) pre-allocated to the media server. Like network bandwidth, the IOPS of the media server is divided between each of the computing devices that the media server currently pre-allocates.

本公开涉及快速预分配目标计算设备(例如,服务器)的OS卷,并且减少预分配期间媒体服务器的负载。根据本公开,目标计算设备确定要预分配的目标操作系统卷。基于目标OS卷,目标计算设备生成位表。位表中的每个位指示目标OS卷的多个块相对于基本OS卷是否不同。The present disclosure relates to rapidly pre-allocating an OS volume of a target computing device (eg, a server) and reducing the load on the media server during pre-allocation. According to the present disclosure, a target computing device determines a target operating system volume to preallocate. Based on the target OS volume, the target computing device generates a bit table. Each bit in the bit table indicates whether multiple blocks of the target OS volume are different relative to the base OS volume.

目标服务器确定相邻计算设备并请求相邻计算设备的位表。相邻计算设备可以包括:例如,在相同刀锋上的VM,与目标计算设备在相同的外壳中、在相同的互连中、在相同的机架中、和/或处于相同的交换机级别的计算设备。相邻计算设备还具有与待预分配的目标OS卷相同的操作系统版本。The target server determines neighboring computing devices and requests bit tables for neighboring computing devices. Neighboring computing devices may include, for example, VMs on the same blade, computing in the same enclosure, in the same interconnect, in the same rack, and/or at the same switch level as the target computing device equipment. The adjacent computing device also has the same operating system version as the target OS volume to be preallocated.

通过比较目标位表和相邻位表中的对应位,目标服务器确定相邻服务器的相邻OS卷中的一组数据块,并且其对应于目标OS卷中的一组数据块。目标服务器然后向相邻计算设备请求数据块中的至少一些,并且组合目标OS卷。By comparing the corresponding bits in the target bit table and the adjacent bit table, the target server determines a set of data blocks in the adjacent server's adjacent OS volumes and which correspond to a set of data blocks in the target OS volume. The target server then requests at least some of the data blocks from neighboring computing devices, and combines the target OS volumes.

为了组合目标OS卷,目标计算设备接收所请求的块并将其存储在目标计算设备的随机存取存储器(RAM)中,并且例如基于存储器映射来将数据块从RAM复制到与目标计算设备耦合的存储装置。To assemble the target OS volume, the target computing device receives the requested block and stores it in random access memory (RAM) of the target computing device, and copies the data block from the RAM to coupled with the target computing device, eg, based on a memory map storage device.

利用多线程、多个同时网络连接、和/或多个高速互连,目标计算设备可以同时从多个相邻计算设备接收数据块,本公开的技术可以快速降低OS预分配时间,即,在目标计算设备上安装和执行OS卷花费的时间。作为示例,本公开的技术可以将OS预分配时间从45分钟或更长缩短到不到一分钟,并且可以允许并发地对大量的服务器(例如,上千台服务器)进行预分配。With multi-threading, multiple simultaneous network connections, and/or multiple high-speed interconnects, a target computing device can receive blocks of data from multiple adjacent computing devices simultaneously, the techniques of the present disclosure can rapidly reduce OS pre-allocation time, i.e., in Time spent mounting and executing the OS volume on the target computing device. As an example, the techniques of the present disclosure can reduce OS pre-allocation time from 45 minutes or more to less than a minute, and can allow concurrent pre-allocation of large numbers of servers (eg, thousands of servers).

图1是可以组合操作系统卷的示例计算系统的概念图。计算系统100在图1中示出。计算系统100包括目标计算设备102和多个相邻计算设备108A-108N(统称为“相邻计算设备108”),其中N是任意数。在各种示例中,目标计算设备102和相邻计算设备108可以包括服务器。1 is a conceptual diagram of an example computing system that can combine operating system volumes. Computing system 100 is shown in FIG. 1 . Computing system 100 includes a target computing device 102 and a plurality of neighboring computing devices 108A- 108N (collectively "neighboring computing devices 108"), where N is any number. In various examples, target computing device 102 and neighboring computing devices 108 may include servers.

目标计算设备102和相邻计算设备108可以位于相同的外壳中,例如,在相同的刀锋服务器中、在相同的机架中、或者可以与相同的交换机连接。在图1的示例中,目标计算设备102和相邻计算设备108经由互连106连接。互连106可以包括任何数量的系统级互连,例如,刀锋服务器、和/或网络连接。在各种示例中,互连106可以提供极高的吞吐量,例如,40或60千兆比特每秒(gbps)或更高。Target computing device 102 and adjacent computing device 108 may be located in the same enclosure, eg, in the same blade server, in the same rack, or may be connected to the same switch. In the example of FIG. 1 , target computing device 102 and neighboring computing device 108 are connected via interconnect 106 . Interconnects 106 may include any number of system-level interconnects, eg, blade servers, and/or network connections. In various examples, interconnect 106 may provide extremely high throughput, eg, 40 or 60 gigabits per second (gbps) or higher.

相邻计算设备108中的每一个都包括相应的已部署OS卷116A-116N(已部署OS卷116)。在图1的示例中,已部署OS卷116可以全部包括相同的OS版本。例如,相同版本的Windows、虚拟机主机、Linux等。Each of the neighboring computing devices 108 includes a corresponding deployed OS volume 116A-116N (deployed OS volume 116). In the example of FIG. 1, the deployed OS volumes 116 may all include the same OS version. For example, same version of Windows, virtual machine host, Linux, etc.

已部署OS卷116中的每一个都包括相应的数据块118A-118N(统称为“数据块118”)。在各种示例中,数据块118可以包括OS卷的单个数据块(例如,大小为4千字节(4KB))或多个块。Each of the deployed OS volumes 116 includes a corresponding data block 118A-118N (collectively "data blocks 118"). In various examples, data block 118 may comprise a single data block (eg, 4 kilobytes (4KB) in size) or multiple blocks of an OS volume.

基于相应的每组数据块118A-118N,相邻计算设备108A-108N可以生成相邻位表110A-110N(“相邻位表110”)。相邻位表110中的每一个包括相应的多个位。这些位中的每一个指示多个数据块相对于基本OS卷(例如,基本OS卷104)的相应的多个数据块是否不同。每个相邻计算设备可以通过对已部署OS卷的相应数据块与基本OS卷104的对应数据块进行比较来生成相应的相邻位表。Based on the respective sets of data blocks 118A-118N, adjacent computing devices 108A-108N may generate adjacent bit tables 110A-110N ("adjacent bit tables 110"). Each of the adjacent bit tables 110 includes a corresponding plurality of bits. Each of these bits indicates whether the multiple data blocks are different relative to the corresponding multiple data blocks of the base OS volume (eg, base OS volume 104). Each neighboring computing device may generate a corresponding neighboring bit table by comparing the corresponding data block of the deployed OS volume with the corresponding data block of the base OS volume 104 .

作为示例,相邻计算设备108A可以生成相邻位表110A。位表110A中的每个“0”位指示对应的多个数据块118A相对于基本OS卷104的对应的多个块不同。位表110A中的每个“1”位指示对应的多个数据块118A相对于基本OS卷104的对应的多个块没有不同。As an example, neighbor computing device 108A may generate neighbor bit table 110A. Each "0" bit in bit table 110A indicates that the corresponding plurality of data blocks 118A are different from the corresponding plurality of blocks of the base OS volume 104 . Each "1" bit in bit table 110A indicates that the corresponding plurality of data blocks 118A are not different from the corresponding plurality of blocks of the base OS volume 104 .

相邻位表110A具有值“01111110”。应当理解,为了说明和示例的目的,位表110A可能显著地短于实际位表。位表110A的第一位和最后一位等于0。因此,对应于第一0位的多个数据块118A和对应于最后0位的多个数据块118A与基本OS卷104的对应的多个数据块不同。对应于相邻位表110A中的“1”位的多个数据块118A与基本OS卷104的对应的多个块没有不同。The adjacent bit table 110A has the value "01111110". It should be understood that the bit table 110A may be significantly shorter than the actual bit table for purposes of illustration and example. The first and last bits of bit table 110A are equal to zero. Therefore, the plurality of data blocks 118A corresponding to the first 0 bits and the plurality of data blocks 118A corresponding to the last 0 bits are different from the corresponding plurality of data blocks of the base OS volume 104 . The plurality of data blocks 118A corresponding to the "1" bit in the adjacent bit table 110A are no different from the corresponding plurality of blocks of the base OS volume 104 .

目标计算设备102可以类似地针对待部署的目标OS卷114确定目标位表112。类似于上面关于相邻计算设备108描述的过程,目标计算设备102可以基于目标OS卷114的对应的多个数据块相对于基本OS卷104的对应的多个数据块是否不同来确定目标位表112。Target computing device 102 may similarly determine target bit table 112 for target OS volume 114 to be deployed. Similar to the process described above with respect to the neighboring computing device 108 , the target computing device 102 may determine the target bit table based on whether the corresponding plurality of data blocks of the target OS volume 114 are different from the corresponding plurality of data blocks of the base OS volume 104 112.

目标计算设备102可以基于从预分配计算设备(例如,媒体服务器或预分配装置)接收到的指示来确定哪些计算设备包括相邻计算设备108。相邻计算设备108具有与目标OS卷114的操作系统相同的操作系统版本。相邻计算设备108可以包括在相同的刀锋上的虚拟机,与目标计算设备102连接到相同的交换机级别、相同的互连、和/或位于相同的外壳中的计算设备。Target computing device 102 may determine which computing devices include neighboring computing devices 108 based on indications received from a pre-allocated computing device (eg, a media server or a pre-allocation apparatus). Neighboring computing device 108 has the same operating system version as the operating system of target OS volume 114 . Neighboring computing device 108 may include a virtual machine on the same blade, a computing device connected to the same switch level, same interconnect, and/or located in the same enclosure as target computing device 102 .

目标计算设备102向相邻计算设备108请求相邻位表108。相邻计算设备108可以经由互连106将相邻位表110发送到目标计算设备102。目标计算设备102对目标位表112中的位与相邻位表中的每个相邻位表中的对应位进行比较。The target computing device 102 requests the neighbor bit table 108 from the neighbor computing device 108 . Neighbor computing device 108 may send neighbor bit table 110 to target computing device 102 via interconnect 106 . Target computing device 102 compares the bits in target bit table 112 to corresponding bits in each of the adjacent bit tables.

如果目标位表和相邻位表中的对应位等于1,则目标计算设备102确定目标OS卷114的对应的多个数据块相对于基本OS卷104的对应的数据块没有不同。因此,对于目标位表112中的等于“1”的位和具有等于1的对应位的相邻位表110中的对应位,目标位表112的数据块和已部署OS卷116的对应的数据块是等同的。因为目标OS卷114和已部署OS卷116的对应的数据块是等同的,所以目标计算设备102可以使用从相邻计算设备108接收到的对应的数据块来组合目标OS卷114。If the corresponding bits in the target bit table and the adjacent bit table are equal to 1, then the target computing device 102 determines that the corresponding plurality of data blocks of the target OS volume 114 are not different from the corresponding data blocks of the base OS volume 104 . Thus, for a bit in target bit table 112 equal to "1" and a corresponding bit in adjacent bit table 110 having a corresponding bit equal to 1, the data block of target bit table 112 and the corresponding data of deployed OS volume 116 Blocks are equivalent. Because the corresponding data blocks of target OS volume 114 and deployed OS volume 116 are equivalent, target computing device 102 may use corresponding data blocks received from neighboring computing devices 108 to combine target OS volume 114 .

在其中目标位表112与相邻位表110中的一个相邻位表中的对应位不相等的示例中,目标OS卷114的对应的数据块与已部署OS卷116的对应数据块不等同,并且目标计算设备102不会基于这些块来请求或组合目标OS卷114。In an example in which the corresponding bits in the target bit table 112 and one of the adjacent bit tables in the adjacent bit table 110 are not equal, the corresponding data blocks of the target OS volume 114 are not equivalent to the corresponding data blocks of the deployed OS volume 116 , and the target computing device 102 does not request or combine the target OS volume 114 based on these blocks.

如果目标位表和相邻位表中的对应位等于零,则目标计算设备102确定目标OS卷114的对应的多个数据块相对于基本OS卷104的对应的数据块不同。对于相对于基本OS卷104不同的块,目标计算设备102请求来自媒体服务器(例如,媒体服务器218)的块。计算设备102可以基于接收到的数据块来组合目标OS卷114。The target computing device 102 determines that the corresponding plurality of data blocks of the target OS volume 114 are different from the corresponding data blocks of the base OS volume 104 if the corresponding bits in the target bit table and the adjacent bit table are equal to zero. For chunks that are different from the base OS volume 104, the target computing device 102 requests chunks from a media server (eg, media server 218). Computing device 102 may assemble target OS volume 114 based on the received data blocks.

由于目标OS卷114和已部署OS卷116的对应的数据块是等同的,所以目标计算设备102可以使用从相邻计算设备108接收到的对应的数据块来组合目标OS卷114。目标计算设备102可以请求来自一个或多个相邻计算设备108的这些等同的块中的至少一个。Since the corresponding data blocks of target OS volume 114 and deployed OS volume 116 are equivalent, target computing device 102 may use corresponding data blocks received from neighboring computing devices 108 to combine target OS volume 114 . The target computing device 102 may request at least one of these equivalent blocks from one or more neighboring computing devices 108 .

作为特定示例,目标位表112中的最后一位等于“1”。基于位表110,目标计算设备102确定相邻位表110B中的对应的最后一位和相邻位表110N中的对应的最后一位也等于“1”。基于确定相邻位表110B中的对应的最后一位和相邻位表110N中的对应的最后一位等于1,目标计算设备102可以请求已部署OS卷116B和116N的数据块118B和118N中的至少一些。目标计算设备102可以比较目标位表112中的对应位与位表110中的对应位以确定第二组数据块,目标计算机102可以从相邻计算设备108请求该第二组数据块。目标计算设备102可以请求来自相邻计算设备108的可用的第二组块中的至少一个块。As a specific example, the last bit in the target bit table 112 is equal to "1". Based on bit table 110, target computing device 102 determines that the corresponding last bit in adjacent bit table 110B and the corresponding last bit in adjacent bit table 110N are also equal to "1". Based on determining that the corresponding last bit in adjacent bit table 110B and the corresponding last bit in adjacent bit table 110N are equal to 1, target computing device 102 may request data in blocks 118B and 118N of deployed OS volumes 116B and 116N of at least some. Target computing device 102 may compare corresponding bits in target bit table 112 with corresponding bits in bit table 110 to determine a second set of data blocks that target computer 102 may request from neighboring computing devices 108 . The target computing device 102 may request at least one chunk from the second set of chunks available from the neighboring computing device 108 .

因此,计算系统100是包括多个相邻计算设备108的计算系统的示例,其中相邻计算设备中的每一个包括:与相邻计算设备108中的一个相邻计算设备相关联的相应的已部署操作系统(OS)卷(例如,116A-116N),以及对应于相应的已部署OS卷的相应的相邻位表110,其中,相应的相邻位表110中的位指示相应的已部署OS卷116相对于基本OS卷(例如,基本OS卷104)是否不同。Accordingly, computing system 100 is an example of a computing system that includes a plurality of adjacent computing devices 108 , where each of the adjacent computing devices includes: Operating system (OS) volumes (eg, 116A-116N) are deployed, and corresponding adjacent bit tables 110 corresponding to the corresponding deployed OS volumes, wherein bits in the corresponding adjacent bit table 110 indicate the corresponding deployed Whether the OS volume 116 is different from the base OS volume (eg, base OS volume 104).

计算系统100包括目标计算设备102,其包括目标OS卷114。目标计算设备102可以确定对应于目标OS卷114的目标位表112。目标位表112中的每个位对应于目标OS卷114的第一组数据块中的数据块,并且指示目标OS卷114的数据块相对于基本OS卷104是否不同。Computing system 100 includes target computing device 102 , which includes target OS volume 114 . Target computing device 102 may determine target bit table 112 corresponding to target OS volume 114 . Each bit in the target bit table 112 corresponds to a data block in the first set of data blocks of the target OS volume 114 and indicates whether the data blocks of the target OS volume 114 are different relative to the base OS volume 104 .

目标计算设备102可以从相邻计算设备108中的每一个相邻计算设备请求与相应的已部署OS卷116中的每一个相关联的相应的相邻位表110。目标计算设备102可以确定目标OS卷114所包括的第二组数据块120。基于相邻位表110与目标位表112中的对应位是否相等来确定第二组块。The target computing device 102 may request, from each of the neighboring computing devices 108 , a respective neighbor bit table 110 associated with each of the respective deployed OS volumes 116 . The target computing device 102 may determine the second set of data blocks 120 that the target OS volume 114 includes. The second group of blocks is determined based on whether corresponding bits in adjacent bit table 110 and target bit table 112 are equal.

目标计算设备102请求来自相邻计算设备108的第二组数据块110中的至少一个数据块,接收来自相邻计算设备108的第二组数据块122中的所请求的至少一个数据块,并且基于接收自相邻计算设备108的第二组数据块中的至少一个数据块来组合目标OS卷114。The target computing device 102 requests at least one data block in the second set of data blocks 110 from the neighboring computing device 108 , receives the requested at least one data block in the second set of data blocks 122 from the neighboring computing device 108 , and The target OS volume 114 is assembled based on at least one data block in the second set of data blocks received from the adjacent computing device 108 .

图2是可以执行对操作系统卷的组合的示例计算系统的另一概念图。图2示出了计算系统200。计算系统200包括媒体服务器218、目标计算设备102、以及相邻计算设备108。媒体服务器218、目标计算设备102、以及相邻计算设备108可以经由互连106连接。2 is another conceptual diagram of an example computing system that may perform composition of operating system volumes. FIG. 2 shows computing system 200 . Computing system 200 includes media server 218 , target computing device 102 , and neighboring computing devices 108 . Media server 218 , target computing device 102 , and neighboring computing devices 108 may be connected via interconnect 106 .

在图2的示例中,目标计算设备102包括网络接口214、目标OS卷114、随机存取存储器(RAM)204、目标位表112、存储器映射208、以及存储装置212。存储装置212可以包括耦合到目标计算设备102的存储装置。In the example of FIG. 2 , target computing device 102 includes network interface 214 , target OS volume 114 , random access memory (RAM) 204 , target bit table 112 , memory map 208 , and storage 212 . Storage 212 may include storage coupled to target computing device 102 .

为了组合目标OS卷114,目标计算设备102接收来自相邻计算设备108的被请求的数据块,并且目标计算设备将接收到的块存储在RAM 204中。目标计算设备102可利用滚动窗口存储器映射将接收到的至少一个数据块存储在RAM 204中。在滚动窗口存储器映射中,接收到的数据块以滚动方式存储在RAM 204中,即,当接收到块时存储到顺序的存储器地址。一旦RAM 204的最大可寻址量被写入,则RAM 204的开头处的块被覆写。周期性地(例如,每2毫秒),目标计算设备102可以基于存储器映射208将存储在RAM 204中的至少一个数据块复制到存储装置212的对应块。存储器映射208可以存储在RAM 204中,并且指示存储在RAM 204的特定地址处的所接收到的目标OS卷114的数据块与该数据块在存储装置212中的对应块地址之间的映射。To assemble the target OS volume 114 , the target computing device 102 receives the requested block of data from the neighboring computing device 108 , and the target computing device stores the received block in the RAM 204 . Target computing device 102 may store the received at least one block of data in RAM 204 using a rolling window memory map. In a rolling window memory map, received blocks of data are stored in RAM 204 in a rolling fashion, ie, to sequential memory addresses as blocks are received. Once the maximum addressable amount of RAM 204 is written, the block at the beginning of RAM 204 is overwritten. Periodically (eg, every 2 milliseconds), target computing device 102 may copy at least one block of data stored in RAM 204 to a corresponding block of storage 212 based on memory map 208 . The memory map 208 may be stored in the RAM 204 and indicates the mapping between the received data block of the target OS volume 114 stored at a particular address in the RAM 204 and the corresponding block address in the storage device 212 for the data block.

目标计算设备102可以使用网络接口214来接收数据块。网络接口214可以包括能够与互连106通信的任何多个和/或不同的接口。目标计算设备102可以使用多个网络接口214来接收所请求的数据块,例如,第二组数据块122中的数据块。在各种示例中,目标计算设备102可以发起与相邻计算设备108中的每一个和/或目标计算设备102从其接收数据块的媒体服务器218的分离的连接。在各种示例中,目标计算设备102针对用于接收数据块的网络接口214的每个连接执行分离的线程。Target computing device 102 may use network interface 214 to receive data blocks. Network interface 214 may include any number and/or different interfaces capable of communicating with interconnect 106 . The target computing device 102 may use the plurality of network interfaces 214 to receive the requested data blocks, eg, data blocks in the second set of data blocks 122 . In various examples, the target computing device 102 may initiate a separate connection with each of the neighboring computing devices 108 and/or the media server 218 from which the target computing device 102 received data chunks. In various examples, target computing device 102 executes a separate thread for each connection of network interface 214 for receiving data blocks.

响应于接收到发送已部署OS卷116的数据块118的请求,媒体服务器218可以确定相邻计算设备108的资源利用,例如,中央处理单元(CPU)使用、IO利用(例如,IOPS)、网络带宽、网络接口卡(NIC)占用、存储器使用等。基于所确定的资源利用,媒体服务器218可以指示和/或目标计算设备102可以确定要从相邻计算设备108请求的第二组数据块的数量。在各种示例中,具有较高资源利用的相邻计算设备108可以发送较少的数据块。因此,相邻计算设备108可以基于相邻计算设备108的资源利用来发送第二组数据块122中的至少一个块。In response to receiving the request to send the data block 118 of the deployed OS volume 116, the media server 218 may determine the resource utilization of the neighboring computing devices 108, eg, central processing unit (CPU) usage, IO utilization (eg, IOPS), network Bandwidth, Network Interface Card (NIC) usage, memory usage, etc. Based on the determined resource utilization, the media server 218 may instruct and/or the target computing device 102 may determine the number of the second set of data blocks to request from the neighboring computing device 108 . In various examples, neighboring computing devices 108 with higher resource utilization may send fewer blocks of data. Accordingly, the neighboring computing devices 108 may transmit at least one block of the second set of data blocks 122 based on the resource utilization of the neighboring computing devices 108 .

媒体服务器218可以存储基本OS卷104,并且可以将与基本OS卷104相关的信息(例如,基本OS卷104的位表)发送到目标计算设备102。在各种示例中,基于位表112中的位是否不等于相邻位表110中的每个相邻位表的对应位中的任一个位,目标计算设备102可以确定目标OS卷114的数据块不可从相邻计算设备108获得。响应于确定数据块不可获得,目标计算设备102可以从媒体服务器218请求该不可获得的数据块。目标计算设备102可以接收来自媒体服务器218的所请求的数据块,并且基于所接收到的数据块来组合目标OS卷114。The media server 218 may store the base OS volume 104 and may send information related to the base OS volume 104 (eg, a bit table of the base OS volume 104 ) to the target computing device 102 . In various examples, target computing device 102 may determine the data of target OS volume 114 based on whether a bit in bit table 112 is not equal to any of the corresponding bits of each adjacent bit table in adjacent bit table 110 Blocks are not available from neighboring computing devices 108 . In response to determining that the data chunk is not available, the target computing device 102 may request the unavailable data chunk from the media server 218 . Target computing device 102 may receive the requested data block from media server 218 and assemble target OS volume 114 based on the received data block.

在各种示例中,媒体服务器218可以确定相邻计算设备108。媒体服务器218可以基于以下来确定相邻计算设备108:计算设备是否是与目标计算设备102在相同刀锋上的VM,和/或计算设备是否与目标计算设备102处于相同的外壳、相同的互连、和/或相同的机架中,和/或是否与目标计算设备102处于相同的交换机级别。媒体服务器218还可以基于计算设备是否具有与被预分配的目标OS卷114相同的操作系统版本来确定计算设备是相邻计算设备。In various examples, media server 218 may determine neighboring computing devices 108 . The media server 218 may determine the neighboring computing device 108 based on whether the computing device is a VM on the same blade as the target computing device 102 and/or whether the computing device is in the same enclosure, the same interconnect as the target computing device 102 , and/or in the same rack, and/or at the same switch level as the target computing device 102 . The media server 218 may also determine that a computing device is a neighboring computing device based on whether the computing device has the same operating system version as the pre-allocated target OS volume 114 .

媒体服务器218可以确定相邻计算设备108中的哪一个最接近(即,具有最高的卷传送吞吐量)目标计算设备102的排序。媒体服务器218可以生成排序的指示并将排序发送到目标计算设备102。媒体服务器218还可以基于上面描述的资源利用来生成目标计算设备102要从相邻计算设备108获取的块的数量的指示。The media server 218 may determine which of the neighboring computing devices 108 is closest (ie, has the highest volume transfer throughput) to the ranking of the target computing device 102 . The media server 218 may generate an indication of the ranking and send the ranking to the target computing device 102 . The media server 218 may also generate an indication of the number of chunks that the target computing device 102 is to obtain from neighboring computing devices 108 based on the resource utilization described above.

图3是可以示出数据块、位图、以及位表的示例的概念图。图3示出了计算系统300。计算系统300包括OS数据块302。OS数据块302可以包括如本公开中所描述的数据块。在各种示例中,OS数据块302可以包括操作系统信息,并且可以排除计算设备彼此显著不同的信息,例如,应用数据。OS数据块302中的每一个可以包括4千字节块,其可由计算设备逻辑地寻址。3 is a conceptual diagram that may illustrate examples of data blocks, bitmaps, and bit tables. FIG. 3 shows computing system 300 . Computing system 300 includes OS data block 302 . OS data blocks 302 may include data blocks as described in this disclosure. In various examples, OS data block 302 may include operating system information, and may exclude information where computing devices differ significantly from one another, eg, application data. Each of the OS data blocks 302 may include 4 kilobyte blocks, which are logically addressable by the computing device.

基于OS数据块302中的每一个,计算设备(例如,目标计算设备、媒体服务器218、和/或相邻计算设备108)可以生成集群位图304。集群位图304中的每个位对应于OS数据块302的数据块。集群位图304中的每个位还指示对应的数据块相对于基本OS卷(例如,基本OS卷104)是否不同。相邻计算设备108中的每一个、目标计算设备102、和/或媒体服务器218基于相应的集群位图(例如,集群位图304)来确定相应的位表(例如,位表306)。在各种示例中,位表306可以包括16字节值。在各种示例中,计算可以为其它计算设备分配用于查询位表和/或集群位图的专用网络端口。Based on each of the OS data blocks 302 , a computing device (eg, target computing device, media server 218 , and/or neighboring computing devices 108 ) may generate a cluster bitmap 304 . Each bit in cluster bitmap 304 corresponds to a data block of OS data block 302 . Each bit in the cluster bitmap 304 also indicates whether the corresponding data block is different relative to the base OS volume (eg, base OS volume 104). Each of neighboring computing devices 108, target computing device 102, and/or media server 218 determines a corresponding bit table (eg, bit table 306) based on the corresponding cluster bitmap (eg, cluster bitmap 304). In various examples, bit table 306 may include 16-byte values. In various examples, the computing may allocate dedicated network ports for other computing devices to query bit tables and/or cluster bitmaps.

作为确定集群位图的示例,计算设备(例如,相邻计算设备108A)可以基于设置/交叉逻辑基于集群位图304中的多个对应位来计算位表306中的每个位。例如,如果集群位图304中的所有多个相应位都等于“1”,则位表306的第一(最左侧的)位等于“1”。然而,如果集群位图304中的对应的多个位中的任何一个等于零,则位表306中的对应位等于零。As an example of determining a cluster bitmap, a computing device (eg, neighboring computing device 108A) may compute each bit in bit table 306 based on a plurality of corresponding bits in cluster bitmap 304 based on set/crossover logic. For example, if all multiple corresponding bits in cluster bitmap 304 are equal to "1", then the first (leftmost) bit of bit table 306 is equal to "1". However, if any of the corresponding plurality of bits in cluster bitmap 304 is equal to zero, then the corresponding bit in bit table 306 is equal to zero.

在各种示例中,计算设备(例如,相邻计算设备108中的一个)的IO子系统可以确定OS卷的块(例如,数据块118中的一个)何时改变。IO子系统可以检测到已经发生对与操作系统的数据块相关联的地址的写入。基于所检测到的写入,IO子系统可以基于写入的数据块相对于基本OS卷是否不同来确定是否更新集群位图304中的对应位。IO子系统还可以基于集群位图304中的对应位来确定是否更新位表306中的对应位。In various examples, an IO subsystem of a computing device (eg, one of neighboring computing devices 108 ) may determine when a block of an OS volume (eg, one of data blocks 118 ) changes. The IO subsystem can detect that a write to an address associated with a data block of the operating system has occurred. Based on the detected writes, the IO subsystem may determine whether to update the corresponding bits in the cluster bitmap 304 based on whether the written data blocks are different relative to the base OS volume. The IO subsystem may also determine whether to update the corresponding bit in the bit table 306 based on the corresponding bit in the cluster bitmap 304 .

图4是用于组合操作系统卷的示例方法的流程图。图4包括方法400。下面可以将方法400描述为由系统(例如,计算系统100(图1)或计算系统200(图2))来实现或执行。在各种示例中,方法400可以通过硬件、软件、固件、或其任何组合来执行。也可以使用其它合适的系统和/或计算设备。方法400可以以存储在系统的至少一种机器可读存储介质上并且由系统的至少一个处理器执行的可执行指令的形式实现。在各种示例中,机器可读存储介质是非暂时性的。替代地或另外,方法400可以以电子电路(例如,硬件)的形式实现。在本公开的替代示例中,方法400的一个或多个框可以基本上并发地或以与图4所示次序不同的次序执行。在本公开的替代示例中,方法400可以包括比图4所示更多或更少的框。在一些示例中,方法400的框中的一个或多个框在某些时间可以继续进行和/或可以重复。4 is a flowchart of an example method for combining operating system volumes. FIG. 4 includes method 400 . Method 400 may be described below as being implemented or performed by a system (eg, computing system 100 (FIG. 1) or computing system 200 (FIG. 2)). In various examples, method 400 may be performed by hardware, software, firmware, or any combination thereof. Other suitable systems and/or computing devices may also be used. The method 400 may be implemented in the form of executable instructions stored on at least one machine-readable storage medium of the system and executed by at least one processor of the system. In various examples, the machine-readable storage medium is non-transitory. Alternatively or additionally, method 400 may be implemented in the form of electronic circuitry (eg, hardware). In alternate examples of the present disclosure, one or more blocks of method 400 may be performed substantially concurrently or in an order different from that shown in FIG. 4 . In alternate examples of the present disclosure, method 400 may include more or fewer blocks than those shown in FIG. 4 . In some examples, one or more of the blocks of method 400 may continue at certain times and/or may be repeated.

方法400可以在框402处开始,在该点处计算系统的计算设备(例如,目标计算设备102)可以接收对应于相邻计算设备(例如,相邻计算设备108A)的已部署操作系统(OS)卷(例如,已部署OS卷116A)的相邻位表(例如,相邻位表110A),其中,相邻位表110A中的每个位对应于已部署OS卷116A的数据块,并且指示已部署OS卷的数据块相对于基本OS卷(例如,基本OS卷104)是否不同。Method 400 may begin at block 402, at which point a computing device of a computing system (eg, target computing device 102 ) may receive a deployed operating system (OS) corresponding to a neighboring computing device (eg, neighboring computing device 108A) ) volume (eg, deployed OS volume 116A) adjacent bit table (eg, adjacent bit table 110A), wherein each bit in adjacent bit table 110A corresponds to a data block of deployed OS volume 116A, and Indicates whether the data blocks of the deployed OS volume are different relative to the base OS volume (eg, base OS volume 104).

方法400可以继续进行到框404,在该点处,目标计算设备102可以确定目标位表(例如,目标位表112),其对应于目标计算设备102的目标OS卷(例如,目标OS卷114),其中,目标位表112中的每个位对应于目标OS卷114的第一组数据块120中的数据块,并且指示目标OS卷114的数据块相对于基本OS卷104是否不同。Method 400 may continue to block 404, at which point target computing device 102 may determine a target bit table (eg, target bit table 112 ) that corresponds to a target OS volume of target computing device 102 (eg, target OS volume 114 ) ), where each bit in the target bit table 112 corresponds to a data block in the first set of data blocks 120 of the target OS volume 114 and indicates whether the data blocks of the target OS volume 114 are different relative to the base OS volume 104 .

方法400可以继续进行到框406,在框406处,目标计算设备102可以继续进行到确定由已部署OS卷116A包括的目标OS卷114的第二组数据块122。确定第二组数据块122可以基于相邻位表110A和目标位表112中的对应位是否相等。第二组数据块122是第一组数据块120的子集。The method 400 may proceed to block 406, where the target computing device 102 may proceed to determine the second set of data blocks 122 of the target OS volume 114 included by the deployed OS volume 116A. Determining the second set of data blocks 122 may be based on whether corresponding bits in the adjacent bit table 110A and the target bit table 112 are equal. The second set of data blocks 122 is a subset of the first set of data blocks 120 .

方法400可以继续进行到框408,在框408处,目标计算设备102可以请求来自邻近计算设备108A的第二组数据块122中的至少一个数据块。方法400可以进一步继续进行到框410,在框410处,目标计算设备102可以接收来自相邻计算设备108A的第二组数据块122中的至少一个数据块。方法400可以继续进行到框412,在框412处,目标计算设备102可以基于接收自相邻计算设备108A的第二组数据块122中的至少一个数据块来组合目标OS卷114。The method 400 may continue to block 408, where the target computing device 102 may request at least one data block of the second set of data blocks 122 from the neighboring computing device 108A. The method 400 may further proceed to block 410, where the target computing device 102 may receive at least one data block of the second set of data blocks 122 from the neighboring computing device 108A. The method 400 may continue to block 412 where the target computing device 102 may combine the target OS volume 114 based on at least one data block in the second set of data blocks 122 received from the adjacent computing device 108A.

图5是用于组合操作系统卷的示例方法的流程图。图5示出了方法500。下面可以将方法500描述为由系统(例如,计算系统100(图1)或计算系统200(图2))来实现或执行。也可以使用其它合适的系统和/或计算设备。方法500可以以存储在系统的至少一种机器可读存储介质上并且由系统的至少一个处理器执行的可执行指令的形式实现。方法500可以由硬件、软件、固件、或其任何组合来实现。5 is a flowchart of an example method for combining operating system volumes. FIG. 5 shows method 500 . Method 500 may be described below as being implemented or performed by a system (eg, computing system 100 (FIG. 1) or computing system 200 (FIG. 2)). Other suitable systems and/or computing devices may also be used. The method 500 may be implemented in the form of executable instructions stored on at least one machine-readable storage medium of the system and executed by at least one processor of the system. Method 500 may be implemented by hardware, software, firmware, or any combination thereof.

替代地或另外,方法500可以以电子电路(例如,硬件)的形式实现。在本公开的替代示例中,方法500的一个或多个框可以基本上并发地或以与图5所示的次序不同的次序执行。在本公开的替代示例中,方法500可以包括比图5所示更多或更少的框。在一些示例中,方法500的框中的一个或多个框在某些时间可以继续进行和/或可以重复。Alternatively or additionally, method 500 may be implemented in the form of electronic circuitry (eg, hardware). In alternate examples of the present disclosure, one or more blocks of method 500 may be performed substantially concurrently or in a different order than that shown in FIG. 5 . In alternate examples of the present disclosure, method 500 may include more or fewer blocks than those shown in FIG. 5 . In some examples, one or more of the blocks of method 500 may continue at certain times and/or may be repeated.

在各种示例中,方法500可以在框502处开始,在该点处,计算系统的计算设备(例如,目标计算设备102)可以接收对应于相邻计算设备(例如,相邻计算设备108A)的已部署操作系统(OS)卷(例如,已部署OS卷116A)的相邻位表(例如,相邻位表110A),其中,相邻位表110A中的每个位对应于已部署OS卷116A的数据块,并且指示已部署OS卷的数据块相对于基本OS卷(例如,基本OS卷104)是否不同。In various examples, method 500 may begin at block 502, at which point a computing device of a computing system (eg, target computing device 102 ) may receive data corresponding to a neighboring computing device (eg, neighboring computing device 108A) A neighbor bit table (eg, neighbor bit table 110A) of a deployed operating system (OS) volume (eg, deployed OS volume 116A), where each bit in neighbor bit table 110A corresponds to the deployed OS volume 116A and indicates whether the data blocks of the deployed OS volume are different relative to the base OS volume (eg, base OS volume 104).

方法500可以继续进行到框504,在该点处,目标计算设备102可以确定目标位表(例如,目标位表112),其对应于目标计算设备102的目标OS卷(例如,目标OS卷114),其中,目标位表112中的每个位对应于目标OS卷114的第一组数据块120中的数据块。目标位表112中的每个位还指示目标OS卷114的对应数据块相对于基本OS卷是否不同。Method 500 may continue to block 504, at which point target computing device 102 may determine a target bit table (eg, target bit table 112 ) that corresponds to a target OS volume of target computing device 102 (eg, target OS volume 114 ) ), where each bit in the target bit table 112 corresponds to a data block in the first set of data blocks 120 of the target OS volume 114 . Each bit in the target bit table 112 also indicates whether the corresponding data block of the target OS volume 114 is different relative to the base OS volume.

方法500可以继续进行到框506,在框506处,目标计算设备102可以确定相邻计算设备(例如,相邻计算设备108N)。为了确定计算设备是否是相邻计算设备,目标计算设备102或媒体服务器218可以确定计算设备是否位于以下中的至少一个中:与目标计算设备102相同的机架、与目标计算设备102相同的外壳,和/或连接到与目标计算设备102相同的交换机。如果计算设备还具有与目标计算设备102相同的操作系统版本,则目标计算设备102或媒体服务器218可以进一步确定该计算设备是相邻计算设备。The method 500 may continue to block 506, where the target computing device 102 may determine neighboring computing devices (eg, neighboring computing devices 108N). To determine whether a computing device is a neighboring computing device, the target computing device 102 or the media server 218 may determine whether the computing device is located in at least one of: the same rack as the target computing device 102, the same enclosure as the target computing device 102 , and/or connected to the same switch as the target computing device 102 . If the computing device also has the same operating system version as the target computing device 102, the target computing device 102 or the media server 218 may further determine that the computing device is a neighboring computing device.

方法500可以继续进行到框508,在框508处,目标计算设备102可以继续进行到确定由已部署OS卷116A包括的目标OS卷114的第二组数据块122。第二组数据块122可以是第一组数据块120的子集。确定第二组块是基于相邻位表110A和目标位表112中的对应位是否相等的。The method 500 may proceed to block 508, where the target computing device 102 may proceed to determine the second set of data blocks 122 of the target OS volume 114 included by the deployed OS volume 116A. The second set of data blocks 122 may be a subset of the first set of data blocks 120 . Determining the second group of blocks is based on whether corresponding bits in adjacent bit table 110A and target bit table 112 are equal.

方法500可以继续进行到框510,在框510处,目标计算设备102可以请求来自相邻计算设备108A的第二组数据块122中的至少一个数据块。方法500可以进一步继续进行到框512,在框512处,目标计算设备102可以接收来自相邻计算设备108A的第二组数据块122中的至少一个数据块。The method 500 may continue to block 510, where the target computing device 102 may request at least one data block of the second set of data blocks 122 from the neighboring computing device 108A. The method 500 may further proceed to block 512, where the target computing device 102 may receive at least one data block of the second set of data blocks 122 from the neighboring computing device 108A.

方法500可以继续进行到框514,在框514处,目标计算设备102可以基于相邻位表110N和目标位表112中的对应位是否相等来确定第三组数据块,第三组数据块不在已部署OS卷的第二组数据块中。方法500可以继续进行到框516,在该点处,目标计算设备102可以从媒体服务器(例如,媒体服务器218)请求第三组数据块216中的至少一个数据块。方法500可以继续进行到框518,在该点处,目标计算设备102可以接收来自媒体服务器218的第三组数据块216中的至少一个数据块。Method 500 may proceed to block 514, where target computing device 102 may determine a third set of data blocks that are not in the In the second set of data blocks of the deployed OS volume. The method 500 may continue to block 516, at which point the target computing device 102 may request at least one data chunk of the third set of data chunks 216 from a media server (eg, media server 218). The method 500 may continue to block 518 , at which point the target computing device 102 may receive at least one data chunk from the third set of data chunks 216 from the media server 218 .

方法500可以继续进行到框520,在框520处,目标计算设备102可以基于接收自相邻计算设备108A的第二组数据块122中的至少一个数据块来组合目标OS卷114。在一些示例中,为了组合目标OS卷114,目标计算设备102可以将第二组数据块122中的至少一个数据块存储在目标计算设备102的RAM 204中。为了存储第二组数据块中的至少一个数据块,目标计算设备102可以使用滚动窗口存储器映射。为了组合目标OS卷114,目标计算设备102还可以基于存储器映射将存储在RAM 204中的目标OS的至少一个数据块复制到目标计算设备102的存储设备(例如,存储装置212)的对应块。The method 500 may continue to block 520, where the target computing device 102 may combine the target OS volume 114 based on at least one data block in the second set of data blocks 122 received from the adjacent computing device 108A. In some examples, to combine target OS volume 114 , target computing device 102 may store at least one data block in second set of data blocks 122 in RAM 204 of target computing device 102 . To store at least one data block in the second set of data blocks, the target computing device 102 may use a rolling window memory map. To combine target OS volume 114, target computing device 102 may also copy at least one data block of target OS stored in RAM 204 to a corresponding block of target computing device 102's storage device (eg, storage 212) based on the memory map.

图6是用于组合操作系统卷的示例的框图。在图6的示例中,系统600包括处理器610和机器可读存储介质620。虽然以下描述涉及单个处理器和单种机器可读存储介质,但是描述还可以应用于具有多个处理器和多种机器可读存储介质的系统。在这样的示例中,指令可以跨多种机器可读存储介质分布(例如,存储),并且指令可以跨多个处理器分布(例如,由多个处理器执行)。6 is a block diagram of an example for combining operating system volumes. In the example of FIG. 6 , system 600 includes processor 610 and machine-readable storage medium 620 . Although the following description refers to a single processor and a single machine-readable storage medium, the description may also apply to systems having multiple processors and multiple machine-readable storage media. In such examples, instructions may be distributed (eg, stored) across various machine-readable storage media, and instructions may be distributed (eg, executed by multiple processors) across multiple processors.

处理器610可以是一个或多个中央处理单元(CPU)、微处理器、和/或适于取回并执行存储在机器可读存储介质620中的指令的其它硬件设备。在图6所示的特定示例中,处理器610可以取得、解码、以及执行指令622、624、626、628,以组合操作系统卷。Processor 610 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieving and executing instructions stored in machine-readable storage medium 620 . In the particular example shown in FIG. 6, processor 610 may fetch, decode, and execute instructions 622, 624, 626, 628 to assemble operating system volumes.

作为替代或除了取回并执行指令之外,处理器610可以包括一个或多个电子电路,其包括用于执行机器可读存储介质620中的指令中的一个或多个指令的功能的多个电子组件。关于在本文中描述和示出的可执行指令表示(例如,框),应该理解,包括在一个框内的可执行指令和/或电子电路中的部分或全部在替代示例中可以包括在图中所示的不同框中或者包括在未示出的不同框中。As an alternative or in addition to retrieving and executing instructions, processor 610 may include one or more electronic circuits that include a plurality of functions for performing the functions of one or more of the instructions in machine-readable storage medium 620 electronic components. With regard to the representations of executable instructions (eg, blocks) described and illustrated herein, it should be understood that the executable instructions included within a block and/or some or all of the electronic circuitry may be included in the figures in alternative examples Different blocks shown or included in different blocks not shown.

机器可读存储介质620可以是存储可执行指令的任何电子的、磁性的、光学的、或其它物理存储设备。因此,机器可读存储介质620可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPRO)、存储驱动器、光盘等。机器可读存储介质620可以布置在系统600内,如图6所示。在各种示例中,机器可读介质620是非暂时性的。在这种情况下,可执行指令可以“安装”在系统600上。可替代地,机器可读存储介质620可以是便携式、外部、或远程存储介质,例如,其允许系统600从便携式/外部/远程存储介质下载指令。Machine-readable storage medium 620 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, the machine-readable storage medium 620 may be, for example, random access memory (RAM), electrically erasable programmable read only memory (EEPROM), storage drives, optical disks, and the like. Machine-readable storage medium 620 may be disposed within system 600 as shown in FIG. 6 . In various examples, machine-readable medium 620 is non-transitory. In this case, the executable instructions may be "installed" on system 600 . Alternatively, machine-readable storage medium 620 may be a portable, external, or remote storage medium that, for example, allows system 600 to download instructions from the portable/external/remote storage medium.

参考图6,集群位图指令622在由处理器(例如,处理器610)执行时,可以使得处理器610通过计算设备(例如,相邻计算设备108A等)确定图2的集群位图(例如,集群位图304),其中,集群位图中的每个位指示计算设备的已部署操作系统(OS)卷(例如,已部署OS卷116A)的数据块(例如,OS数据块302或数据块118A)是否不同于基本操作系统卷(例如,基本OS卷104)。6, cluster bitmap instructions 622, when executed by a processor (eg, processor 610), may cause processor 610 to determine the cluster bitmap of FIG. 2 (eg, by a computing device (eg, neighboring computing device 108A, etc.) , cluster bitmap 304), where each bit in the cluster bitmap indicates a data block (eg, OS data block 302 or data block) of the computing device's deployed operating system (OS) volume (eg, deployed OS volume 116A) Block 118A) is different from the base operating system volume (eg, base OS volume 104).

位表指令624在被执行时,可以使得处理器610基于集群位图来确定位表(例如,图3所示的位表306或图1所示的位表110A)。位表中的每个位指示已部署OS卷的对应的多个数据块(例如,图3所示的OS数据块302或图1所示的数据块118A)是否不同于基本OS卷。位表中的每个位可以对应于集群位图中的多个位。Bit table instructions 624, when executed, may cause processor 610 to determine a bit table (eg, bit table 306 shown in FIG. 3 or bit table 110A shown in FIG. 1 ) based on the cluster bitmap. Each bit in the bit table indicates whether the corresponding plurality of data blocks of the deployed OS volume (eg, OS data block 302 shown in FIG. 3 or data block 118A shown in FIG. 1 ) are different from the base OS volume. Each bit in the bit table may correspond to multiple bits in the cluster bitmap.

在各种示例中,位表指令624可以包括在被执行时可以使得处理器610进行以下操作的指令:修改已部署OS卷的数据块,由计算设备的IO子系统检测卷的数据块相对于基本操作系统卷已经改变,由IO子系统修改集群位图中的与修改后的数据块的地址相对应的位以指示集群相对于基本OS卷已经改变,以及由IO子系统修改位表中的与已部署卷的修改后的数据块相对应的位。In various examples, bit table instructions 624 may include instructions that, when executed, may cause processor 610 to modify data blocks of the deployed OS volume, detect by the IO subsystem of the computing device that the data blocks of the volume are relative to The base OS volume has changed, the bit in the cluster bitmap corresponding to the address of the modified data block is modified by the IO subsystem to indicate that the cluster has changed relative to the base OS volume, and the IO subsystem modifies the bit in the bitmap The bits corresponding to the modified data block of the deployed volume.

位表请求指令626在被执行时可以使得处理器610接收来自请求计算设备(例如,目标计算设备102)的对位表的请求,并且位表发送指令628在被执行时可以使得处理器610将位表发送到请求计算设备。Bit table request instructions 626, when executed, may cause processor 610 to receive a request for a bit table from a requesting computing device (eg, target computing device 102), and bit table send instructions 628, when executed, may cause processor 610 to The bit table is sent to the requesting computing device.

图7是用于组合操作系统卷的示例的框图。在图7的示例中,系统700包括处理器710和机器可读存储介质720。虽然以下描述涉及单个处理器和单种机器可读存储介质,但是描述也可以应用于具有多个处理器和多种机器可读存储介质的系统。在各种示例中,机器可读存储介质720是非暂时性的。在这样的示例中,指令可以跨多种机器可读存储介质分布(例如,存储),并且指令可以跨多个处理器分布(例如,由多个处理器执行)。7 is a block diagram of an example for combining operating system volumes. In the example of FIG. 7 , system 700 includes processor 710 and machine-readable storage medium 720 . Although the following description refers to a single processor and a single type of machine-readable storage medium, the description may also apply to systems having multiple processors and multiple machine-readable storage media. In various examples, machine-readable storage medium 720 is non-transitory. In such examples, instructions may be distributed (eg, stored) across various machine-readable storage media, and instructions may be distributed (eg, executed by multiple processors) across multiple processors.

处理器710可以是一个或多个中央处理单元(CPU)、微处理器、和/或适于取回并执行存储在机器可读存储介质720中的指令的其它硬件设备。在图7所示的特定示例中,处理器710可以取得、解码、以及执行指令722、724、726、728、730、732,以组合操作系统卷。Processor 710 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieving and executing instructions stored in machine-readable storage medium 720 . In the particular example shown in FIG. 7, processor 710 may fetch, decode, and execute instructions 722, 724, 726, 728, 730, 732 to assemble operating system volumes.

作为替代或除了取回并执行指令之外,处理器710可以包括一个或多个电子电路,其包括用于执行机器可读存储介质720中的指令中的一个或多个指令的功能的多个电子组件。关于在本文中描述和示出的可执行指令表示(例如,框),应该理解,包括在一个框内的可执行指令和/或电子电路中的部分或全部在替代示例中可以包括在图中所示的不同框中或者包括在未示出的不同框中。As an alternative or in addition to retrieving and executing instructions, processor 710 may include one or more electronic circuits that include a plurality of functions for performing the functions of one or more of the instructions in machine-readable storage medium 720 electronic components. With regard to the representations of executable instructions (eg, blocks) described and illustrated herein, it should be understood that the executable instructions included within a block and/or some or all of the electronic circuitry may be included in the figures in alternative examples Different blocks shown or included in different blocks not shown.

机器可读存储介质720可以是存储可执行指令的电子的、磁性的、光学的、或其它物理存储器。因此,机器可读存储介质720可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。机器可读存储介质720可以布置在系统700内,如图7所示。在这种情况下,可执行指令可以“安装”在系统700上。可替代地,机器可读存储介质720可以是便携式、外部、或远程存储介质,例如,其允许系统700从便携式/外部/远程存储介质下载指令。Machine-readable storage medium 720 may be electronic, magnetic, optical, or other physical memory that stores executable instructions. Thus, the machine-readable storage medium 720 may be, for example, random access memory (RAM), electrically erasable programmable read only memory (EEPROM), storage drives, optical disks, and the like. Machine-readable storage medium 720 may be disposed within system 700 as shown in FIG. 7 . In this case, the executable instructions may be "installed" on system 700 . Alternatively, machine-readable storage medium 720 may be a portable, external, or remote storage medium that, for example, allows system 700 to download instructions from the portable/external/remote storage medium.

参考图7,集群位图指令722在由处理器(例如,处理器710)执行时可以使得处理器710通过计算设备(例如,相邻计算设备108A等)确定图2的集群位图(例如,集群位图304),其中,集群位图中的每个位指示计算设备的已部署操作系统(OS)卷(例如,已部署OS卷117A)的数据块(例如,OS数据块302或数据块118A)是否不同于基本操作系统卷(例如,基本OS卷104)。7, cluster bitmap instructions 722, when executed by a processor (eg, processor 710), may cause processor 710 to determine, by a computing device (eg, neighboring computing device 108A, etc.), the cluster bitmap of FIG. 2 (eg, cluster bitmap 304), wherein each bit in the cluster bitmap indicates a data block (eg, OS data block 302 or a data block) of the computing device's deployed operating system (OS) volume (eg, deployed OS volume 117A) 118A) is different from the base OS volume (eg, base OS volume 104).

位表指令724在被执行时可以使得处理器710基于集群位图来确定位表(例如,图3所示的位表306或图1所示的位表110A)。位表中的每个位指示已部署OS卷的对应的多个数据块(例如,图3所示的OS数据块302或图1所示的数据块118A)是否不同于基本OS卷。位表中的每个位可以对应于集群位图中的多个位。Bit table instructions 724, when executed, may cause processor 710 to determine a bit table (eg, bit table 306 shown in FIG. 3 or bit table 110A shown in FIG. 1 ) based on the cluster bitmap. Each bit in the bit table indicates whether the corresponding plurality of data blocks of the deployed OS volume (eg, OS data block 302 shown in FIG. 3 or data block 118A shown in FIG. 1 ) are different from the base OS volume. Each bit in the bit table may correspond to multiple bits in the cluster bitmap.

位表请求指令726在被执行时可以使得处理器710接收来自请求计算设备(例如,目标计算设备102)的对位表的请求,并且位表发送指令728在被执行时可以使得处理器710将位表发送到请求计算设备。Bit table request instructions 726, when executed, may cause processor 710 to receive a request for a bit table from a requesting computing device (eg, target computing device 102), and bit table send instructions 728, when executed, may cause processor 710 to The bit table is sent to the requesting computing device.

在各种示例中,机器可读存储介质720可以包括资源利用指令730和/或数据块发送指令732。资源利用指令730在被执行时可以使得处理器710通过计算设备确定计算设备的资源利用(例如,相邻计算设备108A的负载)。在各种示例中,处理器710可以执行数据块发送指令732,该指令在被执行时使得处理器710通过计算设备向请求计算设备(例如,目标计算设备102)发送多个被请求的数据块,其中,所发送的数据块的数量是基于计算设备的资源利用的。In various examples, machine-readable storage medium 720 may include resource utilization instructions 730 and/or data block sending instructions 732 . The resource utilization instructions 730, when executed, may cause the processor 710 to determine, with the computing device, the resource utilization of the computing device (eg, the load of the neighboring computing device 108A). In various examples, the processor 710 may execute block send instructions 732 that, when executed, cause the processor 710 to send, through the computing device, a plurality of requested blocks of data to a requesting computing device (eg, target computing device 102 ) , where the number of data blocks sent is based on the resource utilization of the computing device.

Claims (12)

1.一种用于组合操作系统卷的方法,包括:1. A method for combining operating system volumes, comprising: 由计算设备接收相邻位表,所述相邻位表对应于相邻计算设备的已部署操作系统卷,其中,所述相邻位表中的每个位对应于所述已部署操作系统卷的数据块,并且指示所述已部署操作系统卷的数据块相对于基本操作系统卷是否不同;receiving, by a computing device, an adjacent bit table corresponding to a deployed operating system volume of a neighboring computing device, wherein each bit in the adjacent bit table corresponds to the deployed operating system volume and indicating whether the data blocks of the deployed operating system volume are different from the base operating system volume; 由所述计算设备确定目标位表,所述目标位表对应于所述计算设备的目标操作系统卷,其中,所述目标位表中的每个位对应于所述目标操作系统卷的第一组数据块中的数据块,并且指示所述目标操作系统卷的数据块相对于所述基本操作系统卷是否不同;A target bit table is determined by the computing device, the target bit table corresponding to a target operating system volume of the computing device, wherein each bit in the target bit table corresponds to a first bit of the target operating system volume a data block in a group of data blocks, and indicating whether the data blocks of the target operating system volume are different relative to the base operating system volume; 由所述计算设备确定由所述已部署操作系统包括的所述目标操作系统卷的第二组数据块,其中,所述确定是基于所述相邻位表和所述目标位表中的对应位是否相等的,并且所述第二组数据块是所述第一组数据块的子集;determining, by the computing device, a second set of data blocks of the target operating system volume included by the deployed operating system, wherein the determining is based on correspondence in the neighbor bit table and the target bit table whether the bits are equal, and the second set of data blocks is a subset of the first set of data blocks; 由所述计算设备请求来自所述相邻计算设备的所述第二组数据块中的至少一个数据块;requesting, by the computing device, at least one data block in the second set of data blocks from the neighboring computing device; 在所述计算设备处接收来自所述相邻计算设备的至少一个数据块;receiving at the computing device at least one block of data from the neighboring computing device; 由所述计算设备基于接收自所述相邻计算设备的至少一个数据块来组合所述目标操作系统卷;combining, by the computing device, the target operating system volume based on at least one data block received from the adjacent computing device; 由所述计算设备并且基于所述相邻位表和所述目标位表中的对应位是否相等来确定不在所述已部署操作系统卷的所述第二组数据块中的第三组数据块;determining, by the computing device and based on whether corresponding bits in the neighbor bit table and the target bit table are equal, a third set of data blocks that are not in the second set of data blocks of the deployed operating system volume ; 由所述计算设备并且从媒体服务器请求所述第三组数据块中的至少一个数据块;以及requesting, by the computing device and from a media server, at least one data chunk of the third set of data chunks; and 由所述计算设备并且从所述媒体服务器接收所述第三组数据块中的至少一个数据块。At least one data block of the third set of data blocks is received by the computing device and from the media server. 2.根据权利要求1所述的方法,其中,组合所述目标操作系统卷包括:2. The method of claim 1, wherein combining the target operating system volumes comprises: 由所述计算设备使用滚动窗口存储器映射将接收自所述相邻计算设备的所述第二组数据块中的至少一个数据块存储在目标计算设备的随机存取存储器RAM中;以及storing, by the computing device, at least one data block of the second set of data blocks received from the neighboring computing device in random access memory RAM of the target computing device using a rolling window memory map; and 由所述计算设备并且基于所述滚动窗口存储器映射来将存储在所述RAM中的所述目标操作系统卷的至少一个数据块复制到所述目标计算设备的存储设备的对应块中。At least one data block of the target operating system volume stored in the RAM is copied by the computing device and based on the rolling window memory map to a corresponding block of a storage device of the target computing device. 3.根据权利要求1所述的方法,包括:3. The method of claim 1, comprising: 由所述计算设备确定所述相邻计算设备位于以下中的至少一个中:It is determined by the computing device that the neighboring computing device is located in at least one of: 与目标计算设备相同的机架、与所述目标计算设备相同的外壳、或者以与所述目标计算设备相同的交换机级别被连接;以及the same rack as the target computing device, the same enclosure as the target computing device, or connected at the same switch level as the target computing device; and 由所述计算设备确定所述相邻计算设备具有与所述目标操作系统卷相同的操作系统版本。It is determined by the computing device that the neighboring computing device has the same operating system version as the target operating system volume. 4.一种计算系统,包括:4. A computing system comprising: 多个相邻计算设备,其中,所述相邻计算设备中的每一个包括:A plurality of adjacent computing devices, wherein each of the adjacent computing devices includes: 相应的已部署操作系统卷,其与所述相邻计算设备中的一个相关联;以及a corresponding deployed operating system volume associated with one of the adjacent computing devices; and 相应的相邻位表,其对应于所述相应的已部署操作系统卷,其中,所述相应的相邻位表中的位指示所述相应的已部署操作系统卷相对于基本操作系统卷是否不同;A corresponding adjacent bit table corresponding to the corresponding deployed operating system volume, wherein bits in the corresponding adjacent bit table indicate whether the corresponding deployed operating system volume is relative to the base operating system volume different; 目标计算设备,包括:Target computing devices, including: 目标操作系统卷;target OS volume; 所述目标计算设备用于:The target computing device is used to: 确定对应于所述目标操作系统卷的目标位表,其中,所述目标位表中的每个位对应于所述目标操作系统卷的第一组数据块中的数据块,并且指示所述目标操作系统卷的数据块相对于所述基本操作系统卷是否不同;determining a target bit table corresponding to the target operating system volume, wherein each bit in the target bit table corresponds to a data block in a first set of data blocks of the target operating system volume, and indicates the target Whether the data blocks of the operating system volume are different from the basic operating system volume; 从所述相邻计算设备请求所述相应的相邻位表;requesting the corresponding adjacent bit table from the adjacent computing device; 确定由所述已部署操作系统卷包括的所述目标操作系统卷的第二组数据块,其中,确定所述第二组数据块是基于所述相邻位表中的对应位与所述目标位表中的位是否相等的;determining a second set of data blocks of the target operating system volume comprised by the deployed operating system volume, wherein determining the second set of data blocks is based on corresponding bits in the adjacent bit table and the target Whether the bits in the bit table are equal; 请求来自所述相邻计算设备的所述第二组数据块中的至少一个数据块;requesting at least one data block in the second set of data blocks from the neighboring computing device; 接收来自所述相邻计算设备的所请求的至少一个数据块:以及receiving the requested at least one data block from the neighboring computing device: and 基于接收自所述相邻计算设备的至少一个数据块来组合所述目标操作系统卷,combining the target operating system volume based on at least one data block received from the adjacent computing device, 其中所述相邻计算设备中的每一个包括:wherein each of the adjacent computing devices includes: 集群位图,cluster bitmap, 其中所述集群位图中的每个位对应于所述相应的已部署操作系统卷中的一个已部署操作系统卷的数据块,并且wherein each bit in the cluster bitmap corresponds to a data block of one of the corresponding deployed operating system volumes, and 其中所述集群位图中的每个位指示所述相应的已部署操作系统卷中的一个已部署操作系统卷的对应数据块相对于基本操作系统卷是否不同,wherein each bit in the cluster bitmap indicates whether a corresponding data block of a deployed operating system volume in the corresponding deployed operating system volumes is different from the base operating system volume, 所述多个相邻计算设备中的每一个用于:Each of the plurality of adjacent computing devices is used to: 基于所述集群位图中的相应一个集群位图来确定位表中的相应一个位表。A corresponding one of the bit tables is determined based on a corresponding one of the cluster bitmaps. 5.根据权利要求4所述的计算系统,其中,所述目标计算设备包括随机存取存储器RAM;5. The computing system of claim 4, wherein the target computing device comprises random access memory RAM; 其中,基于接收到的至少一个数据块来组合所述目标操作系统卷,所述目标计算设备用于:Wherein, the target operating system volume is assembled based on the received at least one data block, and the target computing device is used to: 使用滚动窗口存储器映射来将接收到的所述第二组数据块中的至少一个数据块存储在所述RAM中;以及using a rolling window memory map to store at least one data block in the received second set of data blocks in the RAM; and 基于与所述目标操作系统位表相关联的存储器映射,将存储在所述RAM中的所述至少一个数据块复制到所述目标操作系统卷的对应集群。The at least one data block stored in the RAM is copied to a corresponding cluster of the target operating system volume based on a memory map associated with the target operating system bit table. 6.根据权利要求4所述的计算系统,其中,所述目标计算设备包括多个网络接口,所述目标计算设备用于:6. The computing system of claim 4, wherein the target computing device includes a plurality of network interfaces, the target computing device for: 使用所述多个网络接口来接收所请求的所述第二组数据块中的至少一个数据块。At least one of the requested second set of data blocks is received using the plurality of network interfaces. 7.根据权利要求4所述的计算系统,所述相邻计算设备用于:7. The computing system of claim 4, the adjacent computing devices for: 基于所述相邻计算设备的资源利用来发送所述已部署操作系统卷的所述第二组数据块中的至少一个数据块。At least one data block of the second set of data blocks of the deployed operating system volume is sent based on resource utilization of the neighboring computing device. 8.根据权利要求4所述的计算系统,8. The computing system of claim 4, 其中,所述相邻计算设备处于与所述目标计算设备相同的机架中、处于与所述目标计算设备相同的外壳中、或者以与所述目标计算设备相同的交换机级别被连接;并且wherein the adjacent computing device is in the same rack as the target computing device, in the same enclosure as the target computing device, or connected at the same switch level as the target computing device; and 其中,所述相邻计算设备具有与所述目标操作系统卷相同的操作系统版本。Wherein, the adjacent computing device has the same operating system version as the target operating system volume. 9.根据权利要求4所述的计算系统,包括:9. The computing system of claim 4, comprising: 媒体服务器:Media server: 其中,所述目标计算设备用于:Wherein, the target computing device is used for: 基于所述目标位表中的位是否不等于所述相应的相邻位表中的对应位中的任一个,确定所述目标操作系统卷的数据块不能够从所述多个相邻计算设备中的每一个相邻计算设备获得;以及Based on whether a bit in the target bit table is not equal to any of the corresponding bits in the corresponding adjacent bit table, it is determined that the data block of the target operating system volume is not available from the plurality of adjacent computing devices obtained by each of the adjacent computing devices; and 响应于确定所述数据块不能够获得,请求来自所述媒体服务器的不能够获得的数据块;in response to determining that the data block is not available, requesting the unavailable data block from the media server; 从所述媒体服务器接收从所述媒体服务器请求的所述数据块;以及receiving, from the media server, the data block requested from the media server; and 基于接收自所述媒体服务器的所述数据块来组合所述目标操作系统卷。The target operating system volume is assembled based on the data blocks received from the media server. 10.一种非暂时性机器可读存储介质,编码有指令,所述指令在被执行时使得处理器:10. A non-transitory machine-readable storage medium encoded with instructions that, when executed, cause a processor to: 由计算设备确定集群位图,其中,所述集群位图中的每个位指示计算设备的已部署操作系统卷的数据块是否与基本操作系统卷不同;determining, by the computing device, a cluster bitmap, wherein each bit in the cluster bitmap indicates whether a data block of the computing device's deployed operating system volume is different from the base operating system volume; 由所述计算设备并且基于所述集群位图来确定位表,determining a bit table by the computing device and based on the cluster bitmap, 其中,所述位表中的每个位指示所述已部署操作系统卷的对应的多个数据块是否与所述基本操作系统卷不同,并且其中,所述位表中的每个位对应于所述集群位图中的多个位:wherein each bit in the bit table indicates whether the corresponding plurality of data blocks of the deployed operating system volume are different from the base operating system volume, and wherein each bit in the bit table corresponds to Multiple bits in the cluster bitmap: 由所述计算设备接收来自请求计算设备的对所述位表的请求;以及receiving, by the computing device, a request for the bit table from a requesting computing device; and 由所述计算设备将所述位表发送到所述请求计算设备,sending, by the computing device, the bit table to the requesting computing device, 其中使得所述处理器确定所述位图的指令包括在被执行时使得所述处理器进行以下操作的指令:wherein the instructions that cause the processor to determine the bitmap include instructions that, when executed, cause the processor to: 由所述计算设备修改所述已部署操作系统卷的数据块;modifying, by the computing device, data blocks of the deployed operating system volume; 由所述计算设备的IO子系统检测所述卷的数据块相对于基本操作系统卷已经改变;detecting, by the IO subsystem of the computing device, that data blocks of the volume have changed relative to the base operating system volume; 由所述IO子系统修改所述集群位图中与修改后的数据块的地址相对应的位,以指示所述集群相对于所述基本操作系统卷已经改变;以及modifying, by the IO subsystem, bits in the cluster bitmap corresponding to addresses of modified data blocks to indicate that the cluster has changed relative to the base operating system volume; and 由所述IO子系统修改所述位表中与所述已部署卷的修改后的数据块相对应的位。Bits in the bit table corresponding to modified data blocks of the deployed volume are modified by the IO subsystem. 11.根据权利要求10所述的非暂时性机器可读存储介质,包括在被执行时使得所述处理器进行以下操作的指令:11. The non-transitory machine-readable storage medium of claim 10, comprising instructions that, when executed, cause the processor to: 响应于接收到对所述操作系统卷的数据块的请求,将被请求的所述操作系统卷的数据块发送到所述请求计算设备。In response to receiving the request for the data block of the operating system volume, the requested data block of the operating system volume is sent to the requesting computing device. 12.根据权利要求10所述的非暂时性机器可读存储介质,包括在被执行时使得所述处理器进行以下操作的指令:12. The non-transitory machine-readable storage medium of claim 10, comprising instructions that, when executed, cause the processor to: 由所述计算设备确定所述计算设备的资源利用;以及determining, by the computing device, resource utilization of the computing device; and 由所述计算设备将多个被请求的数据块发送到所述请求计算设备,其中,所发送的数据块的数量是基于所述计算设备的资源利用的。A plurality of requested data chunks are sent by the computing device to the requesting computing device, wherein the number of data chunks sent is based on resource utilization of the computing device.
CN201680022955.4A 2016-02-12 2016-04-28 Combine operating system volumes Active CN107533482B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN201641005072 2016-02-12
IN201641005072 2016-02-12
PCT/US2016/029783 WO2017138966A1 (en) 2016-02-12 2016-04-28 Assembling operating system volumes

Publications (2)

Publication Number Publication Date
CN107533482A CN107533482A (en) 2018-01-02
CN107533482B true CN107533482B (en) 2020-11-13

Family

ID=59563505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680022955.4A Active CN107533482B (en) 2016-02-12 2016-04-28 Combine operating system volumes

Country Status (4)

Country Link
US (1) US10678554B2 (en)
EP (1) EP3286648B1 (en)
CN (1) CN107533482B (en)
WO (1) WO2017138966A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12235982B2 (en) 2022-07-28 2025-02-25 Pure Storage, Inc. Volume dependencies in a storage system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847830A (en) * 1987-12-02 1989-07-11 Network Equipment Technologies, Inc. Method and apparatus for automatic loading of a data set in a node of a communication network
CN101620515A (en) * 2009-08-12 2010-01-06 宋振华 Method for enhancing logical volume management LVM function
CN103914647A (en) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 Method for running programs in isolation manner on basis of local virtualization mechanism
US8959061B1 (en) * 2009-09-30 2015-02-17 Emc Corporation Rapid restore from a prepared system image
CN105027070A (en) * 2013-01-10 2015-11-04 净睿存储股份有限公司 Security for Volume Operations

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801952B2 (en) 1998-08-31 2004-10-05 Nortel Networks Limited Method and devices for providing network services from several servers
US7277950B1 (en) * 2000-12-29 2007-10-02 Swarmcast, Inc. Packet transfer mechanism over a peer to peer network
US7213065B2 (en) 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US8838793B1 (en) 2003-04-10 2014-09-16 Symantec Operating Corporation Method and apparatus for provisioning storage to a file system
US7502803B2 (en) * 2003-05-28 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for generating ACPI machine language tables
US7676506B2 (en) * 2003-06-20 2010-03-09 Innopath Software, Inc. Differential file compression of software image versions
JP4900760B2 (en) 2004-03-31 2012-03-21 株式会社日立製作所 OS image deployment machine and method
US7174385B2 (en) 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
US7315926B2 (en) * 2004-09-21 2008-01-01 Emc Corporation Lock management for concurrent access to a single file from multiple data mover computers
US7389300B1 (en) * 2005-05-27 2008-06-17 Symantec Operating Corporation System and method for multi-staged in-memory checkpoint replication with relaxed consistency
US8549252B2 (en) * 2005-12-13 2013-10-01 Emc Corporation File based volumes and file systems
US7783850B2 (en) * 2006-03-28 2010-08-24 Dot Hill Systems Corporation Method and apparatus for master volume access during volume copy
US7945726B2 (en) * 2006-05-08 2011-05-17 Emc Corporation Pre-allocation and hierarchical mapping of data blocks distributed from a first processor to a second processor for use in a file system
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US20090077327A1 (en) * 2007-09-18 2009-03-19 Junichi Hara Method and apparatus for enabling a NAS system to utilize thin provisioning
US8161254B2 (en) * 2008-06-02 2012-04-17 Syncsort Incorporated Method for creating consistent backup image of a storage volume without requiring a snapshot
US8214609B2 (en) * 2008-07-16 2012-07-03 International Business Machines Corporation Data transference to virtual memory
US8782238B2 (en) 2010-11-05 2014-07-15 Verizon Patent And Licensing Inc. Server clustering in a computing-on-demand system
DE112011104356B4 (en) 2010-12-13 2014-05-15 International Business Machines Corporation Updating software images based on streaming technology
EP2661678A1 (en) * 2011-05-31 2013-11-13 Hitachi, Ltd. Storage system and storage control method
US8677090B2 (en) * 2011-07-20 2014-03-18 Hitachi, Ltd. First storage apparatus and first storage apparatus control method
WO2014087453A1 (en) * 2012-12-05 2014-06-12 Hitachi, Ltd. Storage device and method of controlling storage device
US9672151B1 (en) * 2012-12-17 2017-06-06 EMC IP Holding Company LLC Block caching between a host device client and storage array in a shared storage environment
JP2014182417A (en) * 2013-03-18 2014-09-29 Fujitsu Ltd File system verification method, file system verification program, and information processing apparatus
US9329803B1 (en) * 2013-06-28 2016-05-03 Emc Corporation File system over thinly provisioned volume file in mapped mode
US9063671B2 (en) * 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
US9336818B1 (en) * 2015-02-04 2016-05-10 HGST Netherlands B.V. Method for reducing adjacent track interference effects in a data storage system
US9437232B1 (en) * 2015-07-15 2016-09-06 HGST Netherlands B.V. Magnetic recording disk drive with write position error signal values written in the data tracks for compensation of track misregistration
US10339098B2 (en) * 2015-12-22 2019-07-02 Spectra Logic, Corp. Container-level array storage
US10248617B2 (en) * 2015-12-22 2019-04-02 Spectra Logic, Corp. File-level array storage
US10372557B2 (en) * 2016-05-03 2019-08-06 Hewlett Packard Enterprise Development Lp Versioning and recovery of workloads
US10162523B2 (en) * 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4847830A (en) * 1987-12-02 1989-07-11 Network Equipment Technologies, Inc. Method and apparatus for automatic loading of a data set in a node of a communication network
CN101620515A (en) * 2009-08-12 2010-01-06 宋振华 Method for enhancing logical volume management LVM function
US8959061B1 (en) * 2009-09-30 2015-02-17 Emc Corporation Rapid restore from a prepared system image
CN105027070A (en) * 2013-01-10 2015-11-04 净睿存储股份有限公司 Security for Volume Operations
CN103914647A (en) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 Method for running programs in isolation manner on basis of local virtualization mechanism

Also Published As

Publication number Publication date
EP3286648A4 (en) 2018-06-20
US20180239613A1 (en) 2018-08-23
EP3286648B1 (en) 2020-08-26
EP3286648A1 (en) 2018-02-28
CN107533482A (en) 2018-01-02
WO2017138966A1 (en) 2017-08-17
US10678554B2 (en) 2020-06-09

Similar Documents

Publication Publication Date Title
US10884935B1 (en) Cache allocation for controller boards based on prior input-output operations
US10509592B1 (en) Parallel data transfer for solid state drives using queue pair subsets
US11606429B2 (en) Direct response to IO request in storage system having an intermediary target apparatus
KR20200017363A (en) MANAGED SWITCHING BETWEEN ONE OR MORE HOSTS AND SOLID STATE DRIVES (SSDs) BASED ON THE NVMe PROTOCOL TO PROVIDE HOST STORAGE SERVICES
US9648081B2 (en) Network-attached memory
US20220138063A1 (en) System, and control method and program for input/output requests for storage systems
CN112054963A (en) Network interface for data transmission in heterogeneous computing environments
US10289507B1 (en) Distributed rebuild of failed storage device
EP2713262A1 (en) Hierarchy memory management
US12099454B2 (en) Memory appliance couplings and operations
EP4086774A1 (en) Coherent memory system
CN111095188A (en) Dynamic data relocation using cloud-based modules
US9513829B1 (en) Transaction logging using round-robin block allocation and I/O size based partitions
CN114253656A (en) Overlay container storage drive for microservice workloads
US12327138B2 (en) Storage system with efficient release of address lock waiters during synchronous replication
US20230139729A1 (en) Method and apparatus to dynamically share non-volatile cache in tiered storage
US11093161B1 (en) Storage system with module affinity link selection for synchronous replication of logical storage volumes
US11029847B2 (en) Method and system for shared direct access storage
US10656862B1 (en) Systems and methods for implementing space consolidation and space expansion in a horizontally federated cluster
CN109783002B (en) Data reading and writing method, management device, client and storage system
CN107533482B (en) Combine operating system volumes
US11467906B2 (en) Storage system resource rebuild based on input-output operation indicator
US20160267050A1 (en) Storage subsystem technologies
US11481147B1 (en) Buffer allocation techniques
US11360712B2 (en) Storage system with continuous data verification for synchronous replication of logical storage volumes

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