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. We can advice you on the best way to configure your guest operating systems so that your users get the most of their desktops.
- Desktops are accessible from a wide variety of clients. There are Windows, Linux and Mac desktop clients, as well as mobile clients for iOS and Android devices. We also provide a Linux distribution prepared to boot a thin client directly into your flexVDI desktop. Finally, you can even access your desktop from anywhere using just a web browser with our HTML5 client.
- Scalable, failure-tolerant cluster architecture. New hosts can be added to the cluster as needed, as easily as configuring the network and registering the host with the platform. Its resources will be ready to use at once. In the same way, the platform will quickly recover from a host failure, using the rest of its resources to keep the service up and running. Growing from hundreds to thousands of desktops is easy with flexVDI.
- Binary packages are provided for RHEL 7 and CentOS 7. Your hosts will benefit from the reliability and experience of Red Hat operating systems.
- Uses Qemu/KVM as the virtualization engine and Spice as the presentation protocol, with additional improvements to boost your VDI experience.
- Template-based desktops. Quick and easy to update when new versions of your software are available, highly available when malicious software threats your desktop instances.
- LDAP or AD based authentication/authorization. flexVDI integrates with your corporate directory.
- Configurable security capabilities, to restrict access to the desktop resources from the client side: clipboard, printers, usb devices, ...
- 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 virtualization and flexVDI 3.0specific 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.
platform consists of a set of hardware and software components that interact with each other to provide a satisfactory Virtual Desktop experience. From the hardware point of view, there must exist one or more computational nodes, called Hosts, and one or more storage objects. The Hosts provide the CPU and RAM resources needed to run the virtual desktops, while the storage objects contain their disk images.
On the other hand, the basic software components are:
- flexVDI Manager: The orchestrator that centrally manages and configures all environment other 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 A service running on each Host, acting as a proxy between the these ones and the flexVDI instance in which they are registered that manages its local resources on behalf of the flexVDI Manager instance. It controls the availability of CPU and RAM, the life cycle of the Guests running in the Host and the storage objects it can access.
- flexVDI Config: Tool available from on 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 that allows the platform administrators to connect and manage one or more flexVDI Manager instances.
- flexVDI Client: Desktop presentation tool that allows end-users to operate access 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, androidAndroid, iOS, and a live ISO Linux distribution for x86/amd64 terminals.
- flexVDI Guests: These are the virtual machines that actually contain the desktops. Each Host runs a set of Guests, according to its available resources and the Guests' needs. The flexVDI Manager instance is a special kind of Guest.
The most simple configuration of a flexVDI platform, looks like this:
A flexVDI Agent runs on each Host, while only one flexVDI Manager instance controls the platfrom. The flexVDI Config tool configures individual Hosts, while the flexVDI Dashboard application manages the platform logic, interacting directly with the flexVDI Manager.
The flexVDI Client is the end user viewport to a virtual desktop. First, the flexVDI Client connects to the flexVDI Manager to obtain the desktop connection parameters. The Manager may determine the virtual desktop to connect to based on the terminal and/or the user that is requesting the connection, and it will start a new instance when needed. Then, the Manager returns the Client which Host is running the virtual desktop, and how to access it. Finally, the flexVDI Client will connect to the virtual desktop and present it to the user.
Additionally, flexVDI offers the following components for additional features:
- flexVDI Gateway: Platform entry point for flexVDI Clients. Allows to encapsulate It encapsulates all communications through with WebSockets over TLS to a single websocket connection, which can be encrypted, public TCP port, easing network administration and providing secure communications. It can scale horizontally when required by massive deployments.
- flexVDI WebPortal: Appliance composed by of a flexVDI Gateway and a flexVDI HTML5 Client application. Gives Provides access to the virtual desktops through from web browsers where installing a native client is not possible.
- 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:
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.
The flexVDI Gateway is a part of the flexVDI Suite, that gives flexibility to to the way that users connect to their Guests.
- It gives a single point of entry to the platform; flexVDI Gateway, : it acts as a proxy for both the flexVDI Manager , and flexVDI Host(s)and the Hosts, so that clients only need to connect to it. Using it With a Gateway, you only need to make one machine one IP address accessible to users, which is specially useful when giving access to Guests from public networks, where addresses are scarcethat address is public and/or behind a firewall.
- It encapsulates all communications in a https websocket over TLS, securing the communication with cryptographic authentication and encryption.
When using a flexVDI Gateway, the client connection schema looks like this:
UsuallyBy default, the a flexVDI Gateway instance runs on one a every flexVDI Host , but it for convenience. You can then expose one of your Hosts to your users, or balance the connections among all of them with an ordinary web balancer. flexVDI Gateway instances can run on a separate machine too. Also, several flexVDI Gateways can be installed if needed, which gives a schema like this, scaling horizontally with as many instances as needed: