mceve a model for configuring efficient virtualized ...gsc/pub/master/aalmuray/doc/mceve... · a...

170
MCEVE A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted Considerations By Abdullah S. Almurayh A thesis submitted to the Faculty of Graduate School of the University of Colorado at Colorado Springs in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science Department of Computer Science 2011

Upload: others

Post on 05-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

MCEVE

A Model for Configuring Efficient

Virtualized Environments Based on

Multiple Weighted Considerations

By

Abdullah S. Almurayh

A thesis submitted to the Faculty of Graduate School of the

University of Colorado at Colorado Springs

in Partial Fulfillment of the Requirements

for the Degree of

Master of Science in Computer Science

Department of Computer Science

2011

Page 2: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

I

Copyright by Abdullah Almurayh 2011

All Rights Reserved

Page 3: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

II

This thesis for the Master of Science degree by

Abdullah S. Almurayh

has been approved for the

Department of Computer Science

by

_______________________________________________________

Dr. C. Edward Chow, Advisor

_______________________________________________________

Dr. Chuan Yue, Committee member

_______________________________________________________

Dr. Albert Glock, Committee member

_______________________________

Date

Page 4: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

III

Abdullah S. Almurayh (M.S., Computer Science)

A Model for Configuring Efficient Virtualized Environments

Based on Multiple Weighted Considerations

Thesis directed by Professor Edward Chow

Abstract

Virtualization enables multiple operating systems to run simultaneously on

one single machine. Computer manufacturers have been driven to aim their

products to support virtualization technology because of virtualization

benefits such as server consolidation, reduced power and cooling, green

computing, ease of deployment and administration, high availability and

disaster recovery. Virtualization systems and software vendors have been

competing with each other in the production of virtualization hypervisors,

platforms, and virtual machine managers. While the diversity of virtualization

solutions offers many remarkable choices, people sometimes become so

confused that they are unable to decide what solutions they should choose for

establishing their virtualized environments. Experts may be able to configure

an efficient virtualized environment that requires a lot of effort to research

and analyze existing results through papers, experiments and so on. Novice

users, on the other hand, it can be a challenging task that requires difficult

trade-offs such as cost and performance. Even interpreting the suggested

configuration from an expert could lead to confusion that especially happens

when there are many conflicting results in existing research. In this thesis, I

propose to develop a model for suggesting better solutions of virtualized

Page 5: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

IV

environments. The model needs to consider given specifications such as

hardware configurations, requirements, and virtualization platforms. The

model is for users to configure efficient virtualized environments. The

scenario of this model uses user interests, considerations, or configurations as

inputs for algorithmic outputs. The output results are used as a guide

containing suggestions to construct a virtualized environment. The model

would help to efficiently configure virtualized environments in an easier and

reduced cost and minimize unexpected events driven by inefficient

configurations. It would be a guide for people who are not experts in

virtualization or who cannot afford the cost of virtualization configurations

and tests. Metrics for evaluating the suggested configurations include Cost

and Performance. Cost refers to the user who can save time by adopting the

appropriate decisions resulting in hours configuring virtualized environments

instead of spending days researching and comparing existing results.

Moreover, the cost can be reduced by the use of existing comparison results

instead of performing tests and experiments. Performance can be enhanced by

using solutions based on reliable real solutions rather than trying different

solutions that can lead to high monetary cost. Through an iteration process to

implement, evaluate and refine the Model to improve its functionality and the

accuracy of its suggestions, I found that the Model affectively produces

dependable results that meet the user’s expectations

Page 6: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

V

Acknowledgements

I would like to take the opportunity to sincerely thank Dr. Edward Chow for the

support, effort, and the valuable time he has spent supervising me, and for the

direction to guide me through the challenging coursework I have taken with him.

I would like to thank Dr. Chuan Yue for being always encouraging me and giving

me guiding question to direct the thesis into better work.

I would like to thank Dr. Albert Glock for being interested in getting my proposal

succeeded and giving important questionable ideas to me through his comments

on my proposal.

Finally, I would like to thank my government – The Kingdome of Saudi Arabia –

represented in the Ministry of High Education for being my sponsor and

providing me with all finical supports and requirements to finish my study and

research at the United States of America, specifically at University of Colorado at

Colorado Springs.

Page 7: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

VI

List of Content

Chapter 1

Introduction ........................................................................................................... 1

1.1 Motivation: ............................................................................................... 3

1.2 Contribution: ............................................................................................ 6

1.3 Related Work: .......................................................................................... 6

1.4 Beneficial Goals: ...................................................................................... 7

1.5 Thesis Outline .......................................................................................... 9

Chapter 2

Virtualization Technology .................................................................................. 10

2.1 Introduction to Virtualization: ............................................................... 10

2.2 Types of virtualization: .......................................................................... 12

2.3 Characteristics of virtualization ............................................................. 18

2.4 Applications of virtualization ................................................................. 22

2.5 Virtualization Projects: .......................................................................... 25

Chapter 3

Virtual Guest ....................................................................................................... 35

3.1 Introduction: ........................................................................................... 35

3.2 Virtual Machine: .................................................................................... 36

3.3 Virtual private server .............................................................................. 38

3.4 Performance comparison between VM and VPS ................................... 40

3.5 Virtual Guest Features ............................................................................ 43

Chapter 4

Proposed Model ................................................................................................... 45

4.1 Introduction: ........................................................................................... 45

4.2 The MCEVE Model Components: ......................................................... 47

4.3 The Algorithm of the Model: ................................................................. 49

4.4 Mathematical and Logical Formulas: ..................................................... 51

4.5 The Flow Diagram of the Model: ........................................................... 53

Page 8: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

VII

Chapter 5

The Web-based Development of the Model ...................................................... 55

5.1 Overview: ............................................................................................... 55

5.2 The Web Modeling Language Model (WMLM) ................................... 56

Chapter 6

Evaluation and Analysis ..................................................................................... 83

6.1 Introduction: ........................................................................................... 83

6.2 Effectiveness: ......................................................................................... 83

6.3 Accuracy: ............................................................................................... 86

6.4 Efficiency: .............................................................................................. 89

6.5 Data Transparency: ................................................................................ 90

6.6 Experimental Tests: ................................................................................ 92

Chapter 7

Lessons Learned .................................................................................................. 98

7.1 Read and research in variant topics related to Virtualization: ............... 98

7.2 Parameters Prediction Algorithms: ........................................................ 99

7.3 Data collection...................................................................................... 105

7.4 Testing Xenserver on UCCS HP blade servers: ................................... 107

Chapter 8

Future work ....................................................................................................... 111

Chapter 9

Conclusion ......................................................................................................... 113

Bibliography ...................................................................................................... 115

Page 9: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

VIII

List of Figures

Figure 1.1 Relative performance of native Linux (L), XenoLinux (X), VMware workstation 3.2

(V) and User-Mode Linux (U)...........................................................................................................4

Figure 1.2 Passmark – CPU results compared to native (higher values are better) ……………......4

Figure ‎2.1 Native Virtualization Architecture..................................................................................12

Figure ‎2.2 Full Virtualization Architecture......................................................................................13

Figure ‎2.3 Para Virtualization Architecture.....................................................................................15

Figure ‎2.4 Kernel Level Virtualization Architecture……………………………………………...16

Figure ‎2.5 Operating system-level Virtualization Architecture…………………………………...17

Figure ‎2.6 Emulator Architecture………………………………………………………………….18

Figure ‎2.7 Xen Architecture…………………………………………………………………….....26

Figure ‎2.8 VMware Architecture …………………………………………………………………28

Figure ‎2.9 Windows Server 2008 R2 Hyper-V Architecture……………………………………...29

Figure ‎2.10 OpenVZ Virtualization Architecture…………………………………………………30

Figure ‎2.11 Redhat RHEV Virtualization Architecture…………………………….……………..31

Figure ‎2.12 Parallel Viertuozzo Virtualization Architecture…………………….………………..32

Figure ‎2.13 Oracle Virtualbox Virtualization Architecture…………………….…………………33

Figure ‎2.14 Linux VServer Virtualization Architecture…………………………………...……...34

Figure ‎3.1 Virtual Machine Architecture………………………………………………………….37

Figure ‎3.2 Virtual Private Server Architecture……………………………………………………40

Figure ‎3.3 Comparison of latency performance by different message sizes …………….………..41

Figure ‎3.4 Comparison of read and write performance by different file sizes ……………………42

Figure ‎4.1 Different opinions lead to different decisions …………………………………………45

Figure ‎4.2 Combined views ……………………………………………………………………46

Figure ‎4.3 The simple Diagram of the Model algorithm …………………………………………48

Figure ‎4.4 The Algorithm of the Model……………………………………………………….…..50

Figure ‎4.5 The simple Diagram of the Model workflow………………………………………….53

Figure ‎5.1 Phases in the WebML development levels…………………………………………….56

Figure ‎5.2 Crow’s Foot Relational Database diagram for the Model……………………………..68

Figure ‎5.3 the Work flow of the Model web application………………………………………….69

Figure ‎5.4 Conceptual from for the user to configure a virtualized environment…………………70

Figure ‎5.5 Form of the Model that collects user inputs…………………………………………...74

Figure ‎5.6 a list of inputs for the user to choose a specific item…………………………………..75

Figure ‎5.7 constraints area to narrow user configurations ……………………………………......75

Figure ‎5.8 weights lists for user to scale his priorities ……………………………………………76

Figure ‎5.9 specifying user configurations and considerations…………………………………….79

Page 10: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

IX

Figure ‎5.10 specifying users priorities with appropriate weights…………………………………80

Figure ‎5.11 results are being processed by the Model…………………………………………….80

Figure ‎5.12 user configurations, weighted priorities, and suggested solutions……….…….…….81

Figure ‎6.1 the first virtualization environment configuration can run 432 virtual servers………..84

Figure ‎6.2 the first virtualization environment configuration has the lowest cost ………………85

Figure ‎6.3 input box for constraint user configurations…………………………………………...86

Figure ‎6.4 SSD Storage descriptions in virtualized environment configurations…………………86

Figure ‎6.5 user configurations with high price consideration……………………………………..87

Figure ‎6.6 user configurations with high capacity consideration………………………………….89

Figure ‎6.7 multiple dimensional considerations assigned with weights to the Model…………….89

Fig re 6.8 MCEVE execution time……………………………………………………………90

Figure ‎6.9 all existing benchmarks as listed by the Model………………………………………..91

Figure ‎6.10 all remaining benchmarks as listed by the Model…………………………………...92

Figure ‎6.11 Chart shows the scores of conf#14 for the four scenarios (lower is better)…………..97

Figure ‎7.1 Growth of processor performance …………………………………………………...103

Figure ‎7.2 the results of the absolute changes……………………………………………………104

Figure ‎7.3 the results of the relative changes…………………………………………………….104

Figure ‎7.4 the improvement of the performance based on the relative change…………………..105

Figure ‎7.6 Xen Hypervisor and Xen Server………………………………………….………….110

Figure ‎7.7 Xen Server installation screenshots………………………………………………….111

Figure ‎7.8 Xen Center interface ………………………………………………………………...112

Figure ‎7.9 Xen Server Security Test Results……………………………………………………113

Figure A.1 Apache installation icon…………..………………………………………………….122

Figure A.2 Apache Installation wizard screen 1…………………………………………………122

Fig re A.3 Apache Installation wizard screen 2…………………………………………………123

Figure A.4 Apache Installation wizard screen 3…………………………………………………123

Figure A.5 Apache Installation wizard screen 4…………………………………………………124

Figure A.6 Apache Installation wizard screen 5…………………………………………………124

Figure A.7 Apache Installation wizard screen 6…………………………………………………125

Figure A.8 Apache Installation wizard screen 7…………………………………………………126

Figure A.9 Apache Installation wizard screen 8…………………………………………………126

Figure A.10 Apache localhost webpage………………………………………………………….127

Figure A.11 Unpacking the zipped file ………………………………………………………….128

Figure A.12 creating a new folder ……………………………………………………………….129

Figure A.13 creating a new folder………………………………………………………………..129

Figure A.14 pasting the copied files and directories……………………………………………..130

Figure A.15 phpMyAdmin Firewall…………………………………………….………………..130

Figure A.16 Creating a MySQL database via phpMyAdmin…………………………………….131

Figure A.17 the message after reating the MySQL database…………………………………….131

Figure A.18 Importing a MySQL database via phpMyAdmin…………………………………..132

Figure A.19 tables of the database appear on the left men ……………………………………..132

Fig re A.20 the content of the “config.php” file…………………………………………………133

Figure A.21 testing the application webpage…………………………………………………….133

Fig re A.22 PHP Coder software…………………………………………………………….…..134

Figure B.1 resources that the user can specify……………………………………………….…..136

Figure B.2 Measurements priorities………………………………………………………….…..137

Figure B.3 the interface indicating the results are in progress(1)………………………………..138

Figure B.4 the interface indicating the results are in progress (2) ………………………………138

Figure B.5 the interface showing the res lts……………………………………………………..140

Page 11: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

X

Figure B.6 Tools for showing more results………………………………………………………140

Figure B.7 phpMyAdmin asking for credential information…………………………………….141

Figure B.8 phpMyAdmin interface showing the Model database and the list of tables………....142

Figure B.9 the interface for entering more data into a table……………………………………..143

Figure B.10 browsing the content of a table …………………………………………………….143

Figure B.11 information about virtualization types……………………………………………...144

Figure B.12 information about existing virtualization projects………………………………….145

Figure B.13 additional information about a virtualization platform……………………………..146

Figure B.14 More details about specific configurations…………………………………………147

Figure C.1 the usage of PHP compared to other web programing languages…………………...149

Figure C.2 Web request processing with and without PHP……………………………………...149

Figure C.3 the connectivity between PHP and other resources………………………………….151

List of Tables

Table ‎3.1 Evaluated virtualization platforms ……………………………………………………41

Table ‎5.1 Definitions of weight values……………………………………………………………58

Table ‎5.2 An example of briefed real physical machine specifications…………………………..62

Table ‎5.3 An example of detailed real physical machine specifications………………………….63

Table ‎5.4 Examples of Virtualization Platforms……………………………………...………65

Table ‎5.5 An example of SPEC benchmarks measurements……………………………………...65

Table ‎5.6 An example of averaging the SPEC benchmarks measurements of all Tiles…………66

able 6.1. Test bed Specifications…………………………………………………………89

Table ‎6.2 all existing benchmarks ………………………………………………………………90

Table ‎6.3 all remaining benchmarks ………………………………………………………91

Table ‎6.4 Configurations # 14 benchmarks……………………………………………………92

Table ‎6.5 Configurations #14 scores in the first scenario………………………………………93

Table ‎6.6 Configurations #14 scores in the second scenario……………………………………93

Table ‎6.7 Configurations #14 scores in the third scenario………………………………………94

Table ‎6.8 Configurations #14 scores in the fourth scenario……………………………………95

Table ‎6.9 benchmarks comparisons between Configurations #14 and #15………….……………96

Table ‎7.1 Examples of specifications that represent real machines…………....…………………99

Table ‎7.2 hardware specification basis………………………………………..…………………100

Table ‎7.3 Generating improved hardware instances………………………….…………………100

Table C.1 List of PHP tutorial content ……………………………………………..……………151

Table C.2 List of SQL tutorial content …………………………………………………………..153

List of Abbreviations

Page 12: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

XI

MCEVE……………….. Model for Configuring Efficient Virtualized Environments

VT ……………………. Virtualization Technology

VM ………………….... Virtual Machine

VMM ……………….... Virtual Machine Manager

VPS ………………...… Virtual Private Server

VDS…………………… Virtual Dedicated Server

Virt……………………. Virtualization

App……………………. Application

OS…………………….. Operating System

KVM………………….. Kernel-based Virtual Machine

LVS…………………… Linux Virtual Server

DR…………………….. Direct Routing

EC2……………………. Amazon Elastic Compute Cloud

I/O…………………….. Input/Output

PC……………………... Personal Computer

GNU GPL…………….. GNU General Public License

HPC…………………… High Performance Computing

Dom ………………….. Domain

HVM………………….. Hardware Virtual Machine

SPEC………………...... Standard Performance Evaluation Corporation

SQL…………………… Structured Query Language

ERD…………………… Entity Relationship Diagrams

SSD…………………… Solid State Drive

PM…………………….. Physical Machine

VM……………………. Virtual Machine

H-OS………………….. Host Operating System

G-OS..………………… Guest Operating System

Appendices Appendix A:

Setting up the Application Testbed A.1 Installing a Web server ……………………………..…………………. 121

A.2 Setting up the web Application……………………………………….... 127 A.3 Building the database…………………………………………………... 130

A.4 Installing additional tools………………………………………………. 134

Appendix B:

The Manuel of the Application and Data Access

B.1 Inp t ……………………………………………………………………. 135

Page 13: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

XII

B.2 Process………………………………………………………………….. 137 B.3 Outputs…………………………………………………………………. 139 B.4 Database Access…………………………..……………………………. 141 B.5 Additional Components…………………..……………………………. 143

Appendix C:

Tutorials

C.1 PHP…………………………………………………………………… 148 C.2 SQL…………………………………………………………………… 153

Appendix D:

Questions and answers about choosing virtualization

solution

D.1List of Articles and Posts……………………….……………………… 156

Page 14: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

1

Chapter 1

Introduction

Virtualization is a widely used technology that allows users to consolidate

physical resources. Multiple operating systems can run simultaneously on one

single computer in a relatively safe and efficient manner. This facility generally is

known as hardware virtualization. Virtualization has many benefits and

advantages such as server consolidation, reduced power and cooling, green

computing, ease of deployment and administration, high availability and disaster

recovery [1] [2]. Consequently, most of computer manufacturers have aimed their

products to support virtualization technology. Virtualization systems and software

vendors have been competing with each other in the production of virtualization

hypervisors, platforms, and virtual machine managers such as Xen, Vmware,

OpenVZ, Linux-VServer, Oracle Virtual Box, Parallels, and others [3]. Hardware

vendors, on the other hand, started supporting virtualization by producing built in

–virtualization processors such as Intel-VT and AMD-V [4] [5]. Today, we have

many choices to construct our own virtualized environments.

Page 15: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

2

The diversity of virtualization solutions is abundant. However, by having many

remarkable choices, people sometimes become so confused that they are unable to

decide what solutions they should choose for establishing their virtualized

environments. Not only is this the problem, but there are many important

considerations related to virtualization concepts that users must be fully aware of.

Some organizations are asking whether they should virtualize their systems or not,

but the focus now is on how they should leverage virtualization in their

environment. Every virtualization technology operates in slightly different

manner. There are different approaches of virtualization such as Full-

virtualization, Para-virtualization, operating system-level virtualization, and

hardware virtualization. Each one has different architecture is appropriate to some

situation or need [6]. The diversity of virtualization solutions has opened the door

to an endless array of choices. More choices offer organizations greater flexibility

but can also introduce confusion and complexity.

Two terms of virtualization exist in the virtualized environments. They are similar

in the fact that a Virtual Machine VM as a Virtual Private Server VPS which is

known as the guest in a virtualized environment [7]. The difference between VM

and VPS is that a VM has its own guest operating system, no matter which kind

of operating system, referred as host operating system, the physical machine runs

on. VPS, on the other hand, uses the kernel of host operating system. Moreover,

the VPS technique is sometimes referred to a lightweight Virtual Machine. VPS is

commonly used to provide shared web hosting services and dedicated hosting

services for web services. Today, numbers of companies increasingly offer

Page 16: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

3

virtual private server hosting, or virtual dedicated server hosting as an extension

for web hosting services.

1.1 Motivation:

For experts, configuring an efficient virtualized environment requires a lot

of effort to research and analyze existing results through papers, perform

experiments and so on. For naive users, this is a challenging task that requires

difficult trade-offs such as cost and performance. Even interpreting the suggested

configuration from an expert could be confusing. The cost is the consequences of

implementing many different configurations of hardware, software, operating

systems, applications, benchmarks and other requirements in order to perform

comparisons between virtualization technologies for producing the best solution.

In fact, the confusion happens when there are so many conflicting results in

existing papers. Figures 1.1 and 1.2 show how Xen performs better than VMware

in one experiment, nevertheless VMware performs better than Xen in another

experiment [8] [9].

Page 17: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

4

Figure 1.1. Relative performance of native Linux (L), XenoLinux (X), VMware workstation 3.2

(V) and User-Mode Linux (U)

Figure 1.2. Passmark – CPU results compared to native (higher values are better)

This is compounded by the fact that organizations are sometimes totally different,

with their hardware, purposes, software, technical compositions, business

constraints and missions. Therefore, it is hard to propose an ideal virtualization

Page 18: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

5

technology. However, because of the benefit for improving the cost, performance,

and management; there is an assertive need for an easy to use a model for

configuring efficient virtualized environments .

In this research, I propose to develop a model for suggesting virtual environments.

The model needs to consider given specifications such as hardware

configurations, virtualization platforms, and other considerations in order to

produce practical results. Through an iteration process, I hope to refine the model

to improve the accuracy of its suggestions. Research work in the area of analytical

modeling of Internet applications and underlying server environments produces

different results. Accounting for the capacity provisioning is needed to determine

Internet application service workload. Performance prediction needs determine

response time of the application for a given workload of a specific hardware and

software configuration. This research work can also include bottleneck

identification and tuning to identify system metrics for performance tuning.

Included is application configuration to enable identification of various

application configuration parameters to determine performance goals. The process

of configuring virtualization environments of applications to achieve performance

goals can be enhanced to produce a better approach to making virtualization

decisions. The proposed research focuses on the model of application

configuration.

Page 19: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

6

1.2 Contribution:

I propose a model for users to configure efficient virtualized environments. The

scenario of this model uses user interests, considerations, or configurations as

inputs for algorithmic outputs. The output results are used as a guide contains

suggestions to construct a virtualized environment. The model will help to

efficiently configure virtualized environments in an easier way and reduced cost.

It would also help the users to minimize unexpected events driven by inefficient

configurations. It would be a guide for people who are not experts in

virtualization or who cannot afford the cost of virtualization configurations and

tests.

1.3 Related Work:

1.3.1 Optimizing utilization of resource pools in web application servers:

This research work in the area of modeling underlying server environments

produces different results [10]. It can also include bottleneck identification and

tuning to identify system metrics for performance enhancement. In addition, it

includes identification of different application configuration parameters to

determine performance goals. MCEVE is a process of configuring virtualized

environments to achieve performance goals by producing better decisions of

making virtualized environments. MCEVE is focused on the model of application

configuration.

Page 20: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

7

1.3.2 Quality in use: Meeting user needs for quality:

This paper describes a framework for software product quality developed for

different type of quality [11]. First type is internal quality which is astatic

properties of the code. Second type is external quality that indicates behavior of

the software when it is executed. Last type is quality in use which is the extent of

whether the software meets the needs of the user or not. The paper defines the

quality in use as a broader view of different concepts such as functionality,

reliability, usability, efficiency, and the like. This framework is needed for

evaluating the MCEVE software or application.

1.3.3 A Quality of Service Management Framework Based on User

Expectations

This paper presents a quality of service management framework based on user

expectations by collecting expectations as well as ratings from the users of a

service then calculating the quality of the service [12]. This approach does not

allow the user to specify, for example, the minimum and maximum expectations.

MCEVE is also based on user expectations; however, it allows the user to specify

weights of these expectations .

1.4 Beneficial Goals:

We consider two beneficial goals of implementing the MCEVE model: Cost

Benefit and Performance Benefit.

Page 21: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

8

1.4.1 Cost Benefit:

Cost Efficiency refers to the user who can save time by adopting the appropriate

decisions resulting in hours configuring virtualized environments instead of

spending days researching and comparing existing results. Moreover, the cost can

be reduced by the use of existing reliable results instead of performing tests and

experiments that cost money and time. In fact, the model helps users to configure

virtualized environments in an easier and reduced cost. It helps them to minimize

the cost of unexpected events driven by inefficient configurations. It can be used

as a guide for those who are not experts in virtualization or who cannot afford the

cost of virtualization configurations and tests. By using the Model, a user is able

to configure his preferred virtualized environment and receive suggested results

within min tes. At this point, the Model saves the ser’s time and money to

configure one or more virtualized environments.

1.4.2 Performance Benefit:

Performance can be enhanced by using solutions that are based on the best

performance comparisons. In fact, trying different unbeknown solutions may have

potential failures in their configurations which may lead to inefficient virtualized

environments. The Model, however, produces efficient virtualized environments

that have been tested by trustworthy benchmarks such as SPEC published results

that have been initially used in the Model. I believe it would a safe and trusted

method to use the same configurations that are given by the MCEVE model to

Page 22: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

9

build efficient virtualized environments since these configurations have been

tested that they can accomplish certain criteria of performance. For example, a

user needs a high response time webserver; he can highly scale priority to the

Model. After that, the Model model considers highly response time webserver

criterion when it processes the user inputs to produce the most efficient

configurations that meet his expectations.

1.5 Thesis Outline

This thesis report explores various aspects of virtualization and finds the

advantages and disadvantages of each type. In addition, I will consider the

security, usability, and other challenges in existing virtualization types. I will

provide examples of existing virtualization platforms and define them in order to

categorize them based on multi-dimensional considerations according to specific

modeling. These considerations consist of many aspects such as performance,

security, power consumption, utilization, and usability. However, it would be

difficult to explore these considerations within a semester period. Therefore, I

used specific considerations as explained in Chapter 5 to ensure the functionality

and the accuracy of the Model.

Page 23: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

10

Chapter 2

Virtualization Technology

2.1 Introduction to Virtualization:

“ he virt al world” is different from “the real world” only in h man life, while

possessing a similar principle or effect. In the computer world, a virtual

environment must be the same as that of a real environment by applications,

though the underlying mechanisms are formally different. Usually, the virtual

environment suggests a misleading image of a machine that has less capability

compared to the physical machine [13]. In computer terms, virtualization literally

describes the separation and isolation of physical machine resources, applications,

and services fairly and securely. Virtualization can be defined as processing of

physical servers to create logical partitions of virtual servers to handle other

applications and distribute workloads [1]. Virtualization has rapidly become a

prime technology for increasing efficiency since it provides incredible flexibility

by allowing different architectures to be deployed on a single machine.

Page 24: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

11

Virtualization is a framework of allocating the resources of a single physical

server by implementing multiple isolated logical partitions on the server [14]. To

better understand virtualization, envision a traditional physical computer as one

instance of the operating system that supports one or more application programs.

Moreover, a virtualized computer is a single physical computer that runs software

that abstracts the physical comp ter’s reso rces so that they may be shared

between multiple virtual instances. Virtual instances run their own operating

systems separately so that if any virtual instance crashes, it cannot affect all the

other virtual instances [15]. Virtual machines or guests cannot run without

implementing virtualization environments or platforms that decouple the host

hardware from the host operating system. While this method provides more

operational flexibility, it increases the utilization rate of the underlying physical

machine. Virtual machine concept was in existence since 1960s. It is a refined and

explicit way to enable sharing resources efficiently on the highly expensive

hardware [13]. A virtualization layer provides infrastructural support using the

lower-level resources to create multiple virtual machines that are independent of

and isolated from each other, thus a Virtual Machine Monitor virtualization layer.

Traditionally, VMM is used as a virtualization layer right on top of the hardware

and below the operating system [13]. A hypervisor is an operating system that sits

at the lowest levels of the hardware environment [16]. The hypervisor has become

an ideal delivery mechanism by allowing the same application on lots of systems

without having to physically copy that application onto each system. The

hypervisor architecture can load any different operating system as though it were

Page 25: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

12

just another application. It is a very practical way of getting things virtualized

quickly and efficiently.

2.2 Types of virtualization:

2.2.1 Native Virtualization:

Native virtualization influences hardware support for virtualization within a

processor itself to assist in the virtualization effort [17]. It does not emulate a

processor; however, it allows multiple unmodified operating systems to run

together and enables the capability of running on the host processor directly. Intel

and AMD started producing virtualization supported processors in 2006 through

the Intel-VT and AMD-V virtualization extensions.

Figure 2.1. Native Virtualization Architecture

Native virtualization reduces the maintenance overhead to considerably obtain

better performance and restricts eliminates the amount of changes needed in the

Page 26: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

13

guest operating system. Native virtualization, on the other hand, requires explicit

support in the host CPU and it is unavailable on all x86/x86_64 processors [18].

2.2.2 Full virtualization:

Full virtualization is nearly complete simulation of the actual hardware to allow

unmodified guest operating system to run on one single machine [18].

Figure 2.2. Full Virtualization Architecture

Page 27: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

14

The benefit of full virtualization is to function transparently from the perspective

of the guest OS [19]. Full virtualization eliminates configuration changes that are

required on the guest OS or applications running under that guest. However, full

virtualization in term of system performance can be negatively impacted based on

the workload. The reason of the impact is that the virtualization software creates a

layer of translation that takes time [7].

2.2.3 Paravirtualization:

Paravirtualization uses a hypervisor, and also uses the term virtual machine to

refer to its virtualized operating systems. Unlike full virtualization,

paravirtualization requires changes to the virtualized operating system to allow

the VM to coordinate with the hypervisor that reduces the use of the privileged

instructions that are responsible for the major performance penalties in full

virtualization [19]. Paravirtualization is occasionally referred to as partial

virtualization because it eliminates considerable overhead of trapping and

emulation. However, paravirtualization requires some modification for the guest

operating system to be aware that it is running virtually and managed by the

hypervisor. The cooperative agreement between the guest operating system and

hypervisor guarantees the performance enhancement. Moreover, in order to

modify the guest operating system, the source code of the guest operating system

has to be available [18].

Page 28: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

15

Figure 2.3. Para Virtualization Architecture

In general, paravirtualization performs efficiently compare to the other forms of

virtualization; however, it requires the use of a specially modified guest operating

system that understands how to maintain the virtualizing illusion.

2.2.4 Kernel-based Virtual Machine

Kernel-based Virtual Machine (KVM) is a virtual machine implementation using

the operating system's kernel to improve virtual machine performance [20]. KVM

supports native virtualization on x86 processors that provide Intel-VT or AMD-V

extensions; however, Kernel-based Virtual Machine is independent of native

virtualization as well.

Page 29: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

16

Figure 2.4. Kernel Level Virtualization Architecture

KVM Hypervisor is indeed a specialized operating system, but it differs only in

that it runs virtual machines rather than applications [21].

2.2.5 Operating system-level virtualization

Operating system level virtualization is unlike both paravirtualization and full

virtualization, operating system-level virtualization does not rely on a hypervisor

[7]. Instead, the host operating system is modified to securely isolate multiple

gusts of an operating system within a single host machine. In this method of

virtualization, a guest is often referred to as a virtual private server (VPS) [22].

Operating system-level virtualization features with nearly native performance

because there is no hypervisor or instruction trapping is necessary. Another

advantage of operating system-level virtualization is that fewer resources are

consumed as there no multiple kernels. However, all virtual private servers share

Page 30: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

17

a single kernel; each virtual private server has flexibility to have own operating

system. In addition, these virtual private servers may get compromised or crashed

if the kernel is damaged.

Figure 2.5. Operating system-level Virtualization Architecture

2.2.6 Emulation:

Emulation can be described as replicating a certain computer platform or program

on another platform or program [23]. Emulation is a general technique that

requires the implementation of real hardware completely in software that allows a

guest to interact a virtual device. The emulated virtual devices serve as an adapter,

converting an unsupported interface to a supported one. Emulation enables

viewing documents or running programs on a computer not designed to do so as

pictured in the Figure below.

Page 31: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

18

Figure 2.6. Emulator Architecture

2.3 Characteristics of virtualization

2.3.1 Isolation and consolidation:

This is the most important in virtualization when a virtual machine is isolated

and from the host physical machine and other virtual machines. As a result, in

case a virtual machine crashes, that cannot impact the other virtual machines.

Further, consolidation implies combining workloads from separate virtual

machines or applications into a smaller number of systems or applications. In

addition to consolidating existing workloads, virtualization also simplifies the

overview of new applications in data centers or IT centers.

Page 32: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

19

2.3.2 Separation and division:

This factor indicates the capability of virtualization to separate many guest

applications and operating systems within one single physical system. Therefore,

the physical system resources are divided between these gusts fairly and

accordingly to resources division method.

2.3.3 Encapsulation:

A virtual machine can be stored represented as a single giant file that contains

entirely the virtual machine operating system, applications, and files. This

encapsulated virtual machine can be presented to an application as a complete

entity that can protect each application so that it does not interfere with another

application.

2.3.4 Efficient utilization

Virtualization provides a mechanism to consolidate applications, along with

existing OS, middleware, and communications environments, on a single shared

system. Therefore, instead of running one application on one particular physical

server and filling data centers with partially used physical servers, each

application can be run one particular virtual server on top of one or a few physical

servers. In this case, efficient power saving and resources utilization can be

achieved using virtualization technologies.

2.3.5 Availability:

The availability means preparedness for providing services in any time these

services are needed [24]. A high available system through the use of virtualization

Page 33: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

20

is provided by the form of a primary/backup system in which before any outputs

are seen by the users, the replica that is in the form of a VM image is updated

with the new changes received. So backup is synchronous with the primary one in

the checkpoints. Virtualization platforms maintain the consistency and track any

changes or updates to provide a high as possible of services availability.

2.3.6 Reliability:

A system is reliable if it has continuousness in providing its services. For

example, in case of occurrence of a fault in a part of the system, the whole system

should not stop providing its services [24]. In other words, different parts of the

system should be isolated from each other and virtualization can provide this

required property. Virtualization offers reliable environments where replacement

virtual guests can be immediately and predictably accredited.

2.3.7 Safety:

A safe execution environment is an environment that is provided with safe object

bounds for all operations. These operations must have safe and controlled flow

that facilitates the safety for the entire virtualized system. Virtualization provides

a safe environment to securely execute concurrent operations [24].

2.3.8 Integrity:

The integrity of underlying system is one of the fundamental goals in building a

dependable virtualized environment. A hypervisor is used as trustworthy system

for managing each access or request that comes from a Virtual guest [24].

Therefore, the Hypervisor is the responsible of protecting the host kernel integrity

Page 34: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

21

from any attack so that no executions in kernel mode occur without user

authorization. For example, the hypervisor is able to resist any attack comes from

a virtual guest trying to compromise the host system or the host resources.

2.3.9 Resources allocation:

Virtualization can provide the ability of resources provision when a guest

demands for more resources. Most virtualized software environments provide

utilities that enable operational tasks such as provisioning new virtual servers. For

this particular task, the allocation and reallocation of virtual resources can be

accomplished at the run time although.

2.3.10 Live migration:

Live migration means that a virtual machine can be moved immediately from one

server to another with zero down time. Live migration Presents a continuous

practice to the end user and maintains availability guarantees. Virtualization

software developers and processors vendors have worked cooperatively to define

the functionality necessary to ensure that live migration is achievable across a

broad range with no interruption to services. Virtualization greatly eases the task

of application migration to new versions of operating systems for both client and

server applications. Virtualization may even alter the way organizations deploy

desktop technology.

2.3.11 Power Efficiency

The use of virtualization decreases the number of physical servers which

absolutely reduces the power consumption and the energy waste. Not only does it

Page 35: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

22

help us in saving the power, but also virtualization reduces the heat that is

produced by the huge number of physical servers that require cooling and air

conditioning. A cloud computing server center can add up the total usage of the

energy demands of a whole server farm with incredible results [25].

2.4 Applications of virtualization

2.4.1 Education:

Virtualization can be a great tool in Education felid for implementing research

and projects environments [26]. Prof. Xiaobo Zhou, who is the Chairman of the

Department of Computer Science, University of Colorado at Colorado Springs

and the director of the Distributed and Internet Systems Lab, uses virtualization

for implementing and eval ating his and his assistants’ research and projects [27].

For teachers and students, virtual Labs can be accomplished to create as many

virtual machines as they need. Further, virtualization is beneficial for training that

removes configuration issues from trainers and trainees. For example, Dr. Edward

Chow, who is a professor the Department of Computer Science, University of

Colorado at Colorado Springs, uses virtualization for his students to learn,

configure, and test LVS DR cluster [28].

2.4.2 Software Evaluation:

Virtualization fairly provides a simple platform to evaluate different Software on

one machine. It although Enables the compatibility between Software and

Page 36: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

23

underlying hardware to test features and evaluate Software. Software developers

use a hosted VM for running, testing, and evaluating software generally to avoid

any violation that software may cause at the evaluation duration to not damage the

underlying system.

2.4.3 Enabling the dynamic data center

Virtualization takes the physical boundaries of servers and makes them logical

boundaries, based on resources needed. When servers need to be virtualized, VMs

can be easily moved among physical machines and dynamically reconfigure.

2.4.4 Cloud computing

Cloud computing has become demanded with the explosive growth of social

media sites and the resulting demands. Virtual machines make the cloud possible

because each physical server in the cloud can serve many different purposes at the

same time. It can be said that virtualization of servers is a core foundation of

cloud computing [25].

2.4.5 Load Balancing

Virtualized clusters can implement Load Balancing using virtual machines rather

than using hardware nodes. The example that mentioned above describes Load

Balancing using The Linux Virtual Server-based cluster for real servers that

provides a load balancer running on the Linux operating system [29].

Page 37: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

24

2.4.6 Grids

Virtualization based Grids enable configurable VMs and virtual I/O devices to be

placed in grids on server farms anywhere in the world. Amazon Elastic Compute

Cloud (EC2), for example, presents a true virtual computing environment by

allowing customers to launch instances with a variety of operating systems, place

instances in multiple locations, load them with custom applications, manage

network’s access permissions, and run images using as many or few systems as

customers desire [30].

2.4.7 Information Technology Departments:

Virtualization is not limited to the server since the evolving concept of that

desktop virtualization helps Information Technology administrators to create and

manage “desktop virt al machines” on servers within data centers. End users can

access desktop environments at any time and from anywhere through the concept

of desktop virtualization.

2.4.8 Disaster Recovery

The rapid adoption of virtualization technologies has fundamentally changed the

way organizations view the data center. Virtualization is capable to move, copy,

protect and replicate entire server workloads as aggregated units between physical

hosts and virtual guests, which help many organizations to achieve operational

efficiencies and cost savings. The virtualized recovery server can be activated to

take over the running of the workload immediately. The workload can be kept

running in the virtual recovery environment until the primary server has been

Page 38: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

25

restored, at which point the workload can be moved back to the restored server

via virtual-to-physical workload replication. Recovery time and point objectives

are achieved without the need for high-cost, complex clustering environments

[31].

2.4.9 Personal use:

User uses Virtualization on their desktops or laptops to provide Security client PC

using VMs instead of separate PC identities. Therefore, they can avoid risks that

come from installing or trying unknown software. VMs are only files on host

system, so if get corrupted, they can be deleted and re-created or recovered easily

using existing snapshots. Another use when users want to run Linux-based

software on Windows computer; so they can achieve that using desktop

virtualization platforms.

2.5 Virtualization Projects:

