TWI845918B - Computer-implemented system and method for virtual server management - Google Patents

Computer-implemented system and method for virtual server management Download PDF

Info

Publication number
TWI845918B
TWI845918B TW111114322A TW111114322A TWI845918B TW I845918 B TWI845918 B TW I845918B TW 111114322 A TW111114322 A TW 111114322A TW 111114322 A TW111114322 A TW 111114322A TW I845918 B TWI845918 B TW I845918B
Authority
TW
Taiwan
Prior art keywords
virtual server
computer
role
configuration file
implemented method
Prior art date
Application number
TW111114322A
Other languages
Chinese (zh)
Other versions
TW202232916A (en
Inventor
金泰慶
Original Assignee
南韓商韓領有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商韓領有限公司 filed Critical 南韓商韓領有限公司
Publication of TW202232916A publication Critical patent/TW202232916A/en
Application granted granted Critical
Publication of TWI845918B publication Critical patent/TWI845918B/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A computer-implemented method for virtual server management, comprising: maintaining a configuration file associated with a virtual server instance; receiving a role associated with the virtual server instance; determining a required virtual server configuration based on the configuration file and the role; spinning up at least one virtual server based on the virtual server configuration; determining whether the at least one virtual server has reached an error state; based on determining that the at least one virtual server has reached an error state, determining whether the at least one virtual server is repairable; based on determining that the at least one virtual server is not repairable, terminating access to the at least one virtual server; spinning up at least a second virtual server based on the virtual server configuration.

Description

用於虛擬伺服器管理的電腦實施系統以及方法 Computer-implemented system and method for virtual server management

本揭露大體上是關於用於伺服器初始資訊集中化的電腦化系統及方法。特定言之,本揭露的實施例是關於維護與虛擬伺服器實例相關聯的組態檔案的系統。系統藉由自組態檔案中判定虛擬伺服器的所需的資源來實例化虛擬伺服器,且組態虛擬伺服器以提供所需的資源。以此方式,單個組態管理資料庫可快速實例化虛擬伺服器的多個複本或仿製品以改良效能或儲存,或以自伺服器故障或低效中復原。 The present disclosure generally relates to computerized systems and methods for centralizing server initialization information. In particular, embodiments of the present disclosure relate to systems for maintaining configuration files associated with virtual server instances. The system instantiates a virtual server by determining the required resources of the virtual server from the configuration file, and configures the virtual server to provide the required resources. In this way, a single configuration management database can quickly instantiate multiple copies or replicas of a virtual server to improve performance or storage, or to recover from server failures or inefficiencies.

虛擬伺服器的激增以低成本擴大了對大型計算資源的訪問。各種公司提供虛擬伺服器資源,亦稱為雲端計算。此外,公司、大學以及政府組織利用虛擬伺服器來代管網站、進行複雜的電腦模擬以及儲存大型資料庫,以及其他服務。虛擬伺服器向用戶端提供安全、可靠以及可擴展的計算資源,使得用戶端能夠專注於創建產品而不是維護伺服器能力。 The proliferation of virtual servers has expanded access to large computing resources at low cost. Various companies offer virtual server resources, also known as cloud computing. In addition, companies, universities, and government organizations use virtual servers to host websites, perform complex computer simulations, and store large databases, among other services. Virtual servers provide secure, reliable, and scalable computing resources to clients, allowing them to focus on creating products rather than maintaining server capacity.

然而,消耗大量虛擬伺服器資源的複雜組織常常難以追蹤虛擬伺服器的許多不同組態。舉例而言,大型公司可具有許多不同操作,所述操作各自需要不同虛擬伺服器資源及組態。管理部門 可能需要在虛擬伺服器上儲存,而研究及開發需要用於計算建模的處理,而銷售部門可能需要虛擬伺服器來代管網站。 However, complex organizations that consume large amounts of virtual server resources often have difficulty keeping track of the many different configurations of virtual servers. For example, a large company may have many different operations that each require different virtual server resources and configurations. The administration department may need storage on a virtual server, while research and development may need processing for computational modeling, and the sales department may need a virtual server to host a website.

此外,組織有時需要虛擬伺服器中的冗餘。舉例而言,重要健康或財務資訊的資料庫可能需要兩倍或三倍冗餘以至防止硬體故障或斷電。另外,當虛擬伺服器確實發生故障或者變得不可用時,組織必須花費大量時間在新的虛擬伺服器上重新建立相同操作。對於具有許多虛擬伺服器的組織,維護虛擬伺服器操作需要頻繁組態新的虛擬伺服器。然而,維護用於許多不同角色的許多不同組態可引入錯誤及不一致。舉例而言,若虛擬伺服器發生故障,則組態新的虛擬伺服器以進行已發生故障的伺服器的角色的雇員可能會意外忘記組態設置,從而中斷用戶端及使用者對伺服器資源的訪問。 Additionally, organizations sometimes require redundancy in virtual servers. For example, a database of critical health or financial information may require double or triple redundancy to protect against hardware failures or power outages. Additionally, when a virtual server does fail or becomes unavailable, the organization must spend a significant amount of time reestablishing the same operations on a new virtual server. For organizations with many virtual servers, maintaining virtual server operations requires frequent configuration of new virtual servers. However, maintaining many different configurations for many different roles can introduce errors and inconsistencies. For example, if a virtual server fails, an employee who configures a new virtual server to take on the role of the failed server may accidentally forget the configuration settings, disrupting client and user access to server resources.

另外,大型組織可能需要快速擴展虛擬伺服器資源,例如,若電子商務網站正在進行銷售,或研究及開發企業正在運行短期但資源密集的電腦模型。組態許多虛擬伺服器的需求減少可擴展性且增加成本。 Additionally, large organizations may need to scale up virtual server resources quickly, for example if an e-commerce website is generating sales, or a research and development business is running a short-term but resource-intensive computer model. The need to configure many virtual servers reduces scalability and increases costs.

因此,需要用於管理虛擬伺服器且集中伺服器初始資訊的系統及方法。 Therefore, a system and method for managing virtual servers and centralizing server initial information is needed.

本揭露的一個態樣是針對一種用於虛擬伺服器管理的電腦實施方法。電腦實施方法包括:維護與虛擬伺服器實例相關聯的組態檔案;接收與虛擬伺服器實例相關聯的角色;基於組態檔案與角色來判定所需的虛擬伺服器組態;基於虛擬伺服器組態來加速 至少一個虛擬伺服器;判定至少一個虛擬伺服器是否已達到錯誤狀態;基於判定至少一個虛擬伺服器已達到錯誤狀態,則判定至少一個虛擬伺服器是否為可修復的;基於判定至少一個虛擬伺服器是不可修復的,則終止對至少一個虛擬伺服器的訪問;以及基於虛擬伺服器組態來加速至少一個第二虛擬伺服器。 One aspect of the present disclosure is directed to a computer-implemented method for virtual server management. The computer implementation method includes: maintaining a configuration file associated with a virtual server instance; receiving a role associated with the virtual server instance; determining a desired virtual server configuration based on the configuration file and the role; accelerating at least one virtual server based on the virtual server configuration; determining whether at least one virtual server has reached an error state; determining whether at least one virtual server is repairable based on determining that at least one virtual server has reached an error state; terminating access to at least one virtual server based on determining that at least one virtual server is unrepairable; and accelerating at least one second virtual server based on the virtual server configuration.

本揭露的另一態樣是針對一種用於虛擬伺服器管理的電腦實施系統。電腦實施系統包括:記憶體,儲存指令以及至少一個處理器,經組態以執行指令以進行以下上述的電腦實施方法。 Another aspect of the present disclosure is directed to a computer implementation system for virtual server management. The computer implementation system includes: a memory, storage instructions, and at least one processor, which is configured to execute instructions to perform the computer implementation method described above.

本揭露的另一態樣是針對一種用於虛擬伺服器管理的電腦實施系統。所述系統包括:記憶體,儲存指令以及至少一個處理器,經組態以執行所述指令以進行以下操作:在資料儲存中維護與虛擬伺服器實例相關聯的組態檔案,所述組態檔案包括用於加載的服務的列表;判定與實例化虛擬伺服器相關聯的效率度量;當所述效率度量低於臨限值時,終止對所述虛擬伺服器的訪問;以及藉由以下操作基於所述虛擬伺服器實例來實例化新的虛擬伺服器:在所述資料儲存中定位所述組態檔案;基於所述組態檔案的內容來判定所需的虛擬伺服器資源;基於所述組態檔案的所述內容來組態所述虛擬伺服器的至少一個資源;以及加速所述虛擬伺服器。 Another aspect of the present disclosure is directed to a computer-implemented system for virtual server management. The system includes: a memory, storage instructions, and at least one processor, configured to execute the instructions to perform the following operations: maintaining a configuration file associated with a virtual server instance in a data storage, the configuration file including a list of services to be loaded; determining an efficiency metric associated with the instantiated virtual server; when the efficiency metric is below a threshold value, terminating the instantiated virtual server; access to a virtual server; and instantiating a new virtual server based on the virtual server instance by: locating the configuration file in the data storage; determining required virtual server resources based on the contents of the configuration file; configuring at least one resource of the virtual server based on the contents of the configuration file; and accelerating the virtual server.

本文亦論述其他系統、方法以及電腦可讀媒體。 Other systems, methods, and computer-readable media are also discussed herein.

100:網路 100: Internet

102:系統 102: System

104:組態管理資料庫 104: Configuration management database

106:電腦網路 106: Computer network

108:用戶端裝置 108: Client device

110:提供者 110: Provider

112:客戶裝置 112: Client device

116:處理器 116: Processor

118:輸入/輸出裝置 118: Input/output device

120:記憶體 120: Memory

200、300、400:過程 200, 300, 400: Process

202、204、206、208、210、212、214、216、218、220、302、304、306、308、310、402、404、406、408、410、412、414:步驟 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 302, 304, 306, 308, 310, 402, 404, 406, 408, 410, 412, 414: Steps

圖1示出與所揭露的實施例一致的包含用戶端及虛擬伺服器的網路。 FIG. 1 shows a network including a client and a virtual server consistent with the disclosed embodiment.

圖2為與所揭露的實施例一致的虛擬伺服器管理過程的流程圖。 FIG2 is a flow chart of a virtual server management process consistent with the disclosed embodiment.

圖3為與所揭露的實施例一致的虛擬伺服器成本儲存過程的流程圖。 FIG3 is a flow chart of a virtual server cost storage process consistent with the disclosed embodiment.

圖4為與所揭露的實施例一致的資源使用度量計算過程的流程圖。 FIG4 is a flow chart of a resource usage metric calculation process consistent with the disclosed embodiment.

以下詳細描述參考隨附圖式。在任何有可能之處,在圖式及以下描述中使用相同附圖標號來指代相同或類似部分。儘管本文中描述若干說明性實施例,但修改、調適以及其他實施方式是可能的。舉例而言,可對圖式中所示出的組件及步驟做出替代、添加或修改,且可藉由對所揭露的方法進行替代、重新排序、移除或添加步驟來修改本文中所描述的說明性方法。因此,以下詳細描述不限於所揭露的實施例及實例。實情為,本發明的適當範疇由所附申請專利範圍界定。 The following detailed description refers to the accompanying drawings. Whenever possible, the same figure numbers are used in the drawings and the following description to refer to the same or similar parts. Although several illustrative embodiments are described herein, modifications, adaptations, and other embodiments are possible. For example, substitutions, additions, or modifications may be made to the components and steps shown in the drawings, and the illustrative methods described herein may be modified by substituting, reordering, removing, or adding steps to the disclosed methods. Therefore, the following detailed description is not limited to the disclosed embodiments and examples. Instead, the proper scope of the invention is defined by the attached patent application scope.

本揭露的實施例是針對用於虛擬伺服器管理的系統及方法。 Embodiments of the present disclosure are directed to systems and methods for virtual server management.

圖1繪示包含虛擬伺服器資源使用度量分級系統102的網路100。系統102包含至少一個處理器116、允許傳輸資料的輸入/輸出(input/output;I/O)裝置118以及至少一個記憶體120。記憶體120儲存用於操作IP分類模組的程式。記憶體120亦可儲存用於圖形使用者介面(graphical user interface;GUI)的指令。 FIG. 1 illustrates a network 100 including a virtual server resource usage metric rating system 102. The system 102 includes at least one processor 116, an input/output (I/O) device 118 that allows data to be transmitted, and at least one memory 120. The memory 120 stores a program for operating an IP classification module. The memory 120 may also store instructions for a graphical user interface (GUI).

此外,處理器116可為能夠操縱或處理資訊的通用或專 用電子裝置。舉例而言,處理器可包含任何數目的中央處理單元(或「central processing unit;CPU」)、圖形處理單元(或「graphics processing unit;GPU」)、光學處理器、可程式化邏輯控制器、微控制器、微處理器、數位信號處理器、智慧財產權(intellectual property;IP)核心、可程式化邏輯陣列(Programmable Logic Array;PLA)、可程式化陣列邏輯(Programmable Array Logic;PAL)、通用陣列邏輯(Generic Array Logic;GAL)、複合可程式化邏輯裝置(Complex Programmable Logic Device;CPLD)、場可程式化閘陣列(Field-Programmable Gate Array;FPGA)、系統單晶片(System On Chip;SoC)、特殊應用積體電路(Application-Specific Integrated Circuit;ASIC)以及能夠進行資料處理的任何類型的電路的任何組合。處理器亦可為虛擬處理器,其包含分佈在經由網路耦接的多個機器或裝置上的一或多個處理器。 In addition, the processor 116 may be a general-purpose or special-purpose electronic device capable of manipulating or processing information. For example, a processor may include any number of central processing units (CPUs), graphics processing units (GPUs), optical processors, programmable logic controllers, microcontrollers, microprocessors, digital signal processors, intellectual property (IP) cores, programmable logic arrays (PLAs), programmable array logic (PALs), generic array logic (GALs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), system on chips (SoCs), and other devices. Chip; SoC), Application-Specific Integrated Circuit (ASIC), and any combination of any type of circuit capable of data processing. The processor may also be a virtual processor, which includes one or more processors distributed on multiple machines or devices coupled via a network.

