Azure Virtual Desktop (AVD) Mimarisi ve Kurulum Rehberi

Azure Virtual Desktop AVD VDI Mimarisi ve İleri Seviye İşletim Rehberi
Bulut VDI Mimarisi & İleri Seviye Sistem Mühendisliği

Azure Virtual Desktop (AVD) Mimarisi ve İleri Seviye İşletim Rehberi: IT Uzmanları İçin Teknik İpuçları

Kurumsal AVD altyapılarında Control Plane mimarisi, FSLogix IOPS ve Registry optimizasyonları, Entra Kerberos ile Azure Files entegrasyonu, RDP Shortpath ağ mühendisliği ve Golden Image (VDOT) sıkılaştırma rehberi.

Kurumsal BT altyapılarında geleneksel Windows Server RDS (Remote Desktop Services), Citrix veya VMware Horizon mimarilerini şirket içinde (On-Premises) işletmek; RD Gateway, Connection Broker, Web Access katmanlarının yüksek erişilebilirliği (HA), DMZ güvenlik kuralları ve depolama (SAN/NAS) IOPS darboğazları nedeniyle ciddi bir mühendislik yükü oluşturur.

Microsoft Azure Virtual Desktop (AVD), yönetim düzlemini (Control Plane) Microsoft tarafından yönetilen bir PaaS servisine dönüştürürken; veri düzlemini (Session Host VM'ler, FSLogix profilleri, VNet ve kimlik doğrulama) tamamen sizin Azure aboneliğinizde bırakır. Ancak yüzlerce eşzamanlı kullanıcının çalıştığı bir AVD ortamını sıfır darboğazla işletmek; FSLogix kayıt defteri ince ayarlarına, depolama IOPS hesaplamalarına, RDP Shortpath ağ mimarisine ve doğru VM boyutlandırmasına hakim olmayı gerektirir.

1. Uç Noktalar • Windows App / RD Client • HTML5 Web Tarayıcı • macOS / iOS / ThinClient 🔒 Entra ID + MFA + CA ⚡ UDP 3390 / STUN (Shortpath) 2. Microsoft Control Plane Web Access & RD Gateway Connection Broker (Load Bal.) Diagnostics & REST API ✓ Reverse Connect (TCP 443) Inbound (Gelen) Port Açılmaz! RDInfra Agent (Outbound HTTPS) 3. Müşteri Aboneliği (IaaS/PaaS) Host Pool (Session Hosts) Win 11 Multi-Session (D-Series) FSLogix Profile & ODFC Azure Files Premium (SMB Kerberos) • Azure Compute Gallery (Imaj) • Private Endpoint & ExpressRoute
Şekil 1: Azure Virtual Desktop (AVD) Control Plane, Reverse Connect ve FSLogix Veri Akışı Mimarisi

1. Bağlantı Akışı (Connection Flow) ve Kimlik Doğrulama Mimarisi

AVD altyapısında sanal makinelere doğrudan dış IP verilmez ve TCP 3389 portu asla dışarıya açılmaz. Session Host sunucularına kurulan RDInfra Agent (Remote Desktop Services Infrastructure Agent) ve Boot Loader, Azure Control Plane'e TCP 443 üzerinden kalıcı bir giden (Outbound) HTTPS tüneli kurar.

Kimlik Senaryoları: Hybrid AD Join vs. Entra ID Join + Entra Kerberos

Uzun yıllar boyunca AVD ortamlarında en büyük mimari zorunluluk, FSLogix profil disklerinin tutulduğu Azure Files (SMB) paylaşımına erişebilmek için Session Host makinelerinin geleneksel Active Directory'ye (AD DS) üye olması veya ortamda bir Domain Controller bulundurulmasıydı (NTLM/Kerberos bilet üretimi için).

Güncel mimaride ise Microsoft Entra Kerberos (eski adıyla Azure AD Kerberos) özelliği sayesinde:

  • Session Host sanal makinelerinizi tamamen bulut tabanlı (Microsoft Entra Joined) olarak kurabilirsiniz (Line-of-Sight Domain Controller ihtiyacı ortadan kalkar).
  • Hibrit senkronize edilmiş kullanıcılarınız oturum açtığında, Entra ID bulut üzerinden SMB paylaşımı için geçerli bir Kerberos bileti üretir ve kullanıcı Azure Files Premium üzerindeki FSLogix VHDX profiline kesintisiz erişir.
  • Tamamen bulut (Cloud-Only) kullanıcılar için ise Intune + PKU2U protokolü aktif edilerek kimlik doğrulama sağlanır.

2. FSLogix Derinlemesine Yapılandırma, IOPS Hesabı ve Kayıt Defteri (Registry) Ayarları

Havuzlanmış (Pooled) bir AVD ortamında kullanıcı deneyimini belirleyen en kritik bileşen FSLogix'tir. Yanlış yapılandırılmış bir depolama katmanı, sabah 08:30-09:00 arasındaki "Logon Storm" (Oturum Açma Fırtınası) anında tüm ortamın kilitlenmesine yol açar.

A. FSLogix İçin IOPS ve Depolama Hesaplaması

  • Steady State (Normal Çalışma): Kullanıcı başına ortalama 10 - 15 IOPS.
  • Sign-in / Logon Storm (Giriş Anı): Kullanıcı başına anlık 50 - 70 IOPS tüketilir.
  • Mimari Kural: 100'den fazla eşzamanlı kullanıcınız varsa Standard Storage (HDD/GPv2) kesinlikle kullanılmamalıdır. Düşük gecikme (<2ms) ve yüksek IOPS için Azure Files Premium (FileStorage - SSD) veya Azure NetApp Files (ANF) tercih edilmeli ve SMB trafiği mutlaka Private Endpoint üzerinden geçirilmelidir (Public ağ üzerinden SMB trafiği hem yavaş hem güvensizdir).

B. Üretim Ortamı İçin Kritik FSLogix Registry Anahtarları

Session Host sunucularında (GPO, Intune Settings Catalog veya Golden Image üzerinde) HKLM\SOFTWARE\FSLogix\Profiles altında mutlaka uygulanması gereken en iyi uygulama (Best Practice) parametreleri şunlardır:

Registry Değeri (Value Name) Tür / Önerilen Değer Teknik Amacı ve Etkisi
Enabled DWORD = 1 FSLogix profil yönetimini aktif eder.
VHDLocations MULTI_SZ = \\storage.file.core.windows.net\profiles VHDX dosyalarının tutulduğu SMB UNC yolu.
VolumeType REG_SZ = VHDX Varsayılan VHD yerine modern, bozulmaya dayanıklı ve 64 TB'a kadar destekleyen VHDX formatını zorunlu kılar.
FlipFlopProfileDirectoryName DWORD = 1 Klasör adını SID_KullaniciAdi yerine KullaniciAdi_SID yapar. IT operasyonlarında klasör bulmayı çok kolaylaştırır.
DeleteLocalProfileWhenVHDShouldApply DWORD = 1 Hayat Kurtaran Ayar: Eğer sunucuda kullanıcının önceden kalma yerel (local) bir profili varsa, FSLogix çakışıp "Temp Profile" açmak yerine yerel profili siler ve VHDX'i sorunsuz bağlar.
SizeInMBs DWORD = 30000 (30 GB) Dinamik büyüyen profil diskinin üst sınırını belirler (IsDynamic = 1 ile birlikte kullanılmalıdır).
RoamSearch DWORD = 0 (Single/Multi) Windows 10/11 güncel sürümlerinde arama dizini zaten kullanıcı bazlı tutulduğu için FSLogix'in kendi Search Roaming özelliğini kapatmak logon süresini hızlandırır.

C. Redirections.xml ile Profil Şişmesini (Bloat) Önleme

FSLogix VHDX dosyaları dinamik olarak büyür (Expand) ancak içinden dosya silindiğinde otomatik olarak küçülmez (Shrink olmaz). Teams önbelleği, Chrome/Edge cache dosyaları ve geçici klasörlerin VHDX'i şişirmesini önlemek için redirections.xml kullanılmalıdır:

<!-- Örnek redirections.xml: Gereksiz önbellek klasörlerini VHDX dışına (yerel temp diske) yönlendirir --> <?xml version="1.0" encoding="UTF-8"?> <FrxProfileFolderRedirection ExcludeCommonFolders="0"> <Excludes> <Exclude Copy="0">AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Logs</Exclude> <Exclude Copy="0">AppData\Local\Google\Chrome\User Data\Default\Cache</Exclude> <Exclude Copy="0">AppData\Local\Microsoft\Edge\User Data\Default\Cache</Exclude> <Exclude Copy="0">AppData\Local\Temp</Exclude> </Excludes> </FrxProfileFolderRedirection>

3. Ağ Mühendisliği: RDP Shortpath, UDP/STUN ve Teams WebRTC Optimizasyonu

Varsayılan AVD bağlantısı (Reverse Connect) TCP tabanlıdır ve paketler Microsoft RD Gateway üzerinden dolaşır. Ancak TCP protokolü, paket kaybı yaşandığında akışı durdurup paketi tekrar istediği (Head-of-line blocking) için gerçek zamanlı ses/video ve fare hareketlerinde gecikmeye (Round-Trip Time / RTT artışına) neden olur.

⚡ RDP Shortpath (Managed & Public)

Oturum TCP ile başladıktan sonra istemci ile Session Host arasında UDP tabanlı doğrudan (veya STUN/TURN destekli) bir taşıma kanalı kurar. VPN/ExpressRoute üzerinden UDP 3390 portuyla doğrudan, açık internette ise STUN üzerinden dinamik portlarla gecikmeyi %40'a kadar düşürür.

🎥 Teams WebRTC (AV Redirect)

Kullanıcı AVD içinde Teams toplantısına girdiğinde ses ve görüntünün Azure'daki VM'de işlenip (Encode/Decode) RDP ile gönderilmesi CPU'yu %100'e vurur. WebRTC Redirector Service kurulduğunda medya akışı VM'i bypass ederek doğrudan kullanıcının kendi fiziksel cihazları arasında P2P akar.

⚠️ Kritik Host Pool Custom RDP Özellikleri (Güvenlik & Performans):
Host Pool > RDP Properties > Advanced sekmesine şu parametreleri ekleyerek hem güvenliği hem de multimedya performansını optimize edebilirsiniz:
targetisaadjoined:i:1;drivestoredirect:s:;redirectclipboard:i:0;encode redirected video capture:i:1;camerastoredirect:s:*;audiocapturemode:i:1;
(Bu dizilim; Entra ID SSO'yu aktif eder, yerel disk yönlendirmesini ve panoyu veri sızıntısına karşı kapatır, kamera ve mikrofonu donanım hızlandırmalı olarak içeri aktarır).

4. Sanal Makine Boyutlandırma (VM Sizing) ve Golden Image (VDOT) Sıkılaştırma

Sahada en sık yapılan mimari hatalardan biri, maliyetten kaçınmak için Multi-Session Host Pool'larda B-Serisi (Burstable) makineler kullanmak veya aşırı büyük (Örn: 64 vCPU) tekil makineler seçmektir.

  • B-Serisi VM'lerden Kaçının: B serisi sanal makineler CPU kredisi (Credit) mantığıyla çalışır. Sabah 09:00'da 15 kullanıcı aynı anda oturum açıp Outlook ve Teams'i başlattığında CPU kredisi dakikalar içinde tükenir ve sunucu taban performansa (%10-20 CPU) düşerek donmaya başlar.
  • İdeal Seçim (D-Series v5 / F-Series): Genel ofis yükleri için Standard_D8s_v5 (8 vCPU, 32 GB RAM) veya Standard_D16s_v5 (16 vCPU, 64 GB RAM) en dengeli vCPU/RAM oranını (1:4) sunar. Tek bir 32 vCPU makine yerine iki adet 16 vCPU makine kullanmak hem Windows Kernel kilitlenmelerini (Lock Contention) azaltır hem de Scaling Plan (Otomatik Kapatma) esnekliğini artırır.
  • OS Disk Tercihi: Session Host işletim sistemi disklerinde mutlaka Premium SSD veya Ephemeral OS Disk (ücretsiz ve yerel NVMe hızında önbellek diski) kullanın.
  • VDOT (Virtual Desktop Optimization Tool): Golden Image'ı (Master VM) Sysprep ile kapatmadan önce Microsoft'un resmi açık kaynaklı VDOT scriptini çalıştırarak Windows 11 içindeki gereksiz Xbox servislerini, arka plan UWP uygulamalarını, zamanlanmış bakım görevlerini ve telemetri yüklerini devre dışı bırakın. Bu işlem kullanıcı yoğunluğunu (User Density) sunucu başına %20 ila %30 artırır.

5. İleri Seviye PowerShell Operasyonları ve Log Analizi (Troubleshooting)

Bir kullanıcı "Oturum açamıyorum, siyah ekranda kalıyor" veya "Geçici profille (Temp Profile) açıldı" dediğinde kontrol edilmesi gereken Event Viewer kanalları ve PowerShell müdahale komutları şunlardır:

# 1. Session Host üzerinde FSLogix profil bağlanma hatalarını (Event ID 25 / 26) sorgulama Get-WinEvent -LogName "Microsoft-FSLogix-Apps/Operational" -MaxEvents 30 | Where-Object { $_.LevelDisplayName -eq "Error" -or $_.LevelDisplayName -eq "Warning" } | Select-Object TimeCreated, Id, Message # 2. RDP Shortpath (UDP) bağlantısının aktif olup olmadığını sunucu üzerinde doğrulama (Event ID 65) Get-WinEvent -LogName "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational" | Where-Object { $_.Id -eq 131 -or $_.Id -eq 65 } | Select-Object -First 10 TimeCreated, Message # 3. Azure Files üzerinde askıda (Locked) kalan kullanıcının VHDX dosyasını tespit edip kilidi açma Connect-AzAccount $Context = (Get-AzStorageAccount -ResourceGroupName "RG-AVD-Storage" -Name "stavdprofilesprod").Context Close-AzStorageFileHandle -Context $Context -ShareName "profiles" -Path "fatih.tepe_S-1-5-21.../Profile_fatih.tepe.vhdx" -CloseAll # 4. Host Pool'daki tüm sunucuların ajan sağlık durumunu (Available / NeedsAssistance) toplu denetleme Get-AzWvdSessionHost -ResourceGroupName "RG-AVD-Prod" -HostPoolName "HP-Win11-Multi" | Select-Object Name, Status, UpdateState, Sessions, AllowNewSession
💡 Kıdemli Sistem Uzmanı Özeti: Başarılı bir AVD mimarisinin sırrı; Windows 11 Multi-Session + D-Serisi v5 VM + Azure Files Premium (Private Endpoint & Entra Kerberos) + RDP Shortpath + VDOT Optimize Edilmiş Golden Image beşlisini bir arada kurgulamaktır. Bu mimari kurulduğunda oturum açma süreleri 8-12 saniye bandına iner ve kullanıcılar yerel bir masaüstü bilgisayardan farksız bir deneyim elde eder.

Yorumlar