`
`a2) United States Patent
`US 7,836,452 B2
`(0) Patent No.:
`Nov. 16, 2010
`(45) Date of Patent:
`Taylor
`
`(54) SYSTEM, METHOD AND PROGRAM FOR
`ESTIMATING A REQUISITE AMOUNT OF
`SERVER RESOURCES
`
`(75)
`
`ry’
`Inventor: Rick A. Taylor, Placentia, CA (US
`
`(73) Assignee:
`
`International Business Machines
`Corporation, Armonk, NY (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1463 days.
`
`(21) Appl. No.: 11/149,865
`
`(22)
`
`Filed:
`
`Jun. 10, 2005
`
`(65)
`
`Prior Publication Data
`
`US 2006/0282825 Al
`
`Dec. 14, 2006
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 9/46
`(2006.01)
`GO6F 15/173
`(52) U.S.Ccee 718/104; 718/105; 709/226;
`709/2; 709/44
`(58) Field of Classification Search «0.0.0.0... None
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`6,757,689 B2
`6/2004 Battas et al. oe 707/101
`
`7,020,697 B1*
`......0.... 709/223
`3/2006 Goodman etal.
`2003/0217153 Al
`11/2003 Raoetal. we. 709/226
`
`2004/0028070 Al
`...........
`. 370/431
`2/2004 Barr et al.
`
`2004/0034577 Al*
`............ 705/28
`2/2004 Van Hoose et al.
`2004/0049579 Al
`3/2004 Imsetal. oe 709/225
`2004/0111725 Al*
`.......... 718/105
`6/2004 Srinivasan et al.
`
`2004/0267897 AL* 12/2004 Hilletal. oe. 709/217
`
`1/2006 Armington ............00.. 707/204
`2006/0010176 Al*
`
`5/2006 Mangan etal. ......
`. 705/8
`2006/0095309 Al*
`8/2006 Stefaniak et al.
`....
`... 710/15
`2006/0179171 Al*
`
`2006/0242282 AL* 10/2006 Mullarkey .......... 709/223
`2006/0282825 AL* 12/2006 Taylor oe TT/127
`
`2007/0180083 Al*
`
`8/2007 Adametal. ......... 709/223
`
`(Continued)
`OTHER PUBLICATIONS
`
`Urgaonkar et al., “Resource Overbooking and Application Profiling
`in Shared Hosting Platforms”, 2002, ACM,pp. 1-15.*
`
`(Continued)
`
`Primary Examiner—Tuan Q Dam
`Assistant Examiner—Ben C Wang
`(74) Attorney, Agent, or Firm—Arthur J. Samodovitz
`
`(57)
`
`ABSTRACT
`
`System, method and program product for determining if a
`plurality of applications executed on a plurality of servers can
`be executed on a single server. First program instructions
`determine if the single server has sufficient processor power
`to execute the plurality of applications. Second program
`instructions determine if the plurality of applications have a
`same type of operating system on the plurality of servers.
`Third program instructions determineifthe plurality of appli-
`cations have a same type of middleware onthe plurality of
`servers. Thefirst program instructions determine peak pro-
`cessor utilizations and timesofthe peak processorutilizations
`for the plurality of applications, respectively, to determine
`whether the single server has sufficient processor power to
`execute the plurality of applications. Other program instruc-
`tions determine the single server to be a standard vendor
`server which has a smallest processor adequate to support
`processing requirements of the plurality of applications and
`has a predetermined, minimum processing powerin reserve.
`Other program instructions determineifthe plurality of appli-
`cations have a similar function or are identical. Other program
`instructions determine if the plurality of applications have a
`same type of application environment on the plurality of
`servers.
`
`16 Claims, 7 Drawing Sheets
`
`
`
`SERVER RESOURCE
`ESTIMATION PROGRAM
`
`31
`
`VMware, Inc.
`
`Exhibit 1015
`
`Page 1
`
`VMware, Inc. Exhibit 1015 Page 1
`
`
`
`US 7,836,452 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`2008/0282267 Al* 11/2008 Adametal.
`
`.....0.0.. 719/320
`
`OTHER PUBLICATIONS
`
`Stewart et al., “Profile-Driven Component Placement for Cluster-
`Based Online Services”, Oct. 2004, IEEE, vol. 5, No. 10, pp. 1-13.*
`INSPEC: Outsourcing Service Rendering System—AN 7856555;
`Arima, H. 2003.
`
`Globally Distributed Content Delivery—AN 7406544; Dilley, J. et
`al; 2002.
`ACM Digital Library: Managing Energy & Server Resources in
`Hostinng Centers—Chase, JS. et al 2001.
`Sizing DB2 UDB
`Servers
`for
`Workloads—Wasserman,TJ et al 2004.
`A Cost-Oriented Approachfor Infrastructural Design—Ardagna, D.
`et al 2004.
`
`Intelligence
`
`Business
`
`* cited by examiner
`
`VMware, Inc.
`
`Exhibit 1015
`
`Page 2
`
`VMware, Inc. Exhibit 1015 Page 2
`
`
`
`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 1 of 7
`
`US 7,836,452 B2
`
`
`
`SERVER RESOURCE
`ESTIMATION PROGRAM
`
`3
`
`1
`
`DATABASE
`
`FIG. 1
`
`17
`
`CUSTOMER
`WORKSTATION
`
`20
`
`18
`
`CUSTOMER
`WORKSTATION
`
`19
`
`CUSTOMER
`WORKSTATION
`
`SERVER
`
`26
`
`CUSTOMER
`APPLICATION
`
` VENDOR
`
`VENDOR
`SERVER
`
`27
`
`CUSTOMER
`APPLICATION
`
`VENDOR
`SERVER
`
`98
`
`CUSTOMER
`APPLICATION
`
`13
`
`14
`
`15
`
`VENDOR
`SERVER
`29
`r-GUSTOMER1!
`|APPLICATIONS! |
`4
`
`FIG. 2
`
`VMware, Inc.
`
`Exhibit1015
`
`Page3
`
`VMware, Inc. Exhibit 1015 Page 3
`
`
`
`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 2 of 7
`
`US 7,836,452 B2
`
`RECEIVE OPERATOR DESCRIPTION OF CUSTOMER'S
`
`CURRENT SERVERS AND THEIR SOFTWARE
`
`100
`
`DETERMINE RELATIVITY VALUE FOR
`CUSTOMER'S CURRENT SERVERS
`
`102
`
`DETERMINE PROCESSOR AND MEMORY
`REQUIREMENTS IN VENDOR SERVERS
`
`104
`
`
`
`
`
`OPERATOR
`CHANGES
`CPU OR MEMORY
`REQUIREMENTS?
`
`
`
`
`
`
`105
`
`YES
`
`
`
`NO
`
`ENFORCE CPU MINIMUMS AND
`MEMORY MAXIMUMS
`
`109
`
`RECOMMEND VENDOR SERVER(S)
`FOR CUSTOMER
`
`110
`
`
`
`DETERMINE IF CUSTOMER'S SERVERS CAN BE
`CONSOLIDATED AND BEST VENDOR SERVER TO
`REPRESENT THE CONSOLIDATED SERVERS
`
`
`
`
`120
`
`
`
`
`
` DETERMINE IF VENDOR SHOULD USE
`
`
`
`
`
`DEDICATED BLADE SERVERS
`
`QUERY OPERATOR FOR OTHER FACTORS
`WHICH WILL AFFECT COST
`
`FIG. 3
`
`300
`
`
`
`310
`
`VMware, Inc.
`
`Exhibit1015
`
`Page 4
`
`VMware, Inc. Exhibit 1015 Page 4
`
`
`
`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 3 of 7
`
`US 7,836,452 B2
`
`RECEIVE FROM OPERATOR IDENTIFICATION OF TWO OR MORE
`CUSTOMER SERVERS AS CANDIDATES FOR CONSOLIDATION
`
`200
`
`
`
`
`
`120
`
`4
`
`206
`
`COMPARE COMBINED PROCESSOR UTILIZATION OF THE
`TWO OR MORE CUSTOMER SERVER CONSOLIDATION
`CANDIDATES TO THAT OF THE SINGLE VENDOR SERVER
`WITH THE GREATEST PROCESSOR POWER DETERMINED
`IN STEP 104 FOR ANY OF THE CUSTOMER SERVER
`
`CONSOLIDATION CANDIDATES
`
`208
`
`212
`
`210
`
`
`
`
`
`WARN OPERATOR OF
`
`PRIME SHIFT OVERLAP
`
`
`
`
`
`
`
`
`
`
`
`
`VES
`RECOMMENDAGAINST
`<Er5%>CONSOLIDATION WITH
`
`
`
`
`
`
` 214
`
`
`
`THIS SIZE PROCESSOR
`
`
`
`COMPARE PROCESSOR UTILIZATION OF THE
`TWO OR MORE CUSTOMER SERVER
`CANDIDATESTO THAT OF THE SINGLE
`VENDOR SERVER WITH THE NEXT HIGHER
`PROCESSOR POWER
`
`
`
`RECOMMEND AGAINST
`CONSOLIDATION WITH
`
`THIS SIZE PROCESSOR
`
`
`
`QUERY WHETHER
`WORKLOAD/PROCESSOR
`REQUIREMENTS OF THE
`CUSTOMER SERVER
`STEP 230
`224—|CANDIDATES SHOULD BE
`DECREASED
`
`
`
`REPORT THAT A SPECIFIED
`VENDOR SERVER HAS SUFFICIENT
`
`PROCESSOR POWER FOR
`
`
`
`CONSOLIDATION
`
`
`
`
`
`
`DECISION 226
`
`VMware, Inc.
`
`Exhibit1015
`
`Page5
`
`VMware, Inc. Exhibit 1015 Page 5
`
`
`
`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 4 of 7
`
`US 7,836,452 B2
`
`120
`
`STEP 224
`
`
`REQUIREMENTS ?
`
`
`
`
`
`RECOMMEND AGAINST
`CONSOLIDATION
`
`
`
`
`
`
`STEP 100
`
`227
`
`STEP 300
`
`233
`
`WARN OPERATOR
`
`IDENTIFY SIMILAR AND
`DISSIMILAR APPLICATIONS
`AND FUNCTIONS
`
`QUERY OPERATOR WHETHER
`DISSIMILAR APPLICATION(S)
`CAN BE RELOCATED
`
`234
`
`235
`
`236
`
`YES
`
`STEP 100
`
`NO -
`RECOMMEND AGAINST|—
`CONSOLIDATION
`
`238
`
`STEP 300
`
`\ D
`
`STEP 211
`
`230
`
`
`
`ETERMINE IF SAME
`APPLICATIONS OR SIMILAR
`
`
`FUNCTIONS OF APPLICATIONS
`ON TWO OR MORE CUSTOMER
`SERVER CONSOLIDATION
`CANDIDATES
`
`
`
`
`
`232
`
`
`SAME/SIMILAR ?
`NO
`
`
`
`
`YES
`
`240
`
`
`DETERMINE IF ALL
`
`
`APPLICATIONS ON TWO OR
`
`
`MORE CUSTOMER SERVERS
`ARE COMPATIBLE
`
`242
`
`COMPATIBLE?
`WARN OPERATOR|~24
`oo
`
`YES
`IDENTIFY COMPATIBLE AND|544
`INCOMPATIBLE APPLICATIONS
`AND FUNCTIONS
`
`STEP 250
`
`QUERY OPERATOR WHETHER
`INCOMPATIBLE APPLICATION
`CAN BE RELOCATED
`
`245
`
`246
`
`YES
`
`STEP 100
`
`FIG. 4(B)
`
`NO
`
`STEP 248
`
`VMware, Inc.
`
`Exhibit1015
`
`Page6
`
`VMware, Inc. Exhibit 1015 Page 6
`
`
`
`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 5 of 7
`
`US 7,836,452 B2
`
`DECISION 246
`
`248
`
`
`
`
`
`RECOMMEND AGAINST
`CONSOLIDATION
`
`STEP 300
`
`120
`
`\
`
`250
`
`
`
`DETERMINE IF APPLICATION
`
`
`ENVIRONMENT, MIDDLEWARE
`AND DATABASE SOFTWARE OF
`
`
`ALL APPLICATIONS ON THE
`
`
`TWO OR MORE CUSTOMER
`SERVERS ARE COMPATIBLE
`
`
`
`252
`NO COMPATIBLE?
`
`
`YES
`
`260
`
`DETERMINE IF TWO OR MORE
`CUSTOMER SERVERS HAVE
`SAME OPERATING SYSTEM
`
`262
`
`NO
`
`YES
`
`STEP 270
`
`253
`
`WARN OPERATOR
`
` 254
`
`
`
`IDENTIFY COMPATIBLE AND
`INCOMPATIBLE
`
`
`ENVIRONMENTS, MIDDLEWARE
`AND DATABASE SOFTWARE
`QUERY OPERATOR WHETHER
`
`°
`
`255
`
`INCOMPATIBLES CAN BE FIXED
`
`YES
`
`256
`
`
`INCOMPATIBILITIES ?
`
`NO
`RECOMMEND AGAINST
`CONSOLIDATION
`
`STEP 100
`
`258
`
`STEP 300
`
`WARN OPERATOR
`
`263
`
`IDENTIFY DIFFERENT
`OPERATING SYSTEMS
`
`264
`
`QUERY OPERATOR WHETHER
`OPERATING SYSTEMS CAN BE
`MADE SAME
`
`265
`
`266
`
`YES
`
`STEP 100
`
`NOTIFY REGARDING EXTRA O/S
`
`NO
`
`268
`
`FIG. 4(C)
`
`VMware, Inc.
`
`Exhibit1015
`
`Page7
`
`VMware, Inc. Exhibit 1015 Page 7
`
`
`
`U.S. Patent
`
`Nov. 16, 2010
`
`Sheet 6 of 7
`
`US 7,836,452 B2
`
`120
`
`270
`
`
`
`
`
`
`
`COMPARE MEMORYUTILIZATION OF THE
`TWO OR MORE CUSTOMER SERVER
`CANDIDATES TO THAT OF SELECTED
`VENDOR SERVER
`
`272
`
`
`
`272
`
`
`RECOMMEND AGAINST
`
`CONSOLIDATION WITH
`THIS SIZE MEMORY
`
`
`COMPARE COMBINED MEMORY
`
`
`UTILIZATION OF THE TWO OR MORE
`
`
`CUSTOMER SERVER CONSOLIDATION
`CANDIDATES TO THAT OF THE SINGLE
`
`
`VENDOR SERVER WITH THE GREATEST
`
`
`MEMORY DETERMINEDIN STEP 104 (OR
`DECISION 280 FOR SUBSEQUENT
`
`
`
`
`ITERATIONS) FOR ANY OF THE
`CUSTOMER SERVER CONSOLIDATION
`
`
`
`CANDIDATES
`
`STEP 300
`
`DECISION 278
`
`FIG. 4(D)
`
`VMware, Inc.
`
`Exhibit1015
`
`Page8
`
`VMware, Inc. Exhibit 1015 Page 8
`
`
`
`Sheet 7 of 7
`
`US 7,836,452 B2
`
`120
`
`4
`
`U.S. Patent
`
`Nov. 16, 2010
`
`278
`
`YES
`
`NO
`
`271
`REPORTTHAT A SPECIFIED
`VENDOR SERVER HAS
`SUFFICIENT MEMORY FOR
`CONSOLIDATION
`
`288
`QUERY OPERATOR WHETHER
`OPERATOR APPROVESTHIS
`VENDOR SERVER
`
`
`
`280
`
`279
`RECOMMEND AGAINST
`CONSOLIDATION WITH
`THIS SIZE MEMORY
`
`
`VENDOR
`SERVER
`YES
`
`
`WITH MORE
`
`
`MEMORY
`
`
`
`CRANEMODTIOWS:]
`
`QUERYWETHER
`
`
`
`
`MEMORY REQUIREMENTS
`OF THE CUSTOMER
`SERVER CANDIDATES
`SHOULD BE DECREASED
`
`STEP 300
`
`
`
`
`
`
`
`
`
`286
`
`
`
`
`YES
`DECREASE
`MEMORY
`
`
`
`
`REQUIREMENTS?
`NO
`
`
`
`287
`
`RECOMMEND AGAINST
`CONSOLIDATION
`
`FIG. 4(E)
`
`VMware, Inc.
`
`STEP 274
`
`STEP 100
`
`Exhibit1015
`
`Page9Q
`
`VMware, Inc. Exhibit 1015 Page 9
`
`
`
`US 7,836,452 B2
`
`1
`SYSTEM, METHOD AND PROGRAM FOR
`ESTIMATING A REQUISITE AMOUNT OF
`SERVER RESOURCES
`
`FIELD OF THE INVENTION
`
`The present invention relates generally to computer sys-
`tems. The present invention relates more specifically to a
`technique to estimate an amountof server resources in an “on
`demand”or “utility” server model required to satisfy needs of
`a customer.
`
`BACKGROUND OF THE INVENTION
`
`An “on demand”or “utility” server model is currently
`known.In this model, a customer does not own, possess or
`maintain servers, such as computer hardware, operating sys-
`tem and certain middleware (whenpart of a predefined “on
`demand”solution), which execute the customer’s applica-
`tions. Rather, a vendor owns, possesses and maintains the
`servers which execute the customer’s applications. Typically,
`the vendor offers one or more standardserversolutions forall
`customers. The vendor’s servers may be dedicated to one
`customeror shared by multiple customers using one of many
`knownvirtualization techniques. Knownvirtualization tech-
`niques include VMWare (tm ofVMWareInc.), virtualization
`on IBM xSeries or IBM Blade Center servers (based on
`Microsoft Windowsoperating systems) and AIX operating
`system’s logical partitioning capabilities on IBM’s pSeries
`servers. The sharing of servers reduces cost when a single
`customer does not have enough workload to occupy a full
`server or when different customers have different times of
`
`peak utilization. Each server has standardized hardware (in-
`cluding processors, memory, storage, etc.), standardized plat-
`form software (including operating systems, management
`software, middleware), and applications for use by the cus-
`tomer(s).
`There are customer-specific applications such as airline
`reservation software, banking software, etc., and general pur-
`pose applications such as database applications. The cus-
`tomeris typically responsible for maintaining its own appli-
`cation(s). Each customer accesses its own applications from
`the vendor’s servers via a network such as a virtual private
`network, point to point network, ISDN,frame relay network
`or the World Wide Web. The vendor measures or meters each
`
`customer’s use of the vendor’s server resources and charges
`each customer based on the customer’s use such as the
`
`amount (numberof gigabytes) of assigned disk storage and
`the number of CPU Hours that the customer utilizes during
`the month. The vendoralso charges the customerfor “fixed
`costs” such as the number of dedicated servers or logical
`partitions on which the customer’s application(s) execute.
`Before a new customeris added to “on demand”or“utility”
`environment,
`typically an operator estimates how much
`server hardware and software the customer will need steady
`state and peak, the peak demand times, and how much and
`whattype of server resources, if any, need to be addedto the
`pool to satisfy the new customer. Typically the customer
`currently ownsits own servers, and the vendor considers the
`capacity ofthe customer’s current servers and their percent of
`utilization to estimate the customer’s current server needs. If
`
`the new customerrequires dedicated servers, then the vendor
`will commission these, and install and execute the customer
`applications on these new servers. If the new customer can
`share an existing vendor server, then the new customer’s
`application can be installed and executed in a shared mode,
`typically on separate LPAR(s), on the existing vendorserver.
`
`2
`It was also knownthat in some cases where the customeris
`currently using two or more of its own servers, these can be
`consolidated into one dedicated server in an “on demand”or
`
`“utility” model. For example, if the customer wasonly using
`a small percentageof the capacity of its current servers, these
`may be consolidated into one vendor server of similar or
`equal powerin an “on demand”or “utility” model. The cost
`savings result from a reduction in (a) numberof operating
`systems, (b) virtual memory, (c) real memory, (d) swap disk
`space, (e) system management software licenses, (f) cus-
`tomerapplication software licenses, (g) systems administra-
`tion and support, (h) floor space, and/or (i) electricity and
`cooling costs.
`An objectof the present inventionis to provide a technique
`to estimate the server resources required by a neworexisting
`customerin an “on demand”or “utility” delivery andbilling
`solution.
`
`Another object of the present invention is to provide a
`techniqueto estimate cost effective server resources required
`by a new or existing customer in an “on demand”or “utility”
`delivery and billing solution.
`
`SUMMARY
`
`The present invention resides in a system, method and
`program product for determining ifa plurality of applications
`executed on a plurality of servers can be executed on a single
`server. First program instructions determine if the single
`server has sufficient processor powerto execute the plurality
`of applications. Second program instructions determine ifthe
`plurality ofapplications have a sametype ofoperating system
`on the plurality of servers. Third program instructions deter-
`mine if the plurality of applications have a same type of
`middleware on the plurality of servers.
`According to a feature of the present invention, the first
`program instructions determine peak processor utilizations
`and times ofthe peak processorutilizations for the plurality of
`applications, respectively, to determine whether the single
`server has sufficient processor powerto execute the plurality
`of applications.
`According to another feature ofthe present invention, other
`program instructions determineifthe plurality ofapplications
`have a similar function or are identical.
`
`According to another feature ofthe present invention, other
`program instructions determineifthe plurality ofapplications
`have a sametype of application environmentonthe plurality
`of servers.
`
`According to another feature ofthe present invention, other
`program instructions determineifthe plurality ofapplications
`are compatible.
`According to another feature ofthe present invention, other
`program instructions determine the single server to be a stan-
`dard vendorserver which has a smallest processor adequate to
`support processing requirements of the plurality of applica-
`tions and has a predetermined, minimum processing powerin
`reserve.
`
`35
`
`40
`
`45
`
`50
`
`55
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`FIG. 1 is a block diagram of a server which includes a
`server resource estimation program, according to the present
`invention, to estimate an amountandtype of server resources
`required in an “on demand”or “utility” environmentto satisfy
`needs of a new customer.
`
`FIG.2 is a block diagram of an “on demand”or “utility”
`environment.
`
`VMware, Inc.
`
`Exhibit 1015
`
`Page 10
`
`VMware, Inc. Exhibit 1015 Page 10
`
`
`
`US 7,836,452 B2
`
`3
`FIG. 3 is a flow chart of the server resource estimation
`program of FIG.1.
`FIGS. 4(A-E) form a flow chart of a server consolidation
`determination function within the server resource estimation
`program of FIG.3.
`
`DETAILED DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`Thepresent invention will now be described in detail with
`reference to the Figures. FIG. 1 illustrates a computer 10
`which includes a server resource estimation program 12 to
`estimate amount and type of server resources (processor
`power, memory and storage) required in an “on demand”or
`“utility” environment to satisfy needs of a new customer.
`From the estimation of the required amount of server
`resources, program 12 determines a type of server to best
`provide these server resources. The type ofserver is based on
`the amount of “on demand” processor power required to
`perform the work currently being done on the customers
`current server(s). The “on demand” servers may be real or
`virtualized. The virtualized servers can be server(s) that are
`divided into logical partitions where each logical partition or
`groups of logical partitions may each be dedicated to separate
`customers and their applications. Alternately,
`the “on
`demand”servers may be dedicated to separate customers and
`their applications. Typically, the “on demand”server pro-
`vider/vendoroffers certain predefined platforms such as Unix
`or Intel based platforms, some of which provide secure logi-
`cal partitioning. Computer 10 also includes a CPU 48, an
`operating system 50, RAM 52, ROM 54, storage 56, and
`TCP/IP adapter card 58 to communicate with Internet 60.
`Asexplained in more detail below, an operator supplies to
`program 12 (a) descriptive information about the customer’s
`current (privately owned, possessed and maintained) server
`hardware, operating system, managementsoftware andappli-
`cations (not shown) such as commercial business applications
`such asairline reservation software, (b) quantitative informa-
`tion about the customer’s current amount of utilization of
`each server such as numberofprocessorutilization hours per
`day, peak utilization periods, and numberof days per week
`with peak utilization, and (c) details about specific middle-
`ware including DB2, Websphere Application Server and
`Websphere MQ,such as number of DB2 database instances
`running on the server. By way of example, the customer’s
`current servers can be UNIX servers or Intel-processor serv-
`ers with Microsoft Windowsoperating systems. Program 12
`also has a database 31 describing the standard typesof servers
`13, 14 and 15 currently maintained by a vendorin an “on
`demand”or “utility” model for existing and new customers.
`By way of example, servers 13, 14 and 15 can be IBM pSeries
`servers, IBM xSeries, or IBM BladeCenterservers. Ifdesired,
`any orall of servers 13, 14 and 15 can be logically divided into
`logical partitions (“‘LPARs”) in a known manner. Each LPAR
`is a logical division of processor and memory resources of a
`server. The logical division of the processor is implemented
`by time slicing the processor, and the logical division of the
`memory is implemented by dividing the allocation of the
`server’s memory to each partition. In this “on demand” or
`“utility” model, customer workstations 17,18, 19 are coupled
`to servers 13, 14 and 15 via a network 20 such as VPN,frame
`relay, ISDN, Point to Point, or World Wide Web/Internet to
`access the customers’ applications 26, 27, 28 which execute
`on servers 13, 14 and 15, respectively. Program 12 also has a
`database describing the current utilization by the existing
`customers of the servers 13, 14 or 15, in case a single server
`can be shared by more than one customer. Program 12 nor-
`
`4
`malizes the relative performance of the new customer’s het-
`erogeneousservers, and calculates the new customer’s fore-
`casted monthly utilization based on prime andoff-primeshift
`utilization percentages provided by the customer. Based in
`part on this information, program 12 determines the number
`ofhours ofutilization required from a new server 16 or shared
`from existing servers 13, 14 or 15 in the “on demand” or
`“utility” model to perform the new customer’s defined work-
`load.If new server 16 is needed (for a new customerapplica-
`tion 29), program 12 also determines the size and type of
`server 16 to best support the new customer’s application 29,
`and the memory and storage required by the new customer.
`The new server 16, if needed, has an operating system 21,
`middleware 22 and customer application 24. The new cus-
`tomeris represented by workstation 23, and can access new
`server 16 via network 20.
`
`FIG.3 illustrates the processing of program 12 in more
`detail for a new customer which has requested and is planned
`to use additional vendor server 16 (which is the same type as
`server 13, 14 or 15) or possibly share one ofthe servers 13, 14
`and 15 with another customer.In this example, the new cus-
`tomeris switching from its privately owned, possessed and
`maintained server(s) to the vendor’s server(s) in an “on
`demand”or “utility” model. In step 100, an operator enters
`the following information about the customer’s current (pri-
`vately owned, possessed and maintained) server(s) and appli-
`cation(s) for each current logical partition or real server
`owned by the customer:
`
`(a) Information describing the customer’s current (privately
`owned, possessed and maintained) servers, such as server
`vendor, model, operating system and version, number ofpro-
`cessors, processor speed, amountofphysical memory, opera-
`tionalstatus of server, server nameor other uniqueidentifier,
`application or other function ofthe customer’s currentserver.
`The following is an example of specific information
`parameters entered by an operator into program 12 for step
`104:
`
`Ideas=the “relativity value”or relative performance value
`of each customer ownedserver, for example, as determined
`by Ideas International.
`EE=Execution Environment, a value of “1” for each cus-
`tomer owned LPARorserver that will be replaced one-for-
`one by a vendor LPARorserver, or=a value of “0” for each
`customer owned LPARorserver that will be consolidated
`
`40
`
`45
`
`with another customer owned LPARorserver into a single
`vendor owned LPARorserver, where the value “EE”for this
`other customer owned LPAR or server will be “1”. An
`
`“Execution Environment” comprises the computer hardware
`and operating system software architecture of a server or
`LPAR.
`
`Ram=amount of real memory actually installed on each
`customer ownedserver.
`
`RamOD=amount of real memory required in the “on
`demand”server.
`
`55
`
`VramOD=amount of real memory required in the “on
`demand” VMWareservers.
`
`PrimHrs=numberofprimeshift (peak utilization) hours on
`each customer ownedserver.
`
`OffPrimHrs=number ofnon-primeshift hours on each cus-
`tomer ownedserver.
`
`PrimUtl=monthly average primeshift utilization percent-
`age on each customer ownedserver.
`OffPrimUtl=monthly average non-prime shift hours on
`each customer ownedserver.
`
`Hrs=Hours of utilization per month of each customer
`ownedserver.
`
`VMware, Inc.
`
`Exhibit1015
`
`Page 11
`
`VMware, Inc. Exhibit 1015 Page 11
`
`
`
`US 7,836,452 B2
`
`5
`CpuHrs=“on demand” server CPU Hourbaseline without
`minimum usage enforced.
`Cpus=Amount of “on demand” CPUs required without
`minimum usage enforced.
`HaType=denotes type of high availability cluster configu-
`ration required.
`HaLpar=Amount of HA LPARsrequired.
`HaNodes=Amountofnodesin the high availability cluster.
`Db2=Number of IBM DB2 database (or equivalent) soft-
`ware instances on each customer ownedserver.
`
`Was=Number of IBM Websphere Application Server (or
`equivalent) instances on each customer ownedserver.
`Mg=Number of Websphere MQ (or equivalent) queues
`running on each customer ownedserver.
`Vm=Selection to deliver on VMWare (or equivalent) Ipar.
`4way=Selection to deliver on 4-way xSeries server, (i.e.
`four processorserver).
`8way=Selection to deliver on 8-way xSeries server (i.e.
`eight processorserver).
`16way=Selection to deliver on 16-way xSeriesserver(i.e.
`sixteen processorserver).
`CpuM=Amountof“on demand” CPUsrequired with mini-
`mum usage enforced.
`VmHrsM=CPU hour total for all on demand VMWare
`
`Ipars with minimum usageenforced.
`4wayHrsM=CPU hour total for all 4way demand Ipars
`with minimum usage enforced.
`8wayHrsM=CPU hour total for all 8way demand Ipars
`with minimum usage enforced.
`16wayHrsM=CPUhourtotal for all 16way demand Ipars
`with minimum usage enforced.
`
`(b) Information describing future server requirements of the
`customer, such as amount of physical memory that the cus-
`tomerwill require and type of operating system to be used.
`
`(c) Indication whether this customer server and another cus-
`tomerserver are currently executing the same application,
`and can be consolidated into one server provided by the
`vendor.
`
`(d) Information describing amountofutilization of custom-
`er’s current server such as the customer’s primeshift utiliza-
`tion hours and days, and numberof prime (or “peak”) utili-
`zation hours of the day (parameter “A” referenced below),
`number of off-prime hours of the day (parameter “Off-
`PrimUtl” defined above in parameter list), and utilization
`percentages for both prime and off-prime hours.
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`(e) Information describing amount of customer’s current disk
`storage allocation, the server’s function or the server’s pri-
`mary application(s).
`
`50
`
`(f) Information indicating numberof instances of IBM DB2
`(or other vendor-preferred) database software that the cus-
`tomer wants on each server. This number can be zero (if the
`customer wants to use some other database application or no
`database application) or an integer greater than zero (if the
`customer wants to use the vendor-preferred DB2 database
`defined option rate).
`
`(g) Information describing the customer’s high availability
`cluster requirements. The requirements include whether the
`cluster is for Unix server meaning it will require HACMP
`high availability clustering software or whether it is for a
`WindowsInter server meaning high availability clustering
`will be supported by the “on demand” supported version of
`the Windowsoperating system without any additional soft-
`ware. Other required information is the number of nodes
`(servers or LPARs) to be included in the high availability
`
`6
`cluster. Supported high availability cluster configurations are
`2node, 3node and 4nodes. The type of high availability clus-
`ter is required means whetherall nodesin the cluster are doing
`independent work(the user enters this as an “aa” or active-
`active high availability cluster configuration. If one serveris
`doing independent work (called the active server) and the
`other is typically idle (called the passive server) waiting to
`perform the workofthe active, then the user enters this as an
`“ap” or active-passive high availability cluster configuration.
`
`(h) Information indicating numberof instances of IBM Web-
`sphere Application Server software that the customer wants
`on each server. This number can be zero (if the customer
`wants to use some other middleware or no middleware) or an
`integer greater than zero (if the customer wants to use the
`vendor-preferred Websphere Application Server option rate).
`
`(i) Information indicating number of instances of another
`type ofIBM Websphere MQ software that the customer wants
`on each server. This number can be zero (if the customer
`wants to use some other middleware or no middleware) or an
`integer greater than zero (if the customer wants to use this
`vendor-preferred Websphere MQ optionrate).
`
`Gj) Information describing optional support features required
`by the customer such as two levels of production control
`support (i.e. normal number ofjob abends and high percent-
`age of job abends), whether third party software support is
`required, whether third party database software support is
`required, whether user ID support is required, and whether a
`developer’s environmentkit support is required.
`
`(k) Information describing customer’s peak (prime shift)
`hours ofutilization and the days per week that have these peak
`(prime shift) hours.
`
`Typically, the foregoing information (a-k) is based on actual
`information provided by the customer about the customer’s
`current servers and some projections for vendor’s “on
`demand”delivery requirements. However, if such datais not
`available, then the operator can estimate such data based on
`the customer’s environment, operator’s experience, other
`similar environments and other factors.
`
`In step 102, program 12 looks-up (or the operator enters
`into program 12) a “relativity value” for a “performance”
`metric for each of the customer’s current servers. The “rela-
`
`tivity value”indicates a relative performance measurement of
`a common commercial server’s processor power. By way of
`example, a company called Ideas International has analyzed
`different, commonprocessors from Intel, for both Microsoft
`Windows, Linux (tm of Linus Torvalds) operating systems,
`IBM Unix servers, IBM iSeries servers, Dell servers, HP
`servers, Sun Microsystems servers, and Fujitsu servers, and
`providedtheir“relativity values”. For example, the “relativity
`value” may indicate that the customer’s current processoris
`50% as powerful as the processor(s) in one of the vendor’s
`standard servers. This performance metric coupled with the
`customer’s actual amount of utilization of its servers indi-
`cates the processor needs of the customer in the “on demand”
`or “utility” model. However, typically, the vendor provides a
`server with at least 25% moreprocessor powerthan currently
`required by the customer.
`In step 104, program 12 performs the following calcula-
`tions for each current customer server and current customer
`LPARto determine the vendor server resources (i.e. proces-
`sor and memory) required in the “on demand”or “utility”
`model:
`
`The following equation calculates the numberof hours for
`the month specified above based on primeshift utilization and
`VMware, Inc.
`Exhibit1015
`Page 12
`
`VMware, Inc. Exhibit 1015 Page 12
`
`
`
`US 7,836,452 B2
`
`7
`off prime shift utilization (based on the customer’s current
`utilization). Prime shift typically occurs five days per week
`(or twenty two days per month), six days per week (or twenty
`six days per month) or seven days per week (or 30.4 days per
`month). A full month has 730 total hours.
`
`Total number of customer’s current CPU Hours per month
`Customers Utilized CPU Hours=((730-(22* PrimHrs))
`*OffPrimUtl)+(22* PrimHrs* PrimUtl)
`
`Program 12 calculates the actual number of CPU hours
`required in the on demand delivery center to match the cus-
`tomer’s current utilization, based in part on the relativity
`values andutilization information. The “1586.4” value below
`is an example ofthe calibration metric used to normalize the
`constantly changing relativity values from the Ideas Interna-
`tional report. The on demand cost modelers calibrate their
`cost rates to this same 1586.4 metric for the Unix servers. A
`
`slightly different metric is used for the Intel servers. This
`value is comparable to a normalization based on a mainframe
`MIPrating. Program 12 then multiplies the normalizedrela-
`tive performancevalue with the sum from the previous equa-
`tion listed above, i.e. “Total number of customer’s current
`CPU Hours per month”. In this example, the productofthis
`equation is called the “CPU Hour Baseline”.
`CPU Hour Baseline=(Ideas/1586.4)*Hrs
`
`Program 12 usesthe following algorithms/formulasfor deter-
`mining the various CPU Houradder for 2node, 3node and
`4node high availability cluster servers:
`
`If HaType parameter has a value of either ‘aa’ (meaning
`active-active HA configuration) or ‘ap’ (meaning active-pas-
`sive HA configuration) and the number of nodes in the HA
`cluster is more than “1” and less than “5”, then program 12
`will assign a value of “1” to the HaLpar parameter,i.e.
`HaLpar=IF (OR(HaType=“AP”,HaType=“AA”),IF
`(AND(HaNodes>1,HaNodes<5),1,0),0)
`
`If HaNodeshasa value of “2” and HaTypehas a value of‘aa’
`or ‘ap’ then program 12 places a value of the CPU Hour
`Baseline value as the 2node HA