flexVDI is a Desktop Virtualization platform. Its main goal is to provide your users with ubiquitous access to their desktops. Whether they connect from a personal computer or their mobile phone, from the room next door or from hundreds of kilometers away, with flexVDI your users will experience their desktops as if they were right in front of them. Using well-known, open-source technologies, it provides a stable, performant infrastructure for both Windows and Linux desktops.
flexVDI main features are:
- Binary packages are provided for RHEL 7 and CentOS 7.
- Uses Qemu/KVM 2.9 and Spice 0.12.8, with some improvements to boost your VDI experience.
- Supports virtualization of Windows from XP to Windows 10, Windows Server from 2003 to 2016, and all flavors of GNU/Linux.
- Scalable to thousands of desktops.
- Template based desktops.
- LDAP or AD based authentication/authorization.
- Supports shared storage like SAS, FC, iSCSI, etc...
- Failure-tolerant cluster.
flexVDI must be installed on a set of physical servers with either RHEL 7 or CentOS 7, that form a VDI cluster. This document will guide you through the process of installing flexVDI 3.0 on your physical servers.
This document makes use of various flexVDI 3.0 specific concepts. Below you will find those terms with a brief description:
- Guest: A virtual machine defined by a given configuration, some host resources and one or more disk images.
- Host: Each one of the physical servers devoted to run Guests. The flexVDI distribution is installed on these machines.
- Pool: collection of resources (CPU and, RAM) allocated in each Host
- Template: A special type of Guest, whose logical content is frozen in order to generate Clones.
- Clone: A special type of Guest, created from a Template, that shares part of its configuration with this one. Disk images from Clones rely on their corresponding Template, and only store the differences between its current state and the state of their parent.
- Image Storage: Set of disks available for storing the disk images that Guests use. It is divided in several Volumes. One Image Storage is only available to those Hosts that can access all of its disks.
- Internal Volume: Component of a Image Storage. The cluster filesystem used in a Volume is created and managed by flexVDI software. Provides disk space for the Guests Images. Uses one or two (for redundancy) disks as its physical support.
- External Volume: Hosts directory path where Guests images are stored. The directory can be local or it can be a mounting point from an external storage system. It must be visible to every Host. External Volumes are installed and managed by the system administrator using the tools provided by the manufacturer of the storage.
- Media Storage: Shared resource where ISO images are stored. It is only made visible to Hosts defined in its creation.
- Direct Storage: Option used to provide a Guest direct access to physical disks.
- flexVDI Manager: Application that centrally manages and configures all environment components. It is distributed in a disk image, and runs as a Guest inside one the Hosts. The Guest containing the flexVDI Manager instance can be moved to any Host of the infrastructure, increasing availability and resilience for the environment.
- flexVDI Agent: Application running on each Host, acting as a proxy between the these ones and the flexVDI instance in which they are registered.
- flexVDI Config: Tool available from all Hosts, which can be used for configuring them and managing the flexVDI Manager instance.
- flexVDI Dashboard: Multiplatform GUI application which must be locally installed on the computers of the platform administrators, allowing them to connect and manage one or more flexVDI Manager instances.
- flexVDI Client: Desktop presentation tool that allows end-users to operate their virtual desktop. It authenticates the end user against the flexVDI Manager, and shows the user a list of desktops that are available to him. There are several native versions for different platforms: Windows, OS X, Linux, android, iOS, and a live ISO for x86/amd64 terminals.
- flexVDI Gateway: Platform entry point for flexVDI Clients. Allows to encapsulate all communications through a single websocket connection, which can be encrypted, easing network administration and providing secure communications. It can scale horizontally when required by massive deployments.
- flexVDI WebPortal: Appliance composed by a flexVDI Gateway and a flexVDI HTML5 Client application. Gives access to the virtual desktops through from web browsers.
- flexVDI Guest Tools: Set of tools, that provide improved performance and extra functionality (printer sharing, clipboard sharing, USB device redirection, to the Guest where they are installed. There are Windows and Linux versions available.
Relationships between components:
The most simple configuration of a flexVDI platform, looks like this:
When a flexVDI Client is started, it connects to the flexVDI Manager, to ask for instructions; usually, flexVDI Manager first requests the flexVDI Client for credentials to authenticate the user. But unauthenticated access can be configured too.
Then flexVDI Manager will start a virtual machine if needed, and send connection data to the flexVDIClient that started the session.
Finally, flexVDI Client will connect to a virtual desktop, which is served by a virtual machine running on one of the flexVDI Hosts.
Basic components run on a flexVDI Host
flexVDI Hosts are the hypervisor machines; they run most of the software which communicates with the flexVDI Clients. In a basic installation, they run:
- Guests: the virtual machines that execute the desktops used by end-users.
- flexVDI Manager: this software runs on a separate virtual machine, executed on any of the flexVDI Hosts.
- flexVDI Agent: every flexVDI Host runs an instance of flexVDI Agent that controls its actions.
flexVDI Gateway usually runs on flexVDI Hosts too, although it is not needed in every deployment.
The flexVDI Gateway is a part of the flexVDI Suite, that gives flexibility to to the way that users connect to their Guests.
Its basic functions are:
- It gives a single point of entry to the platform; flexVDI Gateway, acts as a proxy for flexVDI Manager, and flexVDI Host(s), so that clients only need to connect to it. Using it you only need to make one machine accessible to users, which is specially useful when giving access to Guests from public networks, where addresses are scarce.
- It encapsulates all communications in a https websocket, securing the communication with cryptographic authentication and encryption.
When using a flexVDI Gateway, the schema looks like this:
Usually, the flexVDI Gateway runs on one a flexVDI Host, but it can run on a separate machine too. Also, several flexVDI Gateways can be installed if needed, which gives a schema like this: