Met Azure Virtual Desktop (AVD) maken we het mogelijk een virtuele werkplek in Microsoft Azure aan te bieden. De gebruiker logt vervolgens op een veilige manier in op deze werkplek met “conditional access” en Multi Factor Authenticatie (MFA). Om te voorkomen dat de gebruiker elke keer specifieke instellingen moet invoeren, bijvoorbeeld voor Outlook of andere (Office) applicaties, maken we gebruik van FSLogix Profiel Containers. Zodra de gebruiker inlogt, wordt de virtuele harde schijf (VHD/VHDX) gekoppeld aan de AVD Windows 10 machine waar de gebruiker is ingelogd en worden alle profielinstellingen geladen. Kortweg betekent dit dat het gebruikersprofiel zich niet op de AVD virtuele machine bevindt. Tevens bevat deze zogeheten “Profiel Container” Office365 gerelateerde data, zoals Outlook mail en opgeslagen voorkeursinstellingen, OneDrive for Business data en Teams (cached) data.
Probleemstelling:
Wanneer Teams geïnstalleerd is volgens de “VDI-installatie richtlijnen”, zoals Microsoft voorschrijft en de gebruiker logt voor de eerste keer in, valt op dat de FSLogix Profiel Container van de gebruiker 4,4GB groot is. Dit is vreemd voor een schoon profiel van een gebruiker die voor het eerst inlogt, toch?! Laten we kijken hoe groot het profiel van de gebruiker is na inloggen en de eerste keer starten van Microsoft Teams:
Windows rapporteert dat het profiel van “testuser” 425MB in beslag neemt. De FSLogix agent rapporteert dat de profielcontainer 4,4GB groot is. Om te valideren hoeveel ruimte er nu werkelijk in beslag genomen wordt, kijken we in Azure Files. Azure Files rapporteert ook 4,4GB.
De oorzaak is gevonden en bevestigd. Aan Microsoft aangelegen om vanuit de Teams software anders mee om te gaan. Hoe nu verder?!
- FSLogix optimaliseren en zorgen dat de Teams cached data uitgesloten wordt in de “Profiel Container”
- Teams web client gebruiken
- Geen gebruik maken van Teams om opslag kosten te besparen, en dus Teams niet beschikbaar stellen
Workaround: FSLogix optimaliseren en Teams cached data uitsluiten
Het volgende stappenplan beschrijft de workaround. FSLogix biedt de mogelijkheid een zogeheten “redirections.xml” mee te sturen wanneer de gebruiker inlogt. In dit xml bestand kan je aangeven welke specifieke data is uitgesloten van de Profile Container, óf welke data expliciet meegenomen móet worden.
De voorwaarden zijn;
- Dat de naam van het bestand “redirections.xml” moet heten
- FSLogix Agent is geïnstalleerd. De instelling kan handmatig via het register ingesteld worden of met FSLogix Group Policy. Ik kies ervoor de FSLogix Group policies te gebruiken omdat de instelling automatisch op alle AVD-machines wordt toegepast zolang die in hetzelfde OU zitten waar de GPO is gelinkt.
- De gebruiker dient helaas wel een nieuwe profile container aan te maken. Dit betekent dat je die moet verwijderen. Doe dit in overleg met je gebruikers!
FSLogix optimaliseren en Teams cached data uitsluiten
Stap 1
Kopieer de volgende inhoud naar een leeg tekstbestand en sla dit op als “redirections.xml”. Let op, de bestandsextensie is dus .xml, controleer dat de bestandsextensie niet .txt is.
<?xml version=”1.0″ encoding=”UTF-8″?>
<FrxProfileFolderRedirection ExcludeCommonFolders=”0″>
<Excludes>
<Exclude Copy=”0″>AppData\Local\SquirrelTemp</Exclude>
<Exclude Copy=”0″>AppData\Local\Microsoft\Teams\Current\Locales</Exclude>
<Exclude Copy=”0″>AppData\Local\Microsoft\Teams\Packages\SquirrelTemp</Exclude>
<Exclude Copy=”0″>AppData\Local\Microsoft\Teams\current\resources\locales</Exclude>
<Exclude Copy=”0″>AppData\Local\Microsoft\Teams\Current\Locales</Exclude>
<Exclude Copy=”0″>AppData\Roaming\Microsoft\Teams\Service Worker\CacheStorage</Exclude>
<Exclude Copy=”0″>AppData\Roaming\Microsoft\Teams\Application Cache</Exclude>
<Exclude Copy=”0″>AppData\Roaming\Microsoft\Teams\Cache</Exclude>
<Exclude Copy=”0″>AppData\Roaming\Microsoft Teams\Logs</Exclude>
<Exclude Copy=”0″>AppData\Roaming\Microsoft\Teams\media-stack</Exclude>
</Excludes>
</FrxProfileFolderRedirection>
Stap 2
In mijn lab omgeving staat dit document in een sub map van de NETLOGON-share.
Stap 3
Configureer de volgende Group Policy. Let op! Verwijs alleen naar de map waar het bestand zich bevindt. Computer Configuration\Policies\Administrative Templates\FSLogix\Profile Containers\Advanced\Provide RedirXML file to customize redirections
Setting: Enabled
Path: Kies het pad waar het bestand is opgeslagen en toegankelijk is (Read permissies) van de gebruiker.
Stap 4
Zorg ervoor de AVD-machines een GPUPDATE krijgen, of geef de machines een herstart op een geschikt moment wanneer gebruikers niet zijn ingelogd.
Stap 5
Zorg ervoor dat je de Profiel Container van de gebruiker verwijdert, doe dit in overleg met de gebruiker(s) om miscommunicatie te voorkomen en/of de gebruiker te helpen met het overzetten van profiel data.
Resultaat: FSLogix Profiel Container zonder Teams cached data, een flinke opslag reductie!
Wanneer de gebruiker opnieuw is ingelogd en Teams is gestart zien we dat de FSLogix agent 204MB rapporteert.
Een extra controle binnen de Azure File Share geeft aan dat de Profiel Container dezelfde grootte aangeeft.
Advies met betrekking tot data gebruik
Wat belangrijk is om te vermelden is dat je rekening houd met het “sizen” van de opslaglocatie van de Profiel Containers. Een eenvoudige formule als voorbeeld {aantal gebruikers per AVD workspace x 20GB Profielopslag + 20% = Formaat Azure File Share} binnen een Azure Storage Account om de omvang van een Azure File Share vast te stellen. Waarbij die 20GB uiteraard een fictieve waarde is.
Mocht het zo zijn dat het limiet van de Azure File share op korte termijn wordt bereikt kan dit uiteraard aangepast worden. In dit voorbeeld is een Azure File share gebruikt binnen een Azure Storage Account. Het limiet van een standaard Storage Account is 100TB. Wanneer de Azure file Share tegen het limiet aanloopt, kan je dit via de Azure portal wijzigen > zoek op Storage Accounts > selecteer het betreffende Storage Account > links in het menu klik je vervolgens op “File service”. Via de 3 puntjes krijg je de optie “Edit quota” en kan je vervolgens de grootte opnieuw instellen.
Je kunt bijvoorbeeld met FSLogix (manueel via het register of met Group Policy) een limiet toepassen op het gebruikersprofiel om te voorkomen dat de gebruiker ongelimiteerd kan opslaan in zijn of haar profiel. Standaard staat dit limiet ingesteld op 30GB. Het advies is om gebruikersdata dan ook op te slaan in OneDrive in combinatie met Files-on-Demand en Known Folder Move. De inhoud van documenten, afbeeldingen en het bureaublad worden automatisch opgeslagen c.q. doorgestuurd naar OneDrive, ofschoon deze data bevind zich niet meer in het gebruikersprofiel. Met Files-on-demand wordt ingesteld dat jouw bestanden niet automatisch lokaal worden gedownload en opgeslagen. Bestanden worden pas gedownload op het moment je het bestand opent.
Mocht je meer informatie willen rondom Azure Virtual Desktop en hoe je het beste met FSLogix en datagebruik om kunt gaan, neem dan contact met mij op onder aan dit blog. Ik help je graag verder.