2.1. Introduction to Oracle Virtual Desktop Infrastructure

2.1.1. About Virtualization
2.1.2. About Storage
2.1.3. About Management
2.1.4. About Desktop Access

Oracle Virtual Desktop Infrastructure (VDI) provides access to virtualized desktops hosted in a data center. Oracle VDI can provide a complete desktop provisioning and delivery service by:

The four elements of an Oracle VDI system are virtualization, storage, management and desktop access, as shown in Figure 2.1, “Oracle VDI Architecture”.

Figure 2.1. Oracle VDI Architecture

The diagram shows the four elements of the Oracle VDI system and the components of each layer.

The following sections describe these elements.

2.1.1. About Virtualization

Virtualization is the basis of Oracle VDI because it provides the functionality for creating and managing desktops. A desktop is an instance of an operating system running on a virtualization platform. In Oracle VDI, a virtualization platform is configured as a desktop provider. When you configure a desktop provider, you specify the following:

  • The provider type: This is the platform used to virtualize desktops.

  • The provider hosts: The servers that actually run the desktops, and their associated storage.

Oracle VDI supports several types of desktop provider and the types can be divided into the following categories:

  • Hypervisor-based providers: These provide access to desktops that are virtual machines hosted by a bare metal hypervisor such as a VMware ESX server, or a hosted hypervisor such as Oracle VM VirtualBox.

  • Session-based providers: These provide access to desktop sessions that are hosted by remote computers, such as Microsoft Remote Desktop Services (RDS).

The provider hosts configured for a desktop provider are installed separately from Oracle VDI and run on their own platforms. The provider hosts provide the physical resources for running desktops, such as CPU and memory, as well as the means for managing desktops. The storage used by the provider hosts is discussed in Section 2.1.2, “About Storage”.

Oracle VDI does not restrict you to a single virtualization platform. You can use a mixture of desktop provider types and create as many desktop providers as you need. How Oracle VDI interacts with a desktop provider depends on the provider type, and is described in more detail in the following sections.

Hypervisor-Based Desktop Providers

The following are the available hypervisor-based desktop providers:

  • Oracle VDI

  • Microsoft Hyper-V

  • VMware vCenter

The Oracle VDI desktop provider uses Oracle VM VirtualBox as the virtualization platform, and the Oracle VM VirtualBox software is distributed with Oracle VDI. Unlike the other desktop providers, Oracle VM VirtualBox enables you to run UNIX and Linux platform desktops as well Windows desktops. Oracle VM VirtualBox also has its own integrated server for the Remote Desktop Protocol (RDP) that enables you to connect to, and control, a remote virtual machine as though it was running locally.

With the Oracle VDI and Microsoft Hyper-V desktop providers, Oracle VDI directly manages the provider hosts. Oracle VDI sends requests to register desktops with a provider host, including the configuration information for the virtual machines, and sends requests to manage those desktops, for example to start, stop, and preserve the state of desktops. For Oracle VDI providers, Oracle VDI uses the Oracle VM VirtualBox web services application programming interface (API) to communicate with the provider hosts. For Microsoft Hyper-V providers, Windows Remote Management (WinRM) is used. The communication between Oracle VDI and a provider host takes place over secure Hypertext Transfer Protocol (HTTPS) connections. There is no limit on the number of hosts these desktop providers can have, and to ensure best performance, Oracle VDI balances the desktop load across the available hosts.

When you configure a VMware vCenter desktop provider, you specify a VMware vCenter server rather than individual provider hosts because the provider hosts are managed by the VMware infrastructure. Oracle VDI sends requests for desktops to the vCenter server, and the vCenter server sends the request to a vSphere server in the group. Oracle VDI uses the VMware Infrastructure SDK web services API to communicate with the vCenter server and the communication takes place over HTTPS. Although the VMware infrastructure is responsible for all desktop operations, Oracle VDI is able to monitor the load and choose a particular datastore to use when creating a desktops.

Session-Based Desktop Providers

The following are the available session-based desktop providers:

  • Microsoft Remote Desktop

  • Sun Ray Kiosk

  • Generic

The Microsoft Remote Desktop provider does not provide individual desktops, instead Oracle VDI connects users to desktop sessions created on RDS servers. The provider host can be a single stand-alone RDS server or a group of servers in an RDS farm. The RDS server or farm is responsible for creating new RDS desktop sessions for users, or for reconnecting users to their existing desktop sessions (if Session Broker is configured), and for load balancing the sessions. Optionally, you can configure the RDS servers so that Oracle VDI can display session, CPU, and memory load information, in the Oracle VDI administration tools.

The Sun Ray Kiosk desktop provider provides access to types of sessions that are not available with Oracle VDI itself, for example to connect to a remote desktop using a different broker such as the Sun Ray VMware View connector, or to provide access to a web-based application in a locked-down web browser.

Generic desktop providers run RDS desktop sessions on physical computers or virtual machines. Typically the Generic provider is used by Oracle VDI to connect users to existing Windows PCs, and is used as part of a strategy for migrating desktops to the Oracle VDI solution.

2.1.2. About Storage

