When Atlantis Computing added persistent support for their ILIO Diskless VDI in Q1 2013 I couldn’t wait to get my hands on a copy. Last week I was able to deploy an Atlantis ILIO environment with a Replication Host.
In the first part of this article I will explain what the replication host is, how it’s used and how it works. In the second part I’ll dive into the boot process and how the hosts are managed.
Atlantis ILIO products
Atlantis Computing offers a number of products in their ILIO portfolio. To understand what the Replication Host i s it is important to understand the products and its components.
At the moment of writing Atlantis offers the following products:
- Atlantis ILIO Persistent VDI
- Atlantis ILIO Diskless VDI
- Atlantis ILIO for Citrix XenApp
- Atlantis ILIO FlexCloud
- Atlantis ILIO Center
Each product consists of one or more components, to simplify the explanation I will loosely interpret the naming of the components. The components are shown in the columns, the products are in the rows.
|Session Host||Replication Host||ILIO Center|
|Atlantis ILIO Persistent VDI||X||X||–|
|Atlantis ILIO Diskless VDI||X *1||–||–|
|Atlantis ILIO for Citrix XenApp||X *1||–||–|
|Atlantis ILIO FlexCloud *2||?||?||?|
|Atlantis ILIO Center||–||–||X|
*1) Officially this is not called a Session Host
*2) I have no information about FlexCloud
Atlantis ILIO Center is a management component for enterprises – allowing you to manage and report in your ILIO environment. Basically it is a virtual appliance that manages the Session- and Replication hosts. ILIO Center periodically verifies the health of the hosts, retrieves resource usage, configures the hosts and clusters and controls the licensing. ILIO Center is not required for the Session- or Replication Host to function enhancing the availability and scalability of the setup.
A Session Host is a virtual appliance and is the heart of Atlantis ILIO (In-Line-Image-Optimization). A Session Host exposes a mount point via NFS or iSCI, a hypervisor connects a datastore to the mount and files are stored on the datastore (Software Defined Storage or SDS). Virtual machines store their configuration (.vmx for VMware) and hard disks (.vmdk for VMware) on the datastore just like they normally do. Once data is written to the Session Host datastore the “magic happens” (duplicate data blocks are inline de-duplicated (immediately), compressed and optimized to big sequential blocks). This results in a reduction of the required IOPS and capacity on the (shared) storage.
Basically there are two types of Session Hosts 1) disk-based and 2) diskless. The difference between the two types are fairly simple, the location where the data is stored is either on disk (disk-based) or in memory (diskless).
A disk-based Session Host receives the files via the NFS mount point, de-duplicates the data (the magic) and stores it on a virtual hard disk. This is always the second hard disk or /dev/sdb1, usually mounted on a LUN on the SAN. The hard disk is internally mounted as the folder /exports/ILIO_VirtualDesktops.
“The folder is mounted on file system file (vfstype) “dedup”, a proprietary file system of Atlantis Computing.”
In a VDI environment the required storage capacity can be reduced by roughly 90%.
A diskless Session Host has the same layout as a disk-based Session Host but instead of a virtual hard disk the folder /exports/ILIO_VirtualDesktops is mounted from a RAM disk. The RAM disk is mounted as /dev/ram0 with no compression or as /dev/zram0 when compression is enabled.
“Compression is done by the Linux module zRam”
Because RAM is volatile (the content is lost after a power-cycle) a diskless Session Host is unable to store persistent data, unlike the disk-based Session Host. Because the VM configuration (.vmx) and hard disk (.vmdk) files are stored on the Session Host datastore, not on the hypervisor host, they need to persist. Therefore a second hard disk /dev/sdb1 is attached (and mounted as /mnt/images) and a “SnapClone” is created of the files, initiated by an administrator via the Atlantis ILIO Center machine.
“Atlantis ILIO SnapClone is executed by the PartClone tool”
Because no data is stored on a SAN, the storage reduction is 100% during operation. In other words, there are NO IOPS required for the Windows desktop / server machines to run!
Technically a Replication Host share a lot of similarities with a disk-based Session Host. Just like the disk-based Session Host it exposes a (actually multiple) NFS mountpoint, optimizes the data blocks written (the ILIO engine) and stores it on the second hard disk /dev/sdb1 (actually /dev/mapper/vmdata_cache for logical volume management). One might say that the Replication Host is an improved disk-based Session Host.
A Replication Host stores the persistent data of multiple diskless Session Hosts. Because it aggregates the data of multiple Session Hosts (which most likely have similar data blocks) it can de-duplicate the data even more, reducing the required storage capacity by even more,
The glue that ties the Session Hosts and the Replication Host together is what Atlantis calls “Fast Replication”. Basically what this Fast Replication technique should do to make sure that whatever is stored on the RAM disk of the Session Host persists. Whenever a diskless Session Host reboots it should retain the data blocks written by the virtual machines.
The way this is achieved is simple and effective (KISS ).
Each Session Hosts mounts a folder to the Replication Host via NFS. The Replication Host exposes a dedicated NFS mount point for every Session Host with the name <ip>:/exports/ILIO_VirtualDesktops/<session-host-name> where <session-host-name> is the name of the Session Host (duh!) This folder is mounted on the Session Host as /persistent/persistentnode.
A loop device is used to make a file accessible as a block device. On the Session Host a loop device /dev/loop0 is attached to the file /persistent/persistentnode/zerofile, so the file is stored on the Replication Host.
“Atlantis FastReplication is basically a RAID 1 linux-raid”