另外,記憶體120可為能夠儲存可由處理器(例如經由匯流排,未繪示)存取的程式碼及資料的通用或專用電子裝置。舉例而言,記憶體可包含任何數目的隨機存取記憶體(random-access memory;RAM)、唯讀記憶體(read-only memory;ROM)、光碟、磁碟、硬驅動機、固態驅動機、快閃驅動機、安全數位(security digital;SD)卡、記憶棒、緊湊型快閃(compact flash;CF)卡或任何類型的儲存裝置的任何組合。程式碼可包含操作系統(operating system;OS)及用於特定任務的一或多個應用程式(或「application programs;app」)。記憶體亦可為虛擬記憶體,其包含分佈在經由網路耦接的多個機器或裝置上的一或多個記憶體。 Additionally, the memory 120 may be a general or special purpose electronic device capable of storing program code and data that can be accessed by the processor (e.g., via a bus, not shown). For example, the memory may include any number of random-access memory (RAM), read-only memory (ROM), optical disks, magnetic disks, hard drives, solid-state drives, flash drives, security digital (SD) cards, memory sticks, compact flash (CF) cards, or any combination of any type of storage device. The program code may include an operating system (OS) and one or more application programs (or "application programs; apps") for specific tasks. Memory can also be virtual memory, which includes one or more memories distributed across multiple machines or devices coupled via a network.

系統102連接至組態管理資料庫(configuration management database;CMDB)104。CMDB 104可包括處理器、I/O裝置以及記憶體。CMDB 104的記憶體可儲存用於初始化虛擬伺服器的組態檔案,諸如必要的包含處理器速度及記憶體的資源分配、儲存變數、包含埠及IP位址的連接參數。CMDB 104亦可儲存對應於虛擬伺服器資源的角色的使用者請求。在一些實施例中,系統102可同時作為CMDB 104操作。 System 102 is connected to a configuration management database (CMDB) 104. CMDB 104 may include processors, I/O devices, and memory. The memory of CMDB 104 may store configuration files for initializing virtual servers, such as necessary resource allocations including processor speed and memory, storage variables, and connection parameters including ports and IP addresses. CMDB 104 may also store user requests corresponding to roles of virtual server resources. In some embodiments, system 102 may also operate as CMDB 104.

系統102連接至電腦網路106。舉例而言,電腦網路106可包含任何數目的網際網路、企業內部網路、區域網路(Local-Area Network;LAN)、廣域網路(Wide-Area Network;WAN)、都會區域網路(Metropolitan-Area Network;MAN)、虛擬專用網路(virtual private network;VPN)、無線網路(例如,與IEEE 802.11a/b/g/n相容)、有線網路、租用線、蜂巢式資料網路,以及使用藍芽連接、紅外連接或近場通信(Near-Field Communication;NFC)連接的網路的任何組合。 System 102 is connected to computer network 106. For example, computer network 106 may include any number of Internet networks, corporate intranets, local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), virtual private networks (VPNs), wireless networks (e.g., compatible with IEEE 802.11a/b/g/n), wired networks, leased lines, cellular data networks, and any combination of networks connected using Bluetooth, infrared, or near-field communication (NFC).

系統102進一步直接地或經由電腦網路106連接至用戶端裝置108。用戶端裝置108可為膝上型電腦、獨立式電腦、行動電話以及類似者。使用者可經由用戶端裝置108向系統102發送虛擬伺服器資源請求。在一些實施例中,系統102可包含用戶端裝置108,使得單個單元接收使用者請求且創建及儲存組態檔案。替代地,系統102及用戶端裝置108可直接連接,使得在用戶端裝置108與系統102之間交換的資訊無需通過電腦網路106。 The system 102 is further connected to a client device 108, either directly or via a computer network 106. The client device 108 may be a laptop, a stand-alone computer, a mobile phone, and the like. A user may send a virtual server resource request to the system 102 via the client device 108. In some embodiments, the system 102 may include the client device 108, such that a single unit receives user requests and creates and stores configuration files. Alternatively, the system 102 and the client device 108 may be directly connected, such that information exchanged between the client device 108 and the system 102 does not need to pass through the computer network 106.

另外,系統102與虛擬伺服器提供者110通信。提供者110可(例如)為操作多個伺服器或通用電腦(諸如伺服器群)的服務,所述伺服器或通用電腦可供用於出租或購買。在一些實施例 中,提供者110可向使用者收取處理時間、處理器能力、儲存或連接性(諸如頻寬)的費用。提供者110亦可向使用者收取用於連接至虛擬伺服器的設定基線的費用,而不考慮使用等級,作為保證未來訪問的保持器。提供者110可具有不同能力的伺服器及電腦,且可向使用者出售系統同時收取維護費用。由提供者110出售虛擬伺服器資源的其他配置亦是可能的。 Additionally, system 102 communicates with virtual server provider 110. Provider 110 may, for example, be a service that operates multiple servers or general purpose computers (such as a server farm) that are available for rent or purchase. In some embodiments, provider 110 may charge users for processing time, processor power, storage, or connectivity (such as bandwidth). Provider 110 may also charge users a set baseline fee for connecting to a virtual server, regardless of usage level, as a retainer to guarantee future access. Provider 110 may have servers and computers of varying capabilities, and may sell systems to users while charging maintenance fees. Other configurations of virtual server resources sold by provider 110 are also possible.

在一些實施例中,客戶裝置112可經由網路106連接至由提供者110的虛擬伺服器代管的服務。舉例而言,公司可使用由提供者110操作的伺服器來代管電子商務網站。客戶裝置112接著可經由網路106連接至電子商務網站。以此方式,客戶可在不直接訪問公司所擁有的電腦而是與提供者110所操作的虛擬伺服器進行交互的情況下訪問公司的網站。此可向公司提供無需有機雇員操作伺服器的便利性,且藉由僅支付公司需要的計算能力的量來降低成本。替代地,客戶裝置112可為例如能夠共用由提供者110的虛擬伺服器所儲存的公共資料或計算能力而無需操作大型伺服器群的研究合作者。 In some embodiments, client devices 112 may connect via network 106 to services hosted by virtual servers of provider 110. For example, a company may use servers operated by provider 110 to host an e-commerce website. Client devices 112 may then connect to the e-commerce website via network 106. In this way, customers may access the company's website without directly accessing a computer owned by the company, but rather interacting with a virtual server operated by provider 110. This may provide the company with the convenience of not having organic employees to operate the servers, and reduce costs by paying only for the amount of computing power the company needs. Alternatively, client device 112 may be, for example, a research collaborator that is able to share common data or computing power stored by virtual servers of provider 110 without having to operate a large server farm.

圖2繪示虛擬伺服器管理過程200的步驟。系統102可進行虛擬伺服器管理過程200。用於進行虛擬伺服器管理過程200的指令可儲存在記憶體120上及由系統102的處理器116實施。虛擬伺服器管理過程200包含以下步驟。 FIG. 2 illustrates the steps of a virtual server management process 200. The system 102 may perform the virtual server management process 200. Instructions for performing the virtual server management process 200 may be stored in the memory 120 and executed by the processor 116 of the system 102. The virtual server management process 200 includes the following steps.

在步驟202處,系統102在資料儲存中維護與虛擬伺服器實例相關聯的組態檔案。系統102可在記憶體120、CMDB 104中,或提供者110的虛擬伺服器中的一者上維護組態檔案。系統102可儲存用於多個角色的多個組態檔案。檔案可以本文格式、 SQL資料庫或類似者儲存。舉例而言,組態檔案可包含用於安裝的儲存卷的列表,諸如IP位址、MAC位址,或可找到儲存卷的目錄。舉例而言,儲存卷亦可定位於虛擬伺服器上,且組態檔案可提供虛擬伺服器的識別符及用於儲存卷的路徑。與虛擬伺服器實例相關聯的組態檔案亦可包含用於加載的服務的列表,諸如程式、VPN資訊或通信協定。組態檔案亦可包含用於加載的環境變數的列表,諸如IP位址、角色名稱、使用者識別符或用於虛擬伺服器的唯一識別符以使得系統102能夠進一步分析虛擬伺服器效能。在一些實施例中,諸如當研究及開發組織進行電腦建模時,組態檔案亦可包含科學常數的值。若組織正在使用虛擬伺服器的儲存來儲存封存的電子郵件,則環境變數可包含使用者名稱及密碼的列表以使得使用者能夠訪問檔案庫。額外資訊及元資料亦可儲存在組態檔案中。 At step 202, the system 102 maintains a configuration file associated with the virtual server instance in a data store. The system 102 may maintain the configuration file in memory 120, in CMDB 104, or on one of the virtual servers of the provider 110. The system 102 may store multiple configuration files for multiple roles. The files may be stored in a text format, a SQL database, or the like. For example, the configuration file may include a list of storage volumes for installation, such as an IP address, a MAC address, or a directory where the storage volume can be found. For example, a storage volume may also be located on a virtual server, and a configuration file may provide an identifier for the virtual server and a path to the storage volume. A configuration file associated with a virtual server instance may also include a list of services to load, such as programs, VPN information, or communication protocols. A configuration file may also include a list of environment variables to load, such as an IP address, a role name, a user identifier, or a unique identifier for the virtual server to enable the system 102 to further analyze the virtual server performance. In some embodiments, such as when a research and development organization performs computer modeling, a configuration file may also include values for scientific constants. If the organization is using virtual server storage to store archived email, environment variables can contain a list of usernames and passwords that allow users to access the archive. Additional information and metadata can also be stored in configuration files.

系統102接著可基於對應於組態檔案的虛擬伺服器實例來實例化虛擬伺服器。在步驟204處,系統102在資料儲存中定位組態檔案。此可按需出現,例如當管理員發起實例化新的虛擬伺服器的請求時,或自動出現,如稍後將描述。另外,使用者可藉由請求新的虛擬伺服器資源來觸發待實例化的新的虛擬伺服器。舉例而言,使用者可使用用戶端裝置108創建用於虛擬伺服器的新角色。使用者可提供關於所需的虛擬伺服器資源的細節,諸如規定角色需要快取記憶體、儲存記憶體、處理時間、處理能力或網路容量,且進一步規定所需的每一資源的數量,以及是否需要資源。 The system 102 can then instantiate the virtual server based on the virtual server instance corresponding to the configuration file. At step 204, the system 102 locates the configuration file in the data store. This can occur on demand, such as when an administrator initiates a request to instantiate a new virtual server, or automatically, as will be described later. In addition, a user can trigger a new virtual server to be instantiated by requesting a new virtual server resource. For example, a user can use the client device 108 to create a new role for a virtual server. The user can provide details about the virtual server resources required, such as specifying whether the role requires cache memory, storage memory, processing time, processing power, or network capacity, and further specify the amount of each resource required and whether the resource is required.

在一些實施例中,組織可具有用於各種角色的模板資源需求,使得使用者可在不提供技術細節的情況下規定角色。此外, 此等模板可由系統102儲存為組態檔案。舉例而言,電子商務組織中的圖形設計者使用者可能希望創建新的產品站點。使用用戶端裝置108,使用者可向系統102傳達將創建新的網站。系統102可定位用於創建虛擬伺服器以代管新的網站的組態檔案。檔案可提供通信協定、資源需求、模板化圖形以及其他均一性的組織標準。使用者接著可開始設計待在虛擬伺服器代管的新的產品站點,其中系統102組態虛擬伺服器。此外,消除可增加成本及降低效能的組態中的錯誤,此是由於可使用由受過訓練的工程師創建的標準組態檔案。 In some embodiments, an organization may have template resource requirements for various roles, allowing users to specify roles without providing technical details. In addition, such templates may be stored by system 102 as configuration files. For example, a user who is a graphic designer in an e-commerce organization may wish to create a new product site. Using client device 108, the user may communicate to system 102 that a new website will be created. System 102 may locate a configuration file for creating a virtual server to host the new website. The file may provide organizational standards for communication protocols, resource requirements, templated graphics, and other uniformities. The user may then begin designing the new product site to be hosted on the virtual server, where system 102 configures the virtual server. Additionally, configuration errors that can increase costs and reduce performance are eliminated by using standard configuration files created by trained engineers.

在步驟206處,系統102基於組態檔案的內容來判定所需的虛擬伺服器資源。組態檔案可包含所需的虛擬伺服器資源的列表,且步驟206可包含複製資源的列表。替代地,系統102可基於組態檔案中的資訊來判定需要哪些資源。舉例而言,若組態檔案含有埠及IP位址,則系統102可判定角色需要來自虛擬伺服器的連接性資源。 At step 206, system 102 determines the required virtual server resources based on the contents of the configuration file. The configuration file may include a list of required virtual server resources, and step 206 may include a list of replicated resources. Alternatively, system 102 may determine which resources are required based on information in the configuration file. For example, if the configuration file contains a port and an IP address, system 102 may determine that the role requires connectivity resources from the virtual server.

在步驟208處,系統102基於組態檔案的內容來組態虛擬伺服器的至少一個資源。系統102可藉由將資料、變數以及軟體上載至虛擬伺服器上來組態資源。系統102亦可將通信位址及協定輸入至虛擬伺服器連接設定中。在一些實施例中,系統102可使用API來通過網路106來與虛擬伺服器通信以傳達虛擬伺服器所期望的設定。系統102亦可使用自動化網頁瀏覽軟體來使用提供者110的網站將資訊自動傳送至虛擬伺服器。若組態檔案指示需要多個伺服器,則系統102亦可組態單個或多個虛擬伺服器的多個資源。系統102亦可基於組態檔案來判定是否需要多個虛擬 伺服器。舉例而言,若組態檔案指示角色需要100太-位元組的儲存,則若虛擬伺服器儲存限於50太-位元組,則系統102可自兩個虛擬伺服器組態儲存。 At step 208, the system 102 configures at least one resource of the virtual server based on the contents of the configuration file. The system 102 can configure the resources by uploading data, variables, and software to the virtual server. The system 102 can also enter the communication address and protocol into the virtual server connection settings. In some embodiments, the system 102 can use an API to communicate with the virtual server through the network 106 to convey the desired settings of the virtual server. The system 102 can also use automated web browsing software to automatically send information to the virtual server using the website of the provider 110. If the configuration file indicates that multiple servers are required, the system 102 can also configure multiple resources for a single or multiple virtual servers. The system 102 can also determine whether multiple virtual servers are required based on the configuration file. For example, if the configuration file indicates that the role requires 100 terabytes of storage, the system 102 can configure storage from two virtual servers if the virtual server storage is limited to 50 terabytes.

在步驟210處,系統102加速虛擬伺服器。步驟210可包含與其他虛擬伺服器或硬體伺服器通信以提供新的虛擬伺服器的識別符及位址,以實現舊的伺服器與新的伺服器之間的通信,藉此確保角色的連續操作。此外,系統102可在組態虛擬伺服器資源之後延遲加速伺服器,例如,以進行新的虛擬伺服器的效能測試或以確保在加速虛擬伺服器之前組態全部虛擬伺服器。 At step 210, the system 102 accelerates the virtual server. Step 210 may include communicating with other virtual servers or hardware servers to provide an identifier and address of the new virtual server to enable communication between the old server and the new server, thereby ensuring continuous operation of the role. In addition, the system 102 may delay accelerating the server after configuring the virtual server resources, for example, to perform performance testing of the new virtual server or to ensure that all virtual servers are configured before accelerating the virtual server.

在步驟212處,系統102判定實例化虛擬伺服器是否已達到錯誤狀態。實例化虛擬伺服器自身可經由諸如電子郵件的通知或經由API報告錯誤狀態,諸如硬體故障或通信錯誤。替代地,系統102可經組態以週期性地測試虛擬伺服器效能,以便判定虛擬伺服器是否已達到錯誤狀態。此外,系統102可判定錯誤狀態的嚴重性且試圖修復虛擬伺服器。舉例而言,若錯誤狀態是由誤用的通信設定引起的,諸如由例如損壞的資料或新的所需的IP位址引起的不正確IP位址,則系統102可試圖重新組態虛擬伺服器以校正通信錯誤。若系統102判定實例化虛擬伺服器尚未達到錯誤狀態,或若系統102判定實例化虛擬伺服器已達到可修復錯誤狀態,則步驟212為否,且系統102進行至步驟214。 At step 212, the system 102 determines whether the instantiated virtual server has reached an error state. The instantiated virtual server itself may report an error state, such as a hardware failure or a communication error, via a notification such as an email or via an API. Alternatively, the system 102 may be configured to periodically test the virtual server performance to determine whether the virtual server has reached an error state. In addition, the system 102 may determine the severity of the error state and attempt to repair the virtual server. For example, if the error state is caused by an incorrect communication setting, such as an incorrect IP address caused by, for example, corrupted data or a new desired IP address, the system 102 may attempt to reconfigure the virtual server to correct the communication error. If the system 102 determines that the instantiated virtual server has not reached the error state, or if the system 102 determines that the instantiated virtual server has reached a recoverable error state, step 212 is no, and the system 102 proceeds to step 214.

在步驟214處,系統102判定與實例化虛擬伺服器相關聯的效率度量。舉例而言,效率度量可為每操作、儲存或連接性的成本或速度。在步驟216處,系統102判定效率度量是否低於臨限值。若效率度量不低於臨限值,則步驟216為否,且系統102返 回至步驟212以繼續監測錯誤狀態或低於臨限值的效率度量。在一些實施例中,系統102亦可在檢查錯誤狀態之前等待以限制狀態請求及處理。 At step 214, the system 102 determines an efficiency metric associated with the instantiated virtual server. For example, the efficiency metric may be cost or speed per operation, storage, or connectivity. At step 216, the system 102 determines whether the efficiency metric is below a threshold. If the efficiency metric is not below a threshold, step 216 is no, and the system 102 returns to step 212 to continue monitoring error states or efficiency metrics below a threshold. In some embodiments, the system 102 may also wait before checking for error states to limit state requests and processing.

若步驟212或216中的任一者為是,使得錯誤狀態被偵測到或效率度量低於臨限值,則系統102進行至步驟218且判定與實例化虛擬伺服器相關聯的組態檔案。在一些實施例中,當效率度量低於臨限值時,系統102亦可終止對虛擬伺服器的訪問。舉例而言,系統102可藉由將角色識別符與組態檔案中所含有的角色識別符相匹配來判定組態檔案。系統102亦可藉由將故障或低效的虛擬伺服器的資源或組態與所儲存的組態檔案相匹配來判定組態檔案。在一些實施例中,系統102可在無錯誤或低效的情況下跳過步驟218。舉例而言,使用者可判定需要將新的設定應用於多個虛擬伺服器且在多個虛擬伺服器當中進行標準化。使用者可在步驟212及步驟216處在沒有虛擬伺服器發生故障或變得低效的情況下強制系統102跳轉至步驟218且判定新組態檔案。 If either step 212 or 216 is yes, such that an error condition is detected or the efficiency metric is below a threshold, the system 102 proceeds to step 218 and determines the configuration file associated with the instantiated virtual server. In some embodiments, the system 102 may also terminate access to the virtual server when the efficiency metric is below a threshold. For example, the system 102 may determine the configuration file by matching the role identifier with the role identifier contained in the configuration file. The system 102 may also determine the configuration file by matching the resources or configuration of the failed or inefficient virtual server with the stored configuration file. In some embodiments, the system 102 may skip step 218 if there are no errors or inefficiencies. For example, a user may determine that a new configuration needs to be applied to multiple virtual servers and standardized across multiple virtual servers. The user may force the system 102 to jump to step 218 and determine a new configuration file if no virtual servers fail or become inefficient at step 212 and step 216.

一旦系統102已判定與實例化虛擬伺服器相關聯的組態檔案,則在步驟220處,系統102使用判定的組態檔案來實例化新的虛擬伺服器。系統102可實例化多個虛擬伺服器以替換單個故障虛擬伺服器的功能或以建立冗餘。儘管能力下降,但系統102可允許故障或低效伺服器繼續運作,直至實例化新的虛擬伺服器以替換丟失的功能。系統102可另外向使用者提供錯誤或低效的指示且在步驟220處實例化新的虛擬伺服器之前等待使用者批准。 Once the system 102 has determined the configuration profile associated with the instantiated virtual server, then at step 220, the system 102 instantiates a new virtual server using the determined configuration profile. The system 102 may instantiate multiple virtual servers to replace the functionality of a single failed virtual server or to create redundancy. The system 102 may allow a failed or inefficient server to continue to operate despite reduced capacity until a new virtual server is instantiated to replace the lost functionality. The system 102 may additionally provide an indication of the error or inefficiency to the user and await user approval before instantiating the new virtual server at step 220.

此外,在系統102在步驟220處實例化新的虛擬伺服器之後,系統102返回至步驟212,以在步驟212至步驟216處監測 新的虛擬伺服器中的錯誤狀態或低效。系統102可同時監測進行屬於組織的各種角色的多個虛擬伺服器。 In addition, after the system 102 instantiates the new virtual server at step 220, the system 102 returns to step 212 to monitor the error state or inefficiency in the new virtual server at steps 212 to 216. The system 102 can simultaneously monitor multiple virtual servers performing various roles belonging to the organization.

圖3繪示虛擬伺服器成本儲存過程300的步驟。系統102可進行虛擬伺服器成本儲存過程300。用於進行虛擬伺服器成本儲存過程300的指令可儲存在記憶體120上且由系統102的處理器116實施。虛擬伺服器成本儲存過程300包含以下步驟。 FIG3 illustrates the steps of a virtual server cost storage process 300. The system 102 may perform the virtual server cost storage process 300. Instructions for performing the virtual server cost storage process 300 may be stored on the memory 120 and implemented by the processor 116 of the system 102. The virtual server cost storage process 300 includes the following steps.

在步驟302處,系統102組態虛擬伺服器以使第一角色與虛擬伺服器的至少一個資源相關聯。使角色與資源相關聯可需要系統102(或虛擬伺服器)自CMDB 104擷取資料,諸如IP位址及埠。替代地,軟體、程式碼、初始資料或參數,或數位資產可自CMDB 104或另一儲存器拷貝且提供至虛擬伺服器。系統102可判定虛擬伺服器需要哪些資源。另一方面,虛擬伺服器可基於請求中所含有的角色來判定所需的資源。 At step 302, the system 102 configures the virtual server to associate a first role with at least one resource of the virtual server. Associating the role with the resource may require the system 102 (or virtual server) to retrieve data from the CMDB 104, such as an IP address and port. Alternatively, software, code, initial data or parameters, or digital assets may be copied from the CMDB 104 or another storage and provided to the virtual server. The system 102 may determine which resources are required by the virtual server. Alternatively, the virtual server may determine the required resources based on the role contained in the request.

在步驟304處,系統102修改資料庫以包含與虛擬伺服器相關聯的識別符及指定給虛擬伺服器的第一角色的識別符。資料庫可為例如CMDB 104、記憶體120,或儲存在虛擬伺服器上。舉例而言,資料庫可在SQL資料庫中記錄虛擬伺服器識別符及第一角色識別符提供者110可為代管資源的虛擬伺服器提供唯一識別符,諸如文數字程式碼、MAC位址、IP位址或地球物理(geophysical)位置(包含例如伺服器倉庫位置及倉庫內的伺服器堆疊位置)。虛擬伺服器識別符亦可規定進行角色的虛擬伺服器的資源。 At step 304, the system 102 modifies a database to include an identifier associated with the virtual server and an identifier of a first role assigned to the virtual server. The database may be, for example, the CMDB 104, the memory 120, or stored on the virtual server. For example, the database may record the virtual server identifier and the first role identifier in a SQL database. The provider 110 may provide a unique identifier for the virtual server hosting the resource, such as an alphanumeric code, a MAC address, an IP address, or a geophysical location (including, for example, a server warehouse location and a server stack location within a warehouse). The virtual server identifier may also specify the resources of the virtual server that performs the role.

在306步驟處,系統102接收與第一角色的識別符相關聯的資源使用的多個指示。指示可為功率消耗、處理持續時間、處 理器操作、頻寬使用、儲存以及類似者。此外,指示可包含每單位成本,諸如每小時美分、每執行美分或每浮點操作美分。指示可包括每時間每單位成本,諸如每月每太-位元組美分。替代地,可自第一資源使用的指示分開地獲得每單位成本。在一些實施例中,指示可更包含識別特定虛擬伺服器的資訊或消耗虛擬伺服器資源的帳戶。指示可由藉由提供者110操作的應用程式介面(Application Programming Interface;API)提供或直接由虛擬伺服器提供。 At step 306, the system 102 receives a plurality of indications of resource usage associated with the identifier of the first role. The indications may be power consumption, processing duration, processor operations, bandwidth usage, storage, and the like. In addition, the indications may include a per-unit cost, such as cents per hour, cents per execution, or cents per floating-point operation. The indications may include a per-unit cost per time, such as cents per terabyte per month. Alternatively, the per-unit cost may be obtained separately from the indication of the first resource usage. In some embodiments, the indications may further include information identifying a particular virtual server or an account consuming virtual server resources. The indications may be provided by an application programming interface (API) operated by the provider 110 or provided directly by the virtual server.

在一些實施例中,接收到的指示並不包含虛擬伺服器識別符。系統102接著可藉由將資源使用與來自提供者110的其他資訊相匹配來判定虛擬伺服器識別符。舉例而言,接收到的指示僅可含有使用的列表,諸如一個月23太-位元組、29太-位元組、51太-位元組以及81太-位元組的儲存。系統102可在額外步驟中訪問提供者網站,以判定(例如)哪個虛擬伺服器在一個月期間儲存23太-位元組,由此獲得虛擬伺服器識別符以使得能夠映射至第一角色。 In some embodiments, the received indication does not include a virtual server identifier. System 102 may then determine the virtual server identifier by matching the resource usage with other information from provider 110. For example, the received indication may contain only a list of usage, such as 23 terabytes, 29 terabytes, 51 terabytes, and 81 terabytes of storage per month. System 102 may access the provider website in an additional step to determine, for example, which virtual server stored 23 terabytes during a month, thereby obtaining the virtual server identifier to enable mapping to the first role.

在將資源使用與資料庫或其他資源(諸如提供者資訊)進行比較之後,系統102可判定第二資源不與任何角色相關聯且終止訪問。舉例而言,系統102可接收花費0.20美元的五個小時的處理時間的指示且沒有虛擬伺服器識別符。在分析提供者資訊之後,系統102可判定擔負0.20美元費用的虛擬伺服器並未附著於資料庫中的任何角色且自動地終止對伺服器的訪問。如進一步示出,系統102可接收具有識別符A623g.6的虛擬伺服器的2太-位元組的儲存的指示。系統102可在資料庫搜尋具有識別符A623g.6的伺服器,但沒有找到指示例如使用者已停止角色且不再需要資 源的相關聯的角色。系統102接著可自動終止。在一些實施例中,系統102可自動將不同角色再指定給不具有相關聯的角色的虛擬伺服器資源,或旗標未關聯的資源以供使用者再指定。 After comparing the resource usage to the database or other resources (such as provider information), the system 102 may determine that the second resource is not associated with any role and terminate access. For example, the system 102 may receive an indication of five hours of processing time costing $0.20 and no virtual server identifier. After analyzing the provider information, the system 102 may determine that the virtual server that incurred the $0.20 charge is not attached to any role in the database and automatically terminate access to the server. As further shown, the system 102 may receive an indication of 2 terabytes of storage for a virtual server with an identifier of A623g.6. The system 102 may search the database for a server with identifier A623g.6 but find no associated role indicating, for example, that the user has stopped the role and no longer needs the resource. The system 102 may then automatically terminate. In some embodiments, the system 102 may automatically reassign a different role to a virtual server resource that does not have an associated role, or flag the unassociated resource for user reassignment.

在步驟308處,系統102計算接收到的指示的成本。此可包含例如成本比率乘以資源消耗。系統102亦可包含不根據使用而按比例調整的基線速率,諸如虛擬伺服器的每月訪問費用。此外,系統102可合併與對應於單個角色的多個資源的多個指示相關聯的成本。舉例而言,角色可需要自四個虛擬伺服器的處理及儲存。角色的總成本可計算為個別虛擬伺服器成本的總和。此外,單個虛擬伺服器可為多個角色提供資源。舉例而言,單個虛擬伺服器可為角色A及角色B提供儲存,且為角色A提供處理。系統102亦可計算虛擬伺服器的總成本。 At step 308, the system 102 calculates the cost of the received indication. This may include, for example, a cost ratio multiplied by resource consumption. The system 102 may also include a baseline rate that is not scaled based on usage, such as a monthly access fee for a virtual server. In addition, the system 102 may combine costs associated with multiple indications corresponding to multiple resources for a single role. For example, a role may require processing and storage from four virtual servers. The total cost for the role may be calculated as the sum of the costs of the individual virtual servers. In addition, a single virtual server may provide resources for multiple roles. For example, a single virtual server may provide storage for role A and role B, and provide processing for role A. The system 102 may also calculate the total cost of the virtual server.

在步驟310處,系統102在資料儲存中儲存用於第一角色的計算出的成本。系統102可分析資料儲存中所保存的虛擬伺服器的歷史成本。資料儲存可為CMDB 104或虛擬伺服器。此外,系統102可在過程200的步驟216處將成本效率判定為(例如)每處理時間的成本及基於歷史成本效率的臨限值。舉例而言,虛擬伺服器可具有每月10美元的歷史成本,以用於處理神經網路訓練角色的資源。若虛擬伺服器之後每個月內花費20美元來進行同一角色,則伺服器的成本效率可降低,從而造成步驟216為是且導致系統102實例化新的虛擬伺服器。臨限值可基於與歷史絕對成本或成本效率的偏差。 At step 310, the system 102 stores the calculated cost for the first role in a data store. The system 102 may analyze the historical cost of the virtual server saved in the data store. The data store may be the CMDB 104 or the virtual server. In addition, the system 102 may determine the cost efficiency as, for example, cost per processing time and a threshold value based on the historical cost efficiency at step 216 of the process 200. For example, the virtual server may have a historical cost of $10 per month for resources to process the neural network training role. If the virtual server then costs $20 per month to perform the same role, the cost efficiency of the server may decrease, causing step 216 to be yes and causing system 102 to instantiate a new virtual server. The threshold may be based on a deviation from historical absolute costs or cost efficiencies.

圖4繪示效率度量計算過程400的步驟。在一些實施例中,系統102可結合過程200的步驟214進行過程400以判定效 率度量。在其他實施例中,系統102可連續地或在任何時間(包含按需)進行過程400。過程400包含以下步驟。 FIG. 4 illustrates the steps of efficiency metric calculation process 400. In some embodiments, system 102 may perform process 400 in conjunction with step 214 of process 200 to determine the efficiency metric. In other embodiments, system 102 may perform process 400 continuously or at any time (including on demand). Process 400 includes the following steps.

在步驟402處,系統102過濾接收到的多個角色的資源使用的指示以判定與第一角色相關聯的資源使用。舉例而言,系統102可藉由虛擬伺服器識別符、資源或相關聯角色來過濾接收到的指示。在步驟404處,系統102檢查過濾的指示以判定與第一角色相關聯的資源使用。系統102可聚合一段時間內的使用、虛擬伺服器或提供者,例如以判定與第一角色相關聯的總資源使用。在一些實施例中,指示可併入至各種資料結構中以便於過濾及聚合。舉例而言,可在過程400之前將資料轉換成SQL資料庫。 At step 402, the system 102 filters the received indications of resource usage for multiple roles to determine resource usage associated with the first role. For example, the system 102 may filter the received indications by virtual server identifier, resource, or associated role. At step 404, the system 102 examines the filtered indications to determine resource usage associated with the first role. The system 102 may aggregate usage over a period of time, virtual servers, or providers, for example, to determine total resource usage associated with the first role. In some embodiments, the indications may be incorporated into various data structures to facilitate filtering and aggregation. For example, the data may be converted to a SQL database prior to process 400.

在步驟406處,系統102過濾接收到的資源使用的指示以判定具有最低資源使用的角色,且在步驟408處,過濾接收到的資源使用的指示以判定具有最高資源使用的角色。步驟406及步驟408可更包含用以判定角色中的每一者在一段時間內的總使用的聚合步驟,以判定總體最低資源使用角色及最高資源使用角色。 At step 406, system 102 filters the received indications of resource usage to determine the role with the lowest resource usage, and at step 408, filters the received indications of resource usage to determine the role with the highest resource usage. Steps 406 and 408 may further include an aggregation step for determining the total usage of each of the roles over a period of time to determine the overall lowest resource usage role and the highest resource usage role.

在步驟410處,系統102判定包括與第一角色相關聯的資源使用減去與具有最低資源使用的角色相關聯的資源使用的第一因數。換言之,系統102判定第一角色的資源使用與所有角色當中的最低資源使用之間的差。此外,在步驟412處,系統102判定包括與具有最高資源使用的角色相關聯的資源使用減去與具有最低資源使用的角色相關聯的資源使用的第二因數。以此方式,系統102判定所分析的角色的資源使用的範圍。 At step 410, the system 102 determines a first factor including resource usage associated with the first role minus resource usage associated with the role with the lowest resource usage. In other words, the system 102 determines the difference between the resource usage of the first role and the lowest resource usage among all roles. Additionally, at step 412, the system 102 determines a second factor including resource usage associated with the role with the highest resource usage minus resource usage associated with the role with the lowest resource usage. In this manner, the system 102 determines the range of resource usage of the roles being analyzed.

在步驟414處,系統102基於第一因數相對於第二因數 來計算效率度量。舉例而言,最高資源使用角色可具有效率度量為1,且最低資源使用角色可具有效率度量為0。剩餘角色接著可具有自0至1的範圍內的效率度量。然而,出於說明而提供此實例,且效率度量可具有任何範圍,諸如0至100。 At step 414, the system 102 calculates an efficiency metric based on the first factor relative to the second factor. For example, the highest resource usage role may have an efficiency metric of 1, and the lowest resource usage role may have an efficiency metric of 0. The remaining roles may then have efficiency metrics ranging from 0 to 1. However, this example is provided for illustration, and the efficiency metric may have any range, such as 0 to 100.

在一些實施例中,系統102可使用步驟410至步驟414的變化以進一步分析或歸一化資源使用的指示作為計算效率度量的部分。另外,不同變化可用於不同資源。舉例而言,系統102可判定反映每週平均CPU使用的處理器效率度量。系統102可基於與第一角色相關聯的處理器使用的自然對數減去與具有最低處理器使用的角色相關聯的處理器使用的自然對數來判定第一因數。系統102亦可基於與具有最高資源使用的角色相關聯的處理器使用的自然對數減去與具有最低處理器使用的角色相關聯的處理器使用的自然對數來判定第二因數。系統102可基於第一因數相對於第二因數來計算角色的處理器效率。 In some embodiments, system 102 may use variations of steps 410 to 414 to further analyze or normalize indications of resource usage as part of computing an efficiency metric. Additionally, different variations may be used for different resources. For example, system 102 may determine a processor efficiency metric that reflects average CPU usage per week. System 102 may determine a first factor based on the natural logarithm of processor usage associated with a first role minus the natural logarithm of processor usage associated with a role with the lowest processor usage. System 102 may also determine a second factor based on the natural logarithm of processor usage associated with a role with the highest resource usage minus the natural logarithm of processor usage associated with a role with the lowest processor usage. System 102 may calculate the processor efficiency of the role based on the first factor relative to the second factor.

系統102亦可判定反映一週內每單位貨幣處理或傳送的位元組的數目的網路比率的網路效率度量。系統102可基於與第一角色相關聯的網路比率的自然對數減去與具有最低處理器使用的角色相關聯的網路比率的自然對數來判定第一因數。系統102亦可基於與具有最高資源使用的角色相關聯的處理器使用的自然對數減去與具有最低處理器使用的角色相關聯的處理器使用的自然對數來判定第二因數。系統102可基於第一因數相對於第二因數來計算處理器效率度量。系統102亦可基於例如每週平均記憶體使用來以類似方式計算記憶體效率度量。 The system 102 may also determine a network efficiency metric that reflects a network ratio of the number of bytes processed or transferred per unit of currency in a week. The system 102 may determine a first factor based on the natural logarithm of the network ratio associated with the first role minus the natural logarithm of the network ratio associated with the role with the lowest processor usage. The system 102 may also determine a second factor based on the natural logarithm of the processor usage associated with the role with the highest resource usage minus the natural logarithm of the processor usage associated with the role with the lowest processor usage. The system 102 may calculate the processor efficiency metric based on the first factor relative to the second factor. The system 102 may also calculate a memory efficiency metric in a similar manner based on, for example, weekly average memory usage.

