Flag This Hub

Server Farm Virtualization

By


Server farm virtualization with WASFO toolset
Server farm virtualization with WASFO toolset

Welcome to the Server Farm Virtualization hub

If you do not know what server farm virtualization stands for go to "Server farm virtualization - a crash course " in this page.

If you do know what server farm virtualization is and you want to understand better the meaning of these terms go to "What is server farm virtualization" in this page.

If you are interested in having a detailed description of a server farm virtualization project go to "Server farm virtualization projects" in this page.

If you are interested in knowing more of the quite fashionable term cloud computing go to "What is cloud computing?" in this page.

If you would like some topic to be analyzed and discussed in this hub use the comments capsule below.

Server virtualization

Native server virtualization
Native server virtualization

Server farm virtualization - a crash course

A server farm is a group of servers located in one facility. The facility itself is called datacenter. Besides the server farm the datacenter typically contains a disk farm, networking devices, air conditioning systems and tape devices.

Servers are typically hosted in racks and on top of the server is installed an operating system (e.g., Microsoft Windows, RedHat Linux).

The direct installation of operating systems on the servers has produced the unpleasant and expensive phenomenon of server sprawl: an impressive, continually increasing, amount of low-utilized servers.

The server sprawl issue can be controlled through server virtualization. A virtual server is typically obtained by installing on the servers an hypervisor (or Virtual Machine Monitor) rather than an operating system. The hypervisor makes it possible to install on the server many operating system instances.

Virtualization enables server consolidation, namely the replacement of many servers each hosting a very small number of applications with fewer servers each hosting an higher number of applications.

Server virtualization on x86 platform

Server virtualization projects

Summary

This article is a short introduction to server farm virtualization projects with focus on project phases and project management methodology.

Overview

A project is according to the Project Management Institute a temporary endeavor undertaken to create a unique product or service. Herein:

  • temporary means that the project as a definite beginning and a definite end;
  • unique means that the project involves something that has not been done before.

Each project has one or more objectives.

A server virtualization project is a project whose main objective is to virtualize an existing server farm. As such it should not be confused with projects whose main objective is to optimize an already virtualized server farm.

Server virtualization project planning

To manage projects efficiently it is important to decompose the project plan in phases each having its own deliverables. We have found useful to organize server virtualization project tasks by the following phases:

  1. Objectives definition
  2. Scope definition
  3. Data collection
  4. Data analysis
  5. Server farm design
  6. Tests
  7. Go live

Ideally projects should go through these phases sequentially, for instance we should first formulate objectives and then define the scope. Unfortunately, this is often not possible. Real projects may need to go through a a given phase multiple times. It is for instance quite common to see several revisions of the server farm design; and sometimes even of the data collection and analysis phases. However, it is important to avoid scope creeping , namely a reformulation of the project objectives. If that happens the project may not meet the deadlines and it will quite likely doomed to failure.

In this article we shall explore project phases 1-5. See server virtualization projects for a more comprehensive analysis.

Server virtualization project objectives

The following questions require an answer and that answer should ideally be obtained in the objectives formulation phase:

  • What are the expected project benefits ?
  • What are the expected project deliverables ?
  • What are the project scope definition criteria ?
  • Which areas should the project comprehend?

In the next four paragraphs we briefly examine each of these questions.

Project benefits

Server virtualization projects deliver significant financial and intangible benefits that we have analyzed elsewhere (see server virtualization project benefits). Depending on the IT department business objectives some benefits may be more important than others. Focus may for instance be on cost savings rather than on increased flexibility. Benefits are not all equal, some are more important than others. Moreover, they are interrelated and some of these links are actually causal relationships. A comprehensive map describing benefits and their relationships should be developed and used to ensure the right architectural decisions are taken.

Project deliverables

Each project phase should have its own deliverables and the list of deliverables should be communicated and accepted by the client. For instance, the scope definition phase main deliverable is a list of servers that will be included in the project scope with an explanation of why other servers have not been included.

Project scope definition criteria

Server virtualization project scope is often obtained through a complex list of selection criteria. Hereafter are a few typical examples

  • Technological platform criterion - Example: only Intel servers should be included.
  • Age criterion - Example: only servers with an age exceeding two years should be included.
  • Location criterion - Example : only servers located in datacenter "A" should be included.
  • Organization ownership crtierion - only servers hosting applications owned by organizations "A" and "B" should be included

