Virtualizes specific values in the guest configuration based on the underlying host symbol repository
By introducing symbol-based file systems and symbolic links in the virtual client environment, virtual clients can locally manage and share their profiles, solving the reliability and security issues of network sharing and achieving efficient configuration file management and sharing.
Patent Information
- Application Number
- CN202111201739.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-11-12
- Filing Date
- 2021-10-15
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2041-10-15
AI Technical Summary
In a virtual client environment, it is difficult to share the unique configuration files that manage a large number of virtual client instances across multiple systems, and network sharing is limited by the reliability and speed of the underlying network, making it difficult to ensure security and efficiency.
Provides a method where a virtual client accesses a symbolic file system through symbolic links, and the manager retrieves alternative values from the symbol table to realize local management and sharing of configuration files.
Implement local management of configuration files, enhance security and reliability, avoid the limitations of network sharing, allow virtual clients to transparently access their configuration files, and support centralized management in cloud environments.
Smart Images

Figure CN114489923B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate generally to computer systems and, more particularly, to virtualization of files. Background Art
[0002] In a virtual client environment, configuration information unique to a particular client instance is stored in files at various locations within the client file system. These files are accessed and managed locally by the systems and applications running inside the virtual client instance. In an environment with a large number of virtual client instances, these unique configuration files are managed individually for each virtual client instance.
[0003] Remote file system capabilities can be used to share file system content across multiple systems via network shares. However, sharing occurs on a directory or file system basis and is not available for individual files or at the field level. Network shares are also subject to the reliability and speed of the underlying network. Summary of the invention
[0004] Among other things, a method is provided. The method includes a virtual client opening a real file located in a traditional file system. Extracting each symbol from a symbol-based file located in the symbol-based file system. Accessing the symbol-based file through a symbolic link in the traditional file system that links to a corresponding file in the symbol-based file system. The virtual client issues a privileged instruction to a hypervisor for each symbol in the symbol-based file to retrieve a substitute value from a symbol table stored in a hypervisor storage device. When the virtual client reads the symbol-based file, the substitute value for each symbol is returned to the virtual client. In response to a file read request for the traditional file, the substitute value is retrieved from the symbol-based file using the symbolic link in the traditional file system.
[0005] Embodiments are further directed to computer systems and computer program products having substantially the same features as the above-described computer-implemented methods.
[0006] Additional features and advantages are achieved through the techniques described herein. Other embodiments and aspects are described in detail herein. For a better understanding, please refer to the specification and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and advantages will be apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
[0008] Figure 1 is a functional block diagram of an illustrative system according to an embodiment of the present invention;
[0009] Figure 2A virtual client instance with a symbol-based file system according to an embodiment of the present invention is shown;
[0010] Figure 3 illustrates the relationship between a traditional file system and a symbol-based file system according to an embodiment of the present invention;
[0011] Figure 4 is a flowchart of initializing a symbol-based file system according to an embodiment of the present invention; and
[0012] Figure 5 is a flowchart of parsing symbols in a virtual client instance according to an embodiment of the present invention. DETAILED DESCRIPTION
[0013] The present disclosure generally relates to the field of virtualized computing environments. In a virtualized computing environment, a virtual machine (also referred to as a virtual client) acts like a real computer with an operating system and hardware devices. As in a real computer, each virtual client includes many files that configure the operation of the virtual client. Such configuration information includes a unique client IP address, network configuration, DNS configuration, resolver configuration, and various other system and application related configurations (LDAP, Docker, registry) for a specific virtual client instance. These files are accessed and managed locally by the virtual client and the application on the virtual client.
[0014] In large-scale computing environments, these unique configuration files and common files are replicated across virtual clients and managed separately. In current practice, network shares such as Network File System (NFS) can export files containing configuration information to multiple systems. However, network shares operate at the directory level, rather than at the level of individual files or fields within files. Network shares are also subject to the reliability and speed of the underlying network and are difficult to secure because some data transfers can be sent in plain text by default.
[0015] Embodiments of the present invention provide a dedicated symbol-based file system that allows configuration files to be locally managed in a host environment so that the configuration files do not rely on a network to copy them across multiple virtual client instances. A local protection interface between a virtual client and a host is used to obtain and / or parse values in a configuration file, thereby providing enhanced security and reliability because network access is not required. In addition, the virtual client is not limited by directory-level sharing. The virtual client transparently accesses its configuration files and configuration parameters. This means that when configuration parameters in a configuration file are updated, the modification is reflected in the virtual client whenever the configuration file is opened during normal execution, without requiring downtime in the virtual client. Using symbolic links in a traditional file system allows configuration files to be located in a symbol-based file system of a virtual client. However, symbol-based files are located under the mount point of a symbol-based file system. Similarly, through a symbol-based file system, configuration parameters can be globally shared to all virtual clients instantiated on a host, or can be customized to one or more specific virtual clients on the host. In addition, global sharing means that configuration files and configuration parameters of a large number of virtual clients can be centrally managed, which is a benefit in a cloud environment. Therefore, embodiments of the present invention tend to improve system management techniques in a virtual client environment, particularly when it is applied to a cloud implementation.
[0016] Embodiments of the present invention will now be described in more detail with reference to the accompanying drawings.
[0017] Figure 1 is a functional block diagram of an illustrative virtualization environment (system) 100 according to an embodiment of the present invention.
[0018] As shown, system 100 includes one or more computer systems / servers (servers) 12, one of which is shown in the figure. Server 12 may include any computer capable of containing a hypervisor 10 that can virtualize the hardware of server 12 to support one or more optional virtual clients, such as client 1 205 and client 2 205.
[0019] The functions and processes of the server 12 may be described in the context of computer system executable instructions (such as program modules, routines, objects, data structures, and logic, etc.) that perform specific tasks or implement specific abstract data types. The server 12 may be part of a distributed cloud computing environment, and when the hypervisor 10 is installed on the server 12, the server may be able to create multiple virtual clients.
[0020] like Figure 1As shown, the server 12 may include, but is not limited to, one or more processors or processing units 16 , a system memory 28 , and a bus 18 that couples various system components including the system memory 28 to the processing unit 16 .
[0021] Bus 18 represents one or more 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 a variety of bus architectures.
[0022] The server 12 typically includes a variety of computer system readable media. Such media can be any available media that can be accessed by the computer system / server 12, and it includes volatile and non-volatile media, removable and non-removable media.
[0023] Memory 28 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and / or cache memory 32. Server 12 may also include other removable / non-removable, volatile / non-volatile computer system storage media. For example, storage system 34 may include non-removable non-volatile magnetic media, such as a "hard drive" and an optical drive for reading from or writing to a removable non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media. Each device in storage system 34 may be connected to bus 18 via one or more data media interfaces (such as I / O interface 22).
[0024] Each program 40 (one of which is shown in the figure) represents one of a plurality of programs stored in the storage system 34 and loaded into the memory 28 for execution. The program 40 includes an instance of an operating system, an application, a system utility, or the like. Each program 40 includes one or more modules 42. The data of the symbol table 11 can be stored on the storage system 34. When the virtual client is activated, the hypervisor 10 can cause the data of the symbol table 11 to be loaded into the memory of the hypervisor 10, where the data can be used to fill in the configuration parameters of the virtual client. It should be noted that the virtual client is optional even when the server 12 includes the hypervisor 10. Other configurations are possible.
[0025] The server 12 may also communicate with one or more external devices 14, such as a keyboard, a pointing device, and / or any device that enables the server 12 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication may occur via an input / output (I / O) interface 22.
[0026] The management console 24 includes specialized software that communicates with the hypervisor 10 component of the server 12 through the I / O interface 22 to manage the configuration and state of the virtual client. Using the management console 24, an administrator with appropriate security authorization defines symbols and their corresponding replacement values, which are configuration values for the virtual client. These symbols and their corresponding replacement values may be stored in a storage system 34 on the server 12. The defined symbols and their corresponding replacement values are stored in the memory of the hypervisor 10 as a symbol table 11. Also upon activation, and as described in Figure 2-3 As further described, a symbol-based file system and associated symbolic links are configured.
[0027] Server 12 can communicate with one or more networks via network adapter 20. As shown, network adapter 20 communicates with other components of server 12 via bus 18. Although not shown, other hardware and / or software components can be used in conjunction with server 12. 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. In the present invention, server 12 can illustrate physical hardware and software implementations. Server 12 can also illustrate a virtual implementation of a physical server (e.g., a virtual machine or a virtual client).
[0028] Figure 2 A virtual client instance with a symbol-based file system according to an embodiment of the present invention is shown.
[0029] Figure 2 Two virtual clients (clients) 205 are shown, client 1 and client 2. Each client 205 is hosted on a physical server (such as Figure 1 12). Each client 205 includes a logical file system layer 215. The logical file system presents file system data to the operating system of the client 205 or the server 12 in a uniform manner, even though the underlying physical storage devices have different data storage architectures. The hypervisor 10 on the server (host) 12 implements a traditional file system 225 and a symbol-based file system 220 in each client 205. A traditional file system may refer to a system that stores data to and retrieves data from an underlying storage medium without changing the plaintext value of the data. In contrast, the symbol-based file system 220 interprets each field of the stored data as it is read from the storage medium, and replaces specially encoded symbols with values dynamically retrieved from the symbol table 11 by the hypervisor 10. As shown in FIG. Figure 2As shown, the hypervisor 10 stores and manages a symbol table 11 organized by the client 205. The symbol table 11 includes symbols (here "&abcd.") and substitute values (here "1.1.1.1" for client 1 and "2.2.2.2" for client 2) present in the client 205 file 210. This example shows that even if files on different virtual clients include the same symbol, the symbol can have different substitute values because the symbols are organized by the virtual client. As shown in 240, the symbol-based file system 220 intercepts a system call from an application or an operating system to open a file 210 containing symbols. In turn, the symbol-based file system retrieves the symbol value from the hypervisor 10 through a privileged call to the hypervisor 10. The substitute value for each symbol is returned to the caller in the virtual client.
[0030] Figure 3 The relationship between a traditional file system 225 and a symbol-based file system 220 according to an embodiment of the present invention is shown.
[0031] The file tree (shown as 310) represents the actual location of files and symbolic links in the traditional file system 225. These files include system configuration files such as " / etc / hosts" and " / etc / resolv.conf". However, the files may include other types of files, such as application configuration files. The location of the files is not limited to the " / etc" directory. Files "x", "y.txt" and "z" are files stored in the symbol-based file system 220. As shown in 330, the files on the symbol-based file system 220 include parameters required by the application or operating system. Some parameters can be explicitly included, such as "Parm1=local", but some parameters can be symbols, such as "Parm2=&abcd". Element 340 shows the resulting view of the file after symbol resolution when reading through symbolic links in the traditional file system. For example, "Parm2=&abcd." is now resolved to "Parm2=1.1.1.1". Each symbolic link in the traditional file system 225 is located where the application or operating system expects and appears to contain the actual value of the parameter. Therefore, the symbol and substitution process is transparent to the application / operating system.
[0032] Figure 3Two symbolic links 320 are shown. The symbolic links 320 are created in the traditional file system 225 to reference the appropriate file in the symbol-based file system 220. When the application / operating system issues a system call to open one of the symbolic links 320, the call is redirected to the symbol-based file system 220 that manages the linked file. When the linked symbol-based file is read from the storage device into the memory, the symbol-based file system 220 examines the content field by field to identify the embedded symbols. For each identified symbol, the hypervisor 10 is called via a privileged instruction, the format and content of which depends on the architecture implementation. The privileged instruction includes a metadata operand to uniquely identify which client 205 entry is to be retrieved from the symbol table 11. Upon locating the uniquely identified client 205 entry, the hypervisor 10 returns the resolved value to the symbol-based file system, which replaces the symbol with the resolved value in the memory. Any subsequent call to read the content of the open symbolic link returns the resolved content to the application / operating system caller.
[0033] It should be noted that an administrator with appropriate security authorization can maintain (add / update / delete) the symbol table 11 while the client 205 is active. In that case, the next call to open a file will cause the above initialization process to be executed again to refresh the symbols, except that existing symbolic links can be used.
[0034] Figure 4 is a flowchart of initializing a symbol-based file system according to an embodiment of the present invention.
[0035] At 410, the dedicated software of the management console 24 receives as input the configuration symbols and their corresponding replacement values. Each virtual client is associated with a unique profile, which includes a unique identifier and the identity of the user authorized to launch and manage the virtual client, as well as other data. Depending on the virtualization implementation, additional data may be associated with the unique profile, such as a unique job name and a unique process identifier.
[0036] At 415, the hypervisor 10 on the host system (server 12) generates a symbol table 11 with corresponding replacement values in the hypervisor 10 memory. The symbol table 11 can be organized as a hash table that is used with the client profile to indicate how to resolve each symbol definition. The symbol table 11 is persisted to the storage system 34 to avoid having to re-enter the symbol table 11 each time the system boots. The persistent format can be a simple file, table, or collection of tables in a relational database, or any other suitable representation.
[0037] At 420, the hypervisor 10 creates a file containing the configuration symbols in the symbol-based file system on each virtual client. The created file can be located anywhere in the symbol-based file system.
[0038] At 430, a symbolic link is created from the file location in the traditional file system 225 to the created file in the symbol-based file system 220. The file location in the traditional file system is where the operating system or application expects the file to be located, for example, " / etc" for DNS "resolv.conf". The symbolic link creation can be automated or performed manually by an administrator with appropriate permissions.
[0039] Figure 5 is a flowchart of parsing symbols in a virtual client instance according to an embodiment of the present invention.
[0040] At 505, the operating system or application issues a request to open a configuration file at an expected location, such as " / etc / resolv.conf." The request is issued using a known file system access method such as "fopen."
[0041] At 510 , a file system access method (eg, “fopen”) opens “ / etc / resolv.conf.” When “fopen” opens a symbolic link, the request is forwarded to the symbol-based file system 220 .
[0042] At 515 , for each symbol, a “fopen” in the symbol-based file system executes a privileged instruction to the hypervisor 10 to retrieve the corresponding substitute value for the caller in the specific client 205 .
[0043] At 520, the hypervisor 10 searches the symbol table 11 based on a unique configuration file of the virtual client accessing the file.
[0044] At 525, the hypervisor 10 performs the symbol substitution and the substitution value is returned to the virtual client.
[0045] At 530, the symbol replacement is completed and the "fopen" process ends. The symbol replacement is in memory and is not persistent.
[0046] At 535, the caller of "fopen" (e.g., for opening " / etc / resolv.conf") receives an indication from the "fopen" process that the file was successfully opened. In this case, subsequent read operations return a substitute value.
[0047] It should be noted that the administrator can modify the symbols and substitute values without interrupting the operation of the virtual client or the operating system. In this case, the substitute values are refreshed in the virtual client each time the file is opened.
[0048] Different embodiments of the present invention may be implemented in a data processing system suitable for storing and / or executing program code, the data processing system comprising at least one processor coupled directly or indirectly via a system bus to a memory element. The memory element comprises, for example, a local memory used during the actual execution of the program code, a mass storage device, and a cache memory providing temporary storage of at least some program code in order to reduce the number of times the code must be retrieved from the mass storage device during execution.
[0049] Input / output or I / O devices (including but not limited to keyboards, displays, pointing devices, DASD, tapes, CDs, DVDs, thumb drives and other storage media, etc.) may be coupled to the system either directly or through intervening I / O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems and Ethernet cards are just a few of the available types of network adapters.
[0050] The present invention may be a system, method and / or computer program product of any possible integrated technical detail level. The computer program product may include a computer-readable storage medium (or medium) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform aspects of the present invention.
[0051] A computer-readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium may 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 computer-readable storage media 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 disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punch card) or a raised structure in a groove with instructions recorded thereon), and any suitable combination of the above. As used herein, a computer-readable storage medium should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by a fiber optic cable), or an electrical signal transmitted by a wire.
[0052] The computer-readable program instructions described herein may 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 (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The 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 to be stored in a computer-readable storage medium within the corresponding computing / processing device.
[0053] The computer-readable program instructions for performing the operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, 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++, and procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, 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 may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, an electronic circuit (including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA)) may execute computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit so as to perform aspects of the present invention.
[0054] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present invention. It should be understood that each box of the flowchart and / or block diagram and the combination of boxes in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0055] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing device to produce a machine such that the instructions are executed via a processor of the computer or other programmable data processing device to create a device for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing device, and / or other device to function in a particular manner such that a computer-readable storage medium having instructions stored therein includes an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0056] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other apparatus that causes a series of operating steps to be performed on a computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0057] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to different embodiments of the present invention. To this end, each box in the flow chart or block diagram can represent a part of a module, segment or instruction, which includes one or more executable instructions for realizing the logical function of the specification. In some alternative embodiments, the function marked in the box may not occur in the order marked in the figure. For example, depending on the function involved, the two boxes shown in succession can actually be completed as a step, executed simultaneously, substantially simultaneously, in a partially or completely overlapping manner, or these boxes can sometimes be executed in the opposite order. It will also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a system based on special-purpose hardware, and the system based on special-purpose hardware performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.
[0058] While preferred embodiments have been described and illustrated herein in detail, it will be apparent to those skilled in the relevant art that additions, substitutions, etc. may be made without departing from the spirit of the present disclosure, and therefore, these are considered to be within the scope of the present disclosure as defined in the following claims.
Claims
1. A method comprising: generating a symbol table in a hypervisor storage device on a host system, wherein the symbol table includes symbols and substitute values for the symbols for each virtual guest defined on the host system; Creating, on each virtual guest, a symbolic link in the conventional file system to the symbol-based file in the symbol-based file system; Inserts parameters and their corresponding substitution values into each symbol-based file; Opening a symbolic link located in the traditional file system in the virtual client; extracting each symbol from the symbol-based file, wherein the symbol-based file is located in the symbol-based file system, and wherein the symbol-based file is accessed through the symbolic link in the conventional file system; for each symbol in the symbol-based file, performing a privileged call from the virtual client to a hypervisor to retrieve a substitute value from the symbol table, wherein the symbol table is stored in a hypervisor storage device; returning the substitute value for each symbol to the virtual client, wherein the substitute value replaces the symbol in the symbol-based file; and In response to a file read request from the virtual client for a real file in the traditional file system, the substitute value is retrieved from the symbol-based file using the symbolic link from the real file. The method according to claim 1 , wherein the symbol table is a hash table.
3. A method according to claim 1, wherein the symbol table is organized by a virtual client profile, wherein the symbol table includes the symbol and the resolved value of the symbol for each virtual client on the host system, and wherein the virtual client profile includes metadata for uniquely identifying each virtual client.
4. The method of claim 1, wherein modifications to the symbol table are non-destructive and transparent to active virtual clients. The method of claim 1 , wherein the symbol is not unique in the symbol table.
6. The method of claim 1, wherein in the virtual client, the symbol is included in more than one different symbol-based file, or wherein the symbol is included more than once in the same symbol-based file.
7. A computer program product comprising program code embodied therewith, the program code being executable by a processor of a computer to perform a method comprising: generating a symbol table in a hypervisor storage device on a host system, wherein the symbol table includes symbols and substitute values for the symbols for each virtual guest defined on the host system; Creating, on each virtual guest, a symbolic link in the conventional file system to the symbol-based file in the symbol-based file system; Inserts parameters and their corresponding substitution values into each symbol-based file; Opening the symbolic link in the traditional file system in the virtual client; extracting each symbol from the symbol-based file, wherein the symbol-based file is located in the symbol-based file system, and wherein the symbol-based file is accessed through a symbolic link in a conventional file system; for each symbol in the symbol-based file, performing a privileged call from the virtual client to a hypervisor to retrieve a substitute value from the symbol table, wherein the symbol table is stored in a hypervisor storage device; returning the substitute value for each symbol to the virtual client, wherein the substitute value replaces the symbol in the symbol-based file; and In response to a file read request from the virtual client for a real file in the traditional file system, the substitute value is retrieved from the symbol-based file using the symbolic link from the real file.
8. The computer program product of claim 7, wherein the symbol table is a hash table.
9. The computer program product of claim 7, wherein the symbol table is organized by a virtual client profile, wherein the symbol table includes the symbols and resolved values of the symbols for each virtual client on the host system, and wherein the virtual client profile includes metadata for uniquely identifying each virtual client.
10. The computer program product of claim 7, wherein modifications to the symbol table are non-destructive and transparent to active virtual clients.
11. The computer program product of claim 7, wherein the symbol is not unique in the symbol table.
12. The computer program product of claim 7, wherein in the virtual client, the symbol is included in more than one different symbol-based file, or wherein the symbol is included more than once in the same symbol-based file.
13. A computer system comprising: one or more processors; as well as A set of computer program instructions, which are executed by at least one of the processors to perform the method of any one of claims 1-6.
Citation Information
Patent Citations
Software-Defined Network Attachable Storage System and Method
US20140082145A1