User:Awdelyea/FSOSS 07
Contents
FSOSS/07
XEN : Virtualization Changes Everything
Ross Chevalier, CTO, Novell, Canada
XEN is all about virtualization. It’s a system that’s designed to help in the virtualization process of multiple types of operating systems, on multiple types of operating systems. Ross Chevalier’s talk at FSOSS/07 about the XEN project was all about assessing the current state of the project, and also giving a brief overview of what virtualization is, and how to use it.
Virtualization is taking one operating system, and making it run within another operating system. The advantage to this is that you can have one powerful system, and split it up into many virtual instances that each manage a particular task, or set of tasks. On average, only 10% of a servers resources are being utilized, so virtualization allows a user to take greater advantage of the other 90%.
The XEN project is a system designed to allow a system to be host to many virtualized systems, and also allow you to manage the resources allocated to each instance. This effectively allows you to provide more resources to where they are needed most, on demand, in real time.
Virtualization can be split up into two types, full, and para.
A fully virtualized operating system is one that has not been modified specifically to run in a virtual environment, so it is unaware that it is being virtualized. As a result, the hypervisor traps and emulates. As one of the major contributors to the Xen open source project, Novell has integrated the Xen hypervisor as a core function of its SUSE Linux Enterprise 10 platform, making Novell the first major commercial vendor to bring an enterprise-ready Linux virtualization solution to market.
Within the graphic-based YaST tool, you can create, start, stop and manage the guest virtual machines running on your host SUSE Linux Enterprise Server. every I/O and hardware instruction that is deemed privileged by the hypervisor. Typically, the overhead occurring from these trapping and emulation operations would have a significant impact on performance. However, the AMD processors with AMD-V have been designed specifically for virtualization. The Xen hypervisor interacts with the virtualization extensions in the AMD processors not only to improve performance and efficiency, but also to provide hardware based isolation between these unmodified guest operating systems running on a virtualization server. Even with these enhancements, fully virtualized guest operating systems will typically not be able to achieve the same levels of performance as paravirtualized guest operating systems. However, since it is unlikely that all operating systems of the past—or even the future—will be modified for virtualization, the main benefit of full virtualization comes from its ability to host legacy operating systems that have not been paravirtualized. The ability to host these legacy operating systems in a virtualized environment is critical to a data center’s server-consolidation efforts. This feature is mandatory for virtualizing proprietary operating systems, including those from Microsoft.
With paravirtualization, the operating system running inside of a virtual machine (known as a guest operating system) is modified to run on top of a hypervisor. A para- (or partially) virtualized operating system instance is aware that it is running in a virtualized state and has been fine-tuned for optimal performance in that environment. Paravirtualization allows the hypervisor to avoid hard-to-virtualize processor instructions by replacing them with procedure calls that provide that functionality. A paravirtualized operating system loads and runs virtual drivers that are capable of interacting with Xen to access resources on the host virtual server. In other words, it does not require complete emulation of computer devices.
For example, a virtual machine with a paravirtualized operating system wouldn’t require an emulated graphics card, eliminating the need for the hypervisor to emulate its video data. Consequently, a paravirtualized operating system requires less overhead management, resulting in improved performance.
I found that the talk was really more about exposing people to virtualization in general, and the benefits that could be had by using virtualization technology in your systems. Throughout the talk, XEN was the virtualization tool used, but I though that it was less about exposing people to XEN, then it was exposing people to virtualization.
The whole goal is to utilize your resources more efficiently. This does not only include your servers, but also your wallet. The XEN project helps users and companies to better allocate their resources, allowing them to dynamically allocate server resources to many server instances, and save money along the way by not having to purchase additional hardware that is going to be under-utilized.
XEN helps fulfill these goals by providing a robust feature set that will allow it to provide high quality functionality to servers across the globe, and all for free. Novell has helped to make the XEN project more reliable and efficient and enterprise ready, so that it can begin to start really breaking into the enterprise-computing world as a viable alternative to buying more hardware.
Mr. Chevalier’s talk wasn’t really focused so much on open source specifically, but more about what an open source product can do for enterprise companies. I think that Novell is doing something good by helping to enhance the XEN project, because it allows users to better allocate and redistribute their resources. Their main goal here is to try to get a larger market share of the enterprise world, by bundling XEN with OpenSUSE, and providing paid support.
Facebook's Thrift: Scalable Cross-Language Development
Mark Slee, Technical Lead, Facebook
Facebook's Thrift project is aimed at creating a simple and lightweight system that will allow programmers to utilize the advantages of different programming languages to manage one system.
Thrift allows a developer to program in multiple languages, and allow them to communicate with one another by use of the Thrift system, which the developer creates a simple thrift file, which can then be transposed into many coding languages.
To quote Facebook's explination of Thrift:
"Thrift is a software library and set of code-generation tools developedat Facebook to expedite development and implementation of efficient and scalable backend services. Its primary goal is to enable efficient and reliable communication across programming languages by abstracting the portions of each language that tend to require the most customization into a common library that is implemented in each language. Specifically, Thrift allows developers to define datatypes and service interfaces in a single language-neutral file and generate all the necessary code to build RPC clients and
servers."
I found the talk a little hard to digest, because it was really more of a lecture on how to use Thrift, and the little details of how Thrift does something specific, instead of a more general overview of what it is, and why they made it, and where developers may be able to use the system to better help their own systems. It was a lot of specifics to take in at one time, having never heard of Thrift before, or ever using it before.
However, I did manage to take away some knowledge of the Thrift system, even though most of the details remain to escape me.