MobiDesk:
Mobile Virtual Desktop Computing

Ricardo A. Baratto, Shaya Potter, Gong Su, Jason Nieh

Network Computing Laboratory

Columbia University

Problem:
Growing PC management complexity

Solution: MobiDesk

Issue: Interoperability

Installed Base + Investment in place

Unmodified applications, operating system kernels and network infrastructure

Virtualize Everything

Benefits

Simplified management

management

goes here

Ubiquitous access

High-availability

Outline

MobiDesk Architecture

Virtualization

Display

Operating System

Network

Related Work

Experimental Results

Conclusions

MobiDesk Architecture

Virtualization

session environment decoupled from underlying physical infrastructure

PC

user session

Display

OS

Net

virtualization + translation

MobiDesk

user session

Display

OS

Net

Display Virtualization

applications

window

system

device

driver

framebuffer

raw pixels

high-level requests

Display Virtualization

display updates

input events

virtual device

driver

applications

window

system

device

driver

framebuffer

THINC

Simple protocol

RAW

Copy

Solid Fill

Bitmap

Tile

THINC: Delivering Updates

THINC: Improving Remote Display

Operating System Virtualization

user session

operating system namespace

namespace

syscall interposition + private fs namespace

user session

namespace

Virtualization Example

OS 1

MobiDesk

session A

pid 10

pid 10

pid 10

pid 10

OS 2

MobiDesk

session A

pid 10

pid 30

Session Migration

storage infrastructure

applications

namespace

restart

applications

namespace

checkpoint

applications

namespace

Session Migration (cont)

Application state saved in kernel independent format

Use high-level application description

Network Virtualization – Overall View

No changes to outside world

Session Network Virtualization

session

A

1.1.1.1

MobiDesk

Host A

2.2.2.2

Transport

Network

MobiDesk

Host B

3.3.3.3

session

A

1.1.1.1

session

B

1.1.1.1

Related Work

Thin-client computing

Virtual machines

Network mobility

On-demand services

Thin-client computing

For example:

Citrix Metaframe

Virtual Network Computing (VNC)

SunRay

Virtual Machines

For example:

VMware ESX Server

Virtual

Machines

MobiDesk

applications

OS

hardware

Problem:

Applications tied to OS, even if OS needs to be brought down

Network Mobility

For example:

MobileIP

Rocks

M-TCP

On-demand Web Services

Akamai

IBM's Oceano

Webmail

Problem:

●

Application specific solutions which depend

on the statelessness of web services

Experimental Results

Prototype

Linux 2.4 kernel module and X device driver

Remote Display Performance

User-perceived performance on popular applications

Web browsing

Video playback

across different network environments

LAN

WAN

and compared to existing commercial systems

Web Browsing Performance

Latency: average time for a web page to be displayed by the client

Web Browsing Latency

Video Playback Performance

Video quality: playback time and frames displayed at the client

Example: 50% video quality

Twice as long to play the video, or

Half of the frames were not displayed

Video Quality

Session Migration

Session Migration Cost

Subsecond checkpoint and restart times:

0.85s checkpoint

0.94s restart

35MB image (8MB compressed)

Across Linux kernel versions: 2.4.5 to 2.4.18

Conclusions

Hosting infrastructure simplifies management

Virtualized session environment provides ubiquitous access, session independence from underlying infrastructure, and user isolation

Works with unmodified applications, operating system kernels, and network infrastructure, while being low overhead and providing efficient remote access

More information...

http://www.ncl.cs.columbia.edu

Backup slides

Proxy Scalability

Network Virtualization Overhead

Remote Display – Web Browsing Data Transfer

Remote Display – Video Data Transfer

Future Work

Virtualization of peripheral devices

High-end graphics support

Load balancing

Allow applications to be aware of virtualization?

Network Mobility

Network layer: MobileIP

Complexity: Deals with general mobility scenario

Operating System support lacking

Transport and Application layer

Not transparent

High overhead

MobileIP

Too complex

It's dealing with general mobility case

Mobility dependent on surrounding network (agent advertisements)?

May even conflict with MobiDesk implementation

Cannot reuse home address as long as session is alive

MobiDesk only suffers from this if we want public addressable sessions

OS support lacking

Would have to write our own implementation?

Network Mobility

Transport Layer

M-TCP

Need to modify the transport protocol

Application Layer

Rocks (reliable sockets), Mobile Socket

Modify socket library, emulate migration [close old, open new]

High overhead: double buffering, additional error recovery (in transit traffic)

Tied to specific transport protocol

Migration Details

Process state saved in kernel independent format

High-level process description

Standard kernel interfaces used to extract description

Other slides

Problem: PC Computing Model is flawed

Unmanageable

Mobile devices make things worse

Can be lost or stolen

BUT, still used to carry sensitive information

Normal people in charge of complicated computers

Virtualization

Display

Operating System

Network

Virtualization

session environment decoupled from underlying physical infrastructure

virtual resources + translation layer

display driver

OS identifiers

IP address

Virtualization

session environment decoupled from underlying physical infrastructure

Today

user session

operating

system

hardware

MobiDesk

user session

virtualization + translation

operating

system

hardware

Display Virtualization

Display Virtualization: THINC

Simple protocol

RAW, SFILL, BITMAP, PFILL

Transparent Video Support

Non-blocking server push model

Update scheduler

Client display resize support

Session Migration

Mechanism: Checkpoint – Restart

Applications unaware of the process

Thin-client computing

Remote Access

Virtualization Example

Virtual Private Namespace

Virtualize OS identifiers

Privatize OS identifiers and filesystem

Virtual address

Session migration does not affect applications or network

Persistent network connections

Automatic translation:

session address <=> physical addres

transport layer network layer

Session Network Virtualization

Private address

Isolation of network resources

Per-session address namespace

The Problem: PC computing model is flawed

The Problem: PC computing model is flawed

Display Virtualization Benefits

Benefits:

Ubiquitous access

Zero-management access devices

Virtual display driver works with unmodified applications

Benefits

Session mobility

Session isolation

Works with unmodified applications and operating system

Benefits

Network Mobility: Virtual IP

Network Isolation: Private IP

Persistent network connections without any changes to applications or the outside world

On-demand application and computational access

Sessions are decoupled from underlying computer

Sessions are independent entities in a shared environment

Works with unmodified applications, operating systems and infrastructure

Here we present our solution: MobiDesk

TODO: Should put something else in the title?

TODO: Should we describe how a session is created & managed?

TODO: What about the token system for tracking sessions?

- MobiDesk is an architecture for centralized desktop computing. The architecture is pictured on the left. There's a pool of hosting servers where user sessions are hosted.

- The proxy serves as a single entry point to the system.

- All servers share a common filesysten

- A Session is the system's working unit. It describes a set of user programs and resources. Sessions are isolated from one another: for the user it appears as running in a private computer.

- Sessions can be migrated transparently from one computer to the other. Network connections are maintained. Dynamic load balancing and fault tolerance: Need to update the OS? Migrate all sessions off the machine, update, and migrate them back. Minimum downtime and it's all transparent.

- Sessions can be accessed remotely using very simple access devices. Client devices require no changes, only the ability to run a simple viewer program.

Here we describe what problem we're trying to solver

- Unmanageable

TODO: Add notes

Heterogeneous computers.

- update cycle

Continuous updates for OS and applications

How to update everybody on time? It's been said that an unpatched windows machine will be owned within 20 minutes of being on the net!

Hardware dies continuously. It is cheap but it adds up

- Mobile devices

Add notes

- Normal people

Grandma barely knows how to use the mouse. Why does she have to worry about updating the computer, installing programs, deleting viruses?

Virtual display driver

Simple, low-level protocol

What's session migration?

- move a session from one place to the other

How do you do it?

- virtualization allows us to do it: avoid conflicts.

- checkpoint: take a snapshot of the state of a process. save user state (memory of the process ==> core dump) + kernel state (data structures and identifiers)

- restart: make the snapshot again into a valid running entity. but you may not be able to do it so easily: data structures may change, organization may change, etc.

How do you do it such that you can do cross-kernel migration

- details of process state (kernel data structures) can be expressed in high-level terms => kernel independent format

put 1 slide example of unix socket: with nifty drawing?

- session is OS resources + fs

- Session resources are virtualizaed

- Processes limited to a session's private resources

Virt OS ids: System call interposition

FS namespace:

chroot => virtual namespace

stacking fs barrier = private secure namespace

2004-08-23T12:46:59