Thursday, August 20, 2009

Difference between Citrix Xen and VMware ESX

Comparison between Citrix Xen Server and VMware ESX 4.0


1) System Architecture

VMware ESX



Ø ESX’s approach to virtualization can best be described as binary translation: each OS request to the processor is intercepted and translated into a virtualization-friendly instruction.


Ø As the first layer of software interacting with the hardware, VMware has made considerable investments in the development of proprietary device drivers to support the variety of network and storage hardware available on commercial servers. As new hardware devices become available, VMware-specific drivers need to be written to support them.

Ø VMware ESX is designed to leverage hardware virtualization assist technologies, available on today’s Intel and AMD™ processors (Intel VT and AMD-V) including predates Virtulization-aware operating systems (Including Linux Distributions and Windows server 2008)


Citrix XenServer



Ø With XenServer, all virtual machine interactions with the hardware are managed through the Domain 0 control domain, which itself is a spe­cially privileged virtual machine running on top of the hypervisor

Ø Domain 0 runs a hardened, optimized instance of Linux. It’s important to recognize that to the administrator, Domain 0 is part of the overall XenServer system and requires no additional installation or management.

Ø XenServer is designed to leverage hardware virtualization assist technologies, available on today’s Intel and AMD™ processors (Intel VT and AMD-V) but does not support Virtulization aware OS (Windows Server 2008)


2) Installation, configuration and administration


Citrix XenServer

Ø XenServer has a straightforward installation process, often referred to as the 10 minutes to Xen experience. XenServer is installed on the host systems using a CD or network-based installation process. The XenCenter GUI-based administration console is then installed on any Windows PC or server. System configuration information is kept in an internal data store within the XenServer control domain and is replicated across all servers that are managed together (forming a resource pool) to maintain high availability of the core management services. As a result of this architecture, a separate database server is not required for the core management functions.

VMware ESX

Ø VMware ESX hypervisor is installed on the host servers. VMware uses vCenter Server for multi-server management and configuration. vCenter Server runs as a Windows service on a separate management server and requires a third-party database for storage and management of host system configurations. For redundancy and availability of the core management services, VMware recommends the addition of clustering software such as its vCenter Server Heartbeat add-on product.


3) Guest OS support

Citrix XenServer and VMware ESX

Ø VMware and XenServer both support the most popular Windows and Linux OSs, including Windows XP, Windows Vista®, Windows 2000 Server, Windows Server 2003, Windows Server 2008, Red Hat Linux, SUSE Linux and others. In addition, VMware ESX supports some flavors of BSD®, Sun™ Solaris™ and Novell Netware®. VMware and XenServer are both certified for Windows according to the requirements of the Microsoft Server Virtualization Validation Program (SVVP).


4) Storage integration

VMware ESX

Ø VMware typically leverages its proprietary VMFS file system for storage, although raw disk options are available. VMFS is the default storage system for VM files, with both local and shared (SAN or NAS) storage. VMFS is a clustered file system that enables advanced features such as VMotion and Storage Vmotion

Citrix XenServer

Ø XenServer does not impose its own file system on storage systems but, instead, leverages the native storage capabilities more directly. For example, with a file-based shared storage system such as NFS, XenServer VMs are stored directly using Microsoft VHD (Virtual Hard Disk) format.



5) Performance

Ø VMware and ESX server has almost same performance in all use case scenarios.


6) Virtual machine backup and recovery


· Citrix XenServer

Ø XenServer and VMware both offer VM snapshot capability for basic backup and recovery needs. Support for traditional agent-based backup solutions is also available and both vendors maintain ecosystem partnerships with a variety of backup software providers

VMware ESX

Ø VMware offers a feature called Data Recovery in vSphere for backup of virtual machines. Data Recovery is a plug-in for vCenter Server that schedules regular disk snapshots for virtual machines.



7) VM load management

· Citrix XenServer

Ø XenServer includes a feature called Workload Balancing (WLB). Workload Balancing captures data such as CPU, memory, disk I/O and network I/O on the hosts and virtual machines to guide the initial and ongoing host location for virtual machines. There are two optimization modes for WLB: optimize for performance and optimize for density. Optimizing for performance ensures that minimum performance thresholds are maintained, whereas optimizing for density ensures reduced power consumption by placing VMs on the minimum number of hosts.

