Real-time Runtime Infrastructure Orchestration
The hook function layer module intercepts resource calls and dynamically allocates resources only when the instance of the computer system needs it, solving the waste and cost increase caused by pre-allocation of resources in the prior art, and achieving more economical and secure resource management.
Patent Information
- Application Number
- CN202080063220.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-16
- Filing Date
- 2020-09-14
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2040-09-14
AI Technical Summary
Prior Art In multiple instances of computer systems, resource pre-allocation results in resource waste and increased costs, especially if only a portion of the instances require resources.
Intercept resource calls through the hook function layer module, and dynamically allocate and bind resources only when needed by the instance, including lazy provisioning of persistent volumes and networked components, reducing unnecessary resource pre-allocation.
Reduces storage and network traffic, reduces resource waste, reduces costs, and provides a cleaner and safer computing environment.
Smart Images

Figure CN114365088B_ABST
Abstract
Description
Background Art
[0001] The present invention relates to container orchestration, and more particularly, to real-time runtime infrastructure orchestration.
[0002] Predefining resources for a given computer system using an orchestration framework can ensure that all necessary resources for the computer system are present and configured before the computer system components are started. Examples of deployment can include the configuration of networking, storage, prerequisite components, configuration files, and security credentials for each instance of the computer system. Such deployment implies the need to reserve all resources in advance for each instance of the computer system. This works in an environment where each instance of the computer system requires all resources. However, this deployment is not very efficient in cases where only a single instance of the computer system requires certain resources among many instances of the computer system. Summary of the Invention
[0003] According to an embodiment of the present invention, a computer-implemented method for provisioning resources associated with multiple instances of a computer system, the resources being allocated at runtime and only for an instance among the multiple instances of the computer system that uses the resources, the method comprising: intercepting a call to access one of the resources by one of the multiple instances of the computer system; in response to the intercepted call being a first call to access the one of the resources by the one of the multiple instances of the computer system, blocking further calls to access the one of the resources by the one of the multiple instances of the computer system; configuring the one of the resources; binding the one of the multiple instances of the computer system to the one of the resources; and unblocking further calls to access the one of the resources by the one of the multiple instances of the computer system.
[0004] Embodiments of the present invention provide an apparatus for supplying resources associated with multiple instances of a computer system. The resources are allocated at runtime and are only for the instance among the multiple instances of the computer system that uses the resources. The apparatus includes a function hook layer module that: intercepts a call to access one of the resources by one of the multiple instances of the computer system; in response to the intercepted call being the first call to access the one resource by the one instance among the multiple instances of the computer system, blocks further calls to access the one resource by the one instance among the multiple instances of the computer system; configures the one resource; binds the one instance among the multiple instances of the computer system to the one resource; and unblocks further calls to access the one resource by the one instance among the multiple instances of the computer system.
[0005] Embodiments of the present invention also provide a computer program product for supplying resources associated with multiple instances of a computer system. The resources are allocated at runtime and are only for the instance among the multiple instances of the computer system that uses the resources. The computer program product includes a computer-readable storage medium having program instructions embodied thereon. The program instructions are executable by a computer to cause the computer to: intercept a call to access one of the resources by one of the multiple instances of the computer system; in response to the intercepted call being the first call to access the one resource by the one instance among the multiple instances of the computer system, block further calls to access the one resource by the one instance among the multiple instances of the computer system; configure the one resource; bind the one instance among the multiple instances of the computer system to the one resource; and unblock further calls to access the one resource by the one instance among the multiple instances of the computer system. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings, in which:
[0007] Figure 1 is a block diagram of a computer system in which embodiments of the present invention can be implemented;
[0008] Figure 2 is Figure 1 a block diagram of the PVC of
[0009] Figure 3 is to intercept theFigure 1 Block diagram of read / write requests for a persistent volume;
[0010] Figure 4 is a flowchart of a computer-implemented method for intercepting read / write requests for a Figure 1 persistent volume;
[0011] Figure 5 is a flowchart of a computer-implemented method for intercepting read / write requests for a Figure 1 networked component; and
[0012] Figure 6 is a block diagram of a computer system that can implement embodiments of the present invention. DETAILED DESCRIPTION
[0013] Orchestration is the automatic configuration, coordination, and management of computer systems and software. A container is an abstraction at the application layer that encapsulates code and all its dependencies, enabling an application to run quickly and reliably from one computing environment to another. Multiple containers can run on the same computer and can share the operating system kernel with other containers, with each container running as an isolated process in user space.
[0014] Figure 1Shows container 102 containing system instance 104 and container 142 containing system instance 144. Herein, container 102 will be referred to as the first container 102, system instance 104 will be referred to as the first system instance 104, container 142 will be referred to as the second container 142, and system instance 144 will be referred to as the second system instance 144. The volume requirements of the first container 102 are mapped to persistent volumes (VOL) 120, 122, 128 using persistent volume claims (PVC) 110 - 114. The volume requirements of the second container 142 are mapped to persistent volumes 124, 126, 130 (VOL) using persistent volume claims (PVC) 150 - 154. In one exemplary embodiment, the first container 102 can be mapped to persistent volume 120 using PVC 110 so that it can access to read data, mapped to persistent volume 122 using PVC 112 so that it can write log and trace files, and mapped to persistent volume 128 using PVC 114 so that it can read and write persistent state. Similarly, the second container 142 can be mapped to persistent volume 124 using PVC 150 so that it can access to read data, mapped to persistent volume 126 using PVC 152 so that it can write log and trace files, and mapped to persistent volume 130 using PVC 154 so that it can read and write persistent state. Embodiments of the present invention can have other mappings using other PVCs 110 - 114, 150 - 154 for other purposes, and may also not have some or even any of the above mappings. Embodiments of the present invention can have any number of mappings to any number of persistent volumes 120 - 130 such that at least one of the resources is a storage volume.
[0015] The first container 102 can also be mapped to network component (NET) 170 using networking configuration (NETC) 160, and the second container 142 can also be mapped to network component (NET) 172 using networking configuration (NETC) 162. Embodiments of the present invention can have mappings to any number of networking components or resources such that at least one of the resources is a networking component. Embodiments of the present invention can have mappings to other resources such as prerequisite components and configuration files such that at least one of the resources is a prerequisite component, configuration file, or secret.
[0016] Figure 2 is Figure 1 Block diagram of PVC 110 and PVC 140. PVC 110 can include access mode 202, volume mode 204, and resource 206. PVC 114 can include storage class 208 for dynamically provisioning volumes. PVC 110 and PVC 114 are conventional PVCs, the format and usage of which are familiar to those skilled in the art.
[0017] When the container 102 and / or the container 142 are started, each PVC 110 - 114, 150 - 154 coordinates with the available persistent volumes 120 - 130. As is well known to those skilled in the art, the persistent volumes 120 - 130 are mounted to paths in the file system. Generally, the first system instance 104 may not need to write a trace file until the user needs to capture the trace for diagnosis. Conventionally, the persistent volumes 120 - 130 are permanently assigned to the first system instance 104 to be ready in case a trace file is to be written. In an embodiment of the present invention, the persistent volumes 120 - 130 for writing the trace file are marked as mounted, and there are mount points in the container 102 and / or the container 142. However, the persistent volumes 120 - 130 are not bound to the container 102 and / or the container 142 unless the file path under the mount point is opened, and until a request is made to open the file path under the mount point. In an embodiment of the present invention using a public cloud environment (e.g., Amazon's AWS EKS), a charge is incurred when the AWS EBS volume is mounted, and this charge is not required to be paid until the volume is actually needed, rather than when the system resources are orchestrated.
[0018] Similarly, other resources that are only bound when actually used include secrets and configuration maps. Secrets can contain sensitive data that is securely distributed to the containers that need to access the secrets. In an embodiment of the present invention, the distribution of the secrets to the containers is not implemented until the system instance 104 and / or the system instance 144 attempt to load the secrets. This has the advantage that the number of nodes to which the secret data needs to be transmitted is reduced to the number of nodes that actually need to access the secret data. The configuration map can be mounted only for the system instance 104 and / or the system instance 144 that needs a specific configuration map. This has the advantage of reducing network traffic if the overall configuration is large.
[0019] Advantages of embodiments of the present invention can include keeping the system exposed, especially a system involving secret data, so that system instances that need secret data at runtime have reduced storage costs due to mounting the storage only when actually needed at runtime, and also providing a clean environment that helps compensate for accidental or incorrect orchestration.
[0020] Reference Figure 3, read / write calls 302 made from container 102 and / or container 142 to persistent volumes 120 - 130 in file system 310 are intercepted by hook function layer 306. In various embodiments, file system 310 can be a dedicated file system. Application Programming Interface (API) server 308 is used to create persistent volumes 120 - 130 and also satisfy PVCs 110 - 114 and PVCs 140 - 144 for real persistent volumes 120 - 130. By making a first read / write call 302, container 102 and / or container 142 effectively requests API server 308 to satisfy PVCs 110 - 114, 140 - 144 associated with the read / write call 302 because container 102 and / or container 142 requests actually use PVCs 110 - 114, 140 - 144.
[0021] Hook function layer 306 can be implemented using a mechanism such as a dynamic linking library (e.g., dynamic linking library). Embodiments of the present invention are not limited to use with the Unix operating system, and other mechanisms that achieve the same function can be used with other operating systems. UNIX is a registered trademark of The Open Group in the United States and other countries.
[0022] Hook function layer 306 can also intercept reads and writes to networking component 170 and / or networking component 172 in the same manner as the read / write calls 302 to persistent volumes 120 - 130 described above.
[0023] The following is the pseudo - code of an example embodiment of an fopen() hook function for use in dynamic instantiation of network - attached file storage. This pseudo - code uses a Representational State Transfer (REST) API provided by a storage vendor to create a new file storage. After creating the storage, a second call to mount a new NFS share is made before making the call for the initial request (e.g., fopen() or fclose() call). As described in the following program logic. For example:
[0024]
[0025]
[0026]
[0027]
[0028] There are various operating system calls that can open and close files. Embodiments of the present invention include similar hook functions within the hook function layer 306 for functions such as open(), opendir(), freopen(), etc. However, most of the implementations of these hook functions may be nearly identical between these calls and can thus be made common between them.
[0029] Referring Figure 4 , a computer-implemented embodiment of a method for real-time runtime infrastructure orchestration of persistent volumes 120-130 according to the present invention begins at step 402. At step 404, a check is made as to whether system instance 104 and / or system instance 134 needs to access persistent volumes 120-130. If system instance 104 and / or system instance 134 does not need to access persistent volumes 120-130 (No step), then persistent volumes 120-130 need not be provisioned and calls for reads from and writes to persistent volumes 120-130 will not have to be intercepted and thus the computer-implemented method ends at step 418. In embodiments of the present invention where there are mappings to other resources such as prerequisite components, configuration files, or secrets, a check is made as to whether the system instance needs the prerequisite components, configuration files, or secrets. For example, access to a secret may be required by some system instances but may not be required by that particular system instance. With respect to these embodiments, references to persistent volumes in the following steps 406 to 416 should be interpreted as references to prerequisite components, configuration files, or secrets.
[0030] If system instance 104 and / or system instance 134 does indeed need to access persistent volumes 120-130 (Yes step), then embodiments of the present invention proceed to step 406. At step 406, read / write calls 302 from container 102 and / or container 142 to persistent volumes 120-130 in file system 310 are intercepted by hook function layer 306. Generally, in various embodiments, the computer-implemented method intercepts calls for a computer system to access a resource.
[0031] At step 408, a check is made as to whether this is the first read / write call 302 to the persistent volumes 120-130, where this is the first attempt to access the mount point of the persistent volumes 120-130. A volume mount point is a dedicated file system 310 object used to mount and provide an entry point to other volumes. The mount point can be created in a directory on the file system 310, which gives a reference to the root directory of the mounted persistent volumes 120-130. If it is not the first read / write call 302 to the persistent volumes 120-130 (No step), the computer-implemented method ends at step 418. In response to the intercepted call being the first call (e.g., read / write call 302) for the computer system to access a resource such as the persistent volumes 120-130 (Yes step), the process proceeds to step 410.
[0032] At step 410, further read and write calls 302 for the system instance 104 and / or the system instance 144 to access a resource such as the persistent volumes 120-130 are blocked by the hook function layer 306. At step 412, the API server 308 is used to satisfy the real persistent volume 120 and / or persistent volume 122 PVCs 110-114, 150-154 by binding the system instance 104 and / or the system instance 144 to the resource such as the persistent volumes 120-130. At step 414, the resource such as the volumes 120-130 is actually mounted. At step 416, the read and write calls 302 for the persistent volumes 120-130 are now unblocked for further calls for the system instance 104 and / or the system instance 144 to access the resource, e.g., the persistent volumes 120-130 are unblocked by the function hook layer 306. In one embodiment, steps 410 of blocking, step 412 of binding, step 414 of mounting, and step 416 of unblocking are performed by the hook function layer. The computer-implemented method ends at step 418.
[0033] After step 416 above, the read and write calls 302 for the persistent volumes 120-130 operate normally as in an existing technology computer system. However, in an embodiment of the present invention, due to the lazy dynamic provisioning of the persistent volumes 120-130, there is a risk that the dynamic activity may fail. However, this lazy dynamic provisioning generally does not cause any problems because embodiments of the present invention generally use it for non-essential files such as trace logs and error logs. As is known in the art, different volume mounts are used for these files so that critical system files are not affected by trace log files or error log files that become too large.
[0034] If desired, a fallback option for the case where a failure does occur can be implemented by allocating local file storage in an order in which system instance 104 and / or system instance 144 can continue to operate. In this embodiment, an instance of a computer system (system instance 104) and / or system instance 144 includes local storage that is allocated in response to a failure of a resource mount. The local storage can be used when the cloud provider of the persistent volumes 120 - 130 may be temporarily unable to supply some file storage, for example if its API server 308 is down. Another fallback option can be to fail the containers 102 and / or containers 142 at the point where dynamic provisioning cannot occur. In some aspects, if a resource (such as persistent volumes 120 - 130) is unavailable when the containers 102 and / or containers 142 are deployed, this is no different from a failure to deploy the containers 102 and / or containers 142.
[0035] System calls to functions such as fopen() and fclose() can fail at any time for various reasons. Generally, the containers 102 and / or containers 142 of the expected application are coded to handle these types of failures and handle them appropriately. Such failures due to dynamic provisioning are no more likely to occur than failures due to other file operations involving network activity related to network - attached storage. Additionally, for each type of application, there is always an option to configure the embodiments of the present invention to be on or off.
[0036] Reference Figure 5, A computer - implemented embodiment of a method for orchestrating the real - time runtime infrastructure of network component 170 and / or networking component 172 according to the present invention begins at step 502. At step 504, a check is made as to whether system instance 104 and / or system instance 134 needs to access network component 170 and / or network component 172. If system instance 104 and / or system instance 134 does not need to access network component 170 and / or network component 172 (No step), then network component 170 and / or networking component 172 need not be provisioned, and calls 302 for reading from and writing to network component 170 and / or networking component 172 need not be intercepted, and thus the computer - implemented method ends at step 518. If system instance 104 and / or system instance 134 does need to access network component 170 and / or networking component 172 (Yes step), then the computer - implemented method proceeds to 506. At step 506, read / write calls 302 from container 102 and / or container 142 to network component 170 and / or network component 172 are intercepted by hook function layer 306. At step 508, a determination is made as to whether this is the first read / write call 302 to network component 170 and / or network component 172. If it is not the first read / write call 302 to network component 170 and / or network component 172 (No step), then the computer - implemented method ends at step 518. If it is the first read / write call 302 to network component 170 and / or networking component 172 (Yes step), then the process proceeds to step 510.
[0037] At step 510, read and write calls 302 to network component 170 and / or networking component 172 are blocked by hook function layer 306. At step 512, API server 308 is used to satisfy networking configuration 160 and / or 162 and PVCs 150 - 154 for the real network component 170 and / or network component 172. At step 514, network component 170 and / or network component 172 are configured with the real configuration. At step 516, hook function layer 306 now unblocks read and write calls 302 to network component 170 and / or networking component 172. After step 516, read and write calls 302 to network component 170 and / or networking component 172 operate normally as in prior - art computer systems. The computer - implemented method ends at step 518. In various embodiments, based on a subset of instances using a first resource, the first resource is allocated only to a subset of multiple instances of a computer system.
[0038] Embodiments of the present invention are based on file access interception and use replicated instances of a named - resource - configured system to dynamically provision cloud services upon first use within another service.
[0039] Now referFigure 6 , a schematic diagram showing an example of a computing system. The computing system 612 is only one example of a suitable computing system and is not intended to impose any limitation on the scope of use or functionality of the various embodiments of the present invention described herein. In any case, the computing system 612 can be implemented and / or perform any of the functions set forth above.
[0040] The computer system / server 612 can operate with numerous other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with the computer system / server 612 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems or devices, etc.
[0041] The computer system / server 612 can be described in the general context of computer system-executable instructions, such as program modules executed by a computer system. Generally, program modules can include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. The computer system / server 612 can be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located in both local and remote computer system storage media including memory storage devices.
[0042] As Figure 6 shown, the computer system / server 612 is shown in the form of a general-purpose computing device. The components of the computer system / server 612 can include, but are not limited to, one or more processors or processing units (processors) 616, a system memory 628, and a bus 618 that couples various system components including the system memory 628 to the processor 616.
[0043] The bus 618 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of various bus architectures. By way of example and not limitation, these architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
[0044] The computer system / server 612 generally includes various computer system-readable media. Such media can be any available media accessible by the computer system / server 612, and it includes volatile and non-volatile media, removable and non-removable media.
[0045] The system memory 628 can include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 630 and / or cache memory 632. The computer system / server 612 can also include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 634 can be provided for reading from and writing to an non-removable, non-volatile magnetic medium (not shown and typically referred to as a "hard disk drive"). Although not shown, a disk drive can be provided for reading from and writing to a removable, non-volatile disk (e.g., a "floppy disk"), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media. In such cases, each can be connected to the bus 618 via one or more data media interfaces. As will be further depicted and described below, the memory 628 can include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of embodiments of the present invention.
[0046] By way of example and not limitation, a program / utility 640 having a set (at least one) of program modules 642, an operating system, one or more application programs, other program modules, and program data can be stored in the memory 628. Each of the operating system, one or more application programs, other program modules, and program data, or some combination thereof, can include an implementation of a networked environment. The program modules 642 generally execute the functions and / or methods of embodiments of the present invention as described herein.
[0047] The computer system / server 612 can also communicate with one or more external devices 614, such as a keyboard, a pointing device, a display 624, etc.; one or more devices that enable a user to interact with the computer system / server 612; and / or any device that enables the computer system / server 612 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication can occur via the input / output (I / O) interface 622. In addition, the computer system / server 612 can communicate with one or more networks via the network adapter 620, and the networks are such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet). As depicted, the network adapter 620 communicates with other components of the computer system / server 612 via the bus 618. Although not shown, it should be understood that other hardware and / or software components can be used in conjunction with the computer system / server 612. Examples include but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
[0048] The present invention can be a system, a method, and / or a computer program product. The computer program product can include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of the present invention.
[0049] A computer-readable storage medium can be a tangible device that is capable of retaining and storing instructions for use by an instruction execution device. A computer-readable storage medium can be, for example but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punched card or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be construed as a transitory signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse through an optical fiber cable), or an electrical signal transmitted through a wire.
[0050] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the corresponding computing / processing device.
[0051] The computer-readable program instructions for performing the operations of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and conventional procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions can be executed entirely on the user's computer, partially on the user's computer, executed as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network connection, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., using an Internet service provider via the Internet). In some embodiments, in order to perform aspects of the present invention, an electronic circuit, including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), can execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit.
[0052] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0053] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing apparatus create means for implementing the functions / acts specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium in which the instructions are stored comprises an article of manufacture including instructions that implement various aspects of the functions / acts specified in one or more boxes of the flowchart and / or block diagram.
[0054] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other devices to produce a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other devices implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.
[0055] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
[0056] The description of the various embodiments of the present invention has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen to best explain the principles of the embodiments, the practical application, or technical improvement over technologies found in the marketplace, or to enable other ordinary skilled in the art to understand the embodiments disclosed herein.
Claims
1. A computer-implemented method for supplying resources associated with multiple instances of a computer system, the method comprising: Intercepting a call for access to a first resource from a first instance of a computer system, the computer system including multiple instances; In response to the intercepted call being the first call for access to the first resource from the first instance: Blocking further calls for access to the first resource from the multiple instances of the computer system; Binding the first instance to the first resource; Configuring the first resource; And Unblocking further calls for access to the first resource from the multiple instances of the computer system; Wherein: The first resource is allocated at runtime; and The first resource is allocated only to a subset of the instances of the multiple instances of the computer system that use the first resource.
2. The computer-implemented method according to claim 1, wherein: The first resource is one of a storage volume or a networking component; and The configuring includes mounting the first resource.
3. The computer-implemented method according to claim 1, wherein, The first resource is a prerequisite component, a configuration file, or secret information.
4. The computer-implemented method according to any one of claims 1 to 3, wherein, The blocking, the binding, and the unblocking are performed by a hook function layer.
5. The computer-implemented method according to any one of claims 1-3, wherein, The first instance of the computer system includes local storage allocated in response to a mount failure.
6. An apparatus for supplying resources associated with multiple instances of a computer system, the apparatus comprising: A hook function layer module that: Intercepts a call for access to a first resource from a first instance of a computer system, the computer system including multiple instances; and In response to the intercepted call being the first call for access to the first resource: Blocks further calls for access to the first resource from the multiple instances of the computer system; Binds the first instance to the first resource; Configures the first resource; And Unblocks further calls for access to the first resource from the multiple instances of the computer system; Wherein: The first resource is allocated at runtime; and The first resource is allocated only to a subset of the multiple instances of the computer system that use the first resource.
7. The apparatus according to claim 6, wherein: The first resource is one of a storage volume or a networking component; and The configuring includes mounting the first resource.
8. The device according to claim 6, wherein, The first resource is a prerequisite component, a configuration file, or secret information.
9. The device according to any one of claims 6-8, wherein, The blocking, the binding, and the unblocking are performed by a hook function layer.
10. The device according to any one of claims 6 - 8, wherein, The first instance of the computer system includes local storage allocated in response to a mount failure.
11. A computer program product, comprising a computer-readable storage medium having an instruction set stored therein, the instruction set, when executed by a processor, causes the processor to supply resources associated with multiple instances of a computer system by: Intercept a call to access a first resource from a first instance of a computer system, the computer system including a plurality of instances; In response to the intercepted call being the first call to access the first resource from the first instance: Block further calls to access the first resource from the plurality of instances of the computer system; Bind the first instance to the first resource; Configure the first resource; And Unblock further calls to access the first resource from the plurality of instances of the computer system; Wherein: The first resource is allocated at runtime; and The first resource is only allocated to a subset of the instances of the plurality of instances of the computer system that use the first resource.
12. The computer program product according to claim 11, wherein: The first resource is one of a storage volume or a networking component; and The configuration includes mounting the first resource.
13. The computer program product according to claim 11, wherein, The first resource is a prerequisite component, a configuration file, or secret information.
14. The computer program product according to any one of claims 11 - 13, wherein, The blocking, the binding, and the unblocking are performed by a hook function layer.
15. The computer program product according to any one of claims 11-13, wherein, The first instance of the computer system includes local storage allocated in response to a mount failure.
Citation Information
Patent Citations
Trusted File Indirection
US20130282776A1
Monitoring execution environments for approved configurations
US9600664B1