Storage is closely related to virtualization because usually a desktop provider requires somewhere to create and store the virtual disks used for desktops. The format used for the virtual disks is the native format supported by the virtualization platform. The storage requirements, and how the storage is managed, depend on the desktop provider type.

The Oracle VDI and Microsoft Hyper-V desktop providers require storage. Oracle VDI supports Zettabyte File System (ZFS) storage pools on Sun Unified Storage Systems or Oracle Solaris hosts, and Oracle VDI directly manages the storage it requires.

VMware vCenter desktop providers also require storage but the storage is managed by the VMware infrastructure and not Oracle VDI. However, Oracle VDI is able to query vCenter for the available storage, and can select the data store to use when creating virtual disks.

For all other desktop providers, storage is managed independently of Oracle VDI.

To provide for high availability, a desktop provider can be configured to use more than one storage server. With Sun Unified Storage Systems, you can also create storage clusters to provide redundancy for the hardware components of a storage server.

To provide the best performance and to balance the load, Oracle VDI selects a storage server to clone and host virtual disks based on the available free space and current workload. Once a virtual disk is created, it remains on the storage server until it is deleted.

How Oracle VDI Manages Storage

In order to create the virtual disks needed for desktops, Oracle VDI requires SSH root access to a storage server. On Sun Unified Storage Systems, the Sun Unified Storage command line is used to clone the virtual disks and store them in ZFS pools. On Oracle Solaris hosts, ZFS commands are used to perform these tasks. Each virtual disk is configured as an iSCSI target on the storage server.

When a user requests a desktop, Oracle VDI registers a virtual machine with a desktop provider host and this includes the iSCSI target address of the virtual disk. When the desktop provider starts the desktop, iSCSI is used to connect the desktop to its virtual disk, as shown in Figure 2.2, “Storage and Oracle VDI”. This enables the virtual machine to access a virtual disk as if it was located in a local file system.

Figure 2.2. Storage and Oracle VDI

The diagram shows the VDI Service registering virtual machines with an Oracle VDI Hypervisor host, which in turns connects the virtual machines to their virtual disks that are hosted on separate storage hosts.

An Administrator can enable maintenance mode for a storage server. In this mode, the storage server is disabled and all running desktops are either shutdown or suspended. Once this mode is enabled, maintenance can take place on the storage server. This mode is also useful for replicating and replacing a storage server, for example to replace hardware.

2.1.3. About Management

The management element is the main part of Oracle VDI. This element provides all the functionality needed to build large-scale virtual machine deployments, and to provide users with access to their desktops. It contains the following components:

  • VDI Service

  • Oracle VDI Center Agent

  • Oracle VDI Web Server

  • MySQL Database

  • RDP Broker

  • Sun Ray Software

The RDP Broker, and Sun Ray Software components provide the means for users to access their desktops, and these are discussed in Section 2.1.4, “About Desktop Access”. The following sections describe the purpose of the other components.

VDI Service

The VDI Service is the most important component of the Oracle VDI. It is used to create and manage desktop providers and desktops, and to authenticate users and assign desktops to them. The VDI Service is deployed as the vda module in the Common Agent Container (Cacao), which is a system daemon for running Java management applications. Sometimes the VDI Service is referred to as the VDA Service.

With Oracle VDI, desktops are organized into pools. A pool is a group of desktops hosted by a particular desktop provider type. Individual desktops can be imported into a pool, or a desktop can be imported as a template which is then cloned to create the required number of desktops. Pools are also used to apply a group of configuration settings to all the desktops in the pool, for example to specify the subnet on which the desktops are placed, or to control the resources used by the virtual machines.

The desktops in a pool are one of the following types:

  • Personal: These desktops are assigned to individual users and are owned by them until the desktop is either deleted or assigned to another user by an Administrator.

  • Flexible: These desktops are temporarily assigned to individual users. Once a user log outs out, or the desktop is no longer in use, the desktop is either recycled so that it can be assigned to another user or deleted.

The VDI Service can be configured to manage the complete lifecycle of a desktop by:

  • Creating the virtual machine

  • Starting the virtual machine

  • Assigning the desktop to a user

  • Monitoring the usage of the desktop and the state of the virtual machine

  • Recycling the desktop

  • Shutting down the virtual machine

  • Deleting the virtual machine

Oracle VDI can make use of data held in external user directories to authenticate users and assign desktops to them. This enables you to assign individual desktops or pools to the existing users and groups within your organization. The VDI Service supports Active Directory and LDAP-type directories. Multiple directories can be configured and this enables you to provide desktops to multiple companies from a single Oracle VDI deployment, or to integrate with companies that have complex Active Directory structures such as multiple tree forests with multiple domains. It is also possible to assign desktops to users using smart cards (Oracle VDI calls these tokens). Tokens and user directories can be used together, or independently.

Oracle VDI has two tools for configuring and managing the VDI Service:

  • Oracle VDI Manager: This is a web-based graphical application.

  • The vda command: This a command-line tool with a family of sub-commands for managing the individual areas such as desktop providers and pools.

The VDI Service itself can only be started and stopped from the command line, using the vda-service command.

Oracle VDI Center Agent