VMware ESX


Ø VMware offers DRS, a feature that guides the initial VM placement as well as semi- or fully-automated load management of VMs using its Distributed Resource Scheduler (DRS) feature. DRS does not enable much customization of the load management algorithm and is based solely on CPU and memory utilization.

8) System Maintenance


Citrix XenServer

Ø VMware’s product includes automated patching for the hypervisor as well as guest OS. As a complex and sophisticated software system, VMware requires significantly more patching and updates than other system software such as the BIOS or device drivers. the automated update process is touted by VMware as a way of managing the application of these updates.

· Citrix XenServer

Ø XenServer does not include patching features for guests, instead, leaving this task for the variety of products from OS vendors (and their ecosystem partners) or the provisioning services feature of the product.


9

Microsoft Azure pricing model




HPC Cloud platforms






Industry analysts have made bullish projections on how Cloud computing will transform the entire computing industry. As the computing industry shifts toward providing Platform as a Service (PaaS) and Software as a Service (SaaS) for consumers and enterprises to access on demand regardless of time and location, there will be an increase in the number of Cloud platforms available.

Recently, several academic and industrial organizations have started investigating
and developing technologies and infrastructure for Cloud Computing. Academic efforts include Virtual Workspaces and OpenNebula


we compare three representative Cloud platforms with industrial linkages which provides MAP Reduce as a platform








Amazon Elastic Map Reduce

Elastic MapReduce is a web service that makes it easy for researchers, data analysts, and developers to efficiently and cost-effectively process vast amounts of data using the Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (Amazon S3). Whether you already have an end-to-end data processing job flow or only a data set, Elastic MapReduce lets you focus on analyzing your data instead of the mechanics of the processing, including managing a cluster of computers in a complex distributed software development environment.
All Elastic MapReduce customers can use our simple web console or command line interface to execute most of the functionality available in the Elastic MapReduce API. Or, developers can programmatically access the distributed processing power of the Elastic MapReduce API to process large data sets using Hadoop technology.



Manjrasoft’s Aneka MAP Reduce
GRIDS Lab Aneka which is being commercialized through Manjrasoft, is a .NET-based
Service-oriented platform for constructing enterprise Grids. It is designed to support multiple application models, persistence and security solutions, and communication protocols such that the preferred selection can be changed at anytime without affecting an existing Aneka ecosystem. To create an enterprise Grid, the service provider only needs to start an
instance of the configurable Aneka container hosting required services on each selected desktop computer. The purpose of the Aneka container is to initialize services and acts as a single point for interaction with the rest of the enterprise Grid.









Manager: the manager works as an agent of MapReduce computation. It submits applications to the MapReduce scheduler and collects the final results after the execution completes successfully.

Scheduler: after users submit MapReduce.NET applications to the scheduler, itmaps sub tasks to available resources. During the execution, it monitors the progress of each task and takes corresponding task migration operation in case some nodes are much slower than others due to heterogeneity.

Executor: each executor waits task execution commands from the scheduler. For a Map task, normally its input data locates locally. Otherwise, the executor needs to fetch input data from neighbors. For a Reduce task, the executor has to fetch all the input and merge them before execution. Furthermore, the executor monitors the progress of executing task and frequently reports the progress to the scheduler.

Storage: the storage component of MapReduce.NET provides a distributed storage service over the .NET platform. It organizes the disk spaces on all the available resources as a virtual storage pool and provides an object based interface with a flat name space, which is used to manage data stored in it.
Google MAP Reduce
MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with the same intermediate key. Many real world tasks are expressible in this model, as shown in the paper.
Programs written in this functional style are automatically parallelized and executed on a large cluster of commodity machines. The run-time system takes care of the details of partitioning the input data, scheduling the program's execution across a set of machines, handling machine failures, and managing the required inter-machine communication. This allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed system.
Our implementation of MapReduce runs on a large cluster of commodity machines and is highly scalable: a typical MapReduce computation processes many terabytes of data on thousands of machines. Programmers find the system easy to use: hundreds of MapReduce programs have been implemented and upwards of one thousand MapReduce jobs are executed on Google's clusters every day.