在使用過程400計算效率度量之後,系統102可判定過 程200的步驟216處的效率度量是否低於臨限值。舉例而言,臨限值可基於組織的標準或歷史效率度量。 After calculating the efficiency metric using process 400, system 102 can determine whether the efficiency metric at step 216 of process 200 is below a threshold value. For example, the threshold value can be based on a standard or historical efficiency metric for the organization.

作為本揭露的例示性實施例,用於資源使用追蹤的電腦實施系統包含儲存指令的記憶體及經組態以執行指令的至少一個處理器。指令使得系統在資料儲存中維護與虛擬伺服器實例相關聯的組態檔案,所述組態檔案包括用於加載的服務的列表。系統進一步判定與實例化虛擬伺服器相關聯的效率度量且當效率度量低於臨限值時,終止對虛擬伺服器的訪問。系統亦藉由以下操作基於虛擬伺服器實例來實例化新的虛擬伺服器:在資料儲存定位組態檔案;基於組態檔案的內容來判定所需的虛擬伺服器資源;基於組態檔案的內容來組態虛擬伺服器的至少一個資源,以及加速虛擬伺服器。 As an exemplary embodiment of the present disclosure, a computer-implemented system for resource usage tracking includes a memory storing instructions and at least one processor configured to execute the instructions. The instructions cause the system to maintain a configuration file associated with a virtual server instance in a data storage, the configuration file including a list of services to be loaded. The system further determines an efficiency metric associated with the instantiated virtual server and terminates access to the virtual server when the efficiency metric is below a threshold value. The system also instantiates a new virtual server based on the virtual server instance by: locating a configuration file in a data store; determining required virtual server resources based on the contents of the configuration file; configuring at least one resource of the virtual server based on the contents of the configuration file, and accelerating the virtual server.

儘管已參考本揭露的特定實施例來繪示及描述本揭露,但應理解,可在不修改的情況下在其他環境中實踐本揭露。已出於說明的目的呈現前述描述。前述描述並非詳盡的,且不限於所揭露的精確形式或實施例。修改及調適對所屬技術領域中具有通常知識者而言將自本說明書的考量及所揭露實施例的實踐顯而易見。另外,儘管將所揭露的實施例的態樣描述為儲存於記憶體中,但所屬技術領域中具有通常知識者應瞭解,此等態樣亦可儲存在其他類型的電腦可讀媒體上,諸如輔助儲存裝置,例如硬碟或CD ROM,或其他形式的RAM或ROM、USB媒體、DVD、藍光,或其他光學驅動機媒體。 Although the disclosure has been shown and described with reference to specific embodiments of the disclosure, it should be understood that the disclosure may be practiced in other environments without modification. The foregoing description has been presented for illustrative purposes. The foregoing description is not exhaustive and is not limited to the precise forms or embodiments disclosed. Modifications and adaptations will be apparent to those having ordinary skill in the art from consideration of this specification and practice of the disclosed embodiments. In addition, although the disclosed embodiments are described as being stored in memory, a person skilled in the art will appreciate that such embodiments may also be stored on other types of computer-readable media, such as secondary storage devices, such as hard disks or CD ROMs, or other forms of RAM or ROM, USB media, DVDs, Blu-ray, or other optical drive media.

基於書面描述及所揭露方法的電腦程式在有經驗的開發者的技能範圍內。各種程式或程式模組可使用所屬技術領域中具 有通常知識者已知的技術中的任一者來創建或可結合現有軟體來設計。舉例而言,程式區段或程式模組可以或藉助於.Net框架(.Net Framework)、.Net緊密框架(.Net Compact Framework)(及相關語言,諸如視覺培基(Visual Basic)、C等)、爪哇(Java)、C++、目標-C(Objective-C)、HTML、HTML/AJAX組合、XML或包含爪哇小程式的HTML來設計。 Computer programs based on the written description and disclosed methods are within the skill of an experienced developer. Various programs or program modules may be created using any of the techniques known to those of ordinary skill in the art or may be designed in conjunction with existing software. For example, program sections or program modules may be designed with or with the aid of .Net Framework, .Net Compact Framework (and related languages, such as Visual Basic, C, etc.), Java, C++, Objective-C, HTML, HTML/AJAX combinations, XML, or HTML containing Java applets.

此外,儘管本文中已描述說明性實施例,但所屬技術領域中具有通常知識者基於本揭露將瞭解具有等效元件、修改、省略、組合(例如,各種實施例中的態樣的組合)、調適及/或更改的任何及所有實施例的範疇。申請專利範圍中的限制應基於申請專利範圍中所採用的語言來廣泛地解譯,且不限於本說明書中所描述或在本申請案的審查期間的實例。實例應視為非排他性的。此外,所揭露方法的步驟可以包含藉由對步驟重新排序及/或插入或刪除步驟的任何方式修改。因此,希望僅將本說明書及實例被視為說明性的,其中藉由以下申請專利範圍及其等效物的完整範疇指示真實範疇及精神。 Furthermore, although illustrative embodiments have been described herein, a person of ordinary skill in the art will understand the scope of any and all embodiments with equivalent elements, modifications, omissions, combinations (e.g., combinations of aspects in various embodiments), adaptations and/or changes based on this disclosure. Limitations in the claims should be interpreted broadly based on the language employed in the claims and are not limited to the examples described in this specification or during the prosecution of this application. Examples should be considered non-exclusive. Furthermore, the steps of the disclosed methods may include modifications in any manner by reordering the steps and/or inserting or deleting steps. Therefore, it is intended that this specification and examples be considered illustrative only, with the true scope and spirit indicated by the full scope of the following claims and their equivalents.

200:過程 200: Process

202、204、206、208、210、212、214、216、218、220:步驟 202, 204, 206, 208, 210, 212, 214, 216, 218, 220: Steps

Claims (10)