The Oracle VDI Center Agent is deployed as the vda.center.agent module in the Common Agent Container (Cacao). It enables Oracle VDI to scale up to support more users, and to provide a reliable and highly available service.

Oracle VDI hosts can be joined together to form an Oracle VDI Center. The first host that is configured forms the Oracle VDI Center and this host is known as the primary host. Additional hosts are configured and added to the Oracle VDI Center as secondary hosts. The Oracle VDI Center Agent provides secure communication between the hosts in the Oracle VDI Center and is responsible for co-ordinating the information about the Oracle VDI Center among the hosts.

An Oracle VDI Center that has more than one host is able to provide a reliable service because the desktop sessions can be distributed between the hosts. If one host fails another one continues to host desktop sessions with only a minimal interruption to the user. If the primary host becomes unavailable, the Oracle VDI Center Agent automatically promotes a secondary host to become the new primary host, and communicates these changes to the other hosts in the Oracle VDI Center. This is known as failover.

MySQL Database

Oracle VDI requires a MySQL database to store configuration and run-time information. When you configure an Oracle VDI Center, you can choose to use the embedded MySQL Server database that is included with the Oracle VDI software, or you can use your own MySQL database.

If you use the embedded MySQL database, the primary host in the Oracle VDI Center runs the Oracle VDI master database. To provide for high availability, a secondary host in the Oracle VDI Center runs a slave database that receives replication updates from the primary host. If the primary host becomes unavailable, the Oracle VDI Center Agent automatically promotes the secondary host to become the primary host, and its database becomes the master database. If you use your own MySQL database, you must make your own provision for high availability.

The configuration data stored in the database includes the information about user directories and tokens, desktop information such as desktop providers, pools, templates, and storage. The run-time information includes information about the users that are logged in, the desktops they are using, the state of the desktops, and details of cloning jobs that are running.

Oracle VDI Web Server

The Oracle VDI Web Server is an Apache Tomcat server that is used to run the graphical administration tools used with Oracle VDI. In addition to Oracle VDI Manager, there is also the Sun Ray Administration tool. Each administration tool uses its own Tomcat instance and is accessed using a different port number.

The Oracle VDI Web Server also runs the Oracle VDI web services, which are described in Section 2.1.4, “About Desktop Access”.

2.1.4. About Desktop Access

With Oracle VDI, desktop sessions always run on the virtualization host and never on the client devices. Users can access their desktops using any of the following clients:

  • Oracle Sun Ray Clients, including Oracle Virtual Desktop Clients

  • Remote Desktop Protocol (RDP) clients, including secure web access using Oracle Secure Global Desktop

  • Web services clients, typically web applications

All requests for access to a desktop are handled by the VDI Service. Once a user has a desktop, the RDP protocol is used to connect to, and display, the desktop session. How users access their desktops depends on the client used to access a desktop, and is described in the following sections.

Oracle Sun Ray Clients

Users can access a desktop using an Oracle Sun Ray Client, or an Oracle Virtual Desktop Client. A Sun Ray Client is a secure, low-power, hardware thin client device for displaying desktops hosted on a server. The Oracle Virtual Desktop Client is an application that installs on common client operating systems, and is a software version of a Sun Ray Client. Both of these clients use the Appliance Link Protocol (ALP) to connect to the Sun Ray Software which runs on an Oracle VDI host.

The Sun Ray Software provides the infrastructure for displaying desktops to Sun Ray Clients. The Sun Ray Software runs the Oracle VDI Kiosk Session, which in turn runs a desktop selector program and a Sun Ray Windows connector program. The desktop selector submits the user's credentials to the VDI Service and requests the desktops assigned to the user. The Sun Ray Windows connector is an RDP client for the Sun Ray environment and this connects the user to the virtual machine running the desktop. Users access their desktops by authenticating themselves with a user name, password, and optionally a Windows domain, or by inserting a smart card. If the authentication succeeds, the user is connected to their desktop. If a user is assigned more than one desktop, a screen is displayed that enables them to select the desktop to connect to. The user's credentials can also be passed to a Windows operating system so that the user can be automatically logged into their desktop.

RDP Clients

Oracle VDI includes an RDP Broker that enables RDP clients to connect to a desktop using the Remote Desktop Protocol. Supported RDP clients include the Remote Desktop Client included with Oracle Secure Global Desktop, or Microsoft Remote Desktop Connection.

Users access their desktop by running an RDP client and specifying an Oracle VDI host to connect to. The RDP Broker accepts the incoming request, which includes a user name, password, and optionally a domain name, and runs the VDI Client command line tool, which authenticates the user and requests a desktop. The VDI Service returns the IP address and port of the desktop to the VDI Client tool, which passes this information to the RDP Broker. The RDP Broker redirects the RDP Client to connect to the desktop at the specified IP address and port.

Oracle Secure Global Desktop extends the reach of traditional RDP clients by providing users with secure access to a remote desktop using a browser.

Web Services Clients

The VDI Client command line tool has a web services application programming interface (API). Application developers and system integrators can use the HTTP and SOAP protocols to develop their own solutions for requesting a desktop from Oracle VDI. The web service is hosted by the Oracle VDI Web Server.