Layered Apporach -cloud computing



























First Layer – Cloud Computing
The first layer is all the computing power and resources that enterprises need to deliver a service or application, including storage, processing, networks and servers. Some cloud services may use all of these components; others just one or two. This layer is the same as cloud computing
Cloud computing converts the traditional capital expenditure model (CapEx) common in data centers today to an operational expenditure (OpEx) model
Cloud computing is different. It is a specific type of utility computing. Cloud computing is the IT environment—encompassing all elements of the full “stack” of IT and network products (and supporting services)—that enables the development, delivery and consumption of cloud services. Properly defined,
Cloud computing has three key technical characteristics:
• Scale: cloud computing systems incorporate tens of thousands of servers, offering processing power vastly greater than a traditional data center.
• Flexibility: cloud computing can be used to handle very small or large processing tasks, and can be adjusted in real-time to match demand. If an organization needs 10 servers one day and 5,000 the next, the cloud can handle such a dynamically varying request.
• Efficiency: unlike traditional data centers, clouds offer pooled computing power, performing like a single large machine. Sharing tasks across this pool reduces costs and massively improves processing speeds.

Second Layer – Cloud Platform
The middle layer is a platform that enables the enterprise to add specific services that rely on the cloud computing layer for their power. Example platforms include Google Application Engine or Microsoft’s Azure, which provide platforms that are available to developers running services that draw on generic and custom functions. Enterprises would possibly use different platforms for different situations— for example, a platform supplied by a company such as HP, IBM, Dell to manage access to all the technology services in the first layer of the cloud, and a subsequent layer from a company such as TCS to provide industry specific “services” for processes in the third and final layer
Third Layer – Cloud Services
This final layer comprises the cloud services themselves. Services may be internally or Externally facing, and may be developed by the enterprise itself or by a third party. Many services will combine elements of both approaches. For example, companies can use Yahoo!’s FireEagle location service and combine it with their own GPS tracking data to create a shipment tracking service. The resulting service could also be combined with an internal HR service to monitor working hours for drivers to create an entirely new service.

This third layer is important because this is where businesses can differentiate Themselves in a SOA and cloud environment—by buying services, adding value and Selling them, companies can create enormous flexibility and competitive advantage
Cloud services provide the automated processes that are delivered using cloud computing. Cloud services are a specific type of Software-as-a-Service (SaaS)
Cloud Services allows CIOs and CFOs to control costs through these hardware and software leasing environments.
Cloud services used internally through SOA, providing greater efficiency, flexibility and cost-effectiveness
Extensibility: Cloud services can be modified and customized using SOA techniques
Matching Expectations: Cloud services require clear SLAs; deploy these using SOA contract-management techniques
Hardware alone is insufficient to support mission critical or traditional IT data center use of these new operating models. Cloud Services provides the vital layer enabling organizations to leverage PaaS offerings in support of an evolutionary, low-risk transition to SaaS-based COBOL applications, providing the expected level of scalability, security and availability, and meeting service level agreements with the users of such core enterprise systems.
Using Cloud Services, these applications will then be based on the very same code as their other supported platforms, ensuring maximum reach with minimal impact on development.
Cloud Services provides the compatible environment in which to host mission critical business systems.

Amazon AWS Management Tools

AWS provides command line tools to control EC2 instances [17,18]. These are Java based tools for manipulating the Amazon Machine Image (AMI) and API tools for operations related to rebundling images, registering etc. The Amazon EC2 AMI Tools are command-line utilities to help bundle an Amazon Machine Image (AMI), create an AMI from an existing machine or installed volume, and upload a bundled AMI to Amazon S3 [18]. The API tools serve as the client interface to the Amazon EC2 web service and are used to register and launch instances, manipulate security groups etc. [17].

