Method and computer-readable storage medium for process control systems
Patent Information
- Application Number
- DE102014114108
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2013-09-27
- Filing Date
- 2014-09-29
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2034-09-29
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
RELATED APPLICATION
[0001] The present invention relates to a method and a computer-readable storage medium for process control systems. BACKGROUND
[0002] A typical control system comprises a network of many workstations, servers, controllers, and PO subsystems. Setting up and maintaining multiple systems required for development, testing, training, and online production can be expensive and time-consuming.
[0003] Relevant prior art is US 2012 / 0124012 A1. This discloses, in the context of a process control system, a method with the following steps: Operating a first cluster comprising first virtual machines and first servers; Operating a second cluster comprising second virtual machines and second servers; Storing first data of the first virtual machines in a first data store of the first cluster and storing a replication of the first data; Storing second data of the second virtual machines in the second data store and storing a replication of the second data in the first data store; Identifying a failure of the first cluster; and in response to the failure, restarting the first virtual machines using the second servers and replicating the first data.
[0004] The said document further discloses a method comprising the following steps: Operating a first mode for operating a first cluster having first virtual machines and first servers; Operating the first cluster in the first mode, comprising writing to a cache of a first data store to store the first data of the first virtual machines; alternatively operating a second mode for operating the first cluster; and operating the first cluster in the second mode, comprising bypassing the cache and writing directly to a disk of the first data store to store the first data of the first virtual machines.
[0005] The invention is based on the object of providing improved methods of this type which, in particular, enable the restoration of non-redundant components of a process control system after faults in a shorter time and thus enable the faster availability of plant data and can better prevent the loss of such data. SUMMARY
[0006] The problem is solved by the subject matter of the independent patent claims.
[0007] An example method includes operating a first cluster with first virtual machines and first servers, and a second cluster with second virtual machines and second servers in the first and second datastores. The method also includes storing first data from the first virtual machines in a first datastore of the first cluster and storing a replica of the first data in a second datastore of the second cluster. The method also includes storing second data from the second virtual machines in the second datastore and storing a replication of the second data in the first datastore. The method includes identifying a failure of the first cluster and, in response to the failure, restarting the first virtual machines using the second servers and replicating the first data in the second datastore.
[0008] Another example method includes selecting a first mode to operate a first cluster having first virtual machines and first servers, and operating the first cluster in the first mode, including writing to a cache of a first data store to store the first data from the first virtual machines. The method includes selecting a second mode to operate the first cluster and operating the first cluster in the second mode bypassing the cache, writing directly to a disk of the first data store to store first data from the first virtual machines. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows an exemplary process control system that may be used to implement the examples disclosed herein. Fig. 2 shows another exemplary process control system that can be used to implement the examples disclosed herein. Fig. 3 shows another exemplary process control system that can be used to implement the examples disclosed herein. Fig. 4 shows an example user interface that may be used during a live migration in accordance with the teachings of the present disclosure. Fig. 5 to 7 show exemplary user interfaces that can be used to configure the process control system from Fig. 1 or the process control systems from Fig. 2 and Fig. 3 to be implemented. Fig. 8 to 11 show exemplary user interfaces that are used to implement the process control system from Fig. 3 or the process control systems from Fig. 1 and Fig. 2 can be used. Fig. 12 shows an example of a user interface that illustrates performance testing and / or diagnostics of the example control systems disclosed herein. Fig. 13 shows an exemplary user interface with diagnostic results of the exemplary control systems disclosed here. Fig. 14 shows an exemplary user interface illustrating virtual machine replication traffic in accordance with the teachings of the present disclosure. Fig. 15 shows an example user interface that may be used to implement the examples disclosed herein. Fig. Figure 16 illustrates writing through the cache and directly to disk in accordance with the teachings of the present disclosure. Fig. Figure 17 illustrates writing to memory in accordance with the teachings of the present disclosure. Fig. Figure 18 shows process streams in a normal mode and operation in a dependent mode. Fig. Figure 19 is a flowchart showing a method that can be performed to control the process control systems from Fig. 1 to 3 to be implemented. Fig. 20 shows a processor platform that can be used to control the process control systems from Fig. 1 to 3 to be implemented. DETAILED DESCRIPTION
[0009] Virtual environments can be implemented in enterprises to reduce data center space, improve security, reduce costs, and / or reduce energy consumption. In some examples of virtual environments, virtual machines (VMs) run on a single server, with the loss of each server causing the loss and / or inoperability of the associated VMs.
[0010] In some example process control systems, the example virtualization architecture disclosed herein enables replication of the VMs to other hosts to allow the VMs to be restarted relatively quickly after a sudden failure of the corresponding server or other components, thereby substantially avoiding the loss of the VMs.
[0011] In other example process control systems, example auxiliary hosts are grouped together in a cluster environment where the VMs run and / or the data from each of the VMs is centrally stored and / or publicly accessible. In some such examples, the cluster environment is configured and / or set up to automatically restart VMs in the cluster using saved data from the data store if one of the hosts on which the VMs were running fails.
[0012] In other example process control systems, example auxiliary hosts are clustered together, and an additional server is used for replication (e.g., to store data associated with the VMs and / or hosts). If the cluster fails in such examples, the VMs can be restarted relatively quickly on the additional and / or replication server using the stored data.
[0013] In other example process control systems, two separate clusters of auxiliary hosts may be used to enable replication between the clusters. In some of these examples, data from both the first cluster (e.g., the VMs of the first cluster) and the second cluster (e.g., the VMs of the second cluster) is replicated and stored in separate databases with the respective clusters. By running some of the first VMs in the first cluster and some of the second VMs in the second cluster, if the first or second cluster fails, the VMs associated with the failed cluster can be relatively easily restarted and / or run on the operational cluster. Thus, the plant's control system is maintained operational using the remaining clusters.In examples where the first VMs are redundant to the second VMs, by running the first VMs in the first cluster and the second VMs in the second cluster, if either the first or the second cluster fails, VMs assigned to the operational cluster can continue to be used to manage the process (e.g., the secondary VMs can be used to run the plant). Multiple clusters with replication enable high availability.
[0014] Fig. 1 shows an example process control system 100 having a cluster 102 that maps and / or consolidates storage, network roles, and / or nodes into a single console. In some examples, the cluster 102 includes network devices (e.g., switches, firewalls, and / or storage devices), memory and / or storage 104, 106, a failover cluster and / or processor, and one or more groups of servers 108, 110, 112 mapped in virtual space. In some examples, a group of servers 108, 110, 112 may be referred to as nodes, and the cluster 102 may include any number of nodes (e.g., 22, 50, 64, etc.). In some examples, the failover cluster acts as a manager that maps the components of the cluster to a single console.In some examples, the users and services that use a cluster can be associated with a virtual name and / or space created by the failover cluster.
[0015] In operation, virtual machines (VMs) 114, 116, 118 and 120 operate on the servers 108, 110, 112, and data associated with the actions of the VMs 114, 116, 118 and / or 120 is stored on the data store 104, 106. Thus, if one of the servers 108, 110, 112 fails, the VMs 114, 116, 118, and / or 120 that were running on the failed server 108, 110, and / or 112 are restarted on the servers 108, 110, and / or 112 that are still running using data associated with the VM 114, 116, 118, and / or 120 that is stored in the data store 104, 106. In examples where the cluster 102 includes a first node of servers running VMs and a second node of servers running VMs, if the first node fails, the VMs associated with the first node are restarted using the second node.
[0016] The examples disclosed herein may support up to approximately 64 nodes per cluster and up to approximately 4,000 VMs. The disclosed examples enable automatic updating of clusters (e.g., Cluster-Aware Updating) and concurrent live migration of one or more of the clusters and / or the nodes associated with them. The examples described herein may support Hyper-V Replica Broker to enable and / or support Hyper-V Replica in a cluster environment, machine application monitoring, and / or cluster validation testing. The examples disclosed herein enable cluster upgrade and / or migration, Cluster Shared Volumes 2.0, and / or VM failover prioritization. In some of these examples, VM health and position may be integrated with DeltaV diagnostics to enable users to avoid having to travel to other environments to diagnose their system.In some examples, failover prioritization allows critical VMs to fail first (e.g., Batch Executive).
[0017] Fig. 2 shows an example high-availability process control system 200 with an integrated replication engine (e.g., Hyper-V Replica, broker role). In some examples, this replication engine enables virtual machines (VMs) 202, 204, 206, 208 from a cluster 210 to be replicated to a replication server (e.g., a remote server) 212 using a single network connection. With respect to replication, Hyper-V Replica Broker is a role and / or application running on one or more of the VMs 202, 204, 206, 208, with the cluster 210 determining and / or stipulating which node assumes the broker role. The broker role is highly available, such that if a node is lost and / or fails, the broker role is transferred to another node.In some examples, server 212 additionally or alternatively includes Hyper-V Replica Service running thereon to receive and / or synchronize replication data.
[0018] In some examples, the replication engine includes a module that tracks and / or writes to a virtual hard disk file used by all VMs 202, 204, 206, 208, and / or generates a log file. Enabling replication at the virtual hard disk (VHD) level increases the ease of replication of any of the VMs 202, 204, 206, 208. In some examples, replication of the VMs 202, 204, 206, 208 occurs periodically and / or asynchronously over a connection (for example, an HTTP connection, an HTTPS connection, etc.).
[0019] In operation, the VMs 202, 204, 206, 208 run on servers 214, 216, 218, and data associated with the VMs 202, 204, 206, 208 and / or actions performed by them are stored in data stores 220, 222, and a replication thereof is stored on the replication server 212 and / or at another location. Thus, if the cluster 210 and / or all servers 214, 216, 218 fail, the VMs 202, 204, 206, 208 that were running on the failed cluster 210 and / or the failed servers 214, 216, 216 are restarted on and / or via the replication server 212 using data associated with the VMs 202, 204, 206, 208 that is stored on the replication server 212 and / or another location.The example process control system 200 thus enables the VMs 202, 204, 206, 208 to continue running and / or operating after a failure, thereby satisfying the requirements of substantially all disaster recovery programs.
[0020] In some examples, data from the VMs 202, 204, 206, 208 is replicated, transported, and / or transmitted to the replication server 212 using a network module (e.g., data compression and / or optimization) that optimizes the workload by operating on slow network connections (e.g., WANs). In some examples, two or more servers 212, 214, 216, 218 connected by a network connection are used to implement the example process control system 200, with at least one of the servers being the replication server 212. In some such examples, the two or more servers 212, 214, 216, 218 run an application such as Hyper-V, and no other third-party hardware, software applications, and / or shared storage are required.In some examples, the process control system 200 includes recovery points to enable one or more of the VMs 202, 204, 206, and 208 to be restarted at substantially any time. Using such recovery points reduces, substantially eliminates, and / or eliminates database corruption and / or virus replication.
[0021] In some examples, the process control system 200 and / or Hyper-V Replica enables and / or provides small and / or medium-sized businesses with a complete infrastructure recovery solution for their virtualized environment with only a few components and at a reasonable price. In some examples, the replication server 212 can be supplemented with DeltaV primary and / or secondary networks to enable the VMs 202, 204, 206, and 208 to boot more quickly on and / or with the replication server 212.
[0022] Fig. 3 shows an exemplary process control system 300 with a first cluster and / or virtualization cluster 302 and a second cluster and / or virtualization cluster 304, wherein either primary servers 306, 308, 310 of the first cluster 302 or replication servers 312, 314, 316 of the second cluster 304 are configured for a mediator role (e.g., Hyper-V Replica mediator role). The mediator role enables cluster 302 and / or 304 to be assigned Hyper-V Replica and / or a portion thereof to support and / or enable seamless replication between clusters 302, 304.
[0023] In operation, virtual machines (VMs) 318, 320, 322, 324 run on servers 306, 308, 310, and VMs 326, 328, 330, 332 run on servers 312, 314, 316. In some examples, VMs 318, 320, 322, 324 are replicas of VMs 326, 328, 330, 332. In some examples, VMs 318, 320, 322, 324 are partially or completely different from VMs 326, 328, 330, 332.
[0024] In the examples where VMs 318, 320, 322, 324 are replications of VMs 326, 328, 330, 332, the data associated with and / or actions performed by VMs 318, 320, 322 are stored on datastores 334, 336 of first cluster 302, and a replication of the data is stored on datastores 338, 340 of second cluster 304. Thus, if the first cluster 302 and / or all servers 306, 308, 310 fail, the VMs 318, 320, 322, 324 that were running on the failed cluster 302 and / or the failed servers 306, 308, 310 are restarted using data associated with the VMs 318, 320, 322, 324 and stored in the data stores 338, 340 on and / or with the replication servers 312, 314, 316. The example process control system 300 enables the VMs 318, 320, 322, 324 to continue running and / or remain operational after a failure.
[0025] In examples where VMs 318, 320, 322, 324 are different from VMs 326, 328, 330, 332, data associated with and / or actions performed by VMs 318, 320, 322, 324 are stored on datastores 334, 336 of first cluster 302, and a replication of the data is stored in datastores 338, 340 of second cluster 304, and data associated with and / or actions performed by VMs 326, 328, 330, 332 are stored in datastores 338, 340 of second cluster 304, and a replication of the data is stored in datastores 334, 336 of first cluster 302.Thus, if the first cluster 302 or the second cluster 304 fails, the VMs 318, 320, 322, 324, 326, 328, 330, 332 that were running on the failed first cluster 302 or the failed second cluster 304 are restarted on and / or with the servers 306, 308, 310 or the replication servers 312, 314, 316 based on data associated with the respective VMs 318, 320, 322, 324, 326, 328, 330, 332 and stored in the datastores 334, 336, 338 and / or 340. Once the failed first cluster 302 or the failed cluster 304 has been recovered, the VMs 318, 320, 322, 324, 326, 328, 330, 332 can be replicated and / or migrated to their original cluster 302 or 304 to resume normal operations.
[0026] Fig. 4 illustrates an example user interface 400 that may be used during a live migration. In some examples, a shared-nothing live migration may take approximately 8 to 10 minutes, a storage live migration may take approximately 5 to 7 minutes, a comma-separated value (CSV) live migration may take approximately 10 to 30 seconds, and a quick migration via CSV may take approximately 5 seconds.
[0027] Fig. 5 to 7 show exemplary user interfaces 500, 600, 700 that can be used to implement the examples disclosed herein (e.g., configuration and manipulation of virtual machines). In some examples, the user interfaces 500, 600, 700 can be used to implement the process control system 100. 1. The user interface 600 of Fig. 6 shows the status of the various operations of the selected C1-1 node and / or allows the selection of the various nodes (e.g., C1-1; C1-2; C1-3, etc.) and various clusters (e.g., 1, 10, 11, 2, 3, etc.) in their respective states. The user interface 700 of Fig. shows the status of the various operations of the selected C1-1 node and provides a summary of Cluster 1.
[0028] Fig. 8 through 11 illustrate exemplary user interfaces 800, 900, 1000, 1100 that may be used to implement the examples disclosed herein. In some examples, user interfaces 800, 900, 1000, 1100 may be used to implement process control system 300. 3 when an operation (e.g., OP20) and / or virtual machine 318 moves from first cluster 302 to second cluster 304 due to a failure. Fig. 9 shows the user interface 900 indicating that a failure of OP20 and / or the virtual machine 318 has occurred. Fig. 10 shows the user interface 1000 indicating that OP20 and / or the virtual machine 318 is running on the second cluster 304. Fig. 11 shows the migration of the virtual machine 318 from the second cluster 304 back to the first cluster 302 after the first cluster 302 has been repaired.
[0029] Fig. 12 illustrates an example user interface 1200 showing performance testing and / or diagnostics of the control systems disclosed herein. In some examples, the example process control systems include two clusters running 64 virtual machines, one ProPlus, 13 application stations, 50 operation stations, and / or four hosts per cluster. In some examples, the metrics run or obtained include and / or are associated with system configuration, operation uptime, historical collection, and / or replication. In some examples, the diagnostics run and / or obtained include Windows and / or SolarWinds.
[0030] Fig. 13 illustrates an exemplary user interface 1300 showing diagnostic results of the exemplary control system disclosed herein. User interface 1300 displays a Hyper-V overview showing the virtualization devices (e.g., C1-1; C1-2; etc.), the virtualization device overview, the top 10 hosts by memory used, and the top 10 hosts by network utilization.
[0031] Fig. 14 illustrates an example user interface 1400 showing virtual machine replication traffic, where a first portion 1402 corresponds to the time when replication is disabled (e.g., during configuration), a second portion 1404 corresponds to the time when the system and / or a cluster (e.g., C2-1) is rebooted, and a third portion 1406 corresponds to the time when the virtual machines are rebooted.
[0032] Fig. 15 shows an exemplary user interface 1800 that can be used to implement the examples disclosed herein (e.g., automatically creating, configuring, and manipulating pre-installed DeltaV virtual machines for process control). In particular, the user interface 1800 displays diagnostic warnings associated with a virtual machine operating in a normal mode when the virtual machine should be operating in a robust mode. Thus, the user interface 1800 describes the information that is passed up to the IT layer to prompt correction of the operating mode, if necessary. In some examples, a tooltip 1802 is displayed when a user, for example, moves a mouse arrow over the accumulated diagnostic numbers in the status bar.
[0033] Fig. 16 illustrates writing through the cache and directly to a disk (e.g., bypassing the cache; robust mode) and Fig. Figure 17 illustrates writing to memory (e.g., normal operation). Fig. Figure 18 illustrates process streams in a normal mode and operation in a dependent mode. In some examples, modifying the cache allows the process control system to withstand a hardware failure without corrupting the configuration data used for control.
[0034] A flowchart illustrating an exemplary procedure for implementing the process control systems shown in the figures is shown in Fig. 19. In this example, the method may be implemented using machine-readable instructions comprising a program for execution by a processor, such as the processor 2312 depicted in the exemplary processor platform 2300 described below in connection with Fig. 20. The program may be embodied in software stored on a tangible computer-readable storage medium, such as a CD-ROM, a floppy disk, a hard disk, a digital versatile disk (DVD), a Blu-ray disk, or memory associated with the processor 2312, but all and / or portions of the program may alternatively be executed by a device other than the processor 2312 and / or embodied in firmware or dedicated hardware. Furthermore, although the exemplary program is described with reference to the flowchart of Fig. 19, many other methods of implementing the process control systems of the Fig. 1 to 3 may be used alternatively. For example, the order of execution of the blocks may be changed, and / or some of the described blocks may be modified, eliminated, or combined.
[0035] As mentioned above, the exemplary method can be Fig. 19 be implemented using coded instructions (e.g., computer- and / or machine-readable instructions) and stored on a tangible computer-readable storage medium, such as a hard disk, flash memory, read-only memory (ROM), compact disk (CD), digital versatile disk (DVD), cache, random access memory (RAM), and / or any other storage device or disk on which information can be stored for any length of time (e.g., for extended periods, permanently, for brief periods, for temporary buffering, and / or for intermediate storage of the information). As used herein, the term tangible computer-readable storage medium is expressly defined to include any type of computer-readable storage medium and / or computer-readable disk and excludes the dissemination of signals and transmission media.As used herein, the terms "tangible computer-readable storage medium" and "tangible machine-readable storage medium" are interchangeable. Additionally or alternatively, the exemplary processes from . Fig. 1 to 3 using encoded instructions (e.g., computer- and / or machine-readable instructions) stored on a non-transitory computer and / or machine-readable medium, such as a hard disk, flash memory, read-only memory, CD, DVD, cache, random access memory, and / or any other storage device or disk on which information is stored for any duration (e.g., for extended periods, permanently, for brief moments, for temporary buffering and / or caching of the information). As used herein, the term "non-transitory computer-readable medium" is expressly defined to include any type of computer-readable storage medium and / or computer-readable disk and excludes the dissemination of signals and transmission media.If, in the sense used here, the term “at least” is used as a transitional term in the generic term of a claim, it is just as open as the term “comprehensive”.
[0036] The exemplary procedure from Fig. 19 begins with a first mode being selected to operate the first cluster 302 (block 2202). The first cluster 302 includes the virtual machines 318, 320, 322, 324 and the servers 306, 308, 310. The first mode is selected to operate the second cluster 304 (block 2204). The second cluster 304 includes the second virtual machines 326, 328, 330, 332 and the servers 312, 314, 316. In some examples, the first mode includes writing to a cache data store 334, 336, 338, and / or 340 and may be associated with a configuration mode of operation. The first virtual machines 318, 320, 322, 324 are operated in the first mode (block 2206). The second virtual machines 326, 328, 330, 332 are also operated in the first mode (block 2208).
[0037] First data from the first virtual machines 318, 320, 322, 324 is stored on the datastores 334 and / or 336 of the first cluster 302, and a replication of the first data from the first virtual machines 318, 320, 322, 324 is stored on the datastores 338 and / or 340 of the second cluster 304 (block 2210). In some examples, the first data and the replication of the first data are stored in parallel and / or in a unified manner using file-level uniformity. Second data from the second virtual machines 326, 328, 330, 332 is stored on the data store 338 and / or 340 of the second cluster 304, and a replication of the second data of the second virtual machines 326, 328, 330, 332 is stored on the data stores 334 and / or 336 of the first cluster 302 (block 2212).In some examples, the second data and the replication of the second data are stored in parallel and / or in a uniform manner using file-level uniformity.
[0038] After the process control system 300 has been configured, a second mode may be selected to operate the first cluster 302 (block 2214). The second mode is selected to operate the second cluster 304 (block 2216). In some examples, the second mode includes bypassing the cache of the data stores 334, 336, 338, and / or 340 and writing directly to disk(s) from the data stores 334, 336, 338, and / or 340 to reduce the time the data is held in volatile memory. The first virtual machines 318, 320, 322, 324 operate in the second mode (block 2218). The second virtual machines 326, 328, 330, 332 operate in the second mode (block 2220).
[0039] At block 2222, a processor determines whether a failure of the first cluster 302 has occurred. If the first cluster 302 has failed, the first virtual machines 318, 320, 322, 324 are restarted using the servers 312, 314, and / or 316 of the second cluster 304 and replicating the first data from the datastores 338 and / or 340 (block 2224). In some examples, an alarm may be generated and / or transmitted when the first virtual machines 318, 320, 322, 324 are restarted using the servers 312, 314, and / or 316 and / or if the first cluster 302 fails (block 2226). In some examples, the alarm indicates that both the first and second virtual machines 318, 320, 322, 324, 326, 328, 330, 332 are running using the servers 312, 314 and / or 316 of the second cluster 304.After the failure of the first cluster 302 has been resolved, a live migration may be performed from the operation of the first virtual machines 318, 320, 322, 324 with the servers 338, 340 of the second cluster 304 to the operation of the first virtual machines 318, 320, 322, 324 with the servers 334, 336 of the first cluster 302 (block 2228).
[0040] At block 2230, a processor determines whether a failure of the second cluster 304 has occurred. If the second cluster 304 has failed, the second virtual machines 326, 328, 330, 332 are restarted using the servers 306, 308, and / or 310 of the first cluster 302 and replicating the first data from the datastores 334 and / or 336 (block 2232). In some examples, an alarm may be generated and / or transmitted when the second virtual machines 326, 328, 330, 332 have been restarted with the servers 306, 308, 310 and / or the second cluster 304 has failed (block 2234). In some examples, the alarm indicates that both the first and second virtual machines 318, 320, 322, 324, 326, 328, 330, 332 are running using the servers 306, 308, 310 of the first cluster 302.Once the failure of the second cluster 304 has been resolved, a live migration may be performed from the operation of the second virtual machines 326, 328, 330, 332 with the servers 334, 336 of the first cluster 302 to the operation of the second virtual machines 326, 328, 330, 332 with the servers 338, 340 of the second cluster 304 (block 2236). At block 2238, the process determines whether or not to terminate. If the process is to continue, a determination is made at block 2240 whether to switch the operation mode between the second operation mode and the first operation mode.
[0041] The processor platform 2300 of the Fig.The example illustrated in Figure 20 includes a processor 2312. The processor 2312 of the illustrated example is hardware. For example, the processor 2312 may be implemented with one or more integrated circuits, logic circuits, microprocessors, or controllers of any family or manufacturer.
[0042] The processor 2312 of the illustrated example includes a local memory 2313 (e.g., a cache). The processor 2312 of the illustrated example is communicatively connected via a bus 2318 to a main memory, which includes a volatile memory 2314 and a non-volatile memory 2316. The volatile memory 2314 may be implemented by synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), RAMBUS dynamic random access memory (RDRAM), and / or any other type of random access memory device. The non-volatile memory 2316 may be implemented by flash memory and / or any other desired type of memory device. Access to the main memory 2314, 2316 is controlled by a memory controller.
[0043] The processor platform 2300 in the illustrated example also includes an interface circuit 2320. The interface circuit 2320 can be implemented using any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and / or a PCI Express interface.
[0044] In the illustrated example, one or more input devices 2322 are connected to the interface circuit 2320. The input device(s) 2322 allow a user to input data and commands into the processor 2312. The input device(s) may be implemented, for example, by an audio sensor, a microphone, a camera (still image or video), a keyboard, a button, a mouse, a touchscreen, a trackpad, a trackball, an isopoint, and / or a speech recognition system.
[0045] One or more output devices 2324 are also connected to the interface circuit 2120 of the illustrated example. The output devices 2324 can be implemented, for example, by display devices (e.g., a light-emitting diode (LED), an organic light-emitting diode (OLED), a liquid crystal display, a cathode ray tube (CRT) display, a touchscreen, a tactile output device, a light-emitting diode (LED), a printer, and / or speakers). The interface circuit 2320 of the illustrated example thus typically includes a graphics driver card, a graphics driver chip, or a graphics driver processor.
[0046] The interface circuit 2320 of the example shown also includes a communication device, such as a transmitter, a receiver, a transceiver, a modem, and / or a network interface card, to enable the exchange of data with external devices (e.g., computers of any type) over a network 2326 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, a coaxial cable, a cellular phone system, etc.).
[0047] The processor platform 2300 in the illustrated example also includes one or more mass storage devices 2328 for storing software or data. Examples of such mass storage devices 2328 include floppy disk drives, hard disks, CD drives, Blu-ray Disc drives, RAID systems, and digital versatile disk (DVD) drives.
[0048] From the foregoing, it is clear that the examples disclosed herein relate to computer architecture(s), networking, or virtualization that enable the development of efficient, easily managed, virtualized computing environments, thereby reducing costs and improving system uptime or startup time.
[0049] In some process control systems, at least some critical hardware components (e.g., controllers) are designed to be redundant, while other components (e.g., VMs, servers, etc.) are non-redundant or otherwise unable to quickly recover from or cope with disruptions such as power outages, computer hardware failures, etc. When failures occur in such systems, the redundant critical components (e.g., the controller) can enable the plant to continue operating. However, restoring the non-redundant components (e.g., VMs, servers, etc.) or the plant to normal operating status can consume a significant amount of time, during which plant data (e.g., critical data) may be invisible, unavailable, or lost.
[0050] Unlike some known systems, the process control system examples disclosed herein provide or enable high availability or replication, thereby reducing downtime in virtual environments in the event of a failure. Furthermore, the disclosed examples significantly prevent data loss or corruption by enabling the process control system to write or make available log files for all system components and by ensuring that the system is aware of the highly available virtualization architecture of the overall system. Simply put, the examples disclosed herein provide a ready-to-use, high-availability control system.
[0051] To enable access to the component log files, multiple host computers access or write to redundant disks (e.g., a redundant array of independent disks (RAID)) in parallel at the same time. Using the disclosed examples, virtual machine disks are visible to, or can be seen by, multiple host computers. In such cases, if a failure occurs in one of the host computers (e.g., a hardware failure, a software failure), another host computer can take over or run an associated virtual machine and restart the associated virtual machine from the data stored on the disk.
[0052] In some example process control systems disclosed herein, data is written in a uniform manner with file-level uniformity to better protect against data loss, for example, using an NTFS file system, an NTFS log, a Volume Shadow Copy (VSS), or a Transactional NTFS. Additionally or alternatively, the process control systems disclosed herein enable the system to be instructed to write and save directly to a storage medium, hard disk, or virtual disk via the cache. To enable logical file uniformity in an object-oriented database in such examples, the example process control system and / or a component thereof is executed in a robust mode that enables direct write enablement via the cache and significantly minimizes the time that, for example, volatile data resides in memory.In some examples, writing through the cache results in reduced performance because hard drives write slower than memory. For example, when the cache is used, the application or user passes data to the cache, and the system writes the data later. However, since much of the configuration occurs before the system goes online to control a plant or process control system, robust mode can be disabled during initial setup and / or configuration, as data loss and / or corruption will not negatively impact plant operation at that time (since no process is being controlled).
[0053] In some examples, the control system functions and the virtualization functions are integrated to enable the entire system and / or significant parts of it to be consistent. For example, to enable this integration, the settings for robust or normal operating modes are communicated to the virtualization management software to provide visibility at the same level as the virtualization and high availability settings.
[0054] In other examples, control system functions and virtualization capabilities are integrated with a process control system (e.g., DVS) that manages VM node redundancy and high availability concurrently. In some of these examples, an alarm (e.g., DVS alarm) is triggered when a redundant pair of application stations (e.g., DeltaV application stations) are assigned to the same host computer, because application stations assigned to the same host can cause and / or trigger an unusually long outage if the host fails. In some examples, redundancies and standbys are distributed across multiple hosts to enable node switchover if a failure occurs in one of the hosts.
[0055] Virtualized computing platforms, as disclosed here, enable the integration of non-traditional measurements with wireless infrastructure for advanced analytics, combining predictive algorithms and automation, enabling online predictive capabilities and / or new designs and / or platforms to connect people on the move and in the control room. Such examples can be useful for virtualization and big data in process control.
[0056] Some of the disclosed examples enable high availability, failover cluster management, virtual machine replication, disaster recovery, performance data and / or platform configurations. Some of the disclosed examples enable virtualization upscaling, live migration (e.g., fast, unconstrained, simultaneous live virtual machine or storage migrations), shared-nothing migrations, highly available failover clustering (e.g., iSCSI, Fibre Channel, SMB), failover prioritization, NIC teaming or management, and / or replication support.
[0057] Some of the disclosed examples enable a host to include and / or be associated with up to about 160 logical processors, or up to about 2 terabytes (TB) of memory, and / or up to about 1024 virtual central processing units (CPUs) per host. Some of the disclosed examples enable a virtual machine to include and / or be associated with up to about 32 virtual CPUs per host, up to about 1 TB of memory per VM, and / or up to about 1024 active VMs per host. Some of the disclosed examples enable a cluster to include and / or be associated with about 64 nodes and / or about 4000 VMs.
[0058] The examples disclosed herein can be used to retrieve or analyze data streams (e.g., big data) to gain new insights, make better decisions, and / or obtain an improved system experience. In some examples, the examples disclosed herein can support the receipt of periodic uncompressed data collected at all process measurements and / or outputs so that different types of data can be analyzed or supported. Some examples disclosed herein can support information sources such as traditional types of alarms, batches, and / or continuous new sources such as on-stream analyzers. Some examples disclosed herein can support data agility across asset boundaries (e.g., entire oil fields) and / or provide actionable information to users via browsers and / or mobile devices. For example, data exploration can be performed using wireless sensors (e.g.,Vibration sensors) indicate and / or identify that information that was not previously recorded should now be recorded.
[0059] The example process control systems enable all or substantially all data to be processed in high resolution to enable analysis. The obtained data can be cleaned and / or filtered and / or examined using, for example, high-frequency real-time data, which provides and / or enables greater insight. The example process control systems enable and / or bring together cross-system, platform, and / or asset-wide analytics. The example process control systems enable and / or support additional measurements obtained via wireless and / or external measurements, for example, via REST APIs that can be accessed using any language. The process control systems provide actionable results for humans and / or closed-loop control.
[0060] In some examples, templates for high availability and replication are developed to allow users to enable these features as part of the template and then take advantage of the capabilities as we create instances from the template. In some examples, the network infrastructure in virtualized environments is predefined to easily distinguish a control network (e.g., a primary control network, a secondary control network), the host / management network, and / or other networks (e.g., the plant network). In some examples, a domain controller is integrated into the infrastructure so that users do not have to set up and manage their compute resources. In some examples, diagnostics are integrated into the control system to allow the user to not need tools (e.g.,SolarWinds) to gather information regarding its networks, disk subsystems, CPU resources, memory resources, IO throughput, IO delays, clusters, and / or replication systems. In some examples, diagnostics are reported in the context of control, as opposed to the more abstract nature of IT products. In some examples, a sample management center is integrated with DeltaV configuration and diagnostics. In some examples, traffic and / or usage diagnostics may be performed by control systems (e.g., for alerts when usage patterns change, etc.). In some examples, the system is secured and / or managed by segmenting network traffic and securing infrastructure traffic. In some examples, a hardware platform under virtualization may be used to implement the disclosed examples.In some examples, Virtual Studio, DeltaV infrastructure, and hardware (e.g., Dell's VRTX platform) enable a virtual process control application. In some examples, the example process control systems may include and / or utilize templates, diagnostic and / or configuration tools and / or aspects.
[0061] As set forth herein, an example method includes operating a first cluster having first virtual machines and first servers, and operating a second cluster having second virtual machines and second servers. The example method includes storing first data of the first virtual machine in a first datastore of the first cluster and storing a replica of the first data in a second datastore of the second cluster, and storing second data from the second virtual machine in the second datastore and storing a replication of the second data in the first datastore. The method also includes identifying failures of the first cluster and, in response to the failure, restarting the first virtual machines using the second servers and replicating the first data in the second datastore.
[0062] In some examples, storing the first data includes bypassing a cache of the first data store and writing directly to a storage medium of the first data store in normal operation mode to reduce the time data is retained in volatile memory. In some examples, storing the first data includes writing to a cache of the first data store during a configuration operation mode. In some examples, restarting the virtual machines using the second servers reduces downtime. In some examples, storing the first data from the first virtual machines in the first data store and storing the replication of the first data in the second data store includes storing the first data in parallel in the first and second data stores.In some examples, storing the first data from the first virtual machines in the first datastore and storing the replication of the first data in the second datastore includes storing the first data uniformly in the first and second datastores using file-level uniformity. In some examples, the method includes generating an alarm when the first virtual machines are restarted using the second servers.
[0063] In some examples, the method also includes performing a substantially live migration from running the first virtual machines using the second servers to running the first virtual machines using the first servers after the failure of the first cluster has been resolved. In some examples, the method includes restarting the first virtual machines using the second servers and replicating the first data in the second datastore, automatically restarting the first virtual machines using the second servers and replicating the first data in the second datastore. In some examples, the first cluster is redundant to the second cluster. In some examples, the method includes automatically updating the second cluster.
[0064] Another example method includes selecting a first operating mode of a first cluster having first virtual machines and first servers, and operating the first cluster in the first mode includes writing to a cache of the first data store to store the first data from the first virtual machines, and selecting a second mode to operate the first cluster. The method also includes operating the first cluster in the second mode, bypassing the cache and writing directly to a disk of the first data store to store first data of the first virtual machines.
[0065] In some examples, the first mode includes a configuration mode and the second mode includes a robust mode.
[0066] In some examples, the method includes selecting a third mode of operation of a second cluster having second virtual machines and second servers, wherein operating the third cluster in the third mode of operation comprises writing to a cache of the second data store to store the second data from the second virtual machines. The method includes selecting a fourth mode of operation of the second cluster and operating the second cluster in the fourth mode, bypassing the cache and writing directly to a disk of the second data store to store second data of the second virtual machines.
[0067] In some examples, the first cluster in the second mode also includes storing a replica of the first data in the second datastore of the second cluster, wherein operating the second cluster includes storing a replica of the second data in the first datastore. In some examples, the method also includes identifying failures of the first cluster and restarting the first virtual machines using the second servers and replicating the first data in the second datastore. In some examples, the method includes generating an alarm when the first virtual machines are restarted using the second servers.In some examples, the method also includes performing a substantially live migration from running the first virtual machines using the second servers to running the first virtual machines using the first servers after the failure of the first cluster has been resolved.
[0068] In some examples, storing the first data from the first virtual machines in the first datastore and storing the replication of the first data in the second datastore includes storing the first data in parallel in the first and second datastores. In some examples, storing the first data from the first virtual machines in the first datastore and storing the replication of the first data in the second datastore includes storing the first data uniformly in the first and second datastores using file-level uniformity.
Claims
[1] Procedure comprising: Operating a first cluster comprising first virtual machines and first servers; Operating a second cluster comprising second virtual machines and second servers; Storing first data of the first virtual machines in a first data store of the first cluster and storing a replication of the first data in a second data store of the second cluster; Storing second data of the second virtual machines in the second datastore and storing a replica of the second data in the first datastore; identifying a failure of the first cluster; and in response to the failure, restarting the first virtual machines using the second servers and replicating the first data on the second datastore, wherein storing the first data comprises bypassing a cache of the first data store and writing directly to a storage medium of the first data store in a normal operating mode to reduce the time data is held in volatile memory. [2] Procedure comprising: Operating a first cluster comprising first virtual machines and first servers; Operating a second cluster comprising second virtual machines and second servers; Storing first data of the first virtual machines in a first data store of the first cluster and storing a replication of the first data in a second data store of the second cluster; Storing second data of the second virtual machines in the second data store and storing a replication of the second data in the first data store; Identifying a failure of the first cluster; and in response to the failure, restarting the first virtual machines using the second servers and replicating the first data in the second data store, wherein storing the first data comprises writing to a cache of the first data store during a configuration mode of operation. [3] The method of any one of claims 1 to 2, wherein storing the first data from the first virtual machines in the first data store and storing the replication of the first data in the second data store comprises storing the first data in parallel in the first and second data stores, and / or utilizing file-level uniformity. [4] The method of any one of claims 1 to 3, further comprising generating an alarm when the first virtual machines are restarted using the second servers. [5] The method of any one of claims 1 to 4, further comprising performing a substantially live migration from running the first virtual machines using the second servers to running the first virtual machines using the first servers after the failure of the first cluster has been resolved. [6] The method of any one of claims 1 to 5, wherein the first cluster is redundant to the second cluster. [7] The method of any one of claims 1 to 6, further comprising automatically updating the second cluster. [8] Procedure comprising: Selecting a first mode for operating a first cluster having first virtual machines and first servers; Operating the first cluster in the first mode, comprising writing to a cache of a first data store to store the first data of the first virtual machines; Selecting a second mode for operating the first cluster; and Operating the first cluster in the second mode, comprising bypassing the cache and writing directly to a disk of the first data store to store the first data of the first virtual machines; Selecting a third mode for operating a second cluster comprising second virtual machines and second servers; Operating the second cluster in the third mode, comprising writing to a cache of a second data store to store the second data of the second virtual machines; Selecting a fourth mode for operating the second cluster; and Operating the second cluster in the fourth mode, comprising bypassing the cache and writing directly to a disk of the second data store to store the second data of the second virtual machines. [9] The method of claim 8, wherein the first mode further comprises a configuration mode and the second mode further comprises a robust mode. [10] The method of claim 8, wherein operating the first cluster in the second mode further comprises storing a replication of the first data in the second data store of the second cluster, and operating the second cluster comprises storing a replication of the second data in the first data store. [11] The method of claim 10, further comprising identifying a failure of the first cluster and restarting the first virtual machines using the second servers and replicating the first data in the second data store. [12] The method of claim 11, further comprising generating an alarm when the first virtual machines are restarted using the second servers, and / or performing a substantially live migration from running the first virtual machines using the second servers to running the first virtual machines using the first servers after the failure of the first cluster has been resolved. [13] The method of any one of claims 10 to 12, wherein storing the first data from the first virtual machines in the first data store and storing the replication of the first data in the second data store comprises storing the first data in the first and second data stores in parallel and / or using file-level uniformity. [14] A computer-readable storage medium comprising computer-readable instructions for performing the steps in the preceding method claims when executed by a processor and / or a device.
Citation Information
Patent Citations
System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
US20120124012A1