2.5.1 Xen:

The Xen hypervisor is para virtualization software running directly on computer

hardware replacing the operating system to allow the computer hardware to run

multiple guest operating systems concurrently [32]. Xen currently supports Linux,

NetBSD, FreeBSD, Solaris, Windows, and other common operating systems as

guests running on the hypervisor. Xen hypervisor is developed and maintained by

the Xen.org community. Xen is a free solution licensed under the General Public

Page 39: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

26

License (GNU). Xen hypervisor consists of three components: Firstly, Xen

hypervisor that runs directly on the hardware and becomes the interface for all

hardware requests such as CPU, I/O, and disk for the guest operating systems and

manages security and independency of the guest. Secondly, Domain 0 Guest that

has exclusive privileges to access the Xen hypervisor that is not allocated to any

other Domain Guests. These privileges allow it to manage all aspects of Domain

Guests such as starting, stopping, I/O requests, and the like. Thirdly, Domain

Guests that independently operate on the system; however, they are launched and

controlled by the Dom0. These guests are either run with a special modified

operating system referred to as paravirtualizion or un-modified operating systems

leveraging special virtualization hardware such as Intel VT and AMD-V, which is

known as hardware virtual machine (HVM).

Figure 2.7. Xen Architecture

Page 40: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

27

2.5.2 VMware:

VMware introduced Full virtualization solutions to x86 systems to address many

of these challenges and transform x86 systems shared hardware infrastructures

that offer full isolation, mobility and operating system choice for application

environments . VMware developed an adaptive virtualization technique that traps

these instructions as they are generated and converts them into safe instructions

that can be virtualized, while allowing all other instructions to be executed

without intervention. This results in a high-performance virtual machine that

matches the host hardware and maintains total software compatibility. VMware

founded this technique and is today the undeniable leader in virtualization

technology. VMware allows multiple operating systems to run unmodified and at

the same time on a standard PC by providing an abstraction of x86 PC hardware

without requiring special hardware support. VMware provide free virtualization

platforms such as VMware Server and enterprise virtualization platforms such as

VMware ESXi and VMware vSphere [33].

Page 41: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

28

Figure 2.8. VMware Architecture

2.5.3 Windows Server 2008 R2 – Hyper-V:

Windows Hyper-V virtualizes the system resources of a physical computer,

allowing a virtualized environment for operating systems and applications [34].

Hyper-V is typically used for server computer virtualization. Windows Hyper-V

consist of three core areas of improvement for creating dynamic virtual data

centers: Increased availability for virtualized data centers, Improved management

of virtualized data centers, and A simplified method for physical and virtual

computer deployments by using *.vhd files . Figure 2.9 shows how Hyper-V

looks.

Page 42: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

29

Figure 2.9. Windows Server 2008 R2 Hyper-V Architecture

2.5.4 OpenVZ:

OpenVZ is an operating system-level virtualization platform. It is a free open

source virtualization solution that virtualizes servers on the operating system

kernel [35]. OpenVZ simply adds a new layer on top of the operating system to

manage every virtual guest which is called a container. In OpenVZ, the physical

machine that is running OpenVZ is called a host System and a running instance is

called a Virtual Private Server (VPS) . The performance of OpenVZ is closed to

the native performance of the machine (See chapter 3). This indeed makes

OpenVZ a good choice for server consolidation especially for web hosting.

OpenVZ is based on Linux operating system and it only runs in Linux

distributions . It takes a few minutes to setup one container using OpenVZ. This is

because of the usage of Operating System Templates [36].

Page 43: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

30

Figure 2.10. OpenVZ Virtualization Architecture

2.5.5 Red Hat Virtualization RHEV:

The Red Hat RHEV is a Kernel-based Virtual Machine (KVM) virtualization

hypervisor [37]. RHEV hypervisor inherits the scalability, security, and

performance of the enterprise-hardened Red Hat Enterprise Linux kernel. Because

RHEV is a KVM hypervisor, it implements an advanced and efficient

virtualization as a Linux kernel module. According to Red Hat, RHEV hypervisor

allows nearly native performance – up to 95% performance for real world

enterprise applications. RHEV hypervisor para-virtualizes network and drivers to

run Red Hat Enterprise Linux and Microsoft Windows virtual machines.

Page 44: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

31

Figure 2.11. Redhat RHEV Virtualization Architecture

2.5.6 Virtuozzo:

Virtuozzo is an operating system-level virtualization platform that is built on the

OpenVZ virtualization project [38]. Virtuozzo provides a universal layer from

which all system resources are allocated across every virtual server. Moreover,

Virtuozzo utilizes native kernel processes that produce very low overhead and

native kernel utilization. Therefore, Virtuozzo can run virtual private servers that

achieve closely native performance. The light overhead and efficient design of

Virtuozzo makes it a great virtualization choice for virtualized web hosting

solutions [39].

Page 45: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

32

Figure 2.12 Parallel Viertuozzo Virtualization Architecture

2.5.7 Virtual box:

VirtualBox impalements x86, AMD64, and Intel64 virtualization for both

enterprise and home use [40]. While VirtualBox provides high performance, it

does not require hardware virtualization. It is freely available as Open Source

Software under the terms of the GNU General Public License (GPL). VirtualBox

runs on Windows, Linux, Macintosh, and Solaris hosts and supports a large

number of guest operating systems including Windows, DOS, Linux, Solaris and

OpenSolaris, OS/2, and OpenBSD [41].

Page 46: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

33

Figure 2.13. Oracle Virtualbox Virtualization Architecture

2.5.8 Linux-VServer:

Linux-VServer is an operating system-level virtualization that enables virtual

private server implementation [42]. Linux-VServer is Linux kernel based that is

developed and distributed as open source software. Linux-VServer provides

virtualization for GNU/Linux systems. It allows to run multiple virtual units at

once using kernel level isolation. Those units are sufficiently isolated to guarantee

the required security, but utilize available resources efficiently, as they run on the

same kernel. The basic concept of the Linux-VServer solution is to separate the

user-space environment into distinct units which are called Virtual Private

Servers. Based on this concept, Linux-VServer allows several guests to run

simultaneously, shared one single kernel, and share the resources in a very secure

and efficient way.

Page 47: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

34

Figure 2.14. Linux VServer Virtualization Architecture

Page 48: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

35

Chapter 3

Virtual Guest

3.1 Introduction:

Two terms of virtualization exist in the virtualized environments. They are similar

in the fact that a Virtual Machine VM as a Virtual Private Server VPS which is

known as the guest in a virtualized environment. The difference between VM and

VPS is that a VM has its own guest operating system, no matter which kind of

operating system, referred as host operating system, the physical machine runs on.

VPS, on the other hand, uses the kernel of host operating system. Moreover, the

VPS technique is sometimes referred to a lightweight Virtual Machine [8]. The

word “g est” is sed to refer to the virt alized operating system tilized within

any of the above virtualization methods explained in Chapter 1. Therefore a guest

can be used for either a virtual machine in full-virtualization and para-

Page 49: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

36

virtualization or a virtual private server in operating system -level virtualization

[7]. This chapter is focused conceptually on virtual gusts, the differentiation

between virtual private server and virtual machine, and indicating some

considerations of virtual guests.

3.2 Virtual Machine:

Virtual machine VM is a machine that actually does not exist as a matter of actual

physical reality; however, it is basically software that is running as it is a physical

machine. The virtual machine mechanism is one of the smartest approaches in the

history of technology; it is a vast revolution and a crucial improvement in the

software evolutions. David Gelernter describes a virtual machine as “a way of

understanding software that frees us to think of software design as machine

design" [43]. Wikipedia defines a virtual machine as a software implementation of

a machine that behaves like a physical machine [44]. A virtual machine provides

an independent system platform which supports the execution of a complete

operating system. The main essential characteristic of a virtual machine is that it

is limited to the resources and abstractions provided by the underlying hypervisor.

Moreover, a virtual machine is a forcefully isolated that can run its own operating

systems and applications regardless of being running on top of a physical

computer. Clearly, a virtual machine behaves just like a physical computer since it

owns virtual software-based CPU, RAM, hard disk and network interface card

NIC. That means an overloaded virtual machine cannot impact other virtual

machines which are running on the same physical machine. In some

Page 50: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

37

virtualization types, like Full-virtualization, virtual machine operating system

cannot tell the difference between being running as a virtual machine and a

physical machine. Even applications or services cannot differentiate between the

two cases. However, in case of Para-virtualization type, a virtual machine must be

notified that is running virtually in order to speed up the performance. Xen, for

example, requires guest operating system modification to run in para-virtual mode

that the guest operating system understands virtualized environment to obtain

high performance and better resource isolation [45].

3.2.1 Virtual Machine Architecture

Virtual machine directly interacts with device resources to lower system levels in

such a way that higher-level application layers are unaffected. That allows

multiple operating systems run concurrently on a single physical machine. Figure

3.1 demonstrates the architecture of virtual machine technology.

Figure 3.1. Virtual Machine Architecture

Page 51: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

38

The virtual machine architecture consists of the following Virtual resources

which are the specifications which a physical server consists of, the guest

operating system that manages the physical computer resources and application,

and Applications that are running on top of the virtual machines. The virtual

machines run on the physical server using its processors virtually. Each virtual

processor runs on its own thread. Virtualization layer forms a context for each

virtual machine that consists of an address space to completely separate virtual

machines from each other, even from the host operating system.

3.3 Virtual private server

A Virtual private server is a software based virtualization environment that is

called Operating system-level virtualization. Operating system-level virtualization

is defined as a server virtualization method that instead of just having one server,

the kernel allows multiple isolated virtual private servers to run concurrently

using the same operating system hardware. In top of that, the kernel provides

resource management features to limit the activities impacts between the virtual

private servers. A virtual private server actually requires the main physical

machine resources. As stated in Section 3.4, a virtual private server lies mainly in

performance because there is no hypervisor instruction trapping is necessary in

operating system-level virtualization. As a result, a virtual private server performs

nearly as a native physical machine performs. A virtual private server sometime is

named differently such as jail, container, instance and the like. The naming

depends on how they are implemented and what the vendors like to named their

Page 52: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

39

approaches uniquely. In general, A virtual private server features with using a

single kernel instance that fewer resources are consumed due to the operating

system overhead of multiple kernels running concurrently compared to a virtual

machine. However, since all virtual private servers share a single kernel,

whenever the kernel crashes or is compromised, all virtual private servers are

compromised as well. Operating system-level virtualization implements the

capability of live migration dynamic load balancing and cluster between virtual

private servers on a single physical server [46]. This kind of virtualization

normally is aimed to web hosting environment because each host machine can run

many virtual private server compared to running virtual machines. Virtual private

servers bridge the gap between shared web hosting services and dedicated hosting

services, giving independence from other customers of the VPS service in

software terms but at less cost than a physical dedicated server. At this point, we

can use Virtual private servers as the right solution to provide independent servers

with not much cost. In addition, by providing the reliability and the flexibility to

Virtual private servers, they can be trusted and used in most types of businesses.

Virtual private server scheme works basically by having many kinds of virtual

web servers on top of an actual or physical web server. Each Virtual private

server shares certainly a given amount of the physical server resources. As a

result, other busy or overloaded Virtual private servers cannot affect their

neighbor web servers. This property is considered the most significant feature of

virtual private server efficiency.

Page 53: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

40

3.3.1 VPS Architecture

Virtual private server architecture is based on operating system-level

virtualization that provides the most effective utilization of hardware, software,

and server resources. Each virtual private server performs independently like a

stand-alone server.

Figure 3.2. Virtual Private Server Architecture

In fact, there are at least three prime elements for virtual private server

architecture: System libraries, System software, and Applications.

3.4 Performance comparison between VM and VPS

This section addresses High-performance computing HPC performance

comparisons between different virtualization platforms that cover three prime

virtualization types such full-virtualization, para-virtualization, and operating

system -level virtualization [7]. The evaluation includes the following

virtualization platforms:

Page 54: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

41

# Platform Type Version

1 VMWare Server full virtualization 1.0.21

2 Xen paravirtualization 3.0.4.1

3 OpenVZ OS-level virtualization 2.6.16 Table 3.1 Evaluated virtualization platforms

In general, the analysis shows that none of them reached the performance of the

base system perfectly. However, OpenVZ efficiently produced low overhead and

high performance in both file system performance and industry-standard scientific

benchmarks, but additional work must be performed to improve the network

bandwidth performance while also minimizing CPU utilization. Xen, on the other

hand, demonstrated efficient network bandwidth. Moreover, VMWare Server

demonstrated reasonable CPU-bound performance

Figure 3.3. Comparison of latency performance by different message sizes

As shown in Figure 3.3, OpenVZ preformed almost like the base system. Xen

preformed nearly native performance in data transfer with double latency

compared to the base system. However, VMware server caused more than triple

Page 55: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

42

times latency compared to the native system performance due to the extreme

virtualization overhead in the full virtualization. Therefore, the order of

virtualization based their performances was Operating system-level virtualization,

para-virtualization, and lastly full-virtualization. And this order emphasize that

while Xen may perform exceptionally well in applications that move large

amounts of data, it is questionable to overtake OpenVZ on applications that

require very low-latency network traffic such as web services.

Figure 3.4. Comparison of read and write performance by different file sizes

Figure 3.4 shows the results of both the reading and writing examinations for the

base system, OpenVZ, and Xen. In fact, I was surprise why VMware server is not

included in this particular experiment. Nevertheless, the results show that

OpenVZ achieves near native performance of file system operations when

compared to the base system while Xen produced overheads of up to 46% and

Page 56: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

43

40% in the reading and writing meas rements d e to the overhead of Xen’s

virtualized IO subsystem.

3.5 Virtual Guest Features

3.5.1 Abstraction:

A virtual machine hosts its own guest operating system, services, and

applications. In addition, it is provided with the components found in a physical

computer such as processor, motherboard, VGA card, network card, and other

components. In fact, it reaches these components and uses them as if they are

owned by the virtual machine. Because of this abstraction, virtual machines have

the complete ability to run software that can be run on a physical computer.

3.5.2 Isolation

Each virtual machine can share the host physical resources; however, it remains

completely isolated from other virtual machines. Virtual machines operate

separately as if they are separated physical machines. Assuming there is a one

single physical machine and on top of it there are several virtual running

machines. If one of these virtual machines is being overloaded and its memory

and swap memory are totally consumed, that will not impact the performance of

the remaining virtual machines. The reason of the availability and security of the

virtual machines is the isolation factor.

Page 57: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

44

3.5.3 Encapsulation

To understand the idea of the encapsulation, imagine when a virtual machine is

contained in a can that constricts its impact of using virtual hardware resources.

Fundamentally, a virtual machine is a software container that completely

encapsulates a set of virtual hardware resources, an operating system,

applications, and services inside a giant file. Therefore, virtual machines can be

easily managed, copied and moved locally or remotely.

3.5.4 Hardware Independence

This term is important since virtual machines need to be absolutely independent

from the underlying physical machine hardware. Because of the hardware

independence, different virtual machines on top of single physical machine are

able to run different operating systems like Windows or Linux [47].

Page 58: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

45

Chapter 4

Proposed Model 4.1 Introduction:

As shown in Figure 4.1, individuals and businesses have differentiations in their

thoughts and perspectives in virtualizing computers. These differentiations are

compounded by the fact that sometimes people decisions of virtualize their

systems are based on the cost, performance, management, software, technical

compositions, business limitations and other effective influences.

Figure 4.1. Different opinions lead to different decisions

Page 59: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

46

Consequently, it is inflexible to propose an ideal virtualization technology.

However, because of the benefit for improving the cost, performance, and

management, there is a need of a way to use a model for configuring efficient

virtualized environments .

I propose to develop a model for users to configure efficient virtualized

environments. The scenario of this model uses user interests, considerations, or

configurations as inputs for algorithmic outputs. Figure 4.2 indicates that the

MCEVE model can enclose the gap between different considerations to meet user

expectations. The output results are used as a guide contains suggestions to

construct a virtualized environment.

Figure 4.2. combined views

The MCEVE model will help to efficiently configure virtualized environments in

an easier reduced cost. It would also help them to minimize unexpected events

driven by inefficient configurations. It would be a guide for people who are not

Page 60: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

47

experts in virtualization or who cannot afford the cost of virtualization

configurations and tests.

4.2 The MCEVE Model Components:

The MCEVE model is composed of user inputs, an algorithm, and outputs.

4.2.1 User Inputs:

Important user inputs used as multi-dimensional considerations:

1) Hardware: The MCEVE model lists some hardware configurations that have

been added to the database with measurements. These configurations can be CPU

speed, RAM, Capacity and the like.

2) Platforms: This aspect of inputs is important because it is a serious goal of

configuring virtualized environment. In this part, the MCEVE model lists

virtualization technologies that have been tested and added to the database.

3) Constraints: The user may need to restrict the result by constraining the results

to meet his/her expectations.

4) Measurements: The MCEVE model needs facts to determine the best selection

that a configuration is better than another configuration. These facts are existing

measurements that have been expressed formerly, detailed in Chapter 5.

5) Weights: for each measurement the user determines how high or low the

MCEVE model has to consider the measurement by weighting it from 0 to 10 as

low to high, detailed in Chapter 5.

Page 61: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

48

These considerations are fundamentally optional, assuming some time the user is

unable to decide or he is not expert to choose the ideal considerations. In this

case, the user can leave the MCEVE Model to decide and suggest the right

solutions based on the provided considerations and parameters. In this research,

the scope of the inputs including specific parameters is explained in Chapter 5.

4.2.2 Configuration Recommendation Algorithm:

The MCEVE model has some algorithmic scenarios requiring user inputs that

must be considered in each stage based on various parameters that have been

performed. The MCEVE model uses the user inputs as criteria so that based on

the parameters it figures out good solutions to the user. The MCEVE model has to

be precise to use as many as possible considerations; however, this results in

increased complexity of the algorithmic model. Basically, the algorithm has three

main stages:

Figure 4.3. the simple Diagram of the MCEVE model algorithm

4.2.3 Outputs:

The MCEVE model produces the best selections “outputs” based on the available

parameters after considering the ser config rations “inp ts”. The outputs consist

of which hardware and virtualization technologies ordered by the best selections

based on the user weighted considerations. Overall, the outputs give the user an

overview of what and which configurations meet his demands.

Input Process Output

Page 62: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

49

4.2.4 Database:

It is a warehouse for the numeric parameters which the MCEVE model extracts

and applies to the inputs to produces outputs. Obtaining these parameters is

detailed in Chapter 5.

4.3 The Algorithm of the Model:

Basically, the Model is supposed to process each configuration through sort of an

algorithmic operation. The operation seeks for the best value based on being

either positive or negative. Figure 4.4 explains how each operation must be

processed using this algorithm.

Page 63: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

50

Figure 4.4. The Algorithm of the Model

Conf: user configuration, Weight: user configuration weight, Measure:

benchmark measurement, W: Weight value, M: measurement value, Mix:

overall calculation, n: number of resulted solution, and best: best

selection of the overall results.

The algorithmic process starts by receiving three kinds of inputs: configurations

{conf0, conf1, conf2,…}, weights { weight0, weight 1, weight 2,…}, and

measurements { measure0, measure1, measure2, …}. hen the mixt re calc lates

the mixed weighted measurements based on the user configurations. After that,

the mixed results are arrayed for best selection process. Finally, arrayed results

are extracted and ordered based on the higher value as outputs.

Page 64: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

51

4.4 Mathematical and Logical Formulas:

There two important formulas that need to be applied on the MCEVE model

process:

1) Filtering:

There are two sets that need to be joined which are inputs and parameters. This