For a complete list see references below. There is a strong relationships between the quality of the scope definition phase and the capability of the virtualization project to deliver the expected benefits. It is therefore important to explicitly formulate the project scope definition criteria and their rationale.

Technological areas affected by the project

Even when the project core objective is well defined there is much more that still needs to be decided:

  • Should backup systems be redesigned as part of the project? If so, only the SW layer or the HW layer as well?
  • Should the storage system be revised as part of the project or is it on the contrary enough define how much space is required in an existing storage system?
  • Should the SW management layer be redesigned as part of the project or not?
  • What are the constraints for the virtual network layer?

Budget constraints may prevent from including all these areas in the project, but attention should be paid to them in the architectural design phase even when they are not included to ensure good integration between the virtual server farm and the rest of the IT infrastructure.

Server virtualization project scope definition

Project scope definition requires clear selection criteria and reliable data to which to apply the agreed criteria. At the project beginning available data are usually insufficient and unreliable. As a consequence project scope is usually defined through multiple revisions. A server virtualization project tentative scope is initially defined and subsequently subjected to multiple revisions in each of the project phases. Next are a few examples of the lists out of which the project scope is typically defined:

  • Servers that may be candidate to server virtualization according to the client.
  • Servers from which inventory data (e.g., server model, number of processor cores) will have to be collected.
  • Servers from which inventory data were not collected because they were not reachable, or the security credentials were invalid, or the server was during the data collection discovered not to correspond to the selection criteria.

Server virtualization project data collection

It is quite common to meet IT professionals who believe that the design of a virtual server farm does not require any data collection. This is quite like to believe that you can pilot an aircraft without knowing the cruise speed and height. Unfortunately this is a good recipe for failure and we always warn IT departments against this approach.

Not only data need to be collected by they also need to be collected accurately. So, for instance, it is not enough to collect workload data with low sampling frequency (e.g., one data item each five minutes) because the sub-sampling error would be too high.

A server virtualization project requires at least:

  • Inventory data collection (server model, number and model of processors, installed memory, etc.)
  • Workload data collection (processor utilization, memory utilization, etc.)

It is also useful to get a complete inventory of installed applications.

Server virtualization project data analysis

Collected data quite often do not have the format required for the server farm design. Inventory data may contain corrupted values (e.g., serial numbers in the server model field). Workload data may contain holes due to monitored server shutdown or temporary network connectivity issues. Moreover performance data taken from servers having different configurations cannot be compared unless data are normalized. Indeed you cannot compare processor utilization data of servers with different type and number of processors unless you have an estimate of the performance capacity of the servers. This phase is particularly challenging when the server farm whose data are being analyzed contains hundreds of servers and for each server thousand of data point are available.

Virtual server farm design

Using guesses or rule-of-thumbs we may find a solution for the virtual server farm design but most likely we will not find the optimal (e.g., cheapest) solution and what is even worse we shall have no idea of how far we are from the optimal solution. We have proved with an accurate analysis of SAP projects, that from a computational standpoint are much more simple than typical server virtualization projects, that IT professionals typically overestimate system requirements and that this error typically costs up to 30% to clients. Costs and risks are much higher in server virtualization because of the higher problem complexity.

We have developed multiple mathematical models that are embedded in the WASFO Analysis and Optimization tool that allow to find an optimal response to the following questions:

  • Which server model should be used?
  • How many servers are required?
  • How could the Virtual Machines be distributed after virtualization? .

Resources

For an extended version of this article see server virtualization projects. For further details on server virtualization project benefits, risks, challenges and capacity planning see server virtualization .

About the author

Mauro Gatti is a Senior IT Architect at IBM Italy with fourteen years of experience on IT infrastructure design

Server virtualization projects

What is server virtualization?

Summary

Short introduction to server virtualization with definitions and examples.

Virtualization

Virtualization is a term broadly used in the IT industry to describe many different technologies. A few examples are:

  • Server virtualization
  • Storage virtualization
  • Network virtualization.

Next we shall introduce an abstract definition of virtualization and then we shall provide a more concrete definition by focusing on server virtualization.

Abstract definition of virtualization

At the roots of the virtualization concept is the idea of decoupling  two entities. It you need to put in communication two entities A and B (e.g., the server HW and the Operating System SW) you need to specify how these two entities will communicate. Provided that your problem is to put in communication only A and B you can focus only on the performance and reliability of the communication. On the contrary if your problem is to put in communication A_0, A_1, A_2 with B_0, B_1 and B_2 (think of the former as many different servers and the latter has many different Operating Systems) than you have a completely different problem. You do not want to have to specify for each of the possible combinations (e.g., A_0 vs B_0, A_0 vs. B_1 etc.) a different communication protocol. You would like to have a common communication protocol.

One approach would be to write a set of specifications and then have all those that write 'A' components (e.g., servers) and all those that write 'B' components (e.g. operating systems) to conform to these specifications. Unfortunately competition often prevents cooperation and therefore standard developments. What is even worse all standards are incomplete and development is very slow. Last but not least market is often characterized by de-facto standards.

An alternative approach is to create a decoupling layer 'L' to be put between A and B. All those developing A components will only need to ensure communication with L and the same is true for all those needing to develop B components. The final result is virtualization: B components do not care about the specific characteristics of A components because all that they need is to be able to communicate with L.

 

Server virtualization

The term server virtualization is used to describe decoupling the operating system layer from the server HW layer. It is implemented through Virtual Machine Monitors and well known examples are VMware vSphere and Microsoft Hyper-V. See Introduction to Server Virtualization for a more formal definition.

Although server virtualization has been around for decades the term has become of widespread use only a decade ago when a Virtual Machine Monitor was developed for Intel servers.

The key point herein is that not all platforms are virtualizable and the Intel platform in its original form was not virtualizable. To prevent the OSs running on top of the virtualization layer to produce havoc code needed to be developped to intercept inadmissible OS calls and to convert them in an acceptable format. All that of course needed to be done without adversely affecting system performance (a common problem of platform emulators).

The key success factor for VMware Inc. was to be the first to develop a Virtual Machine Monitor capable of handling the seventeen instructions of the Intel Architecture that were not compatible with virtualization without producing an inacceptable performance impact. Over time alternative approaches were developed (e.g., paravirtualization by XenSource) but VMware was already enjoying a dominant market position.

Server virtualization benefits

Server virtualization has many important financial and intangible benefits that are analyzed in full details in server virtualization benefits. An outstanding characteristic of server virtualization projects is that the sheer reduction of server maintenance costs can be enough to justify the project in the sense that the Net Present Value of the project is positive when the time horizon is four years and only the project investment (server costs and project implementation) and the maintenance savings are taken into account.

Financial benefits of server virtualization projects become even more evident when other savings are taken into account. A particularly important role is played by power savings and floor space savings. Generally speaking one should not on the contrary expect SW savings. These letter depend on the specific application stack and license agreements.

Despite all that the real driving factor for server virtualization is according to many CIOs not the cost reduction but the extraordinary increase of flexibility. The possibility to deploy quickly VMs without needing to procure a new server does make not only more efficient the server procurement process, but more importantly makes the IT department to meet quickly and efficiently the needs of the business line departments.

Comments

No comments yet.

Submit a Comment
Members and Guests

Sign in or sign up and post using a hubpages account.



    Cloud computing

    Summary

    A short discussion of the term "cloud computing"

    Buzzwords

    A buzzword is a vague term launched for marketing purposes that describes a new revolutionary approach. Buzzwords are used to foster the creation of new markets as well as to foster the sale of existing products. To be effective they must be supported by multiple vendors, albeit most often each vendor uses a different twist of the buzzword.

    The Information Technology market is very much characterized by the recurrent launch of new buzzwords. Terms like business on demand, grid computing, utility computing and (more recently) cloud computing can be clearly considered buzzwords.

    Buzzwords have both negative and positive aspects. They are somewhat technically misleading because they promise much more than it is currently available; and they usually describe as new something that has actually been available for long time. On the other hand they foster the creation of new approaches, spur new ideas and therefore they may help to produce innovation.

    Cloud computing

    According to wikipedia

    "Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid.

    There are little doubts that this definition is vague enough to deserve the classification as buzzword. People struggle to clarify the differences from other buzzwords (notably grid computing and utility computing) that in the past have promised very similar things. However if we leave the real of buzzwords and we focus on which technologies are currently available to implement cloud computing the terms become a little more clear.

    The promises of grid computing were quite similar to those of cloud computing, but at the core of grid computing was the technology of grid services, a stateful extension of web services (which are essentially stateless). On the contrary at the heart of cloud computing are two key technologies: virtualization (see this page) and server provisioning.

    Comments

    No comments yet.

    Submit a Comment
    Members and Guests

    Sign in or sign up and post using a hubpages account.



      Like this Hub?
      Please wait working