RD Virtualization Host Page 1 Overview of RD Virtualization Host Remote Desktop Virtualization Host (RD Virtualization Host) is a Remote Desktop Services role service included with Windows Server 2008 R2, Windows 2012 and Windows 2012 R2. RD Virtualization Host integrates with Hyper-V to provide virtual machines by using RemoteApp and Desktop Connection. RD Virtualization Host can be configured so that each user in your organization is assigned a unique virtual machine, or users are redirected to a shared virtual machine pool where a virtual machine is dynamically assigned. RD Virtualization Host uses Remote Desktop Connection Broker (RD Connection Broker) to determine where the user is redirected. If a user is assigned and requests a personal virtual desktop, RD Connection Broker redirects the user to this virtual machine. If the virtual machine is not turned on, RD Virtualization Host turns on the virtual machine and then connects the user. If the user is connecting to a shared virtual machine pool, RD Connection Broker first checks to see if the user has a disconnected session in the pool. If the user has a disconnected session, they are reconnected to that virtual machine. If the user does not have a disconnected session, a virtual machine in that pool is dynamically assigned to the user, if one is available. From <http://technet.microsoft.com/en-us/library/dd759170.aspx>
RD Virtualization Host Page 2 Virtual Desktop Pools You can group identically configured virtual machines that are hosted on Remote Desktop Virtualization Host (RD Virtualization Host) servers into a virtual desktop pool and make that virtual desktop pool available to users through RemoteApp and Desktop Connection. Because the virtual machines are identically configured, the user sees the same virtual desktop, regardless of which virtual machine in the virtual desktop pool the user connects to. The following are important considerations about a virtual desktop pool: The virtual machines in a virtual desktop pool should be identically configured, including which programs are installed. A virtual machine can be a member of only one virtual desktop pool at a time. Important A virtual machine should not be both a member of a virtual desktop pool and assigned to a user as a personal virtual desktop. A virtual desktop pool is not specifically assigned to a user. Multiple users can use the same virtual desktop pool. Only one user can use a virtual machine in a virtual desktop pool at a time. You can make multiple virtual desktop pools available through RemoteApp and Desktop Connection. The user sees a different icon for each virtual desktop pool. Users should not save files on a virtual machine that is in a virtual desktop pool. If a user logs off from a virtual machine in a virtual desktop pool, the next time that the user logs on to the virtual desktop pool, the user might be connected to a different virtual machine in the virtual desktop pool. If a user disconnects from a virtual machine in a virtual desktop pool, when the user reconnects to the virtual desktop pool, the user will be connected to the same virtual machine. A virtual machine in a virtual desktop pool can be configured to be automatically restored to its original state after the user logs off. Any changes that a user made while logged on are undone. For more information, see http://go.microsoft.com/fwlink/?linkid=143453. From <http://technet.microsoft.com/en-us/library/ee216741.aspx> Step by Step 1. Open Server Manager (ideally from the Server you want to host the Session Broker role), Click on Add Roles and Features, Select Remote Desktop Services Installation and Click Next 2. Select Deployment Type of Standard deployment
RD Virtualization Host Page 3 3. Select Virtual machine-based desktop Deployment and Click Next 4. Click Next on the Review of role Services screen 5. Specify which server to act as the RD Connection Broker Server and Click Next 6. Specify which server to act as the RD Web Access Server and Click Next (In our example, we re elected to host the RD Web Access role on the same host as the Session Broker role.)
RD Virtualization Host Page 4 7. Specify the RD Virtualization Host and Click Next In our example we re using the same host for all 3 roles. The Hyper-V role will be installed if it isn t already. 8. Confirm Selection and check mark on Restart Destination Server automatically if Required, Click Deploy After completion of this process, you have successfully installed the RD Connection Broker, RD Web Access, RD Virtualization Host. Virtual Machine-based desktop Deployment is of two types: 1. Personal Virtual Desktop Collection Administrators manually assign virtual desktops to the users. 2. Pooled Virtual Desktop Collection - Administrators deploy virtual desktops and users are randomly assigned virtual desktops. At log off virtual desktops are generally rolled back (rollback is optional). Creating a Pooled Virtual Desktop Collection There are two types of Pooled Virtual desktop Collections: 1. Pooled Managed The Virtual desktop machine is created using the Sysprep Template of a virtual machine. We can recreate the virtual desktops from this image at will. 2. Pooled Unmanaged We can add the existing virtual machine to this virtual desktop collection from Hyper V pool. With either option, the administrator can configure the pool to store the user profiles on User Profile disks separate from the machines. Pooled - Managed Virtual desktop Collection 1. Open Server Manager, Click Remote Desktop Services and Select Overview
RD Virtualization Host Page 5 2. In Deployment Overview Section, Click Tasks and Select Edit Deployment properties. 3. Expand Active Directory and Select the Organization Unit if you would like to add the Virtual desktops to the domain, Click Apply 4. Select Collections tile 5. In Collection Section, Click Tasks and Select Create Virtual Desktop Collection, Click Next
RD Virtualization Host Page 6 6. Type the Name of the Collection and Click Next 7. Select the Pooled Virtual desktop collection and Click Next 8. Specify the Virtual Desktop Template which you must have already configured in Hyper V (making sure to have syspreped the virtual machine after installing the software required by users) and Click Next. Note If you do not have an image then it can be easily created using the following command: %windir%\system32\sysprep\sysprep.exe /generalize /oobe /shutdown /mode:vm See the Windows 2012 RDS guides for more information on how to SYSPREP a template VM. 9. Click Next
RD Virtualization Host Page 7 10. Specify the unattended installation settings and Select the OU 11. Specify the Users and Groups and Specify the Prefix and Suffix for the Virtual Desktop 12. Specify Virtual Desktop allocation and Click Next 13. Specify Virtual desktop storage and Click Next
RD Virtualization Host Page 8 14. Specify User Profile disk if you want with the UNC Path and Click Next 15. Confirm Selections and Click Create 16. View Progress and Click Close 17. In Collection Section, Right Click VDI( Collection Name) and Select Task Status details This completes the Virtual Desktop Managed Pool deployment. Pooled - Unmanaged Virtual desktop Collection
RD Virtualization Host Page 9 Pooled - Unmanaged Virtual desktop Collection 1. In Collection Section, Click Tasks and Select Create Virtual Desktop Collection, Click Next 2. Type the Name of the Collection and Click Next 20. Select the Pooled Virtual desktop collection and Uncheck Automatically create and manage virtual desktops, Click Next 21. Specifying the Existing Virtual Desktops and Click Next 22. Specify the Users and Groups and Click Next
RD Virtualization Host Page 10 23. Specify User Profile disk if you want with the UNC Path and Click Next 24. Confirm Selection and Click Create 25. View Progress From <http://blogs.technet.com/b/askperf/archive/2012/10/31/windows-8-windows-server-2012-pooled-virtual-desktopinfrastructure.aspx>
RD Virtualization Host Page 11 Personal Virtual Desktops A specific virtual machine that is hosted on a Remote Desktop Virtualization Host (RD Virtualization Host) server can be assigned to a user in Active Directory Domain Services (AD DS) to use as a personal virtual desktop, which the user can then access by using RemoteApp and Desktop Connection. The following are important considerations about assigning a personal virtual desktop to a user in AD DS: The user and the virtual machine must both be members of an Active Directory domain. A user can be assigned only one personal virtual desktop at a time. A virtual machine can be assigned as a personal virtual desktop to only one user at a time. The functional level of your Active Directory domain must be at least Windows Server 2008. The name of the virtual machine in the Hyper-V Manager tool must match the fully qualified domain name (FQDN) of the computer. To assign a specific virtual machine to a user as a personal virtual desktop, use either of the following: The Assign Personal Virtual Desktop Wizard in the Remote Desktop Connection Manager tool. The Active Directory Users and Computers tool in Windows Server 2012 R2. From <http://technet.microsoft.com/en-us/library/ee216751.aspx> Step by Step To Create a Personal - Managed Virtual desktop Collection 1. Open the Server Manager, Click Remote Desktop Services and Select Overview 2. In Deployment Overview Section, Click Tasks and Select Edit Deployment properties. 3. Expand Active Directory and Select the Organization Unit if you would like to add the Virtual desktops to the domain, Click Apply
RD Virtualization Host Page 12 4. Select Collections tile 5. In Collection Section, Click Tasks and Select Create Virtual Desktop Collection, Click Next 6. Type the Name of the Collection and Click Next 7. Select the Personal Virtual desktop collection and Click Next
RD Virtualization Host Page 13 8. Specify the Virtual Desktop Template which you must configure in Hyper V and Make sure sysprep the virtual machine once you have install the software required by users and Click Next 9. Specify the User Assignment and Click Next 10. Click Next 11. Specify the unattended installation settings and Select the OU
RD Virtualization Host Page 14 12. Specify the Users and Groups and Specify the Prefix and Suffix for the Virtual Desktop 13. Specify Virtual Desktop allocation and Click Next 14. Specify Virtual desktop storage and Click Next 15. Confirm Selections and Click Create
RD Virtualization Host Page 15 16. View Progress and Click Close 17. In Collection Section, Right Click Personal( Collection Name) and Select Task Status details Personal - Unmanaged Virtual desktop Collection 1. In Collection Section, Click Tasks and Select Create Virtual Desktop Collection, Click Next 2. Type the Name of the Collection and Click Next 3. Select the Personal Virtual desktop collection and Uncheck Automatically create and manage virtual
RD Virtualization Host Page 16 3. Select the Personal Virtual desktop collection and Uncheck Automatically create and manage virtual desktops, Click Next 4. Specifying the Existing Virtual Desktops and Click Next 5. Specify the User Assignment and Click Next 6. Specify the Users and Groups and Click Next 7. Confirm Selection and Click Create
RD Virtualization Host Page 17 8. View Results 9. In the Virtual Desktop Section under Personal Unmanaged Collection, we can see the Virtual machine which we have added and we can add more virtual desktop. 10. We must assign the Virtual desktop to the specific users if we use Disable automatic user assignment. From <http://blogs.technet.com/b/askperf/archive/2012/11/01/windows-8-server-2012-vdi-personal-desktopcollections.aspx>
RD Virtualization Host Page 18 Links About Virtual Desktop Pools From <http://technet.microsoft.com/en-us/library/ee216741.aspx> About Personal Virtual Desktops From <http://technet.microsoft.com/en-us/library/ee216751.aspx> Setting up a new Remote Desktop Services deployment using Windows PowerShell From <http://blogs.msdn.com/b/rds/archive/2012/07/18/setting-up-a-new-remote-desktop-services-deployment-usingwindows-powershell.aspx> Windows 8 / Windows Server 2012: Pooled Virtual Desktop Infrastructure From <http://blogs.technet.com/b/askperf/archive/2012/10/31/windows-8-windows-server-2012-pooled-virtual-desktopinfrastructure.aspx> Using Microsoft VDI to Enable New Workstyles From <http://channel9.msdn.com/series/using-microsoft-vdi-to-enable-new-workstyles/using-microsoft-vdi-to-enable-new- Workstyles-04-Hyper-V-for-VDI> Using Hyper-V Differencing Disks with VDI From <http://blogs.msdn.com/b/rds/archive/2010/10/25/using-hyper-v-differencing-disks-with-vdi.aspx> Single Image Management for Virtual Desktop Collections in Windows Server 2012 From <http://blogs.msdn.com/b/rds/archive/2012/10/29/single-image-management-for-virtual-desktop-collections-inwindows-server-2012.aspx> Data Deduplication Deploying Data Deduplication for VDI storage in Windows Server 2012 R2 From <http://blogs.technet.com/b/filecab/archive/2013/07/31/deploying-data-deduplication-for-vdi-storage-in-windowsserver-2012-r2.aspx> Introduction to Data Deduplication in Windows Server 2012 From <http://blogs.technet.com/b/filecab/archive/2012/05/21/introduction-to-data-deduplication-in-windowsserver-2012.aspx> Step-by-Step: Enabling Data Deduplication on Windows Server 2012 Volumes From <http://blogs.technet.com/b/canitpro/archive/2013/04/29/step-by-step-enabling-data-deduplication-on-windowsserver-2012-volumes.aspx>
RD Virtualization Host Page 19 Storage Data Deduplication Does Deduplication Matter? Hard disk drives are getting bigger and cheaper every year, why would I need deduplication? Well, the problem is growth. Growth in data is exploding so much that IT departments everywhere will have some serious challenges fulfilling the demand. Check out the chart below where IDC has forecasted that we are beginning to experience massive storage growth. Can you imagine a world that consumes 90 million terabytes in one year? We are about 18 months away! Source: IDC Worldwide File-Based Storage 2011-2015 Forecast: Foundation Solutions for Content Delivery, Archiving and Big Data, doc #231910, December 2011 Data Deduplication Characteristics: 1) Transparent and easy to use: Deduplication can be easily installed and enabled on selected data volumes in a few seconds. Applications and end users will not know that the data has been transformed on the disk and when a user requests a file, it will be transparently served up right away. The file system as a whole supports all of the NTFS semantics that you would expect. Some files are not processed by deduplication, such as files encrypted using the Encrypted File System (EFS), files that are smaller than 32KB or those that have Extended Attributes (EAs). In these cases, the interaction with the files is entirely through NTFS and the deduplication filter driver does not get involved. If a file has an alternate data stream, only the primary data stream will be deduplicated and the alternate stream will be left on the disk. 2) Designed for Primary Data: The feature can be installed on your primary data volumes without interfering with the server s primary objective. Hot data (files that are being written to) will be passed over by deduplication until the file reaches a certain age. This way you can get optimal performance for active files and great savings on the rest of the files. Files that meet the deduplication criteria are referred to as in-policy files. a. Post Processing: Deduplication is not in the write-path when new files come along. New files write
RD Virtualization Host Page 20 a. Post Processing: Deduplication is not in the write-path when new files come along. New files write directly to the NTFS volume and the files are evaluated by a file groveler on a regular schedule. The background processing mode checks for files that are eligible for deduplication every hour and you can add additional schedules if you need them. b. File Age: Deduplication has a setting called MinimumFileAgeDays that controls how old a file should be before processing the file. The default setting is 5 days. This setting is configurable by the user and can be set to 0 to process files regardless of how old they are. c. File Type and File Location Exclusions: You can tell the system not to process files of a specific type, like PNG files that already have great compression or compressed CAB files that may not benefit from deduplication. You can also tell the system not to process a certain folder. 3) Portability: A volume that is under deduplication control is an atomic unit. You can back up the volume and restore it to another server. You can rip it out of one Windows 2012 server and move it to another. Everything that is required to access your data is located on the drive. All of the deduplication settings are maintained on the volume and will be picked up by the deduplication filter when the volume is mounted. The only thing that is not retained on the volume are the schedule settings that are part of the task-scheduler engine. If you move the volume to a server that is not running the Data Deduplication feature, you will only be able to access the files that have not been deduplicated. 4) Focused on using low resources: The feature was built to automatically yield system resources to the primary server s workload and back-off until resources are available again. Most people agree that their servers have a job to do and the storage is just facilitating their data requirements. a. The chunk store s hash index is designed to use low resources and reduce the read/write disk IOPS so that it can scale to large datasets and deliver high insert/lookup performance. The index footprint is extremely low at about 6 bytes of RAM per chunk and it uses temporary partitioning to support very high scale c. Deduplication jobs will verify that there is enough memory to do the work and if not it will stop and try again at the next scheduled interval. d. Administrators can schedule and run any of the deduplication jobs during off-peak hours or during idle time. 5) Sub-file chunking: Deduplication segments files into variable-sizes (32-128 kilobyte chunks) using a new algorithm developed in conjunction with Microsoft research. The chunking module splits a file into a sequence of chunks in a content dependent manner. The system uses a Rabin fingerprint-based sliding window hash on the data stream to identify chunk boundaries. The chunks have an average size of 64KB and they are compressed and placed into a chunk store located in a hidden folder at the root of the volume called the System Volume Information, or SVI folder. The normal file is replaced by a small reparse point, which has a pointer to a map of all the data streams and chunks required to rehydrate the file and serve it up when it is requested. Imagine that you have a file that looks something like this to NTFS: clip_image009 And you also have another file that has some of the same chunks:
RD Virtualization Host Page 21 And you also have another file that has some of the same chunks: clip_image011 After being processed, the files are now reparse points with metadata and links that point to where the file data is located in the chunk-store. clip_image013 6) BranchCache : Another benefit for Windows is that the sub-file chunking and indexing engine is shared with the BranchCache feature. When a Windows Server at the home office is running deduplication the data chunks are already indexed and are ready to be quickly sent over the WAN if needed. This saves a ton of WAN traffic to a branch office. What about the data access impact? Deduplication creates fragmentation for the files that are on your disk as chunks may end up being spread apart and this causes increases in seek time as the disk heads must move around more to gather all the required data. As each file is processed, the filter driver works to keep the sequence of unique chunks together, preserving on-disk locality, so it isn t a completely random distribution. Deduplication also has a cache to avoid going to disk for repeat chunks. The file-system has another layer of caching that is leveraged for file access. If multiple users are accessing similar files at the same time, the access pattern will enable deduplication to speed things up for all of the users. There are no noticeable differences for opening an Office document. Users will never know that the underlying volume is running deduplication. When copying a single large file, we see end-to-end copy times that can be 1.5 times what it takes on a non-deduplicated volume. When copying multiple large files at the same time we have seen gains due to caching that can cause the copy time to be faster by up to 30%. Under our file-server load simulator (the File Server Capacity Tool) set to simulate 5000 users simultaneously accessing the system we only see about a 10% reduction in the number of users that can be supported over SMB 3.0. Data can be optimized at 20-35 MB/Sec within a single job, which comes out to about 100GB/hour for a single 2TB volume using a single CPU core and 1GB of free RAM. Multiple volumes can be processed in parallel if additional CPU, memory and disk resources are available. Reliability and Risk Mitigations Even with RAID and redundancy implemented in your system, data corruption risks exist due to various disk anomalies, controller errors, firmware bugs or even environmental factors, like radiation or disk vibrations. Deduplication raises the impact of a single chunk corruption since a popular chunk can be referenced by a large number of files. Imagine a chunk that is referenced by 1000 files is lost due to a sector error; you would instantly suffer a 1000 file loss. Backup Support: We have support for fully-optimized backup using the in-box Windows Server Backup tool and we have several major vendors working on adding support for optimized backup and unoptimized backup. We have a selective file restore API to enable backup applications to pull files out of an optimized backup.
RD Virtualization Host Page 22 an optimized backup. Reporting and Detection: Any time the deduplication filter notices a corruption it logs it in the event log, so it can be scrubbed. Checksum validation is done on all data and metadata when it is read and written. Deduplication will recognize when data that is being accessed has been corrupted, reducing silent corruptions. Redundancy: Extra copies of critical metadata are created automatically. Very popular data chunks receive entire duplicate copies whenever it is referenced 100 times. We call this area the hotspot, which is a collection of the most popular chunks. Repair: A weekly scrubbing job inspects the event log for logged corruptions and fixes the data chunks from alternate copies if they exist. There is also an optional deep scrub job available that will walk through the entire data set, looking for corruptions and it tries to fix them. When using a Storage Spaces disk pool that is mirrored, deduplication will reach over to the other side of the mirror and grab the good version. Otherwise, the data will have to be recovered from a backup. Deduplication will continually scan incoming chunks it encounters looking for the ones that can be used to fix a corruption. Why do I want to use Data Deduplication with VDI? To start with: You will save space! Deduplication rates for VDI deployments can range as high as 95% savings. Of course that number will vary depending on the amount of user data, etc and it will also change over the course of any one day. Data Deduplication optimizes files as a post processing operation. That means, as data is added over the course of a day, it will not be optimized immediately and take up extra space on disk. Instead, the new data will be processed by a background deduplication job. As a result, the optimization ratio of a VDI deployment will fluctuate a bit over the course of a day, depending on home much new data is added. By the time next optimization is done, savings will be high again. Saving space is great on its own, but it has an interesting side effect. Volumes that were always too small, but had other advantages are suddenly viable. One such example are SSD volumes. Traditionally, you had to deploy very many of these drives to reach volume sizes that were viable for a VDI deployment. This was of course expensive for the disks, but also considering the increased needs for JBODs, power, cooling, etc. With Data Deduplication in the picture SSD based volumes can suddenly hold vastly more data and we can finally utilize more of their IO capabilities without incurring additional infrastructure costs. On the other hand, due to the fact that Data Deduplication consolidates files, more efficient caching mechanisms are possible. This results in improving the IO characteristics of the storage subsystem for some types of operations. As a result of these, we can often stretch the VM capacity of the storage subsystem without buying additional hardware or infrastructure. How do I deploy VDI with Data Deduplication in Windows Server 2012 R2 Preview then? This turns out to be relatively straight forward, assuming you know how to setup VDI, of course. The generic VDI setup will not be covered here, but rather we will cover how Data Deduplication changes things. Let s go through the steps: 1. Machine deployment First and foremost, to deploy Data Deduplication with VDI, the storage and compute responsibilities
RD Virtualization Host Page 23 First and foremost, to deploy Data Deduplication with VDI, the storage and compute responsibilities must be provided by separate machines. The good news is that the Hyper-V and VDI infrastructure can remain as it is today. The setup and configuration of both is pretty much unaltered. The exception is that all VHD files for the VMs must be stored on a file server running Windows Server 2012 R2 Preview. The storage on that file server may be directly attached disks or provided by a SAN/iSCSI. In the interest of ensuring that storage stays available, the file server should ideally be clustered with CSV volumes providing the storage locations for the VHD files. 2. Configuring the File Server Create a new CSV volume on the File Server Cluster using your favorite tool (we would suggest System Center Virtual Machine Manager). Then enable Data Deduplication on that volume. This is very easy to do in PowerShell: Enable-DedupVolume C:\ClusterStorage\Volume1 UsageType HyperV This is basically the same way Data Deduplication is enabled for a general file share, however it ensures that various advanced settings (such as whether open files should be optimized) are configured for the VDI workload. In the Windows Server 2012 R2 Preview one additional step has to be done that will not be required in the future. The default policy for Data Deduplication is now to only optimize files that are older than 3 days. This of course does not work for open VHD files since they are constantly being updated. In the future, Data Deduplication will address this by enabling Partial File Optimization mode, in which it optimizes parts of the file that are older than 3 days. To enable this mode in the Preview, run the following command Set-DedupVolume C:\ClusterStorage\Volume1 OptimizePartialFiles 3. VDI deployment Deploy VDI VMs as normal using the new share as the storage location for VHDs. With one caveat. If you made a volume smaller than the amount of data you are about to deploy on it, you need some special handling. Data Deduplication runs as a post-processing operation. Let us say we want to deploy 120GB of VHD files (6 VHD files of 20GB each) onto a 60 GB volume with Data Deduplication enabled. To do this, deploy VMs onto the volume as they will fit leaving at least 10GB of space available. In this case, we would deploy 2 VMs (20GB + 20GB + 10GB < 60GB). Then run a manual deduplication optimization job: Start-DedupJob C:\ClusterStorage\Volume1 Type Optimization Once this completes, deploy more VMs. Most likely, after the first optimization, there will be around 10GB of space used. That leaves room for another 2 VMs. Deploy these 2 VMs and repeat the optimization run.
RD Virtualization Host Page 24 optimization run. Repeat this procedure until all VMs are deployed. After this the default background deduplication job will handle future changes. 4. Ongoing management of Data Deduplication Once everything is deployed, managing Data Deduplication for VDI is no different than managing it for a general file server. For example, to get optimization savings and status: Get-DedupVolume fl Get-DedupStatus fl Get-DedupJob It may at times occur that a lot of new data is added to the volume and the standard background task is not able to keep up (since it stops when the server gets busy). In that case you can start a throughput optimization job that will simply keep going until the work is done: Start-DedupJob D: Type Optimization From <http://blogs.technet.com/b/filecab/archive/2013/07/31/deploying-data-deduplication-for-vdi-storage-in-windowsserver-2012-r2.aspx>