task helps the MCEVE model improve the configuration operation in terms of

time and accuracy. The fundamental idea here is to narrow the comparison

operation instead of processing through entire sets of parameters that are stored in

the database. Let M= {a,b,c, …} and P = { a,b,c, …} where a,b,c R (real

number) . Therefore, the filtered set F = M ∩ P. This operation needs to be

processed by performing a loop applies the intersection operation to incoming

data (inputs) and existing data (parameters) when doing the filtering parameters.

Loop1 looks like:

For example, if cost of a platform does not exist in the database, the MCEVE

model is supposed to ignore that platform when comparing cost.

2) Overall Weighted Considerations and Measurements calculation:

loop1

for each set m M do

function (f = m ∩ p)

Page 65: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

52

The equation above is performed to calculate the overall of each host and its

related measurements with each platform by calculating each measurement (M)

times the weight (W) that the user associates to this particular measurement. This

loop is considered as the bridge between loop1 and 3 since it calculates overall

measurements. The loop preforms two main operations: calculating weighted

measurements and compilation of results as one overall. For each operation the

loop2 is:

3) Best Mixed Selection:

The process is to determine the best results between the overall results that are

performed in the previous process. The best value is represented as the maximum

number of a set of values. Let set F= { a,b,c, …} where a,b,c, R. The Solution

S can be functionally obtained by S=max (F) where S R. This loop preforms

the comparisons of the best mix selection of the results that preformed previously.

Loop2

for each set m M do

function (f = m * w)

Loop3

for each set f F do

function (max (f))

Page 66: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

53

4.5 The Flow Diagram of the Model:

Figure 4.5. The simple Diagram of the MCEVE model workflow

The MCEVE model workflow consists of three primal transactions:

Input: this is the beginning of the MCEVE model operation when it receives user

inputs. Those inputs are used as matrixes for the MCEVE model to derive the

outputs.

Page 67: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

54

Process: this particular transaction would be the heart of the MCEVE model

functionality. Briefly, it receives user configurations then projects some functions

starting with filtering the existing parameters in the database based on the user

configurations. The MCEVE model preforms three main procedures that the

configurations, considerations, weights, and parameters fall under mathematical

and logical operations:

I. Calculates measurements based on the weighted inputs that come from the

user.

II. Calculates overall measurements.

III. Processes comparisons between the overall measurements to determine the

best mix selections as results.

Output: eventually, the MCEVE model projects outputs to the user in a format

that the user can understand. The MCEVE model shows humanitarian perspective

results that are read as solutions for virtualizing computers.

Page 68: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

55

Chapter 5

The Web-based Development of

the Model

5.1 Overview:

Because the web technologies enable the development of web applications, the

MCEVE model needs to be developed and implemented as a web based

application and deployed on the World Wide Web. However, before processing

the actual development of the MCEVE model application, it is so highly

recommended that the web application development process needs to be initially

accomplished. This chapter explains in detail the web software development

process of the MCEVE model. This is the fundamental base of the MCEVE

model implementation success. Of course, we need to emphasize that software

development process and software life cycle are accordingly synonyms. As the

book, which is used as a reference in this chapter, uses more the term software

development process; we prefer to remain and use the same term [48].

Additionally, in this chapter, we explain the execution of each software

development phases by introducing the basic concepts and accomplishments. The

Page 69: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

56

processed development is more specific to web application development using the

development model named “Web Modeling Lang age Model” detailed in section

5.2.

5.2 The Web Modeling Language Model (WMLM)

WMLM is defined as a development process for visually specifying the structure

of a web application and presenting actual contents in the form of hypertexts.

Figure 5.1 shows that the development life cycle of the MCEVE model undergoes

several stages, each one producing a prototype or a partial version of the

application development.

Figure 5.1. Phases in the WebML development levels

5.2.1 Requirements analysis:

Requirements analysis is the key aspect of project management since it

determines user expectations for a new or maintained application implementation.

Page 70: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

57

Requirements analysis depends on a wide interaction between various users or

groups of users to determine accurately the system expectations with resolution of

ambiguity in requirements. During executing the requirements analysis, the

documentation of all aspects of the project development process must be

completed. In fact, this stage requires a team effort which perhaps demands a

combination of hardware, software and human being for engineering the system.

However, since this software development is a simulation of the proposed Model,

I preform the team effort on the scope of the MCEVE model that can be done by

individuals without demanding professional skills. In this stage I attempt to

consider user expectations as the first requirements. In order to achieve this step,

we need to consider what has to be done by identifying the necessary system

architecture, structure, and workflow. Conceptually, the system cycle begins as

user inputs and ends with meaningful outputs back to the user. These inputs are

the user expectations when he/she wants to achieve an efficient virtualized

environment. The outputs, on the other hand, are the suggested solutions based on

algorithmic process that is applied to his/her inputs. In addition, we need to

identify the necessary task, action or activity that must be accomplished during

this step. Consequently, this mission covers as many required considerations as

the available timeframe permits. Thus, these considerations correspondingly

depend on the availability of the parameters, which explained previously in

Chapter 4, in order to acquire accurate results. As a result, the MCEVE model

utilizes the results that SPEC publishes on its website to maintain the accuracy of

Page 71: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

58

the MCEVE model functionality. Therefore, the requirements of the MCEVE

model implementation briefly are the following:

First: Users inputs:

1) Hardware configurations: The MCEVE model lists some hardware

configurations that have been added to the database with measurements. These

configurations can be CPU speed, RAM, Capacity and the like.

2) Platforms configurations: This aspect of inputs is important because it is a

significant goal of configuring virtualized environment. In this part, the MCEVE

model lists virtualization technologies that have been tested and added to the

database.

3) Constraints: This input is of the user who wants to restrict the result by

constraining them to meet his/her expectations.

4) Weights: For each measurement, the user determines how high or low the

MCEVE model has to consider the measurement by giving it a weight up to 10 as

low to high. Table 5.1 shows the consideration arrangements and their definitions.

Weight Meaning

0 Do not consider

1-3 Low

4-6 Medium

7-10 High

Table 5.1. Definitions of weight values

Page 72: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

59

Second: Algorithmic Process:

The MCEVE model has some algorithmic scenarios, which is explained in

Chapter 4, requiring user inputs that must be considered in each stage based on

various parameters that have been performed. The MCEVE model uses the user

inputs as criteria and figures out good solutions or advice based on the

parameters. The MCEVE model needs to be smart to use as many as possible

considerations; however, this increases the complexity of the algorithmic model.

Third: outputs:

Based on the existing parameters that the database contains, the MCEVE model

prod ces better selections after processing the ser's config rations “inp ts”.

Outputs consist of hardware and virtualization technologies that are ordered by

the best selections based on the user weighted expectations. Overall, the outputs

provide the user with an overview of what and which configurations can meet his

demands.

Fourth: Knowledge base

The MCEVE model needs a warehouse that contains numeric parameters which

can be extracted and applied to user inputs to produces outputs. These parameters

are existing measurements that have been expressed formerly by official

benchmarks such as SPEC. the MCEVE model functions based on these

measurements to determine the right configurations between many configurations

for the user. As mentioned in Chapter 2, there is a tremendous diversity of

virtualization choices that opens endless doors for providing parameters, which is

an important requirement. Hence, the big challenge here is that how to provide the

Page 73: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

60

MCEVE model with real measurements that could be used as permanent

standards. In fact, several existing papers that contain ambiguous hardware

specifications reveal different results. Those inconsistent results do not help to

coherently produce efficient solutions and probably affect the accuracy of the

Model. Moreover, performing actual measurements is expensive, needs a lot of

effort, and defiantly considerable time is required as well.

Fundamentally, there are different ways to provide the parameters, on which the

MCEVE model functions, to develop the proposal in real world. These parameters

could be obtained by the following:

1) Assumed measurements: This method is done by proposing hypothetical

parameters as if they were thorough real measurements. The objective of this

method is to experience the functionality of the MCEVE model only, not extract

the real solutions. However, by using assumed measurements, the MCEVE model

does not produce accurate or meaningful outputs. As a result, it may not be

possible to know whether the MCEVE model is working accurately or not. As

explained in Chapter 7, Section 7.2, I have performed a parameters prediction

algorithm; however, it was so hard to validate the produced parameters.

Consequently, I had to cancel this method due to the time frame and I am looking

to validate it in the future.

2) Actual measurements: This method is effectively and realistically related to

the structure of reality as possible. On the other hand, by using actual

measurements, the outputs typically are significant because they are done on

specified standard and can be prohibitive. Unfortunately, this is a highly costing

Page 74: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

61

method since it requires different kind of configurations that include hardware,

platform, software, and benchmarks. Not only does it require that, but also it

needs a lot of effort for setting up, configuring, and testing frequently these

configurations.

3) Existing measurements: This method is more realistic than the previous

methods where the parameters are obtained by using existing measurements that

are experienced by researchers in this area. In contract, by using existing

measurements from research, the parameters are not reliable because they were

performed on different unclear specifications. Therefore, these measurements may

not be significant to suggest solutions to users. Fortunately, if there are relevant

measurements have been published by trustworthy publishers, these

measurements can be used as consistent parameters that the MCEVE model

depends on to produces practical results. The following sections explain which

measurements were used in the MCEVE model and how they were transformed

and embedded to the MCEVE model database.

5.2.1.1 Parameters collection:

In fact, we always focus on integrity and accuracy more than other criterions;

however, the limitation of thesis time period, cost of the test bed, and leak of other

requirements of measurements make the parameters collection much difficult. As

a result, the best way is to use a standard to collect accurate and meaningful

measurements as a knowledge base for the Model. Section 5.2.1.2 explains which

measurements were collected and from where they were obtained.

Page 75: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

62

5.2.1.2 SPCE virtualization measurements:

After researching in many resources to collect accurate measurements, I found

that these resources cannot be reliable for two reasons. First, some of researchers

did not mention detailed specifications for the hardware that they use. Second,

most of them do not have a standard that helps the MCEVE model to function

accurately. However, the Standard Performance Evaluation Corporation (SPEC)

develops benchmark suites and also reviews and publishes submitted results from

their member organizations and other benchmark licensees [49]. SPECvirt

measures the end-to-end performance of all system components including the

hardware, virtualization platform, and the virtualized guest operating system and

application [50]. The benchmark supports hardware virtualization, operating

system virtualization, and hardware partitioning schemes. In the model, I used all

possible SPECvirt_sc2010 results that have been published by SPEC.

5.2.1.3 Configuration Categories

A. Main Configuration:

1) Brief data: In this point, the user can have access to some basic data and

information. For example, during the configuration he can briefly see some

essential configuration data. Table 5.2 shows which kind of data and information

appear to the user compared to Table 5.3.

Hardware

Vendor IBM HP Bull SAS

Processor Intel X5680 3.33 GHz

CPU 2 chips, 12, cores, 6 cores per chip

Page 76: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

63

RAM 549755 MB DDR3 (32 x 16 GB at 1066 Mhz)

NIC 1 x Broadcom NetXtreme II Gigabit Ethernet , 3 x Intel

Gigabit ET

Hard disk 96 x 73 GB 15k RPM SAS

Date 2011

Virtualization Platform

Name ESX

Table 5.2. An example of briefed real physical machine specifications

2) Detailed data: This point contains all details about the specifications that

represent real tested machines from SPEC website. This information appears

depending on the user demand that whenever he/she is interested in specific

configurations, the MCEVE model shows more details about these configurations.

Table 5.3 shows an example of which data appears to the users when he/she

specifies a certain configurations of a virtualized environment.

System Under Test (SUT)

Virt. vendor/Product VMware Inc. ESXi 4.1

# of SUTs 1

Server Vendor IBM Corporation

Server Model x3850 X5

Processor Intel X7560

Processor Speed (MHz) 2270 MHz

Processor Cores 32 cores, 4 chips, 8 cores/chip, 2 threads/core

Primary Cache 32 KB I + 32 KB D on chip per core

Secondary Cache 256 KB I+D on chip per core

Other Cache 24 MB I+D on chip per chip

Memory 1 TB DDR3 (64 x 16 GB Quad Rank x4 PC3-8500 CL7 ECC

DDR3 1066Mhz RDIMM)

Operating System VMware ESXi 4.1.0 Build 304962

File System vmfs3

Other Hardware 1 Cisco 6500-E switch with 1 48-port GbE module and 1 Quad-

port 10GbE module

Other Software N/A

SUT Storage

Storage Controllers 2 x Dual port QLogic Corp. ISP2432-based 4Gb Fibre Channel

1 x IBM ServeRAID MR1015

Storage Enclosure 2 x IBM DS4800, 15 x IBM EXP810

1 x None

Disk Description 224 x 73 GB 15k RPM SAS

Page 77: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

64

2 x 73 GB 15k RPM SAS

RAID Level RAID 5

RAID 1

UPS Required? No

SUT Network

Network Adapters 2 x Broadcom NetXtreme II Gigabit Ethernet (dual port,

integrated)

4 x EXAR Neterion x3110 Single Port SR (10Gb, PCI-Express)

1 x Intel Corporation Gigabit Ethernet Conroller (4 ports, PCI-

express)

SUT Ports Total 2

4

4

SUT Ports Used 2

4

4

Network Type Ethernet

Network Speed 1 Gb/s

10 Gb/s

1 Gb/s

Clients

Model x3550M2

# of Clients 6

Processor Intel E5520

Processor Speed (MHz) 2270 MHz

# Processors 2

Memory 32 GB SDRAM

Network Controller 2 x Broadcom NetXtreme II (2 ports each, integrated), Intel

Corporation Gigabit Ethernet Controller (4 ports each, PCI-

express)

Operating System Red Hat Enterprise Linux 5.5 (64-bit)

JVM Version Oracle HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed

mode)

Other Hardware N/A

Other Software N/A

Table 5.3. An example of detailed real physical machine specifications

B. Virtualization Platforms:

The MCEVE model shows all available virtualization platforms that are published

on SPEC. The user can use a platform as a matrix of his/her configurations. Table

5.4 shows an example of the available platforms that the MCEVE model is

currently using because SPEC has not published more than two platforms so far.

Page 78: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

65

SPECvirt_sc2010@VMs

VMware ESXi 4.1

Rhvt Red Hat Enterprise Linux 6.0 (KVM)

Table 5.4 Examples of Virtualization Platforms

C. Static and measured Consideration:

Some measurements have been published by SPEC on their website. These

measurements include Virtual Application Server, Virtual Mail Server, Virtual

Web Server, Virtual Idle Server, Response Time on a virtual Application Server,

and Response Time when a virtual Server is being idle. All of these measurements

are used as a knowledge base of the MCEVE model to configure a virtualized

environment that meets a ser’s expectations. In addition, there are some static

data such as number of virtual machines that each configuration can handle. Table

5.5 shows an example of the measurements have been published for specific

configurations of a virtualized environment.

Tile # Application

Server

Web

Server

Mail

Server

Per-Tile

Score

Idle Res

Time

Res Time

Application

Server

Overall

Score

Number

of VM

1 33.47 53.61 88.26 97.71 7.51 1.26

1169 72

2 33.45 52.81 88.08 97.13 7.76 1.47

3 33.4 53.64 88.22 97.64 6.39 1.3

4 33.19 52.78 88.17 96.9 6.43 1.58

5 33.26 53.72 88.22 97.56 6.4 1.31

6 33.41 52.89 88.18 97.18 7.75 1.53

7 33.41 53.65 88.31 97.69 7.06 1.34

8 33.43 53.04 88.24 97.31 7.07 1.49

9 33.46 53.66 88.39 97.78 8.03 1.23

10 33.42 52.89 88.12 97.16 7.69 1.42

11 33.47 53.77 88.08 97.74 6.31 1.31

12 33.44 52.89 88.18 97.21 5.62 1.39

Avg 33.40083 53.27917 88.20417 97.4175 7.00167 1.3858

Page 79: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

66

Table 5.5. An example of SPEC benchmarks measurements

The MCEVE model just uses the averages of multiple measurements for each

benchmark. Base on that, the data that would be added to the database for each

item is as shown in the following table.

Application

Server Web Server

Mail

Server

Per-Tile

Score

Idle Res

Time

Res Time

Application

Server

Overall

Score

Number

of VM

33.40083 53.27917 88.20417 97.4175 7.00167 1.3858 1169 72

Table 5.6. An example of averaging the SPEC benchmarks measurements of all Tiles

D. Calculated Consideration:

Calculating some considerations is important since they have no absolute values.

For example, the cost of purchasing or licensing a virtualization solution differs

from other virtualization solutions. There are effective aspects of licensing a

virtualization solution such as Cost-Per-Application, Server Cost, Storage Cost,

Networking Cost, Power and Cooling Cost, Datacenter Real Estate Cost, Guest

Operating System Licenses and Support Cost, and Infrastructure Cost for

Virtualization Management Solution [51]. Typically, a virtualization platform

edition is licensed on a per-processor basis, which is the number of physical

processors on each host. After researching in VMware vSphere licensing, I

realized that customers can purchase and deploy mix of servers, as required; each

processor in a socket may contain multiple cores. Additionally, they may deploy

VSphere on physical processors that contain up to six processing cores at no

additional charge. However, customers that require limits beyond the process or

entitlements must purchase additional VSphere licenses. Customers who have

Page 80: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

67

core entitlements up to 12 cores per CPU may have to purchase Advanced or

Enterprise Plus editions that include the term of having up to 12 processing cores

per CPU [52].

In this research, the focus of calculating licensing a virtualization platform is on a

per-processor basis since it is the most affective factor in purchasing virtualization

solution. The equation that is applied to calculate the cost of purchasing a

virtualization platform is the equation is the sum of the following two cases:

1. If the number of cores per chip is less or equals to the limit:

2. If the number of cores per chip more than the limit:

5.2.2 Application design

5.2.2.1 Data Design:

In data design, planning and forming the parameters, which are identified during

requirements analysis, needs to use a schema that is called relational database DB

[48] . A relational database is a collection of data that is organized as a set of

tables from which consist of attributes and records. The standard user and

applications can access and retrieve data in a relational database by using the

Cost = 1 × u

n: the number of processors

u: the unit cost

𝐂ost 𝒓/𝒎 𝒖

r: the number of cores per a processor

m: the limit number of cores per a processor

Page 81: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

68

structured query language (SQL). SQL statements are used both for interactive

queries for information from a relational database and for gathering data for

reports. In this part we focus on designing a relational database for the MCEVE

model and the actual implementation information is explained in Section 5.2.3.

Figure 5.2 is a vis al diagram showing the Crow’s Foot ERD to represent the

relational database for the MCEVE model [53].

Figure 5.2. Crow’s Foot Relational Database diagram for the Model

5.2.2.2 Hypertext Design:

Hypertext design produces site view schemas on top of the data schema that has

been defined previously. The distinguishing feature of the WebML approach is

the emphasis on conceptual modeling for hypertext speciation. This particular

design uses a web application that is accessed over a network such as

the Internet or an intranet. This web application has a web browser-based

access and coded in a browser-supported language such HTML, JAVA, PHP,

Page 82: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

69

ASP, Perl, and other web language APIs. The idea of using a web application to

design and implement the MCEVE model is that web applications are popular due

to the ubiquity of web browsers, and the convenience of using a web browser as

a client. The ability to update and maintain web applications without distributing

and installing software on potentially thousands of client computers is a key

reason for their popularity. In addition, the inherent support of web applications

for cross-platform compatibility and having easy access to the MCEVE model

increase the need of implementing it based on a web application.

5.2.2.3 Work flow:

Figure 5.3. the Work flow of the MCEVE model web application

The user uses a form for configuring virtualized environment expectations and