Additionally, a free plug-in called AWS Toolkit for Eclipse allows developers to develop, deploy, and debug Java applications using Amazon Web Services [19]. The AWS Toolkit for Eclipse, based on the Eclipse Web Tools Platform, guides Java developers through common workflows and automates tool configuration, such as setting up remote debugger connections and managing Tomcat containers. The steps to configure Tomcat servers, run applications on Amazon EC2, and debug the software remotely are now done seamlessly through the Eclipse IDE.
ElasticFox is an GUI extension for Mozilla Firefox 2.x, that allows users to perform the same functions as those performed by the EC2 AMI and API tools [20]. ElasticFox also integrates functions for performing actions related to EBS. S3Fox Organizer is a similar GUI-based tool related to S3, that allows one to upload objects to S3, create and destroy buckets as well as making file and folder management easy for S3 [21]. S3Fox also enables access control to be defined to objects in various buckets.
AWS Management Console [22] is another web based tool that allows manipulations of all the Amazon services [22]. It allows the user to start/stop EC2 instances, attach/detach EBS volumes, create snapshots, pre-load an EBS volume with a snapshot or a dataset, create security groups, bundle images, look for new AMIs, and a plethora of other such functions. A similar tool, called Cloud Studio is also used by enterprises to manage their AWS Cloud [23].
Cloud42 is another GUI-based management as a service solution to Amazon Cloud Computing [29]. Cloud42 allow management of EC2 resources and provides additional functionality to administrate EC2 AMIs and instances. Apart from the GUI, Cloud42 offers a well-designed Web service interface, which allows invocation of several functionalities from within other applications or even to orchestrate EC2 instances using BPEL processes. The tool features some enhanced functionalities like transferring files from and to your computing cloud or from an AWS S3 bucket. Furthermore, it is possible to remotely execute arbitrary commands on a running EC2 server instance only by using the GUI or the Web service interface. It also provides a notification mechanism that can be used to subscribe any kind of endpoint to event messages sent from EC2 instances according to the publish/subscribe pattern.

JungleDisk is another tool that provides reliable online backup and storage powered by Amazon S3 and Rackspace.

Difference between private cloud and public Cloud

The only difference between public and private clouds seems to be ownership. Is there any other distinction that is relevant and important for users to understand?


Answer

Public Cloud


A public cloud is offered as a service, usually over an internet connection.

Public clouds typically charge a monthly usage fee per GB, combined with bandwidth transfer charges.

Users can scale the storage on demand and do not need to purchase storage
hardware.

Service providers manage the infrastructure and pool resources into capacity that customers can claim.





Private Cloud

Private clouds are deployed inside a firewall and managed by the user organization.

Private clouds are built from software running on customer supplied commodity hardware.

The data is typically not shared outside the enterprise and full control is retained by the organization.


Factor to Consider to differentiate private and public cloud


Initial investment

Private Cloud

There is often an assumption that private clouds require a million dollar capital outlay and an investment in volumes of equipment.

The reality is that private clouds can be built for under $5,000 and deployments are simple. Users can download software and have a cloud running in under an hour.

Public Cloud

Public clouds can start as low as $1000

For example, a public cloud makes it easy to backup a single laptop or deploy an application starting at a few GBs. As a company grows, it can lease more
capacity and the cost scales linearly.



Longevity of data


Public cloud

As data ages within the public cloud, the cost continues to rise.

If you are publishing frequently changing or short lived content such as movie trailers or daily newscasts, the flexibility of a public cloud is a good solution.


Private Cloud

Private clouds are licensed like enterprise software

Longevity of data does not increase the cost of the solution which bodes well for archive or content repository applications.



Required performance

Public cloud

Public clouds are accessed over the internet and face the limits of both your and the provider’s bandwidth connection.

This is usually capped around 10MB/s

To scale performance you can initiate additional 10MB/s connections, but doing so increases the bandwidth charges.


Private Cloud

Private clouds are deployed inside the firewall and accessed over the Ethernet LAN at wire speed
It is not uncommon to have read access in the 100 MB/s range per node. Adding nodes
provides additional performance to the cloud.
Files can be replicated to many nodes, each of which can serve requests independently.




Access patterns and locations




Public Cloud

Public cloud offerings typically include replication of data to multiple geographically dispersed locations, sometimes for an extra fee


If your users are global and can benefit from locality of data, a public cloud can sometimes substitute for a content distribution network

Private Cloud


Private clouds are typically deployed in a single location for LAN based access.

Remote users will need to connect over the WAN and work with internet type latencies.

Larger private cloud deployments can include multiple locations and start to approach the public cloud distribution, albeit at a higher initial investment.



Security and data isolation


Public Clouds :

There are many published opinions and dedicated websites that cover security of public cloud offerings. The bottom line is it comes down to control of your data. Public clouds are just that–public.

Isolation of data is only as strong as the virtualization technologies used to build the
cloud and the provider’s firewall.

If you are at all concerned about the data being outside of your company it should not be in a public cloud.


Private Clouds


Private clouds are owned, deployed and managed by internal employees.

Data is isolated based on your requirements and security is based on internal processes



Confidentiality and destruction of data



Public Clouds

Similar to security, confidentiality of data is a factor to consider when choosing a cloud storage solution.

The law is defined based on control of the data.

If the service provider is subpoenaed for your data based on their control of the data, they must comply regardless of your knowledge or objections.


Private Clouds

With private clouds you maintain control and have input, or at least knowledge of legal activities.

When it comes time to destroy or delete the data, it is in your power and can be confirmed by your own team.




Service level agreements

Public Clouds


Public cloud SLAs are published by the provider and are their responsibility.

Remediation is typically a cash payment, and while they will do their best to recover data, there is no guarantee of data availability.

SLAs can also be impacted by internet connectivity. For example, if your link
goes down, you cannot access your data and there is no remediation (unless your
network provider has guaranteed uptime).


Private Clouds

Private clouds have different mechanisms for data availability and service of access.

Most leverage multiple copies of files on multiple nodes and treat each node as a failure domain.

Individual server failures do not bring down the cloud or create data loss, so most SLA
agreements are satisfied.

It is important to have a complete understanding of the architecture and its capabilities when selecting and deploying a private cloud.

Difference between private cloud and pub

The only difference between public and private clouds seems to be ownership. Is there any other distinction that is relevant and important for users to understand?


Answer

Public Cloud


A public cloud is offered as a service, usually over an internet connection.

Public clouds typically charge a monthly usage fee per GB, combined with bandwidth transfer charges.

Users can scale the storage on demand and do not need to purchase storage
hardware.

Service providers manage the infrastructure and pool resources into capacity that customers can claim.





Private Cloud

Private clouds are deployed inside a firewall and managed by the user organization.

Private clouds are built from software running on customer supplied commodity hardware.

The data is typically not shared outside the enterprise and full control is retained by the organization.


Factor to Consider to differentiate private and public cloud


Initial investment

Private Cloud

There is often an assumption that private clouds require a million dollar capital outlay and an investment in volumes of equipment.

The reality is that private clouds can be built for under $5,000 and deployments are simple. Users can download software and have a cloud running in under an hour.

Public Cloud

Public clouds can start as low as $1000

For example, a public cloud makes it easy to backup a single laptop or deploy an application starting at a few GBs. As a company grows, it can lease more
capacity and the cost scales linearly.



Longevity of data


Public cloud

As data ages within the public cloud, the cost continues to rise.

If you are publishing frequently changing or short lived content such as movie trailers or daily newscasts, the flexibility of a public cloud is a good solution.


Private Cloud

Private clouds are licensed like enterprise software

Longevity of data does not increase the cost of the solution which bodes well for archive or content repository applications.



Required performance

Public cloud

Public clouds are accessed over the internet and face the limits of both your and the provider’s bandwidth connection.

This is usually capped around 10MB/s

To scale performance you can initiate additional 10MB/s connections, but doing so increases the bandwidth charges.


Private Cloud

Private clouds are deployed inside the firewall and accessed over the Ethernet LAN at wire speed
It is not uncommon to have read access in the 100 MB/s range per node. Adding nodes
provides additional performance to the cloud.
Files can be replicated to many nodes, each of which can serve requests independently.




Access patterns and locations




Public Cloud

Public cloud offerings typically include replication of data to multiple geographically dispersed locations, sometimes for an extra fee


If your users are global and can benefit from locality of data, a public cloud can sometimes substitute for a content distribution network

Private Cloud


Private clouds are typically deployed in a single location for LAN based access.

Remote users will need to connect over the WAN and work with internet type latencies.

Larger private cloud deployments can include multiple locations and start to approach the public cloud distribution, albeit at a higher initial investment.



Security and data isolation


Public Clouds :

