|
Virtualization is typically discussed in the context of datacenters, where multiple VMs are loaded onto a single host to
increase server utilization or reduce the cost of buying new hardware. We cover this use case extensively in an upcoming
section. Virtualization enables other capabilities that can be extremely useful to enterprises. We now discuss
enterprise use cases for virtualization that go beyond the usual examples of increased utilization, which are being
investigated by Intel's IT organization. We start with ways to enhance the operation and efficiency of large-scale
computation. We then talk about distributing virtualization, and how the ability to allocate VMS in the location of
choice opens up new applications and paradigms for service deployment.
Enhancing standardization
While a completely homogeneous computing environment would yield obvious efficiencies, it is generally not realistic.
Intel's design environment supports a huge variety of software tools for a diverse roster of design teams, some of whom
joined Intel as a result of acquisitions. The design environment employs laptop PCs, dedicated compute servers, and
everything in between.
In this complex environment, virtualization could achieve many of the efficiencies of homogeneity. A software tool could
be bundled with its own specialized virtual computing environment. When a new version of this bundle is standardized, it
could be quickly pushed out to all sites on top of VMMs without requiring expensive and time-consuming OS upgrades. This
is especially helpful to small sites which often lack sufficient staff, and sometimes lack even all the required
computing platforms, to implement a never-ending stream of company-wide directives.
Making it easy and inexpensive to push out new standard images to all sites not only reduces costs, but accelerates
innovation, because it frees a small team to develop specialized expertise in a product and to support it worldwide
instead of relying on generalists dispersed across many teams. It enables the leveraging of good ideas and fixes from
any of these specialized groups, because these fixes and ideas can be quickly and easily applied everywhere.
Legacy operation
Closely related to the standardization issue is an inevitable heterogeneity across time. OSs and microprocessor
architectures evolve, and they sometimes even die. Yet important legacy software tools that depend on particular OS
versions are often useful far into the future. It is expensive and sometimes insecure to maintain special-purpose
"classic" configurations. In addition, tools that run on them can't ride Moore's Law to ever better performance.
If snapshots of such classic configurations were encapsulated as VMs, then they could be inexpensively "revived"
whenever and wherever needed and on enhanced hardware, resulting in the associated tool being executed faster.
This strategy would also be useful for any application that is run only occasionally, especially if it needs to or is
expected to run on a dedicated server. For example, during a downtime, whether planned or unplanned, a temporary mail
forwarding server could be activated at some unaffected site. This approach reduces not only costs, but also the risk
that an infrequently used application has fallen behind and is now incompatible with changes in the computing
environment. Such incompatibilities are typically discovered at the worst possible time, that is, at the exact moment
when the application is needed.
Checkpointing
A grand reliability goal is to guarantee to users that no job will ever fail to complete for external reasons, such as a
machine reboot, a power outage, a disk crash, or even a catastrophic failure such as an earthquake. An important
enabling technology that would be immediately useful is the automatic checkpointing of a VM.
It should be possible to schedule a periodic saving of the VM state that could be used to go back in time and replay
history from that archived moment, but without the externally induced failure. Less frequently, redundant copies of the
state could be stored away remotely, at a rate correlated with the probability of various risks which grow with the
duration of the task. For example, a simulation of the earth's climate that required a year of calendar time to complete
would almost certainly be disrupted during that year by some external event. It could be argued that the more
sophisticated the application, the more likely its developers are to have already built in checkpointing mechanisms. But
even if we ignore the fact that many real applications disregard checkpointing altogether, application-level
checkpointing mechanisms can't reasonably be expected to cope with catastrophic failures. Where should the application
save its own state to protect against fire and flood?
Checkpointing could obviate the need for engineers to submit redundant jobs as insurance. Today, the longer or more
critical a task, the more likely it is to run multiple instances of the same job, causing the actual resource
utilization for a computing task to be much larger than the resource requirements for an individual job might indicate.
With VMs and checkpointing, a single job would only need to be run once because it could be resumed elsewhere, even if
there were an external failure. Likewise, if a machine must be rebooted for OS patches, a planned site-wide downtime, or
simply as an attempt to put it back into a good state, the tasks running on it could be terminated easily enough and
resumed on some other machine. This eliminates the need to prevent long jobs from being submitted days in advance of
such maintenance and the temptation to postpone prudent maintenance because of the speed bump it throws into user
schedules.
In the long-term, a VM could support some analog of apoptosis (programmed cell death), killing itself when it detects
errors. A daemon could automatically roll back (terminate and then reincarnate elsewhere) any VM that hasn't recently
enough provided proof that it is healthy.
An issue that needs to be investigated is how to deal with external (non-virtual) state elements, such as the actual
current calendar time and ongoing network communications, that can't be checkpointed. Another key issue concerns
licensing. Some software applications require a license for physical CPU, while others require a license per actively
running copy. The issues of program state and licensing need to be answered when deploying VM checkpointing in the
enterprise.
Performance isolation
When choosing a shared computing resource, such as a server on which to run a VNC [10] session, it's difficult to
predict the impact of contention. The longer the task, the greater the chance that some other user may consume an unfair
share of the resource and degrade one's own effectiveness. Although using VM checkpointing could enable the victims to
pick up and move to "greener pastures," it would be better to prevent a "tragedy of the commons." If we can ration real-world
computing resources by configuring the parameters (memory size, processor speed, disk access speed, etc.) of each
VM assigned to a task, then limits on consumption would be inherent to the resource capacity of the VM that task is
running in. A number of VMMs are capable of allocating computing resources and of performing a measure of performance
isolation. While we have shown in a previous section that VMs can significantly interfere with each other, particularly
through the interactions of shared resources like the cache, there are other resources like CPU cycles and memory that
can be allocated in a way that significantly isolates the performance effects of tasks from each other.
Distributed virtual machines
The ability to allocate VMs at the location of choice is a capability we call Distributed Virtual Machines (DVM). DVMs
enable a whole host of possible applications and servers. Throughout this section, we use the terms distributed
virtualization, overlays, and distributed virtual machines, interchangeably. We view DVM as the methodology of choice
for realizing robust, computationally rich, networked virtualization and for implementing overlays.
The origins and impact of DVM
One of the earliest and most successful implementations of DVMs is PlanetLab [2]. PlanetLab is a world-wide overlay
network with over 689 nodes at 334 locations around the world. Designed to be a testbed and deployment platform for
researchers to study planetary-scale distributed systems and services, PlanetLab has distributed virtualization at its
core. Researchers allocate a "slice," a set of VMs, at the locations of their choice. Using VMs allows the researchers
to develop and deploy innovative new services that do not interfere with each other on the same physical hosts. Using
this model of computing, several innovative services with content distribution [11] and network measurement [12] were
developed and deployed. These types of applications, and the way that PlanetLab was designed for the safe development
and deployment of services, have implications for the way that DVM can be used by enterprises.
Network monitoring
A global organization has many Internet users scattered across the planet. Some are Intel customers, some are suppliers,
and some are employees. Employees can be within Intel's firewalls or working remotely from home or from customer sites
located anywhere on the globe. Services that are utilized include Web sites such as Intel's corporate presence at
www.intel.com, various e-commerce applications, and VPN connectivity back into Intel. This requirement for global access
can result in Intel's Network Operation Center (NOC) receiving complaints about performance from any spot on the planet
to any one of Intel's many DMZ zones. For example, the NOC might get a call from a user in China saying that the
response for an e-commerce application is very poor. Is the problem local to China? Is the problem
local to the Internet connection in question? Is the problem Internet-wide? The NOC needs tools to be able to answer
those questions.
A key question is where to monitor. The typical DMZ firewall model lends itself to monitoring the DMZ systems from
within the DMZ. This ends up creating a monitoring model with limited scope that does not address problems with transit
from anywhere in the world to the DMZ. An alternative would be an approach that examined Web logs for performance
problems [13] or looked at traffic flow data using Cisco NetFlow* [14]. Because of our traffic volume and the fact that
we didn't have Web servers at all of our Internet DMZs, we ruled out this option. It would be extremely useful to be
able to proactively monitor for performance problems all around the world using active measurements. Active measurements
from regions in the world could be taken from commercial services like Keynote* [15] or from hosts in
datacenters strategically placed around the world. Using commercial services would limit the kind of applications we
could run to monitor the DMZs and it could be fairly expensive. Deploying our own hosts in the locations around the
world from where we want to monitor would permit much more flexibility, but would be even more expensive.
DVM presents a relatively inexpensive and flexible platform for global-scale monitoring, but poses challenges with
software distribution and application management.
Security monitoring
The traditional, closed network control model has disadvantages in protecting the enterprise networks from distributed
network attacks because of data inaccuracy, inability to perform overall impact analysis, and lack of data correlation
from distributed sources in large networks. As more and more enterprises move towards relatively "open" perimeters
(sometimes without realizing it as through unauthorized wireless access points and VPN connectivity) and distributed
network environments in order to meet business demands, the associated provisioning and management cost will
consequently increase, as will the complexity. The IT infrastructure needs to be able to provision security requests
quickly and be pre-positioned and ready for such requests. The notion of trusted and un-trusted network zones is fast
changing in today's enterprise network. Enterprise networks are no longer a simple 2-trust level like they were a few
years ago with "internal trusted" and "external un-trusted" zones. The requirement for protecting the resources at the
service level is becoming more a reality, and the infrastructure to support this is at best expensive and difficult to
justify from an IT security standpoint. Also, simply implementing network and service-level security such as firewalls,
IPS, anti-virus, and a whole slew of defenses is not sufficient. In order to ensure these complex network and service-level
security enforcements are functioning as desired, an automated and proactive security monitoring system is
becoming more essential for enterprises. Proactive network security monitoring is required to validate the security
implementations, patching, and provisioning of software to ensure it is not vulnerable to the most recent threats and to
avoid costly network downtimes, security incidents, denial of service attacks, and worm and malware attacks, all of
which impact productivity and service availability. In addition, regulatory and legal compliance requirements, such as
the U.S. HIPAA, Sarbanes Oxley regulations and European privacy laws, are getting more strict for all types of
enterprises to ensure they are following the rules to protect their assets, resources, and information.
Vulnerability scanning for the enterprise network to ensure compliance to minimum security specifications and auditing
of network security policy to ensure it is implemented per the documented enterprise security policy are examples of
add-on security monitoring that the enterprise IT would like to deploy extensively but which is limited due to the
static nature of deploying these applications. Using the DVM approach, the ability to create instances/clones of systems
that would be able to generate the required security monitoring functions would be extremely simplified. In addition, it
would help create multiple views for network security assessments and monitoring. For example, in order to assess the
effectiveness of network security implementations, such as firewalls, IPS, authentication/authorization, and other
security enforcements, enterprises would have to perform the network security assessments/audits/scans from various
parts of the network, such as from within the DMZ/internal network and from the external connected network. This would
not only help validate the overall picture of the security posture for the network but also ascertain whether the
implemented controls are sufficient. With DVM and the ability to "suspend, copy and resume" a VM, network security
becomes relatively simple and cost effective. Another advantage of being able to inexpensively create multiple instances
of the network security monitoring system would be to increase the speeds and parallelism of the results. Network
security monitoring is then transformed from an infrequent and expensive annual or quarterly audit to a proactive one
that can identify and fix security vulnerabilities as soon as they appear on the network.
The DVM approach to network security monitoring as discussed above would help reduce the cost of provisioning these
relatively complex auditing/monitoring/scanning applications as compared to the traditional method of static
provisioning of standalone security monitoring systems. Using the DVM approach would reduce the capital costs of the
hardware and the cost of the provisioning tasks required to maintain physical systems for these functions. Operational
costs for network security operational staff would also be reduced as network staff would be able to leverage the
network for simplicity of "on-demand" VMs for the network security monitoring functions. Using the classical
server/operating system/application model, and not the DVM model, it is almost impossible to monitor to the level
required to be proactive enough to identify security gaps before they are widely exploited.
Content delivery
A content delivery overlay provides a common service to various applications such as distributed file storage and
sharing. Each overlay node maintains a small overlay routing table for finding the destination with the shortest path
length of complexity O(logn), where n is the network size. But these overlay search algorithms make the underlying
network transparent to the overlay and only find the shortest search path in terms of the number of virtual hops in the
overlay.
Safe yet realistic experimentation
A challenging aspect of enterprise environments is the difficulty of testing and introducing new or innovative services
into an established infrastructure. Changes are strictly controlled because changes in the computing environment can
negatively affect critical enterprise services. This is particularly true when introducing new services to an already
running physical host. The new service or application may require system libraries and other software that could
potentially break existing services if introduced. Moreover, usage loads introduced by new services on existing
infrastructure (both network and CPU) can potentially starve existing services. Thus, the traditional enterprise
approach is to bundle new hardware with each new service. Deploying new hardware for each additional service severely
slows the introduction of new services, adds to the Total Cost of Ownership (TCO), and further complicates change control. Testing of new
services is often done in isolated lab environments, where realistic conditions are difficult, if not
impossible, to replicate.
Alternatively, the ability to create VMs that are effectively isolated from each other and share resources fairly
resolves these problems. The fundamental idea here is to decouple the introduction of new services from the deployment
of new hardware. New services can be deployed on existing hardware by allocating VMs in the preferred service locations.
The VM isolation shields existing services from library conflicts with new services, which are sequestered in their own
individual VMs. Deploying new services on existing servers also speeds the development and testing of new services, in a
realistic, closer-to-production environment without impacting existing services and without requiring installation of
new hardware.
Virtual enclaves
Within large and complex enterprises, there is a need to separate mission-critical environments from the rest of the
organization. Critical areas like manufacturing should be immune to worms and malware that might proliferate in the rest
of the organization, and access to these critical areas needs to be restricted to those individuals who need it.
Fundamentally, these critical areas require their own separate enclave. The traditional approach to building these
enclaves is to use dedicated hardware, as shown in Figure 2. This approach has several drawbacks. Deploying the entire
infrastructure needed to make the enclaves self-sustaining (such as DNS servers) is time-consuming and expensive. If the
infrastructure in one of the enclaves goes down, there is no easy way of getting more resources, short of either
repairing the down nodes or installing new equipment.

Figure 2: Enclaves currently need to be implemented with physical partitioning and hardware firewalls
click image for larger view
The use of DVMs combined with overlay routing technology provides an innovative new way of deploying these enclaves. The
VMs required by each service can be joined together with a secure overlay. The overlay isolates and controls access to
the VMs as shown in Figures 2 and 3.

Figure 3: A secure overlay network connects distributed virtual machines
click image for larger view
This approach has several benefits. If there is sufficient capacity, no new machines need be deployed. These new virtual
enclaves can be deployed in a dynamic manner at a greatly reduced cost. If network segments go down, overlays can
route around the problems. If hosts go down, VMs can be moved or allocated on other physical hosts.
Extending virtualization into clients
The computational, network, and storage resources of mobile devices (laptops and handheld devices) in an enterprise
typically have low utilization and are not available for use by enterprise applications or services that could best
utilize them. We envision an environment where the OS with which a mobile user interacts, is one of many OSs that run
over VMMs. While the mobile user is interacting with the device, a VM dispatch service can request that the device's VMM
create VMs for a variety of tasks, as displayed in Figure 4. These tasks can range from doing computations to running
services like file systems, content distribution, and other services like Voice over IP (VoIP). This work can be
transparent to the end user and done in the background.

Figure 4: Dispatching DVMs to mobile devices
click image for larger view
This architecture extending virtualization into clients and dispatching work via VMs to mobile devices has significant
advantages over the current situation in most enterprises. Enterprises typically have low utilization of their mobile
resources. Our proposed architecture enables better utilization and can potentially add enormous amounts of shared
resources to an enterprise. It also has advantages when it comes to management of systems and services. Having a VMM
underneath the OS visible to a user makes it easier to restart or rebuild the users' OS. Services can take advantage of
the location of mobile devices and dispatch service instances in VMs that are close to their designated clients. This
frees a service from having to manage network parameters such as delay and throughput to a central site. The service is
also easier to maintain in the face of node outages because work can be moved between mobile devices.
The similarities between overlay networks and ad hoc networks, along with the technical merits that each introduce
through their integration, motivated our interest to investigate and implement an alternative architecture of overlays
on wireless mesh networks, called OverMesh [16]. Integrating overlays and wireless mesh enables OverMesh to be flexible
enough to serve many networking purposes.
While OverMesh is similar to current ad hoc, sensor networking, and peer to peer computing systems, it is also
architecturally distinct from these systems. These are the differentiating properties of OverMesh:
-
Infrastructure-free: a peer-to-peer edge/access system is suggested over current hierarchical physical formations.
-
Network virtualization: based principally on a distributed virtual machine overlay strategy.
-
Emergent control and manageability: utilize learning and statistical inference techniques to off-load human-
dependency on operational management and provisioning.
-
Cooperative and adaptive end-to-end control: tighter layer integration and automation of application-to-network
control and management through cross-layer facilities.
OverMesh can be applied to a variety of wireless mesh networks. At its current stage, we chose to realize it on one of
the mesh networks that is being actively standardizedthe IEEE 802.11s WLAN mesh network [17]. The PlanetLab service
architecture [18] was customized and integrated with the WLAN mesh network to manage the DVM-based overlays. We believe
that the implemented OverMesh platform will provide a unique testbed for developing a wide
variety of services and applications on wireless mesh networks.
An IT overlay
To experiment with, test, and deploy services using DVMs, Intel's IT department has created the IT Overlay.
We envision it as an overlay network that will include hosts within Intel and eventually extend to hosts residing
outside of Intel's firewalled perimeter, as shown in Figure 5. Systems hosting VMs have been deployed at five sites
within Intel, with more to be added as use of the IT Overlay increases. Intel is also part
of the PlanetLab consortium, and Intel® IT hosts two PlanetLab sites. Intel has deployed a monitoring service that takes
advantage of the distributed nature of PlanetLab.

Figure 5: The IT Overlay inside and outside of Intel's firewalls
click image for larger view
The internal portion of the IT Overlay will be modeled after PlanetLab. Services will be able to make requests to a
central authority that will dispatch VMs to run applications and experiments. We intend to use the interfaces and APIs
created by PlanetLab to dispatch VMs, although the Overlay uses Xen* [5] domains for VMs rather than the VServers [19]
implementation. We envision running security, network monitoring, and content distribution applications on the IT
Overlay and opening it up as a testbed and deployment vehicle for DVM-enabled services.
|