submits his inputs to the server that apply the algorithm to these inputs. After that,

the MCEVE model produces outputs that are sent to the user as suggested

Page 83: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

70

solutions. Figure 5.4 below gives a basic overview of that the user needs to input

his configurations with the weights that he decides.

Figure 5.4. Conceptual from for the user to configure a virtualized environment

5.2.3 Implementation

5.2.3.1 Implementation test bed:

In order to implement the MCEVE model, it need basic environmental

requirements, they are:

1) Web server: a Web server hosts websites to make them accessible via a

network such as the Internet or a private local area network through an Internet

address also called URL. In this experiment, The Apache HTTP Server, which is

a project that provides an HTTP web server, is used as a web server. Apache

server supports many web programming languages and interacts with MYSQL

database server [54], [55].

Page 84: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

71

2) Web Programming Language: Web programming language is a programming

Language that runs on the web and users can interact with using web browsers.

It features with the ability to deal with a variety of protocols, formats and tasks. It

produces independent web applications that do not require installing particular

software more than having a web browser as an appropriate interface. In the

implementing the Model, we used two common used web languages: HTML and

PHP. HTML, which stands for Hyper Text Markup Language, is not a

programming language; it is a markup language [56]. A markup language is a set

of markup tags to describe web pages. It has the ability to embed PHP code within

the web page. It was used in the implementing in order to organize the origins of

the web pages. PHP, on the other hand, is one of the most popular web languages

that is used widely and deployed on many web servers [57]. PHP has been

supported by most of the web servers today, including Apache, Microsoft Internet

Information Server, Personal Web Server, and many others. PHP can collect form

data, generate dynamic page content, or send and receive cookies. It can do math

operations such as addition, division, subtraction, and multiplication. It can

execute logical operations such as <, >, =, and, or, not, and so on. Additionally,

PHP is considered as an easy language for beginners to learn and develop web

applications on [58].

3) MYSQL Server: MySQL Server is a full-featured database management system

(DBMS) [59], [60]. This requirement is important because the MCEVE model

web application uses MySQL databases.

Page 85: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

72

5.2.3.2 Database implementation

Implementing the database involves in reserving the physical space, which is the

area where the tables can be stored, and defining the layout of this space. Tables

can be defined as soon as database space has been defined using the CREATE

TABLE command. The basic syntax of a new table creation is:

For each table, we need to define the attributes and determine a primary key,

which one or more unique attributes or columns that cannot be duplicated.

Obviously, the key must be NOT NULL or a unique index that users are not be

allowed to enter a value for the attribute duplicates the value for an existing row.

The example below indicates that a table named Virtualization_Typs will be

created with the attributes such VT_id, VT_name, VT_desc, VT_pros, and

VT_cons and it will be given the primary key VT_id.

SQL language is used to create tables and manage the data. SQL supports adding

and manipulating data in tables. The basic syntax of inserting a new record is:

CREATE TABLE table-name

(column-name data-type [(length)] [NOT NULL[)… ,]IN tablespace]

# Virtualization_Typs Table CREATE TABLE ` Virtualization_Typs` ( `VT_id` INT( 2 ) NOT NULL PRIMARY KEY , `VT_name` VARCHAR( 100 ) NOT NULL , `VT_desc` TEXT NOT NULL ,

`VT_pros` TEXT NOT NULL , `VT_cons` TEXT NOT NULL ) ENGINE = MYISAM

Page 86: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

73

Now, to add data into the previously created table, we just need to execute the

following insertion SQL statements:

5.2.3.3 Application Implementation

This step is very important that the processing components such as the algorithm,

the formals, and the logistics need to be implemented perfectly; otherwise, the

MCEVE model may produce unreliable or meaningless results. In this case, all

processing components need to be converted into computer language with

maintaining the correctness of their main roles. Therefore, the application

implementation has the following stages:

First: Converting user views into a numeric array: The user delivers his opinions

about virtualization configurations that he is thinking of and the priorities of these

configurations. This stage depends completely on the user until he submits these

requirements. The interface in Figure 5.5 shows the interaction between the user

and the application.

INSERT INTO table name [(column-list)] {VALUES (value-list)|sql-query}

INSERT INTO `measurements` VALUES ('1', '00013', '2', '33.49454545’); INSERT INTO `measurements` VALUES ('2', '00013', '2', '53.07772727’); INSERT INTO `measurements` VALUES ('3', '00013', '2', '88.40772727’); INSERT INTO `measurements` VALUES ('4', '00013', '2', '2144’);

INSERT INTO `measurements` VALUES ('5', '00013', '2', '132’); INSERT INTO `measurements` VALUES ('6', '00013', '2', '1.231818182’);

Page 87: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

74

Figure 5.5. Form of the MCEVE model that collects user inputs

The MCEVE model gives the user the opportunity to allow it to use all possible

configurations in case the user is unable to choose his own configurations, or he

wants as many suggestions as the MCEVE model can result. In the application

expression, the phase “all” means the MCEVE model can use all possible

config rations. his kind of inp ts is implemented by sing a “list” tool that lists

distinctly parameters that are provided in the database based on real existing

measurements. Figure 5.6 shows how the user is scoped by what the list contains

to ensure the integrity of the user inputs.

Page 88: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

75

Figure 5.6 A list of inputs for the user to choose a specific item

Another given opportunity to the user is that he/she can strictly narrow the

configurations based on some specific terms such as a particular hardware

component or application. In the MCEVE model application, this choice is named

“constraints” as shown in Figure 5.6.

Figure 5.7. Constraints area to narrow user configurations

The last component of inputs is the user priorities that he/she is focused on. These

priorities are some benchmarks that have been tested on the underlying

infrastructure. The user can weigh these benchmarks based on his priorities. In the

application, the user can scale his priorities from 0 to 10, thus, the user must

weigh at least one of these benchmarks. Figure 5.8 shows how the user can scale

the weights from 0 to 10 through the lists.

Page 89: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

76

Figure 5.8. Weights lists for user to scale his priorities

In general, this scenario is very important since any input is defiantly considered;

hence it affects the result.

Second: receiving and storing the user inputs for filtering purposes: This is an

important scenario as it essentially determines the perspectives that the user looks

at. For example, when the user is specifying on particular processor that means

the MCEVE model needs to yield all possible res lts that relate to the ser’s

configurations. In addition, if the user has selected a particular virtualization

platform, the MCEVE model has to yield all possible results that have been tested

on this virtualization platform. The SQL statement below shows the filtering

operation that is actually done by adding the “WHERE” phase to the SQL

command and the criteria that the parameters must be selected based on. For

example, ass ming the ser chooses “VMware ESXi4.0” as a criterion, the

Page 90: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

77

MCEVE model must apply the algorithm to the parameters that relate to

“VMware ESXi4.0” rather than all parameters.

The idea of storing the configuration is for two reasons: to have a way to roll back

and redo the calculation in case a problem occurs during the process and to

display the user considerations to the user himself or even to any user who is

looking at other sers’ considerations.

Third: applying the algorithm on the received considerations: The application

uses the formulas that explained in Chapter 4 to execute mainly two important

calculations:

1) The weighted measurement: this calculation is to result the original

measurement multiplied with the weight that the user configures for it.

loop1

for each set m M do

function (f = m ∩ p)

$db_selected =

mysql_select_db($dbname,$dbconnect;)

$hw_sql = "SELECT HW_id FROM hardware;"

$pf_sql = "SELECT `PF_id` FROM `platforms;"`

$hw_sql2 = " WHERE" ;

$hw=0;

$by= "hw;"

if ($HW_vnd != "0)"

{

$ hw_sql2 = $hw_sql2. "HW_vnd = '$HW_vnd' AND ;"

$ hw=1;

}

if ($HW_processor != "0)"

{

$ hw_sql2 = $hw_sql2. "HW_processor =

'$HW_processor' AND ;"

$ hw=1;

}

.

.

.

$hw_sql2 = " WHERE " : To add a cartiria for the SQL

statement to filter the data based on the user inputs.

Page 91: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

78

2) Calculating the overall results: for each configuration based on the previous

calculation, the MCEVE model takes each individual result and combines it with

the others.

Finally: displaying the results: This is the last point that the MCEVE model

finishes the process at when it results suggested configurations ordered based on

the best selection method. These outputs should relate to the user inputs to meet

his expectations, otherwise, the user would not be not satisfied.

5.2.4 Testing and evaluation

Once the implementation is completed, the application needs to be tested to

ensure the important factor which is the functionality. The application must meet

Loop2

for each set m M do

function (f = m * w)

$res_cal = $pr_config_value * $bm_positive * $ms_value ;

$pr_config_value: weight value

$bm_positive: positive or negative measurement ( 1 or -1)

$ms_value: measurement value

𝑹𝒆𝒔 𝑛 ∑𝑾 𝒏 𝑴 𝒏

𝑛

𝑘

while mysql_fetch_array

{

.

.

.

$res_ms = $res_ms + $res_cal ;

.

.

.

}

$res_cal: weighted measurement

$res_ms: overall result

Loop3

for each set f F do

function (max (f))

SELECT * FROM hwoverallresultcash WHERE RS_id =

$ID ORDER BY RS_abs DESC LIMIT $A , $B

ORDER BY RS_abs DESC: A way to order the results from

maximum value to minimum value.

Page 92: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

79

this factor since the other factors cannot be examined while functionality of the

application is not accomplished. In order to check how consistently the MCEVE

model functions, I submit some inputs and wait for the MCEVE model to produce

outputs without being interpreted for any reason. The results should be as

expected that my considerations and configurations are included in the process.

The following phases show a real execution of the Model:

First: Inputs:

1) I specify two important considerations that the resulted configuration must be

modern which is during 2011 and the processor can be an Intel “Xeon” model as

shown in the figure bellow.

Figure 5.9. specifying user configurations and considerations

2) I specify my priorities based on Application Performance, Web Server

Performance, and Capacity. Then, I associate each specified priority with an

appropriate weight.

Page 93: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

80

Figure 5.10. specifying users priorities with appropriate weights

Second: Process:

After submitting the inputs, the MCEVE model is processing them in order to

produce the results.

Figure 5.11. results are being processed by the Model

Third: Outputs:

Finally, the MCEVE model produces the results showing two sections:

The first section: the chosen configurations, selected platform, and the weighted

priorities.

The second section: The suggested solution listed by the overall results from high

to low, which is higher is better.

Page 94: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

81

Figure 5.12 shows real outputs that were results by the MCEVE model based on

my configurations and considerations that I input previously.

Figure 5.12. user configurations, weighted priorities, and suggested solutions

5.2.5 Maintenance:

After testing the applications, I found that there were some problems need to be

fixed. One of these problems is the layout which means how the input form

organized and what information it should contain. In addition, the results layout

needs to be organized in a way that the viewer would be satisfied when her/she is

exploring the results. Another problem that an objective has not been met is the

information provided by the application. I noticed that this information is shallow

that needs additional information about virtualization technology as explained in

Page 95: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

82

Chapter 1. Therefore, the information needs to be included in the main page of the

web application that the user can easily access the information of virtualization

technology and virtualization solutions. Moreover, there was incorrect

information displayed in an inappropriate place. For example, the description of

the CPU was 2 TB (128 x 16 GB, Quad Rank x4 PC3-8500 CL7 ECC DDR3

1066MHz LP RDIMM); however, this seems that the application is describing the

RAM instead. This problem is critical and defiantly needs to be fixed and

evaluated over. Finally, the application needs some enhancement that any user

can benefit from other sers’ config ration and experiences with the Model. As a

res lt, these sers’ config rations will be listed as last preformed configurations.

Page 96: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

83

Chapter 6

Evaluation and Analysis

6.1 Introduction:

This chapter describes the evaluation and analysis of the MCEVE model in terms

of the following metrics: effectiveness, accuracy, and data transparency. In fact,

the metric can be related to the needs of individuals or who want to experience

virtualizing computers and even small businesses which need to virtualize their

businesses.

6.2 Effectiveness:

The functionality of the MCEVE model depends on the user inputs that any

failure of a specific input can be effective. Hence, the MCEVE model responds to

user changes and functions relatively to these changes. One effective concept is

that any change to the weights must be feasible when the Mode shows the results.

For example, when a user assigns weights to his configurations and he/she

Page 97: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

84

reassigns different weights to the same configurations, the MCEVE model must

show different results if that is the case. Figures 6.1 and 6.2 explain how changing

the weights affects the results. The first figure shows that the capacity priority is

weighted with 10 of 10 which is a high factor that the MCEVE model must

critically consider. Consequently, first available virtualization environment

configuration which is suggested by the MCEVE model is capable to run up to

432 virtual servers on a single physical server.

Figure 6.1. The first virtualization environment configuration can run 432 virtual servers

However, when the price is appended to the same inputs with the weight 10 of 10,

the MCEVE model shows different results that are capable to run up to 78 virtual

Page 98: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

85

servers on one physical server with much lower cost. Figure [6.2] shows the

results that the MCEVE model resulted.

Figure 6.2. The first virtualization environment configuration has the lowest cost

In addition, when a user specifies his configuration by narrowing down his

expectation, the MCEVE model must consider this specification. For an example,

let assume that the user has specified the configuration by asking for

configurations that use a Solid State Drive (SSD) [61], [62]. The results should be

constraint when all of them relate to SSD; otherwise, the ser’s expectation wo ld

not be met. In the application, we se the inp t box “constraint” to specify this

term by typing “SSD” before the s bmission as shown in Figure [6.4].

Page 99: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

86

Figure 6.3. Input box for constraint user configurations

Consequently, The MCEVE model is able to only result suggestions that use SSD

in the virtualized environment configurations. Figure [6.4] shows the first

suggestion description including information about the SSD that is used in the

virtualized infrastructure.

Figure 6.4. SSD Storage descriptions in virtualized environment configurations

Overall, the MCEVE model effectively functions in good manner that any

considered component plays an important role in the results. The demonstration

above indeed gives positively success credits to the Model.

6.3 Accuracy:

This metric demonstrates how precisely and accurately the MCEVE model

produces the results. To evaluate the accuracy factor, I compared a human

process to the Model’s process. For example, if a ser highly considers the cost of

virtualization environment configurations, the MCEVE model must eliminate the

Page 100: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

87

highly costing virtualization environment configurations. In order to emphasize

this condition, I identified the highest cost virtualization environment

configurations available in the database, which was 18,000.00 US dollars. In

addition, I identified the lowest cost virtualization environment configurations,

which was 2,500.00 US dollars. To impact this fact, I gave the price the factor a

high priority that any highly costing virtualization environments configurations

are not recommended.

Figure 6.5. User configurations with high price consideration

The results were sufficient that the highest recommended configurations were the

lowest cost starting from {$2500.00

, $4166.66

, $4,500.00

, … , $18,000.00

}.

Page 101: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

88

Figure 6.6. User configurations with high capacity consideration

Further, to evaluate the MCEVE model accuracy additionally, I assigned the

weight of capacity with the highest scale number, which means I am looking for

configurations that handle as many virtual guests as possible. As a result, the

array of the suggested configurations where able to run virtual guests as {432,

228, 168, … , 78}, which is true according to the real existing configurations.

Now, by adding more weights, the MCEVE model must show different results

based on the new perspective. Figure [6.7] shows the multiple dimensional

considerations assigned with weights and how the results differ from the two

previous examples.

Page 102: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

89

Figure 6.7. Multiple dimensional considerations assigned with weights to the Model

6.4 Efficiency:

Execution time is the time between the submission and result delivering.

Execution time is impacted by the quantity of the considered parameters.

Test bed Specifications

Machine Type Virtual Machine

Page 103: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

90

OS Name Windows XP

Web Server Apache 2.5.10

System Manufacturer VMware Virtual Platform

Total Physical Memory 128.00 MB

Total Virtual Memory 2.00 GB

able 6.1. Test bed Specifications

Fig re 6.8. MCEVE execution time

6.5 Data Transparency:

Data transparency in the MCEVE model indicates the data independency which

exists when the code is not subjected to change when any change in the data

occurs. In the MCEVE model design, the data is implemented independently of

the Model application that even this data is necessary for the MCEVE model

processing. Therefore, any change in the data does not require change in the

application in order to access the data effectively. For example, the MCEVE

model extracts all existing benchmarks as shown in Table 6.1 and then lists them

on the application input form to the user as shown in Figure [6.8].

Page 104: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

91

Table 6.2. all existing benchmarks

Figure 6.9. All existing benchmarks as listed by the Model

Ass ming the “Overall Performance” benchmark is no longer sef l; therefore, it

needs to be deleted and see whether that impacts the application functionality or

not. Table 6.2 shows the SQL statement that deletes the “Overall Performance”

benchmark and the SQL statement that yields all remaining benchmarks. As

shown in the table, the “Overall Performance” benchmark has been deleted from

the database.

SQL query: SELECT BM_name, BM_desc FROM `benchmarks`; Rows: 8

BM_name BM_desc

Application Aerformance Request per second in application virtual server

Capacity Number of virtual servers per one physical server

Mail Server Performance Request per second in Mail virtual server

Web Server Performance Request per second in Web Servervirtual server

Avg Resp. Time Idel Average response time of Idle virtual server perfo...

Overall Performance Overall Performance of the above performance bench...

Avg Resp. Time App Server Average response time of application virtual serve...

Price The price of purchasing and licensing a virtualiza...

SQL query(1): DELETE FROM `benchmarks` WHERE `BM_id` =4 SQL query(2): SELECT BM_name, BM_desc FROM `benchmarks`; Rows: 7

BM_name BM_desc

Application Aerformance Request per second in application virtual server

Capacity Number of virtual servers per one physical server

Mail Server Performance Request per second in Mail virtual server

Web Server Performance Request per second in Web Servervirtual server

Avg Resp. Time Idel Average response time of Idle virtual server perfo...

Avg Resp. Time App Server Average response time of application virtual serve...

Price The price of purchasing and licensing a virtualiza...

Page 105: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

92

Table 6.3. all remaining benchmarks

Figure ‎6.9. shows how the available benchmarks are listed regardless of any

deleted benchmarks

Figure 6.10. all remaining benchmarks as listed by the Model

In general, data transparency is important requirement that the application cannot

be affected by the data changing especially when there is additional data can be

added to the data knowledge base.

6.6 Experimental Tests:

In these experimental tests, I focused on Configurations # 14 in the databases

because of its capability and performance efficiency. The purpose of these tests is

to figure out how Configurations # 14 can be a good solution for the user

compared to the other configurations. According to Configurations # 14

specifications it is able to accomplish the following benchmarks:

Benchmarks Measurements Description

Application Performance 33.4983 Request per second in application virtual server

Web Server Performance 54.0049 Request per second in Web Server virtual server

Mail Server Performance 88.7385 Request per second in Mail virtual server

Overall Performance 7067 Overall Performance of the above performance

benchmarks

Capacity 432 Number of virtual servers per one physical

server

Avg Resp. Time App

Server

1.20181 Average response time of application virtual

server performance

Page 106: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

93

Avg Resp. Time Idel 9.03028 Average response time of Idle virtual server

performance

Price $18,000.00 The price of purchasing and licensing a

virtualization platform

Table 6.4. Configurations # 14 benchmarks

Configurations # 14 consists of Intel Xeon E7- 4870 2.4 GHz , 80 cores, 8 chips,

10 cores/chip, 2 threads/core , 2 TB RAM (128 x 16 GB, Quad Rank x4 PC3-

8500 CL7 ECC DDR3 1066MHz LP RDIMM) , 576 x 73 GB 15k RPM SAS

storage, 2 x Broadcom NetXtreme II Gigabit Ethernet , 4 x Intel x520 10Gb and

so on. It uses RedHat RHEV as a Virtualization Platform [63]. Therefore, it

would be tested against different user weighted priorities to see how the MCEVE

model chooses Configurations # 14 as a good solution for configuring a

virtualized environment. Moreover, we would know whether Configurations # 14

could be chosen as the best suggested solution or not or even how good this

solution is. Additionally, it is important to evaluate why the MCEVE model

would choose Configurations # 14 and based on what the solution is a winner.

Finally, we need to figure out how the MCEVE model deals with Configurations

# 14 whenever the user adds or removes user weighted priorities. These

experimental tests include four scenarios:

First Scenario:

he “Application Performance” factor is highly considered by giving it the weight

10 of 10. hen the “Application Server Response Time” factor is incrementally

considered, which is by increasing the weight in each submission by 1. Finally,

the scores of Configurations #14 are recorded as shown in Table 6.4.

Weighted priorities Conf#14 score

Application Performance Avg Resp. Time App Server

Page 107: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

94

10 0 1

10 1 1

10 2 1

10 3 2

10 4 2

10 5 2

10 6 2

10 7 2

10 8 3

10 9 3

10 10 3

Table 6.5. Configurations #14 scores in the first scenario

Second Scenario:

he “Application Server Performance” and the “Application Server Response

Time” factors are highly considered by giving them the weight 10 of 10. Then the

“Overall Performance” factor is incrementally considered by increasing the

weight in each submission by 1. Finally, the scores of Configurations #14 are

recorded as shown in Table 6.5.

Weighted priorities

Conf#14 score Application

Performance

Avg Resp. Time App

Server Overall Performance

10 10 0 3

10 10 1 1

10 10 2 1

10 10 3 1

10 10 4 1

10 10 5 1

10 10 6 1

10 10 7 1

10 10 8 1

10 10 9 1

10 10 10 1

Table 6.6. Configurations #14 scores in the second scenario

Third Scenario:

he “Application Server Performance”, “Application Server Response Time”, and

“Overall Performance” factors are highly considered by giving them the weight

Page 108: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

95

10 of 10. hen the “Price” factor is incrementally considered by increasing the

weight in each submission by 1. Finally, the scores of Configurations #14 are

recorded as shown in Table 6.6.

Weighted priorities Conf#14

score Application

Performance

Avg Resp. Time

App Server

Overall

Performance Price

10 10 10 0 1

10 10 10 1 1

10 10 10 2 2

10 10 10 3 2

10 10 10 4 11

10 10 10 5 14

10 10 10 6 14

10 10 10 7 14

10 10 10 8 14

10 10 10 9 14

10 10 10 10 14

Table 6.7. Configurations #14 scores in the third scenario

Fourth Scenario:

he “Application Server Performance”, “Application Server Response Time”, and

“Overall Performance”, factors are highly considered by giving them the weight

10 of 10. However, the “Price” factor is considered partially by giving it the

weight 5 of 10 because the price is too affective (See the reason in the future

work). hen the “Capacity” factor is incrementally considered by increasing the

weight in each submission by 1. Finally, the scores of Configurations #14 are is

recorded as shown in Table 6.7.

Weighted priorities Conf#14

score Application

Performance

Avg Resp. Time App

Server

Overall

Performance Price Capacity

10 10 10 5 0 14

10 10 10 5 1 14

10 10 10 5 2 14

10 10 10 5 3 14

10 10 10 5 4 14

10 10 10 5 5 14

Page 109: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

96

10 10 10 5 6 14

10 10 10 5 7 14

10 10 10 5 8 14

10 10 10 5 9 14

10 10 10 5 10 14

Table 6.8. Configurations #14 scores in the fourth scenario

Discussion:

After preforming the previous scenarios and observe Configurations #14 divers

scores, we can realize how the MCEVE model enclose Configurations #14 as a

good solution when the user is focused on term of efficient performance as in the

first and second scenarios. However, when the user considers the price

incrementally, the MCEVE model starts to exclude Configurations #14 because it

costs more than other Configurations as in the third scenario. While the previous

scenarios result various scores for Configurations #14, the last scenario could not

help Configurations #14 to score as a recommended sol tion beca se the “price”

factor still affectively compromises the overall result (See Section 4.4).

Consequently, the MCEVE model could not offer Configurations #14 to the user

since it does not meet the user weighted priorities. Instead, the MCEVE model

offers Configurations #15 to the user as a significant solution that meets his/her

perspectives together. Table 6.8 shows the benchmarks comparisons between

Configurations #14 and #15. As appears in the table, the price plays an affective

role in the overall calculation.

Benchmarks Conf#14 Measurements Conf#15 Measurements

Application Performance 33.4983 33.4751

Web Server Performance 54.0049 53.9654

Mail Server Performance 88.7385 88.6013

Overall Performance 7067 3824

Capacity 432 234

Avg Resp. Time App Server 1.20181 1.17154

Page 110: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

97

Avg Resp. Time Idel 9.03028 5.44872

Price $18,000.00 $4,166.67

Table 6.9. benchmarks comparisons between Configurations #14 and #15

Configurations #15 specifications are detailed on SPEC website [64] . The Chart

in Figure 6.10 shows how Configurations #14 is close or far to the user in each

scenario based on the user weighted priorities.

Figure 6.11. Chart shows the scores of conf#14 for the four scenarios (lower is better)

Page 111: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

98

Chapter 7

Lessons Learned

This chapter discussed the lessons learned during this thesis and examines the

challenges I encountered and the solutions explored. There are vast documents

and topics related to virtualization. They took a lot of time to digest, understand,

and analyze. The parameters prediction algorithms are not as easy to implement

as I originally thought. Collecting and converting SPEC data into data that the

MCEVE Model uses is a hard task that consumes a lot of time and effort to be

accomplished. Finally, I tried to install and test many kinds of virtualization

solutions, some of them were tested on my desktop while the others were tested

on blade server in UCCS Innovation Security Lab A212 due to the processor

requirements. For example, Xen requires hardware virtualization support and

cannot be satisfied by my desktop.

7.1 Read and research in variant topics related to Virtualization:

I started my research by reading e-books, papers, and documentations about

virtualization in many concepts such as computer virtualization, virtualization

definitions, virtualization architectures, virtualization essentials, virtualization

types, virtualization characteristics, virtualization mechanisms, and current

Page 112: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

99

virtualization projects. The virtualization types include Emulation, Full-

Virtualization, Para-Virtualization, OS- level virtualization, Address-space

Virtualization. There are diverse virtualization characteristics including

Hypervisor, host operating system, guest operating system, physical machine,

virtual machine, and virtual machine manager. Many virtualization projects are

active. These include Xen, Parallel, VMware, OpenVZ, QUME, Virtual Box,

Virtual PC, Linux KVM, Intel-VT, and AMD-V. I additionally researched in

advanced virtualization topics such as resources isolation in virtualized

environments, resources migration in virtualized environments, resource

utilization and load balancing issues and solutions in shared virtualized

environments, and virtualization security. There are many variations of the

virtualization technologies. Some have subtle differences.

7.2 Parameters Prediction Algorithms:

Parameters prediction algorithms are used for generating predicted data which can

be the knowledge base for the MCEVE model algorithm. The reason for having a

predicted knowledge base is because the MCEVE algorithm cannot function

without a knowledge base. In addition, it is difficult to collect the actual data

related to system specification, performance, measurement, and often the

specification, the context, and the environment under which data are collected

was incomplete. Most data I found have different benchmark standards that may

impact the accuracy of the MCEVE algorithm. The effectiveness and efficiency of

MCEVE algorithm depends heavily on the knowledge base. The prediction

Page 113: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

100

algorithm might have been working, but it needs to be validated. Therefore, I

could not use it to generate algorithmic parameters; instead, I used the results that

were published by SPEC as the knowledge base for the Model. See Chapter 4 and

5.

7.2.1 Hardware Prediction Algorithm:

This algorithm is to generate incremental specifications that represent real

machines. For example, all the entries in Table 7.1 are generated except the first

entry.

CPU Frequency

GHz Cores Name

RAM

(MB)

HD

(GB) NICs Year

Intel 2.5 2 Dual Core 3000 320 1 2007

Intel 2.53 2 Dual Core 3000 320 2 2007

Intel 2.66 2 Dual Core 4000 500 2 2007

Intel 2.8 2 Dual Core 4000 1000 2 2008

Intel 2.93 2 Dual Core 4000 1000 2 2008

Intel 3 4 Quad Core 6000 1500 2 2009 .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Table 7.1. Examples of specifications that represent real machines

1) Parameter Generation based on Linear Regression:

A linear regression model attempts to explain the relationship between two or

more variables using a straight line [65]. The Linear regression does not test

whether data are linear; however, it assumes that the data are linear, and finds the

slope and intercept that make a straight line best fit the data. The goal of this

prediction is to generate machine specifications assuming that they are real

machines. The specifications are derived by generating incremental values of

hardware equipment such as CPU, RAM, HD, and NICs regardless of what kind

of CPU, RAM, and so on. There are specific data that affect the performance

Page 114: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

101

predictions such as numbers of CPU cores, total capacity of RAM and HD, and

numbers of NIC cards that affect the throughput. The process of the

measurements prediction goes through four steps:

a. Finding a hardware basis: There is a need of having hardware specifications

as a basis to generate hardware specifications instances.

For example, the row below is the basis of the instances in the second step:

CPU Frequency GHz Cores Name RAM (MB) HD (GB) NICs Year

Intel 2.5 2 Dual Core 3000 320 1 2007

Table 7.2. hardware specification basis

b. Generating improved instances: In this step the model generates randomly

hardware specifications instances that represent potential machines in real world.

For example, the table below shows the incremental instances that are generated

randomly based on the basis above:

CPU Frequency GHz Cores Name RAM (MB) HD (GB) NICs Year

Intel 2.8 2 Dual Core 4000 1000 2 2008

Intel 2.93 2 Dual Core 4000 1000 2 2008

Intel 3 4 Quad Core 6000 1500 2 2009 .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Table 7.3. Generating incremental hardware instances

7.2.2 Measurements Prediction Algorithm:

his prediction is the base of the Model’s res lts since the generated

measurements affect directly the suggested solutions. Therefore, the estimated

measurements need to be accurate or at least reasonable. The process of the

measurements prediction goes through four steps:

1) Finding a measurement basis: for each measurements prediction there must

be a base value that the linear curve begins from.

Page 115: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

102

2) Calculating Machine Change: It means the difference between machine

specifications and the previous machine specifications. The equation that ise used

in this operation is:

3) Measurement Predicting: That can be calculated by adding the measurement

base to the measurement base powers to the change:

( )

4) Current measurement basis: Using continuously the current measurement

prediction results of the previous step as a base for the prediction of the next

measurement.

7.2.3 Prediction Validation:

The computer performance has rapidly improved. Therefore, the generated

specification should meet the improvement as it shown in Figure 7.1. It gives an

overview of the growth in processor performance since the mid-1980s [66].

Page 116: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

103

Figure 7.1. Growth of processor performance. Cited from Comp ter Architect re extbook by …

Based on the growth of computer specifications, I developed a script to generate

incremental computer specifications as samples, then to calculate the absolute

change from the basis specification to the last generated specification. The curve

in Figure 7.2 shows the absolute changes of the generated specifications.

Figure 7.2. The results of the absolute changes

0%

1000%

2000%

3000%

4000%

5000%

6000%

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pe

rce

nta

ge o

f ch

ange

Hosts

Absolute Change

Page 117: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

104

However, I calculated relatively the changes between each generated

specifications and the previous one as shown Figure 7.3.

Figure 7.3. The results of the relative changes

The reason of calculating relative changes is to predict measurement relatively to

ensure that the results are reasonably representing real world measurements. After

applying the measurement prediction operations to the generated specifications

(explained in Section 7.2.2), the results of the predicted measurements are as

shown in Figure 7.4.

0%

20%

40%

60%

80%

100%

120%

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pe

rce

nta

ge o

f ch

ange

Hosts

Relative Change

Page 118: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

105

Figure 7.4. The improvement of the performance based on the relative change

In conclusion, I have experienced algorithms for generating a knowledge base for

The Model. In fact, I thought it would be a worthy way to implement predicted

data as a Knowledge base for the Model. However, the predicted data is missing

the validation part that ensures whether the data is reliable and can be an

appropriate knowledge base for the Model. Due to the timeframe limitation, I

could not preform the validation section.

7.3 Data collection

Data collecting is an important task in software developments that requires

underlying data. In MCEVE model, collecting data is a hard achievement that

needs to be considered. Even we agreed to use SPEC published results, converting

this data is not an easy mission. In fact, providing data based on SPEC results for

the MCEVE model requires few scenarios including main configuration,

virtualization platforms, static and measured consideration, and calculated

consideration. In order to fit these kinds of data into the knowledge database, I

5 7 10 12 15 19 23 27

35 38

53 60

110 118

124

155

0

20

40

60

80

100

120

140

160

180

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Nu

mb

er o

f R

equ

ests

Hosts

Predicted Requests per Second

Page 119: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

106

need to provide the appropriate methods to convert the data from HTML results

into raw data. With each published result, I have to collect Brief data that the user

can have access to and get basic information about a certain configuration. For

example, during the configuration he can briefly see some essential configuration

data. Table 5.2 shows which kind of information appears to the user. Additional

detailed data needs to be added to the database in HTML format. This data

contains all details about the specifications that represent real tested machines

from SPEC website. Table 5.3 shows an example of which data appears to the

users when he/she specifies a certain configurations of a virtualized environment.

However, this detailed data is stored in the database as HTML code such as:

Moreover, the MCEVE model shows all available virtualization platforms that are

published on SPEC. The available platforms as shown Table 5.4 need to be

Page 120: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

107

inserted into the appropriate table in the database. Many kinds of measurements

have been published by SPEC on their website. These measurements include

Virtual Application Server, Virtual Mail Server, Virtual Web Server, Virtual Idle

Server, Response Time on a virtual Application Server, and Response Time when

a virtual Server is being idle. All of these measurements are used as a knowledge

base of the MCEVE model to configure a virtualized environment that meets a

ser’s expectations. able 5.5 shows an example of the measurements have been

published for specific configurations of a virtualized environment. I calculate the

averages of multiple measurements for each benchmark and add them the

database. Table ‎5.6 shows an example of averages the SPEC benchmarks

measurements of all Tiles that are ready to add to the database. In addition, there

are some static data such as number of virtual machines need to be add to the

database as a consideration factor. Finally, some considerations need to be

calculated in order to add them to the knowledge base. Section 5.2 explains how

the cost of purchasing or licensing a virtualization solution differs from other

virtualization solutions. This scenario is complex and hard because it requires

reading the policies of licensing a virtualization solution. These scenarios of data

collection consume a lot of time to accomplish collecting the data, calculating the

averages and values, and adding this converted data into the database.

7.4 Testing Xenserver on UCCS HP blade servers:

Divers of virtualization technologies can be installed and run on personal

computers. However, some of the virtualization technologies require certain

Page 121: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

108

hardware specifications such as processor architectures. Xen for example, is not

compatible with my desktop since it requires virtualization support processors.

Figure 7.5 show that hardware-assisted virtualization needs to be supported by the

processor in order to enable Hardware Virtual Machine. HVM in Xen is a guest

operating system that runs unchanged in a virtual environment. The guest

operating system itself is unaware that it is not running directly on the hardware

but on top of a hypervisor. This can be accomplished by installing virtualization

supported processors and enabling hardware-assisted virtualization in the BIOS.

Figure 7.5. Intel-VT/AMD-V supported enabled by CPU. Citied from system & network

engineering website https://www.os3.nl

Therefore, I had to test on blade server in UCCS Innovation Security Lab A212

due to the processor requirements of Xen when I tried to install XenServer.

XenServer is a complete, managed server virtualization platform built on the

powerful Xen® hypervisor [67]. Xen technology is widely acknowledged as the

fastest and most secure virtualization software in the industry. XenServer is

designed for efficient management of Windows® and Linux® virtual servers and

Page 122: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

109

delivers cost-effective server consolidation and business continuity [68], see

Figure7.6.

Figure 7.6. Xen Hypervisor and Xen Server

Xen server was successfully installed on the HP blade servers in UCCS

Innovation Security Lab A212. The following screen shots were taken during Xen

server installation.

Page 123: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

110

Figure 7.7. Xen Server installation screen shots

Page 124: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

111

Chapter 8

Future work

Based on what I have achieved, I recommend working in future on a different

evaluation method by configuring a virtualized environment based on the

suggested solutions. The configuration includes hardware specifications, an

operating system, a virtualization platform, network configuration and

applications. Then, we compare the results of an existing configuration

performance with the results of configured virtualized environment by using the

exact benchmarks. In this case, we would be able to know whether the MCEVE

model can guarantee that the suggested solutions are dependable. As a future

work, I recommend identifying fundamentally different opportunities to provide

vast data comes from trustworthy sources that can be used to improve the

MCEVE model in term of giving a lot of productive solutions. Moreover, the

MCEVE model needs to provide more flexibility to users to enhance the manner

of configuring inputs. For instance, the user needs to be able to choose multiple

configurations instead of just selecting only “one” or “all”. In the future, the

Page 125: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

112

MCEVE model needs a Data Standard that includes naming agreements for data

elements and other system components, benchmarks standard, data integrity and

consistency standards, and security and database access policies. An important

future work is that there is a need for an offset that can be associated to a large

benchmark s ch as the “Price” to red ce its negative effectiveness. As described

in Section6.6, the benchmark “Price” keeps dominating the overall result since the

cost is considered as an absolute number. Finally, in case that the previous future

works have been accomplished, the MCEVE model application efficiency must

be considered by making the application be durable with these enchantments and

compatible to not be impacted negatively. For example, jQuery can be used to

enhance the application because it jQuery is a JavaScript Library that simplifies

HTML document traversing, event handling, animating, and Ajax interactions for

rapid web development [69]. After a final tuning to the application, it can be

published in the real world and surveyed by IT people to ensure how the MCEVE

model can be acutely accepted by the targeted users.

Page 126: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

113

Chapter 9

Conclusion

In conclusion, the diversity of virtualization solutions makes users confused that

they are incapable to choose the right solutions for establishing their virtualized

environments. Expert users can configure an efficient virtualized environment

which requires a lot of effort to research and analyze existing results through

papers, experiments and so on. However, that can be a challenging task for novice

users since it requires difficult trade-offs such as cost and performance. In fact,

the proposed MCEVE model could help these users to efficiently configure

virtualized environments in an easier and reduced cost and minimize unexpected

phenomenon driven by inefficient configurations. The MCEVE model considers

given configurations such as hardware specifications, requirements, and

virtualization platforms. The MCEVE model uses user considerations and

configurations as inputs for algorithmic outputs that are used as a guide

containing suggestions to construct a virtualized environment. Metrics for

evaluating the suggested configurations include Cost, which refers to saving time

by adopting the right decisions resulting in hours configuring virtualized

environments instead of spending days researching and comparing existing results

Page 127: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

114

and reducing the cost of performing tests and experiments, and Performance,

which can be enhanced by using solutions accordingly to real solutions rather than

trying different solutions that can lead to high monetary cost. An iteration process

to implement, evaluate and refine the MCEVE model to improve its functionality

and the accuracy of its suggestions proved that the MCEVE model affectively

yields dependable res lts that meet the ser’s expectations.

Page 128: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

115

Bibliography

[1] VMware, "Virtualization Overview," 2006. [Online]. Available:

http://www.vmware.com/pdf/virtualization.pdf.

[2] VMware, "Disaster Recovery Virtualization," 2007. [Online]. Available:

http://www.vmware.com/files/pdf/DR_VMware_DoubleTake.pdf.

[3] Wikipedia, "Comparison of platform virtualmachines," 7 July 2011 . [Online].

Available:

http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines.

[4] Intel, "Intel® Virtualization Technology (Intel® VT)," [Online]. Available:

http://www.intel.com/technology/virtualization/technology.htm. [Accessed 1 Jan

2011].

[5] AMD, "AMD Virtualization (AMD-V™) echnology," [Online]. Available:

http://sites.amd.com/us/business/it-solutions/virtualization/Pages/amd-v.aspx.

[Accessed 11 Jan 2011].

[6] Wikipedia, "Comparison of application virtual machines," 15 May 2011. [Online].

Available:

http://en.wikipedia.org/wiki/Comparison_of_application_virtual_machines.

[7] J. P. Walters, Vipin Chaudhary, Minsuk Cha, Salvatore Guercio Jr. and Steve

Gallo, "A Comparison of Virtualization Technologies for HPC," in 22nd

International Conference on Advanced Information Networking and

Applications/DOI 10.1109/AINA.2008.45, 2002.

[8] VMware, "A Performance Comparison of Hypervisors," 2007. [Online]. Available:

http://www.cc.iitd.ernet.in/misc/cloud/hypervisor_performance.pdf.

[9] P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, et a, "Xen and the

art of virtualization," in In Proc. Of the 19th ACM Symposium on Operating

System Principles, Bolton Landing, NY, Oct. 2003..

[10] A. Totok and V. Karamcheti, "Optimizing utilization of resource pools in web

application servers," CONCURRENCY AND COMPUTATION: PRACTICE

AND EXPERIENCE, pp. 2421-2444, 2010.

Page 129: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

116

[11] N. Bevan, "Quality in use: Meeting user needs for quality," Journal of Systems and

Software, pp. 89-96, Dec 1999.

[12] Vikas Deora, J. Shao, W. Alex Gray and Nick J. Fiddian, "A Quality of Service

Management Framework Based on User Expectations," Service-Oriented

Computing - ICSOC , pp. 104-114, 2003.

[13] S. Nanda and T.-c. Chiueh, "A Survey on Virtualization Technologies," 2005.

[Online]. Available: http://www.ecsl.cs.sunysb.edu/tr/TR179.pdf. [Accessed 05

Dec 2010].

[14] IBM, "Virtualization — why it's hot and how to get started," [Online]. Available:

http://www-03.ibm.com/systems/virtualization/news/view/062807.html. [Accessed

09 Dec 2010].

[15] White, J., & Pilbeam, A., "A Survey of Virtualization Technologies With

Performance Testing," 2010. [Online]. Available: http://arxiv.org/abs/1010.3233.

[16] A. Metelo, "Not All Server Virtualization Solutions Are Created Equal," IBM

SWG Competitive Project Office, 13 Aug 2010. [Online]. Available:

ftp://ftp.software.ibm.com/software/solutions/2982/Not_All_Server_Virtualization

_Solutions_Are_Created_Equal.pdf.

[17] J. Fornaeus, "Device hypervisors," in Design Automation Conference (DAC), 2010

47th , Alameda, CA, 18 June 2010.

[18] C. Scheffy, Virtualization For Dummies,® AMD Special Edition, AMD Special

Edition ed., Hoboken, NJ: Wiley Publishing, Inc., 2007, pp. 22-28.

[19] Binbin Zhang, Xiaolin Wang, Rongfeng Lai,Liang Yang, Yingwei Luo, Zhenlin

Wang and Xiaoming Li, "A Survey on I/O Virtualization and Optimization," in

The Fifth Annual ChinaGrid Conference/DOI 10.1109/ChinaGrid.2010.54, 2010.

[20] I. Habib, "Virtualization with KVM," 01 Feb 2008. [Online]. Available:

http://www.linuxjournal.com/article/9764.

[21] Redhat, "www.redhat.com," 2009. [Online]. Available:

http://www.redhat.com/f/pdf/rhev/DOC-KVM.pdf.

[22] M. T. Jones, "An overview of virtualization methods, architectures, and

implementations," 29 Dec 2006. [Online]. Available:

http://www.ibm.com/developerworks/linux/library/l-linuxvirt/.

[23] J. Fisher-Ogden, "Abstract Hardware Support for Efficient Virtualization," 12 Dec

2006. [Online]. Available:

Page 130: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

117

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.110.1676.

[24] R. Arash, H. Salimi and M. Sharifi, "Improving Software Dependability Using

System-Level Virtualization: A Survey," in 2010 IEEE 24th International

Conference on Advanced Information Networking and Applications Workshops,

IEEE , 2010.

[25] B. Underdahl, M. Lewis and T. and Mueting, Cloud Computing Clusters For

Dummies, AMD Special Edition ed., Hoboken, NJ: Wiley Publishing, Inc., 2010.

[26] I. G. Education, "Virtualization in Education," October 2007. [Online]. Available:

• http://www-

07.ibm.com/solutions/in/education/download/Virtualization%20in%20Education.p

df.

[27] P. X. Zhou, "Distributed and Internet Systems Lab," [Online]. Available:

http://www.cs.uccs.edu/~zbo/Lab.html. [Accessed 07 May 2011].

[28] C. E. Chow, "Homework #3. LVS Cluster," 09 March 2011. [Online]. Available:

http://cs.uccs.edu/~cs526/hw3S2011.html.

[29] T. L. V. Server, "What is virtual server?," 13 Jan 2011. [Online]. Available:

http://www.linuxvirtualserver.org/.

[30] Amazon, "Amazon Elastic Compute Cloud," [Online]. Available:

http://aws.amazon.com/ec2/. [Accessed 23 May 2011].

[31] PlateSpin, "Consolidated Disaster Recovery Using Virtualization," 2007. [Online].

Available:

http://www.meritalk.com/uploads_legacy/whitepapers/White_Paper_Conslidated_

DR_Using_Virtualization.pdf.

[32] Xen, "What is Xen Hypervisor?," 03 March 2010. [Online]. Available:

http://www.xen.org/files/Marketing/WhatisXen.pdf.

[33] V. Inc., "Virtualization Basics," [Online]. Available:

http://www.vmware.com/virtualization/history.html. [Accessed 19 May 2011].

[34] M. Tulloch, Understanding Microsoft Virtualization Solutions, 2nd ed., Microsoft

Press, 2010, pp. 26-30.

[35] M. Ahmed, S. Zahda and M. and Abbasbas, "Server Consolidation Using OpenVZ:

Performance Evaluation," in II th International Conference on Computer and

Information Technology, December, 2008.

Page 131: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

118

[36] K. Kolyshkin, "Virtualization in Linux," 1 September 2006. [Online]. Available:

http://download.openvz.org/doc/openvz-intro.pdf.

[37] R. HAT, "RED HAT Enterprise Virtualization Hypervisor," 29 October 2010.

[Online]. Available:

http://www.redhat.com/f/pdf/rhev/RHEV_Hypervisor_Doc076_1010_web.pdf.

[38] OpenVZWiki, "Virtuozzo," 18 June 2008. [Online]. Available:

http://wiki.openvz.org/Virtuozzo.

[39] P. V. Containers, "An Introduction to OS Virtualization and Parallels Virtuozzo

Containers," 27 April 2009. [Online]. Available:

http://www.parallels.com/r/pdf/wp/pvc/Parallels_Virtuozzo_Containers_WP_an_in

troduction_to_os_EN.pdf.

[40] VirtualBox, "Welcome to VirtualBox.org!," Oracle, [Online]. Available:

http://download.virtualbox.org/virtualbox/UserManual.pdf. [Accessed 22 March

2011].

[41] Oracle, "Oracle VM VirtualBox," Oracle, [Online]. Available:

http://www.oracle.com/us/technologies/virtualization/061976.html. [Accessed 22

March 2011].

[42] Linux-VServer.org, "Welcome to Linux-VServer.org," Linux-VServer.org, 17

March 2011. [Online]. Available: http://linux-vserver.org/Welcome_to_Linux-

VServer.org.

[43] D. Gelernter, "Truth, Beauty, and the Virtual Machine," DISCOVER, 1 September

1997 . [Online]. Available:

http://discovermagazine.com/1997/sep/truthbeautyandth1217.

[44] Wikipedia, "Virtual Machine," 12 July 2011. [Online]. Available:

http://en.wikipedia.org/wiki/Virtual_machine.

[45] SUSE, "SUSE Linux Enterprise Server Virtualization with Xen," Novell, Inc, 03

Dec 2010. [Online]. Available:

http://doc.opensuse.org/products_new/draft/SLES/SLES-xen/index.html.

[46] Wikipedia, "Virtual private server," 15 July 2011. [Online]. Available:

http://en.wikipedia.org/wiki/Virtual_private_server.

[47] VMware, "Virtualization Basics," VMware, Inc., [Online]. Available:

http://www.vmware.com/virtualization/virtual-machine.html.

Page 132: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

119

[48] Casteleyn, Sven, Florian Daniel, Peter Dolog, and Maristella Matera, Engineering

Web Applications, Springer, 2009, p. 3.4.1 The WebML Model..

[49] SPEC, "SPECvirt_sc2010 Results," 2010. [Online]. Available:

http://www.spec.org/virt_sc2010/results/.

[50] SPEC, "Performance Details," 2010. [Online]. Available:

http://www.spec.org/virt_sc2010/results/res2011q2/virt_sc2010-20110420-00028-

perf.html#Performance Details.

[51] VMware, "VMware Cost-Per- Application Calculator Methodology," 2011.

[Online]. Available: http://www.vmware.com/files/pdf/vmware-cost-per-

application-calculator- methodology.pdf.

[52] VMware, "VMware vSphere™ 4.1 Pricing, Packaging and Licensing Overview,"

August 2010. [Online]. Available:

http://www.vmware.com/files/pdf/vsphere_pricing.pdf.

[53] P. Rob and C. Coronel, Database Systems: Design, Implementation, and

Management, 8th ed., Cengage Learning, 2007, p. 704 pages.

[54] Apache, "Apache Web Server," [Online]. Available: http://www.apache.org/.

[55] Michelle J. Gosselin, Jennifer Schommer, "Confining the Apache Web Server with

Security-Enhanced Linux," 2002. [Online]. Available:

http://www.cse.psu.edu/~tjaeger/cse543-f06/papers/gosselin_apache_selinux.pdf.

[56] W3Schools, "HTML Tutorial," [Online]. Available:

http://www.w3schools.com/html/default.asp. [Accessed 20 June 2011].

[57] Wikipedia, "PHP," [Online]. Available: http://en.wikipedia.org/wiki/PHP.

[58] P. D. Group, "PHP Manual," July 2011. [Online]. Available:

http://www.php.net/manual/en/index.php.

[59] Wikipedia, "MySQL," 12 July 2011. [Online]. Available:

http://en.wikipedia.org/wiki/MySQL.

[60] MySQL, "MySQL 5.5 Reference Manual," Oracle , 2011. [Online]. Available:

http://dev.mysql.com/doc/refman/5.5/en/index.html .

[61] Wikipedia, "Solid state drive," [Online]. Available:

http://en.wikipedia.org/wiki/Solid-state_drive.

[62] Ekker, Neal; Coughlin, Tom; Handy, Jim, "The Solid State Storage," January

Page 133: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

120

2009. [Online]. Available:

http://members.snia.org/apps/group_public/download.php/35796/SSSI%20Wht%2

0Paper%20Final.pdf.

[63] IBM, "SPECvirt_sc2010 Result," SPEC, Apr 2011. [Online]. Available:

http://www.spec.org/virt_sc2010/results/res2011q2/virt_sc2010-20110419-00027-

perf.html. [Accessed May 2011].

[64] IBM, "Configurations #15 - SPECvirt_sc2010 Result," SPEC, Jul 2011. [Online].

Available: http://www.spec.org/virt_sc2010/results/res2011q3/virt_sc2010-

20110712-00031-perf.html. [Accessed Aug 2011].

[65] Weibull, Experiment Design and Analysis Reference, ReliaSoft, 2008, p. 438.

[66] &. A. P. John L. Hennessy, Computer Architecture, Morgan Kaufmann ed., 2006.

[67] XEN, "The Xen® hypervisor," [Online]. Available: http://www.xen.org/.

[68] Citrix, "XenServer," Citrix Systems, Inc, [Online]. Available:

http://support.citrix.com/article/CTX124972.

[69] T. j. Project, "jQuery," The jQuery Project, [Online]. Available: http://jquery.com/.

[Accessed 2011 Aug 03].

[70] R. Cordova, "Enhancing Network Scanning For Discovering Vulnerabilities,"

University of Colorado at Colorado Springs, Colorado Springs, CO, 2010.

[71] Citrix, "XenCenter," Citrix Systems, Inc, 07 March 2011. [Online]. Available:

http://community.citrix.com/display/xs/XenCenter.

Page 134: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

121

Appendix A

Setting up the Application Testbed

A.1 Web server Installation:

Apache windows-based server is used as an environment to run the web-based

application of the model. Based on this server, we are able run the application and

test it locally. To set up and run apache, follow the next steps:

Step 1: download Apache server:

Apache server v2.5.10 is compatible with Windows XP, Windows server,

Windows Vista, and Windows 7. Apache server v2.5.10 is available on:

http://cs.uccs.edu/~gsc/pub/master/aalmuray/src

Or:

http://gandalf.uccs.edu/~aalmuray/thesis/appserv-win32-2.5.10.exe

Step 2: Install Apache server:

After Apache windows-based server has been downloaded, run the installer

application as next:

Page 135: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

122

1) Click on the icon shown in the figure:

Figure A.1. Apache installation icon

2) he installation wizard begins with welcome page. Click “Next”.

Figure A.2. Apache Installation wizard screen 1

2) After reading the agreement of sing this package. Click “I Agree”.

Page 136: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

123

Figure A.3. Apache Installation wizard screen 2

4) The wizard asks for choosing the location in which you want to install Apache.

Choose the folder or leave it as defa lt then click “Next”.

Figure A.4. Apache Installation wizard screen 3

5) Select all components to install then click “Next”.

Page 137: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

124

Figure A.5. Apache Installation wizard screen 4

5) You need to specify the server name that can be typed in the browser address

bar when access,the mail address of the administrator, and the port. Type the

server name “ localhost”, p t any email address, and the port “80” then “Next”.

Figure A.6. Apache Installation wizard screen 5

Page 138: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

125

6) Apache server needs a root password to connect to MySQL server. Type your

password or make it as easy as “1234” since yo are r nning apache locally then

“Next”.

Figure A.7. Apache Installation wizard screen 6

7) Apache server is being installed; you need to wait until the installation is

completed.

Page 139: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

126

Figure A.8. Apache Installation wizard screen 7

8) Apache server has been s ccessf lly installed. Check on “Start Apache” and

“Start MySQL” then click “Finish”.

Figure A.9. Apache Installation wizard screen 8

Step 3: Test Apache Server:

Page 140: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

127

After apache is installed, you need to test it to make sure is working. In order to

do that, open you internet browser then type http://localhost/ in the address bar,

then visit the local URL. You should see:

Figure A.10. Apache localhost webpage

Step 4: Apache Server Troubleshoot:

In case, apache server did not work on your platform computer, you would need

to visit Apache Support web page on: http://httpd.apache.org/support.html

A.2 Setting up the web Application:

In this step we need to provide all web files and directors of the model web

application. To achieve this step, follow the next:

Page 141: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

128

1) Download the zipped file that contains all components of the model web

application from: http://cs.uccs.edu/~gsc/pub/master/aalmuray/src/mceve.zip

2) Unpack the downloaded zipped file to see there is directory that contains files

and subdirectories.

Figure A.11. Unpacking the zipped file

3) The containing components unpacked previously need to be move into the

webserver p blic directory on the path “C:\AppServ\www” or whatever specified

during the installation steps. Therefore, for organizing purposes, create a new

folder with name of “mceve”.

Page 142: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

129

Figure A.12. Creating a new folder

4) Copy all unpacked components into the directory that has been created

previously. To copy the components:

a) From the menu “Edit” choose “Select All” or press “Ctrl+A”.

b) From the menu “Edit” choose “Copy” or press “Ctrl+C”.

Figure A.13. Creating a new folder

o paste a copy of the components, from men “Edit” choose “Paste” or press

“Ctrl+V”.

Page 143: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

130

Figure A.14. Pasting the copied files and directories

A.3 Building the database:

1) Open the web browser and go to http://localhost/phpMyAdmin/. You will be

asked to enter your credentials information. Enter the sername “root” and the

password that you have chosen in the installation section.

Figure A.15. phpMyAdmin Firewall

2) Create a new database with the name “mceve”.

Page 144: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

131

Figure A.16. Creating a MySQL database via phpMyAdmin

Figure A.17. the message after reating the MySQL database

3) Import the database structure and the data from the SQL file name

“mceve_sql.sql” and located the same website directory on the path

“C:\AppServ\www\mceve”.

a. Click on the tab “Import” and then browse the website directory to select the

SQL database file.

Page 145: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

132

Figure A.18. Importing a MySQL database via phpMyAdmin

b. scroll the page down ntil yo find a b tton captioned with “Go”, then press

the button to proceed the importation operation.

c. After importing the database successfully you should see a message indicating

it and the tables should be listed on left part of the page.

Figure A.19. Tables of the database appear on the left menu

IV. Connect the database to the web application:

1) In the website directory, there is a confirmation file named “config.php”. Open

this practical file and configure it correctly:

Page 146: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

133

Figure A.20. The content of the “config.php” file

2) Now, you should be able to access and run the Model successfully on

“http://localhost/mceve/”.

Figure A.21. Testing the application webpage

$dbname = "mceve" ;

$dbuser = "root" ;

$dbpass = "****" ;

Page 147: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

134

A.4 Install additional tools:

a. PHP Coder:

PHP Coder is free software that has an Integrated Development Environment for

PHP programming. PHP Coder Features with Full Integration of the PHP

Interpreter and the PHP documentation, Integrated Preview window, Full Syntax

Highlighting for HTML and PHP, AutoComplete for frequently used text

constructs, Project manager, Tag Buttons and all the standard editing functions

like almost unlimited undo, copy and paste, searching, and more. PHP Coder

download is available on http://www.phpide.de.

Figure A.22. PHP Coder software

b. WinRAR:

It is powerful software that archives data in RAR and ZIP file format, reduces the

size of email attachments, decompress many zipped file formats. This software is

a trial version and available on http://www.rarlab.com.

Page 148: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

135

Appendix B

The Manuel of the Application

and Data Access

This appendix describes how to use the Model web application and how to

manage the data that the Model uses.

B.1 Input:

On the main interface of the Model web application, a “Start” b tton appears to

the user. Once the user clicks on the button, an input interface is loaded and

shown to the users. There are two main types of inputs:

B.1.1 User Configurations:

In this kind of input there are to section:

First: Equipment:

It is the set of physical resources and the virtualization platform that the user

wants in the suggested solutions.

Second: Constraints:

Page 149: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

136

A constraint is an element factor that works as a bottleneck. It restricts an entity,

project, or system. The user can type a specific factor such as kind of processors,

a certain vendor, or the like.

Figure B.1. Resources that the user can specify

As shown in figure B.1, there are many different resources that the user can

specify and there is an input box for typing his constraint. In addition, the user can

make his constraints be Mandatory, which means the model must result only

suggestions that relate to these constraints, or optional to show all results relate to

the constraints beside other possible results.

Page 150: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

137

B.1.1 Measurements Priorities:

A priority is an order of importance or urgency that represents the ser’s

important thoughts. In this part of inputs the user chooses one or more different

benchmarks or measurements based on his priority.

Figure B.2. Measurements priorities

After accomplishing all entries, the user needs to submit theses inputs to the

model for the next step.

B.2 Process:

In the process stage the Model application preforms the input filtering,

algorithmic process, and computing the results that are explained in Chapter 4 and

Chapter 5. During the very short execution time, the user cannot control or disturb

Page 151: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

138

the progress. The figures B.3 and B.4 show the interfaces that appear to the user

indicating that the results are in progress.

Figure B.3. The interface indicating the results are in progress(1)

Figure B.4. The interface indicating the results are in progress (2)

Page 152: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

139

B.3 Outputs:

This interface is what the user wants to see at the end. The outputs consist of the

user configurations that the user has chosen, the weighted priorities that the user

has scaled, and list of suggested solutions that perhaps meet the ser’s

expectations. Figure B.5 shows an example of the interface that the user should

see at the end of the process. This interface can be read and controlled by the user.

As shown in figure B.6, the user can brewers more suggestion if the current

suggestion are not appropriate to the user.

Page 153: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

140

Figure B.5. The interface showing the results

Figure B.6. Tools for showing more results

Page 154: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

141

B.4 Database Access:

As administrator, accessing the database can be done through MySQL server. In

Apache localhost server the administrator can visits the link:

http://localhost/phpMyAdmin/.

Figure B.7. phpMyAdmin asking for credential information

As shown in Figure B.7, Apache phpMyAdmin asks for the credential

information which is the user name and the password that are entered during the

installation. After entering the correct login information, an interface will appear

to the administrator and the list of the Databases that have been created

previously. As shown in Figure B.8, when the administrator select the Model

database, all containing tables will be listed on the left side of the window.

Page 155: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

142

Figure B.8. phpMyAdmin interface showing the Model database and the list of tables

The administrator can add user more data into a table by selecting it and using the

appropriate tab s ch as “Insert” which allows the ser to enter additional data

through an input form as shown in figure B.9

Page 156: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

143

Figure B.9. The interface for entering more data into a table

Additionally, the user can browse the content of each table and modify or delete a

single or multiple rows as shown in figure B.10

Figure B.10. Browsing the content of a table

B.5 Additional Components:

Page 157: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

144

The user can explore more information about virtualization types, characteristics,

applications, projects, and the like. In addition, there are some details for each

result such as exploring more information about a set of configurations or more

details about the platform that this set uses. Figures B.11, B.12, B.13, and B.14

show some examples of the additional information that the user can explore.

Figure B.11. Information about virtualization types

Page 158: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

145

Figure B.12. Information about existing virtualization projects

Page 159: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

146

Figure B.13. Additional information about a virtualization platform

Page 160: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

147

Figure B.14. More details about specific configurations

Page 161: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

148

Appendix C

Tutorials

C.1 PHP:

PHP was created in 1994 by the famous programmer Rasmus Lerdorf. PHP in the

beginning sed to be known as “Personal Home Page", today, however, it is

known as "PHP: Hypertext Preprocessor". The initial goal of making PHP is to

create dynamic web pages that make the web site be more interactive. It became

widely-used around the world. PHP is considered now an open-source language.

Moreover, PHP is one of “high-level" languages. Therefore, it is easier to learn

than other programming languages. According to Wikipedia, article named

“PHP ,” “PHP was originally designed for use in Web site development, but

rapidly grew to become a much more robust language. PHP's primary use is as an

"embedded" scripting language, which means that the actual PHP code is

embedded in HTML code. When used in this way, PHP enables your web server

to process web pages before they're displayed in the user's web browser ”.

Page 162: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

149

Figure C.1. The usage of PHP compared to other web programing languages

C.1.1 PHP Overview

PHP stands for hypertext preprocessor (personal home page). It is a server side

programming language that is used to create dynamic web pages. It can be

embedded into HTML pages. It can create web pages faster than HTML or

JavaScript. In addition, it is uses some commands of C or C++. The PHP code is

enclosed in special start and end processing instr ctions “ <? php … ?> “ that

allow the programmer to jump into and out of PHP mode .

Figure C.2. Web request processing with and without PHP

Page 163: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

150

The big difference between PHP and JavaScript is that PHP code is executed on

the server side; however, it generating only HTML code then sent to the client

that makes it difficult to read the source code in the client side. According to the

article, titled “Basics of P”, addresses that “As its name ("PHP: Hypertext

Preprocessor") suggests, PHP derives its power by "preprocessing" hypertext on

the server side. This generally means that when the PHP script (saved as a .php

file) runs on your web server, it performs the programmed actions, and returns

HTML code that will then be sent back to your customer's web browser. The PHP

script itself is not included in the HTML that is sent to the browser, so the PHP

code is invisible and sec re to the ser.” hat means whenever someone browsers

a PHP page, All requests on that page will be sent its web server that processes

the requests. However, the web server will deliver the results in form of HTML to

the user. If the user opens the source of the page, he will find that all code is

HTML form, no functions, variables, or statements appear.

C.1.2 PHP properties:

PHP can collect form data, generate dynamic page content, or send and receive

cookies. It can do math operations such as summing, dividing, subtracting, and

multiplying. It can execute logical operations such as <, >, =, and, or, not, and the

like. A strong feature for PHP, and danger at the same time, is that PHP can

generate files, and save them in the file system, as a way of printing information

out, forming a server-side cache for your dynamic content . One of the strongest

and most significant features in PHP is its support for a wide range of databases

Page 164: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

151

(see figure C.3). Writing a database-enabled web page is incredibly simple. The

following databases are currently supported: MySQL, ODBC, dBase, Unix dbm,

SQLite, IBM DB, Oracle, and more . PHP supports calling or talking to services

via using protocols such as POP3, HTTP, IMAP, SNMP, and other protocol .

PHP can control files by many utility functions such as converting them from

types into other types, search engine functions, the IRC Gateway functions,

compression functions, calendar conversion functions, translation functions, and

the like. This research is not enough to list all the benefits that PHP can offer.

Figure C.3. The connectivity between PHP and other resources

C.1.3 PHP Programing tutorial:

Before you continue you should have a basic understanding of HTML. If you

want to study this subject first, find the tutorials on http://www.w3schools.com.

List of PHP tutorial content:

PHP Basic

PHP HOME http://www.w3schools.com/php/default.asp

PHP Intro http://www.w3schools.com/php/php_intro.asp

PHP Install http://www.w3schools.com/php/php_install.asp

PHP Syntax http://www.w3schools.com/php/php_syntax.asp

PHP Variables http://www.w3schools.com/php/php_variables.asp

Page 165: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

152

PHP String http://www.w3schools.com/php/php_string.asp

PHP Operators http://www.w3schools.com/php/php_operators.asp

PHP If...Else http://www.w3schools.com/php/php_if_else.asp

PHP Switch http://www.w3schools.com/php/php_switch.asp

PHP Arrays http://www.w3schools.com/php/php_arrays.asp

PHP While Loops http://www.w3schools.com/php/php_looping.asp

PHP For Loops http://www.w3schools.com/php/php_looping_for.asp

PHP Functions http://www.w3schools.com/php/php_functions.asp

PHP Forms http://www.w3schools.com/php/php_forms.asp

PHP $_GET http://www.w3schools.com/php/php_get.asp

PHP $_POST http://www.w3schools.com/php/php_post.asp

PHP Advanced

PHP Date http://www.w3schools.com/php/php_date.asp

PHP Include http://www.w3schools.com/php/php_includes.asp

PHP File http://www.w3schools.com/php/php_file.asp

PHP File Upload http://www.w3schools.com/php/php_file_upload.asp

PHP Cookies http://www.w3schools.com/php/php_cookies.asp

PHP Sessions http://www.w3schools.com/php/php_sessions.asp

PHP E-mail http://www.w3schools.com/php/php_mail.asp

PHP Secure E-mail http://www.w3schools.com/php/php_secure_mail.asp

PHP Error http://www.w3schools.com/php/php_error.asp

PHP Exception http://www.w3schools.com/php/php_exception.asp

PHP Filter http://www.w3schools.com/php/php_filter.asp

PHP Database

MySQL Introduction http://www.w3schools.com/php/php_mysql_intro.asp

MySQL Connect http://www.w3schools.com/php/php_mysql_connect.asp

MySQL Create http://www.w3schools.com/php/php_mysql_create.asp

MySQL Insert http://www.w3schools.com/php/php_mysql_insert.asp

MySQL Select http://www.w3schools.com/php/php_mysql_select.asp

MySQL Where http://www.w3schools.com/php/php_mysql_where.asp

MySQL Order By http://www.w3schools.com/php/php_mysql_order_by.asp

MySQL Update http://www.w3schools.com/php/php_mysql_update.asp

MySQL Delete http://www.w3schools.com/php/php_mysql_delete.asp

PHP ODBC http://www.w3schools.com/php/php_db_odbc.asp

PHP XML

XML Expat Parser http://www.w3schools.com/php/php_xml_parser_expat.asp

XML DOM http://www.w3schools.com/php/php_xml_dom.asp

XML SimpleXML http://www.w3schools.com/php/php_xml_simplexml.asp

PHP and AJAX

AJAX Intro http://www.w3schools.com/php/php_ajax_intro.asp

AJAX PHP http://www.w3schools.com/php/php_ajax_php.asp

AJAX Database http://www.w3schools.com/php/php_ajax_database.asp

AJAX XML http://www.w3schools.com/php/php_ajax_xml.asp

AJAX Live Search http://www.w3schools.com/php/php_ajax_livesearch.asp

AJAX RSS Reader http://www.w3schools.com/php/php_ajax_rss_reader.asp

AJAX Poll http://www.w3schools.com/php/php_ajax_poll.asp

PHP Reference

PHP Array http://www.w3schools.com/php/php_ref_array.asp

PHP Calendar http://www.w3schools.com/php/php_ref_calendar.asp

Page 166: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

153

PHP Date http://www.w3schools.com/php/php_ref_date.asp

PHP Directory http://www.w3schools.com/php/php_ref_directory.asp

PHP Error http://www.w3schools.com/php/php_ref_error.asp

PHP File system http://www.w3schools.com/php/php_ref_filesystem.asp

PHP Filter http://www.w3schools.com/php/php_ref_filter.asp

PHP FTP http://www.w3schools.com/php/php_ref_ftp.asp

PHP HTTP http://www.w3schools.com/php/php_ref_http.asp

PHP Lib xml http://www.w3schools.com/php/php_ref_libxml.asp

PHP Mail http://www.w3schools.com/php/php_ref_mail.asp

PHP Math http://www.w3schools.com/php/php_ref_math.asp

PHP Misc http://www.w3schools.com/php/php_ref_misc.asp

PHP MySQL http://www.w3schools.com/php/php_ref_mysql.asp

PHP SimpleXML http://www.w3schools.com/php/php_ref_simplexml.asp

PHP String http://www.w3schools.com/php/php_ref_string.asp

PHP XML http://www.w3schools.com/php/php_ref_xml.asp

PHP Zip http://www.w3schools.com/php/php_ref_zip.asp

Table C.1. List of PHP tutorial content.

C.2 SQL:

Structured Query Language (SQL) is a computer language aimed at accessing,

manipulating, and querying data stored in relational databases. SQL is used by

relational database technologies such as Oracle, Microsoft Access, SQL Server,

MySQL, Sybase and others. SQL functions have two categories: data definition

language and data manipulation language. SQL is used by a lot of developers and

supported by most repositories.

C.2.1 SQL Features:

The most important use of SQL is to execute queries against a relational database.

These queries can be retrieving data from a database, inserting records in a

database, updating records in a database, deleting records from a database, and

creating new databases. Additionally, SQL can create new tables in a database,

create stored procedures in a database, create views in a database, and set

Page 167: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

154

permissions on tables and rules. Structured Query Language is based upon

relational algebra and tuple relational calculus. SQL supports PROJECTION,

JOIN and UNION and other applications.

C.2.2 SQL Programing tutorial:

SQL is an ANSI (American National Standards Institute) standard. however, there

are many different versions of the SQL language that most of them support at

least the major commands (such as SELECT, UPDATE, DELETE, INSERT,

WHERE) in a similar manner.

List of SQL tutorial content:

SQL Basic

SQL HOME http://www.w3schools.com/sql/default.asp

SQL Intro http://www.w3schools.com/sql/sql_intro.asp

SQL Syntax http://www.w3schools.com/sql/sql_syntax.asp

SQL Select http://www.w3schools.com/sql/sql_select.asp

SQL Distinct http://www.w3schools.com/sql/sql_distinct.asp

SQL Where http://www.w3schools.com/sql/sql_where.asp

SQL And &amp; Or http://www.w3schools.com/sql/sql_and_or.asp

SQL Order By http://www.w3schools.com/sql/sql_orderby.asp

SQL Insert http://www.w3schools.com/sql/sql_insert.asp

SQL Update http://www.w3schools.com/sql/sql_update.asp

SQL Delete http://www.w3schools.com/sql/sql_delete.asp

SQL Demo

SQL Try It http://www.w3schools.com/sql/sql_tryit.asp

SQL Advanced

SQL Top http://www.w3schools.com/sql/sql_top.asp

SQL Like http://www.w3schools.com/sql/sql_like.asp

SQL Wildcards http://www.w3schools.com/sql/sql_wildcards.asp

SQL In http://www.w3schools.com/sql/sql_in.asp

SQL Between http://www.w3schools.com/sql/sql_between.asp

SQL Alias http://www.w3schools.com/sql/sql_alias.asp

SQL Joins http://www.w3schools.com/sql/sql_join.asp

SQL Inner Join http://www.w3schools.com/sql/sql_join_inner.asp

SQL Left Join http://www.w3schools.com/sql/sql_join_left.asp

SQL Right Join http://www.w3schools.com/sql/sql_join_right.asp

SQL Full Join http://www.w3schools.com/sql/sql_join_full.asp

SQL Union http://www.w3schools.com/sql/sql_union.asp

Page 168: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

155

SQL Select Into http://www.w3schools.com/sql/sql_select_into.asp

SQL Create DB http://www.w3schools.com/sql/sql_create_db.asp

SQL Create Table http://www.w3schools.com/sql/sql_create_table.asp

SQL Constraints http://www.w3schools.com/sql/sql_constraints.asp

SQL Not Null http://www.w3schools.com/sql/sql_notnull.asp

SQL Unique http://www.w3schools.com/sql/sql_unique.asp

SQL Primary Key http://www.w3schools.com/sql/sql_primarykey.asp

SQL Foreign Key http://www.w3schools.com/sql/sql_foreignkey.asp

SQL Check http://www.w3schools.com/sql/sql_check.asp

SQL Default http://www.w3schools.com/sql/sql_default.asp

SQL Create Index http://www.w3schools.com/sql/sql_create_index.asp

SQL Drop http://www.w3schools.com/sql/sql_drop.asp

SQL Alter http://www.w3schools.com/sql/sql_alter.asp

SQL Increment http://www.w3schools.com/sql/sql_autoincrement.asp

SQL Views http://www.w3schools.com/sql/sql_view.asp

SQL Dates http://www.w3schools.com/sql/sql_dates.asp

SQL Nulls http://www.w3schools.com/sql/sql_null_values.asp

SQL isnull() http://www.w3schools.com/sql/sql_isnull.asp

SQL Data Types http://www.w3schools.com/sql/sql_datatypes.asp

SQL Functions

SQL Functions http://www.w3schools.com/sql/sql_functions.asp

SQL avg() http://www.w3schools.com/sql/sql_func_avg.asp

SQL count() http://www.w3schools.com/sql/sql_func_count.asp

SQL first() http://www.w3schools.com/sql/sql_func_first.asp

SQL last() http://www.w3schools.com/sql/sql_func_last.asp

SQL max() http://www.w3schools.com/sql/sql_func_max.asp

SQL min() http://www.w3schools.com/sql/sql_func_min.asp

SQL sum() http://www.w3schools.com/sql/sql_func_sum.asp

SQL Group By http://www.w3schools.com/sql/sql_groupby.asp

SQL Having http://www.w3schools.com/sql/sql_having.asp

SQL ucase() http://www.w3schools.com/sql/sql_func_ucase.asp

SQL lcase() http://www.w3schools.com/sql/sql_func_lcase.asp

SQL mid() http://www.w3schools.com/sql/sql_func_mid.asp

SQL len() http://www.w3schools.com/sql/sql_func_len.asp

SQL round() http://www.w3schools.com/sql/sql_func_round.asp

SQL now() http://www.w3schools.com/sql/sql_func_now.asp

SQL format() http://www.w3schools.com/sql/sql_func_format.asp

SQL Quick Ref http://www.w3schools.com/sql/sql_quickref.asp

SQL Hosting http://www.w3schools.com/sql/sql_hosting.asp

SQL Summary http://www.w3schools.com/sql/sql_summary.asp

Table C.2. List of SQL tutorial content

Page 169: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

156

Appendix D

Questions and Answers

about Choosing

Virtualization Solutions

Below, some articles and posts show that questions and answers about right

solutions for constructing virtualized environments. However, some of these

articles and posts give different answers and directions. That increases the

confusion of choosing the right hardware, virtualization platform, and other

requirements. In contract, some of the articles and posts are submitted by

some virt alization sol tions vendors. Each vendor’s s bmissions indicate

that they always have better solutions.

D.1 List of articles and posts:

[1] Choosing the Right Desktop Virtualization Platform,

http://www.vmworld.com/docs/DOC-4796

[2] Choosing the Right Hardware for Server Virtualization,

http://www.silicon.com/white-papers/view/components/choosing-the-right-

hardware-for-server-virtualization-60472107/#

Page 170: MCEVE A Model for Configuring Efficient Virtualized ...gsc/pub/master/aalmuray/doc/MCEVE... · A Model for Configuring Efficient Virtualized Environments Based on Multiple Weighted

157

[3] Choosing the right virtualization tech for your environment,

http://www.zdnet.com/news/choosing-the-right-virtualization-tech-for-your-

environment/187126

[4] Choosing the right virtualization technology, http://www.itworld.com/choosing-

virtualization-environment-080111

[5] Choosing Virtualization platform,

http://www.webhostingtalk.com/showthread.php?t=916228

[6] Choosing virtualization solution,

http://www.microshell.com/sysadmin/virtualization/choosing-virtualization-

solution/

[7] Containers vs. Hypervisors: Choosing the Best Virtualization Technology,

http://www.linux.com/news/technology-feature/virtualization/300057-

containers-vs-hypervisors-choosing-the-best-virtualization-technology-

[8] Going Green Through Computer Virtualization,

http://www.paystolivegreen.com/2008/08/going-green-through-computer-

virtualization/

[9] KVM or Xen? Choosing a Virtualization Platform,

http://www.linux.com/news/enterprise/systems-management/327628-kvm-or-

xen-choosing-a-virtualization-platform

[10] Managing Virtualization, Part 3: Choosing a Virtualization Approach,

http://anildesai.net/index.php/2006/07/choosing-a-virtualization-approach/

[11] Revisit: choosing virtualization solution,

http://www.microshell.com/sysadmin/virtualization/revisit-choosing-

virtualization-solution/

[12] VMware: Choosing Virtualization,

http://www2.cit.cornell.edu/services/systems_support/vmware.html

[13] 10 questions to ask when choosing a virtualization solution,

http://www.eetimes.com/design/eda-design/4006406/10-questions-to-ask-when-

choosing-a-virtualization-solution

[14] Advantages of VMware Virtualization,

http://www.vmware.com/files/pdf/vmware_advantage.pdf

[15] Choosing a virtualization application,

http://www.macworld.com/article/137305/2008/12/choosevm.html