There are many published opinions and dedicated websites that cover security of public cloud offerings. The bottom line is it comes down to control of your data. Public clouds are just that–public.

Isolation of data is only as strong as the virtualization technologies used to build the
cloud and the provider’s firewall.

If you are at all concerned about the data being outside of your company it should not be in a public cloud.


Private Clouds


Private clouds are owned, deployed and managed by internal employees.

Data is isolated based on your requirements and security is based on internal processes



Confidentiality and destruction of data



Public Clouds

Similar to security, confidentiality of data is a factor to consider when choosing a cloud storage solution.

The law is defined based on control of the data.

If the service provider is subpoenaed for your data based on their control of the data, they must comply regardless of your knowledge or objections.


Private Clouds

With private clouds you maintain control and have input, or at least knowledge of legal activities.

When it comes time to destroy or delete the data, it is in your power and can be confirmed by your own team.




Service level agreements

Public Clouds


Public cloud SLAs are published by the provider and are their responsibility.

Remediation is typically a cash payment, and while they will do their best to recover data, there is no guarantee of data availability.

SLAs can also be impacted by internet connectivity. For example, if your link
goes down, you cannot access your data and there is no remediation (unless your
network provider has guaranteed uptime).


Private Clouds

Private clouds have different mechanisms for data availability and service of access.

Most leverage multiple copies of files on multiple nodes and treat each node as a failure domain.

Individual server failures do not bring down the cloud or create data loss, so most SLA
agreements are satisfied.

It is important to have a complete understanding of the architecture and its capabilities when selecting and deploying a private cloud.

Limitation of Private Cloud

Limitation of Public Cloud
• Service availability: Enterprises are very sensitive to whether cloud providers can guarantee adequate availability required by business (especially since enterprises will have little or no control over the physical cloud environment). Further, relying exclusively on a single cloud service provider can also be a single point of failure; most enterprises are reluctant to move to a cloud provider without some business continuity strategy in place. In order to guarantee high availability and avoid single source of failure, multiple cloud providers with independent software stacks could be used. This, however, increases implementation complexity significantly.

• Service lock-in (proprietary APIs à no interoperability): Cloud providers today lack interoperability standards; this ensures that a cloud user cannot easily move applications and data between cloud vendors leading to lock-in scenario. The lock-in is definitely advantageous to cloud providers but cloud users are vulnerable to price increases, reliability problems or, in the worst case, the said provider becoming defunct. Standardizations of APIs not only will mitigate lock-in but also enable same software infrastructure to be used in private and public cloud such that excess computation workload that cannot be handled in the private cloud could be off-loaded to the public cloud (“surge protection”).

• Data confidentiality and auditability: Security and auditability is a significant concern of most enterprises given the public nature of cloud offerings. There are regulatory requirements such as HIPPA or Sorbanes-Oxley that will necessitate auditability of corporate data in the cloud. In addition, some nation's law may mandate cloud providers to keep data within national boundaries or prevent a second country getting access to data via its court system. There is also a significant risk to privacy of personal information as well as information confidentiality of businesses or government organisations when data is located in the cloud.

• Data transfer bottleneck and cost (technology trends): Given the data-intensive nature of applications, data transfer into and out of cloud becomes a major issue with current rate of $100 to $150 per terabyte transferred. This cost can quickly become prohibitive thus making data transfer a major bottleneck to cloud adoption. This is a significant challenge, since over the past decade; the cost of wide area network bandwidth has reduced much more slowly than the cost of computation and storage capacity.

• Performance unpredictability: Multiple Virtual Machines (VMs) can share CPU and main memory quite well but I/O sharing often leads to interference and hence unpredictability in performance.

• Difficulty in debugging large-scale distributed systems: When an application is migrated to the cloud and executed in a large-scale distributed environment, there may be bugs that manifest which cannot be reproduced in small-scale configuration. Detecting and debugging faults in such large-scale distributed deployment is quite a challenge.

• Software licensing: The licensing model for commercial software is a mismatch for cloud computing. Current software licensing limits the computer on which it can be installed and users pay one time plus annual maintenance charges. Thus, many cloud providers have relied upon open source software but key challenge for commercial software vendors is to devise a better licensing model for the cloud.