一種用於虛擬伺服器管理的電腦實施方法,所述電腦實施方法包括:維護與虛擬伺服器實例相關聯的組態檔案;接收與所述虛擬伺服器實例相關聯的角色;基於所述組態檔案與所述角色來判定所需的虛擬伺服器組態;基於所述虛擬伺服器組態來加速至少一個虛擬伺服器;判定所述至少一個虛擬伺服器是否已達到錯誤狀態;基於判定所述至少一個虛擬伺服器已達到錯誤狀態,則判定所述至少一個虛擬伺服器是否為可修復的;基於判定所述至少一個虛擬伺服器是不可修復的,則終止對所述至少一個虛擬伺服器的訪問;以及基於所述虛擬伺服器組態來加速至少一個第二虛擬伺服器。 A computer-implemented method for virtual server management, the computer-implemented method comprising: maintaining a configuration file associated with a virtual server instance; receiving a role associated with the virtual server instance; determining a required virtual server configuration based on the configuration file and the role; accelerating at least one virtual server based on the virtual server configuration; determining the at least one virtual server whether the at least one virtual server has reached an error state; based on determining that the at least one virtual server has reached an error state, determining whether the at least one virtual server is repairable; based on determining that the at least one virtual server is unrepairable, terminating access to the at least one virtual server; and accelerating at least one second virtual server based on the virtual server configuration. 如請求項1所述的電腦實施方法,更包括:基於判定所述至少一個虛擬伺服器是不可修復的,判定與所述至少一個虛擬伺服器相關聯的組態檔案;以及使用經判定的組態檔案來加速新的虛擬伺服器。 The computer-implemented method of claim 1 further includes: determining a configuration file associated with the at least one virtual server based on determining that the at least one virtual server is unrepairable; and using the determined configuration file to accelerate the new virtual server. 如請求項1所述的電腦實施方法,更包括:判定與所述至少一個虛擬伺服器相關聯的效率度量;當所述效率度量低於臨限值時,終止對所述至少一個虛擬伺服器的訪問;判定與所述至少一個虛擬伺服器相關聯的組態檔案;以及 使用經判定的組態檔案來加速新的虛擬伺服器。 The computer-implemented method of claim 1 further includes: determining an efficiency metric associated with the at least one virtual server; terminating access to the at least one virtual server when the efficiency metric is below a threshold value; determining a configuration file associated with the at least one virtual server; and using the determined configuration file to accelerate the new virtual server. 如請求項1所述的電腦實施方法,其中所述虛擬伺服器組態包括快取記憶體、儲存記憶體、處理時間、處理能力及網路容量中的一或多者。 A computer-implemented method as described in claim 1, wherein the virtual server configuration includes one or more of cache memory, storage memory, processing time, processing power, and network capacity. 如請求項1所述的電腦實施方法,其中與所述虛擬伺服器實例相關聯的所述組態檔案包含用於安裝的儲存卷的列表。 A computer-implemented method as described in claim 1, wherein the configuration file associated with the virtual server instance includes a list of storage volumes for installation. 如請求項1所述的電腦實施方法,其中與所述虛擬伺服器實例相關聯的所述組態檔案包含用於加載的服務的列表。 A computer-implemented method as described in claim 1, wherein the configuration file associated with the virtual server instance includes a list of services for loading. 如請求項1所述的電腦實施方法,其中與所述虛擬伺服器實例相關聯的所述組態檔案包含用於儲存與網路資源的虛擬伺服器需求的列表。 A computer-implemented method as described in claim 1, wherein the configuration file associated with the virtual server instance includes a list of virtual server requirements for storage and network resources. 如請求項1所述的電腦實施方法,更包括:組態所述至少一個虛擬伺服器以使所述角色與所述至少一個虛擬伺服器的至少一個資源相關聯;修改資料庫以包含與所述虛擬伺服器相關聯的識別符以及包含所述角色的識別符;接收與所述角色的所述識別符相關聯的資源使用成本的多個指示;計算接收到的多個指示的總成本;以及在資料儲存中儲存用於所述角色的計算出的總成本。 The computer-implemented method of claim 1 further comprises: configuring the at least one virtual server to associate the role with at least one resource of the at least one virtual server; modifying a database to include an identifier associated with the virtual server and an identifier of the role; receiving multiple indications of resource usage costs associated with the identifier of the role; calculating a total cost of the received multiple indications; and storing the calculated total cost for the role in a data store. 如請求項1所述的電腦實施方法,其中與所述至少一個虛擬伺服器相關聯的所述識別符為IP位址。 A computer-implemented method as described in claim 1, wherein the identifier associated with the at least one virtual server is an IP address. 一種用於虛擬伺服器管理的電腦實施系統,所述電 腦實施系統包括:記憶體,儲存指令;以及至少一個處理器,經組態以執行所述指令以進行請求項1-9中任一項所述的電腦實施方法。 A computer-implemented system for virtual server management, the computer-implemented system comprising: a memory storing instructions; and at least one processor configured to execute the instructions to perform the computer-implemented method described in any one of claim items 1-9.
TW111114322A 2020-01-30 2020-12-25 Computer-implemented system and method for virtual server management TWI845918B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/777,591 2020-01-30
US16/777,591 US11016799B1 (en) 2020-01-30 2020-01-30 Systems and methods for centralization of server initialization information

Publications (2)

Publication Number Publication Date
TW202232916A TW202232916A (en) 2022-08-16
TWI845918B true TWI845918B (en) 2024-06-21

Family

ID=75981981

Family Applications (2)

Application Number Title Priority Date Filing Date
TW109146241A TWI764472B (en) 2020-01-30 2020-12-25 Computer-implemented system and method for virtual server management
TW111114322A TWI845918B (en) 2020-01-30 2020-12-25 Computer-implemented system and method for virtual server management

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW109146241A TWI764472B (en) 2020-01-30 2020-12-25 Computer-implemented system and method for virtual server management

Country Status (5)

Country Link
US (2) US11016799B1 (en)
KR (2) KR102344992B1 (en)
SG (1) SG11202104537RA (en)
TW (2) TWI764472B (en)
WO (1) WO2021152375A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202005330SA (en) 2017-12-08 2020-07-29 Net Thunder Llc Automatically deployed information technology (it) system and method
US11665106B2 (en) * 2021-09-07 2023-05-30 Hewlett Packard Enterprise Development Lp Network-aware resource allocation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090241030A1 (en) * 2008-03-18 2009-09-24 Thorsten Von Eicken Systems and methods for efficiently managing and configuring virtual servers
US20150006730A1 (en) * 2013-06-27 2015-01-01 Sap Ag Enabling multi-tenant virtual servers in a cloud system
US20170339250A1 (en) * 2016-05-23 2017-11-23 Citrix Systems, Inc. Virtual Browser Integration

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311163B2 (en) * 2010-01-08 2016-04-12 Nec Corporation Configuration data management system, and configuration data management method
US8635607B2 (en) * 2011-08-30 2014-01-21 Microsoft Corporation Cloud-based build service
JP5786037B2 (en) * 2011-12-08 2015-09-30 株式会社日立製作所 Virtual computer control method and virtual computer system
US8549570B2 (en) * 2012-02-23 2013-10-01 Ericsson Television Inc. Methods and apparatus for managing network resources used by multimedia streams in a virtual pipe
JP6007532B2 (en) * 2012-03-21 2016-10-12 日本電気株式会社 Virtualization system, virtualization server, migration method, migration program
US20130290542A1 (en) * 2012-04-30 2013-10-31 Racemi, Inc. Server Image Migrations Into Public and Private Cloud Infrastructures
US9571507B2 (en) * 2012-10-21 2017-02-14 Mcafee, Inc. Providing a virtual security appliance architecture to a virtual cloud infrastructure
CN103701920A (en) 2013-12-31 2014-04-02 曙光云计算技术有限公司 Method for configuring virtual application server under cloud environment
CN103957237A (en) 2014-04-03 2014-07-30 华南理工大学 Architecture of elastic cloud
US9917811B2 (en) * 2015-10-09 2018-03-13 International Business Machines Corporation Security threat identification, isolation, and repairing in a network
KR20160070726A (en) * 2016-04-06 2016-06-20 (주)한위드정보기술 System for providing contents in virtualization service
US10534629B1 (en) 2017-10-31 2020-01-14 EMC IP Holding Company LLC Virtual data management services
SG11202005330SA (en) * 2017-12-08 2020-07-29 Net Thunder Llc Automatically deployed information technology (it) system and method
US10880312B1 (en) * 2018-11-21 2020-12-29 Amazon Technologies, Inc. Authentication and authorization with remotely managed user directories

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090241030A1 (en) * 2008-03-18 2009-09-24 Thorsten Von Eicken Systems and methods for efficiently managing and configuring virtual servers
US20150006730A1 (en) * 2013-06-27 2015-01-01 Sap Ag Enabling multi-tenant virtual servers in a cloud system
US20170339250A1 (en) * 2016-05-23 2017-11-23 Citrix Systems, Inc. Virtual Browser Integration

Also Published As

Publication number Publication date
TW202232916A (en) 2022-08-16
KR20220000880A (en) 2022-01-04
KR20210097592A (en) 2021-08-09
US20210240515A1 (en) 2021-08-05
US11016799B1 (en) 2021-05-25
SG11202104537RA (en) 2021-09-29
US11573820B2 (en) 2023-02-07
TW202131660A (en) 2021-08-16
KR102344992B1 (en) 2021-12-30
TWI764472B (en) 2022-05-11
WO2021152375A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
US10353913B2 (en) Automating extract, transform, and load job testing
EP3449375B1 (en) Monitoring of interactions between services
US8904377B2 (en) Reconfiguration of computer system to allow application installation
US10360053B1 (en) Systems and methods for completing sets of computing tasks
TWI845918B (en) Computer-implemented system and method for virtual server management
US10656934B2 (en) Efficient software testing
US20210049063A1 (en) Analysis facilitator
US20230393825A1 (en) Automated software deployment techniques
US11347533B2 (en) Enhanced virtual machine image management system
US11734238B2 (en) Correcting data errors for data processing fault recovery
US11789967B2 (en) Recovering from data processing errors by data error detection and correction
TWI760022B (en) Computer-implemented system and method for diagnosis of live virtual server performance data
US10606577B1 (en) System and method for assuring customers during software deployment
US11188249B2 (en) Storage alteration monitoring
US20150106322A1 (en) Service modeling and execution
EP4220473B1 (en) Method and system for validation of calculation code against calculation specification
US11960746B2 (en) Storage context aware tiering policy advisor
KR102346364B1 (en) Systems and methods for virtual server resource usage metric evaluation and performance tracking