4. ТУТ БЫЛО 40 СЛАЙДОВ ПРО ПРЕЙМУЩЕСТВА ВИРТУАЛИЗАЦИИ Зачем виртуализироватьXenApp?
5. Причины проблем с XenAppна vSphere Завышенные ожидания по консолидации серверов Терминальные сервера это клиентская ОС! Слишком много маркетинга Отсутствие рекомендаций http://www.vmware.com/pdf/esx2_citrix_planning.pdf (2005 год!) Реальность не имеет отношения к синтетическим тестам Спец по виртуализации ≠ спец по терминальным серверам
6. Thin Client SupportTSO comes to NTlower per-client costs Dedicated Windows terminal Net PC Existing, Desktop PC MS-DOS, UNIX, Mac clients Windows NT Server with “Hydra” Server 1997
10. Единственный сервер в инфраструктуре с большим количеством процессов • Context Switches • Page Faults • Process creation/destruction • MMU intensive Page Table updates SMP VM much higher overhead – per vCPU page tables • Real-life workloads vary drastically Специфика XenApp
12. 32-Bit Windows Memory Architecture50%-50% System PTEs (~900 MB) 4 GB (2^32) address space 2 GB kernel mode address space Shared across processes 2 GB user mode address space Each process has it’s own Kernel address space includes System Page Table Entry (PTE) area KM thread stacks Paged Pool page tables, kernel objects System Cache file cache, registry Kernel(2 GB) Paged Pool (~270 MB) System Cache (~500 MB) Non Paged Pool, images, etc. Apps User (2 GB)
13. 32-Bit Windows Memory Architecturewith /PAE switch in BIOS System PTEs (~900 MB) 64 GB (2^36) address space Requires Enterprise Version of Windows Server OS 2 GB kernel mode address space Shared across processes 62 GB total user mode address space Each application has it’s own 1.5 GB of virtual space Kernel address space includes System Page Table Entry (PTE) area KM thread stacks Paged Pool page tables, kernel objects System Cache file cache, registry Paged Pool (~270 MB) Kernel(2 GB) System Cache (~500 MB) Non Paged Pool, images, etc. User (62 GB) Apps
24. Others (Non Paged Pool 128 GB)Kernel VA (8 TB) Paged Pool (128 GB) System Cache (1 TB) Non Paged Pool (128 GB) User VA (8 TB) Apps
25. x32 ОС может использовать только 4 Gb памяти. (точка) А вот ключ /3GB – памяти будет больше! А у ядра памяти не будет, 5 пользователей забьют NonPagedPool А вот с ключом /PAE памяти больше! У ядра осталось 2 Gb, при большом количестве процессов, PTE съест ее раньше чем приложения доступную память Разница в стоимости между Windows Enterprise и Standard заставляет думать ВЫВОД: x32 Standard виртуализируемв любом случае. Методы тренировки памяти
27. IMA Session Space Kernel Mode WIN32K.SYS (GDI) TERMDD WDICA DISPLAY DRIVER VDTW30.DLL TDTCP Элементы терминальных служб SERVER BASED SESSION BASED Windows Logon Winlogon.EXE Terminal Service SvcHost.exe TERMSRV.DLL (W2K: TERMSRV.EXE) Session manager SMSS.EXE Client server Runtime Subsystem CSRSS.EXE Application and Services Per Session Protocol Extension WSXICA.DLL User Mode Session Space
28. SMSS (WindowsNT SessionManager) Ожидает подключения от терминального сервиса Создает сессию пользователя (essions Directory in Object Manager, Session Space, DOS Devices (C: COM1, LPT1, etc.) Стартует процессы логона (Winlogon.exeи Csrss.exe)
30. Старт CSRSS (client/server run-time subsystem) 1. Инициализация 2. Подключение устройств ввода/вывода 3. Создание Window Manager 4. Старт диспетчера печати 5. Оповещение терминальных служб о готовности
31. Reverse LPC and CSRSS calls SMWinstationDoConnect Terminal Services CSRSS USER KERNEL WIN32K Display Driver Старт WinLogon WinLogonобщается с терминальным сервисом и ждет логона пользователя. Event WinLogon RPC (TS WINLOGON)
32. Startup Processes на Server 2003 Session Manager (SMSS) создает Winlogonи Csrssдля каждой сессии Сессии создаются последовательно Бутылочное горлышко для Terminal Services
33. Startup Processes наServer 2008 В Windows Server 2008 Smssклонирует себя для каждой новой сессии Это позволяет создавать сессии одновременно Максимум параллельно создаваемых сессий равно количеству процессоров Сессия 0 стартует все сервисы Сессии 1-n создают только то, что необходимо в конкретной сессии, системные сервисы уже запущены
34. Первые выводы: Два маленьких сервера лучше одного большого Для Win 2008 – больше vCPU - быстрее логоны Логонможет занимать больше минуты, в это время ресурсы сервера максимально нагружены Внутренности терминальных служб
36. По количеству пользователей на сервер По расписанию По IP-адресу По счетчикам производительности Processor(_Total)% Processor Time SystemContext Switches/sec Memory% Committed Bytes In Use MemoryPage Faults/sec MemoryPages/sec PhysicalDisk(_Total)Disk Bytes/sec PhysicalDisk(_Total)Disk Reads/sec PhysicalDisk(_Total)Disk Writes/sec По комбинации параметров Методы балансировки XenApp
37. Каждый сервер оценивает свою загрузку числом от 0 до 10000 и сообщает ее коллектору данных Коллектор данных направляет пользователя на самый свободный сервер Специальная формула для регулирования нагрузки при вводе новых серверов и массовых утренних логонахВременная=текущая + [(10000– текущая) / ILBMultiplier] Обновление метрик: После logon или logoff При изменении нагрузки +/- 500 Дополнительные проверки актуальности данных раз в 30 секунд Методы балансировки XenApp
38. ICA Client Data Collector Server A Server B Dynamic Store Load Throttling - Low logon rate Server Load BIAS Server A 0 100 0 (10000-0)/2+0 = 5000 0 100 0 (10000-0)/2+0 = 5000 Server B
39. ICA Client Data Collector Server A Server B Dynamic Store Load Throttling x60 Server Load BIAS Server A (10000-0)/2+0 = 5000 0 0 (10000-7500)/2+7500 = 8750 (10000-5000)/2+5000 = 7500 6000 (10000-6000)/2+6000 = 8000 0 Server B
45. DRS не приносит выгоды на выделенном пуле серверов. По утрам DRS будет работать, после этого нет. При множестве маленьких серверов функция CPU Utilization Management не дает эффекта vSphereбалансирует CPU между серверами, XenAppмежду пользователями Балансировка нагрузки
47. Управление памятью ВМ Guest Virtual Address Guest Virtual Address Гостевая ОС определяет GVA-to-GPA Shadow page tables объединяет эти представляения, потому как процессор умеет работать только с один уровнем трансляции Guest Physical Address Гипервизор определяет GPA-to-SPA System Physical Address System Physical Address Накладные расходы- заполнение и отчистка страниц памяти вызывается гипервизором- отнимает много процессорного времени, до 10%
48. Second Level Address Translation(SLAT) Новая технология с разными названиями Intel называет это Extended Page Tables (EPT) AMD называет это Nested Page Tables (NPT) илиRapid Virtualization Indexing (RVI) Процессор поддерживает два уровня адресации Работа с таблицами памяти ВМ напрямую Нет необходимости поддерживать Shadow Page Table Гипервизор не выполняет работу по трансляции памяти Уменьшение накладных расходов Загрузка процессора гипервизором падает до 2% Около 1MB на ВМ сохраняется
50. Пользователь стартует приложение , которое загружает DLL1 в память, DLL1 не имеет уникального адреса загрузки, поэтому загружается в адрес по умолчанию Пользователь запускает второе приложение, оно загружает DLL2, тоже без базового адреса, загрузчик меняет смещения в коде приложения, при этом выделяется двойной объем памяти Запускается третье приложение Virtual Memory Optimization ПАМЯТЬ Ссылки на адреса DLL2 DLL2 0x20000000 DLL1 0x10000000 DLL2 0x10000000 Ссылки на адреса DLL2
52. TPS не работает для терминальных серверов TPS может заработать, если включить Citrix VMO Baloon – зло для терминального сервера Память
53. Отделите XenAppот других серверов Разделяйте роли XenApp AMD RVI и Intel EPT No overcommitting on CPU 2 vCPU 4Gb Ram НЕТ P2V! Только новая установка Используйте vmxnet Прочие рекомендации
54. XenDesktop System Overview Licensing ICA XenApp Farm LDAP WI 5.0 DDC Servers looser AD Web Svc ICA WebService LDAP VM Host (XenServer, MS Virtual Server 2005, VMware) VMs or Blades
55. Windows 7 на ESX – нет подключения Удалите WDDM video driver от vmware (CTX123952 ) Pool management установите vmware SDK на vCenter Установите сертификат на vCenter User Profile Manager конфликтует с Shared Folders XenDesktop
56. B C A Provisioning Server Ферма Один Provisioning Server (Потоковая служба) Ферма Два Сетевое хранилище Ферма Три Сервера перезагружаются. ОС & Приложения потоково доставляются по сети.
57. Загрузка сервера DHCP IP address Target Device PXE DHCP Server TFTP IPName NBP TFTP NBP Streaming Service vDisk Provisioning Server w/ PXE Service Installed
58. Используйте последние версии PVS STOP 0x0000007B – верните диск VM! Даже если вы сделаете vmбез диска – vMotionперестанет работать Vmware tools должны быть установлены первыми Обновлениеvmware tools - CTX115211 1Gb диск в target Device - CTX123337 vSphere + Provisioning Server
ЗачастуюWrong expectations• Server consolidation ratios• User scalability• Application performanceБольше патчей, хороших и новых
page table entriesPhysical Address Extension
Каждый сервер оценивает свою загрузку числом от 0 до 10000 и сообщает ее коллектору данныхКоллектор данных направляет пользователя на самый свободный серверСпециальные формулы для корректного распределения пользователей при вводе новых серверов и массовых утренних логонах
VMWare ESX Compatibility with Provisioning Server Boot Device Manager (BDM)For Provisioning Server 4.5 SP2 or earlier the BDM does not function with VMWare ESX 3.0 and 3.5 when the bootstrap is configured to use DHCP. The resulting ISO file is not bootable within a virtual machine because of file format and bootstrap incompatibilities when this option is selected. To successfully use the BDM feature you must configure the bootstrap to use static IP addresses. This issue has been fixed in Provisioning Server 5.0 Service Pack 1a or later.Streaming Truly Diskless Virtual MachinesAn ESX virtual machine with no local hard drive attached fail to network boot to a Provisioning Server vDisk. During the boot process the VM crashes with a STOP 0x0000007B blue screen error. This is caused by how VMWare handles virtual machines that are not configured with local storage — the disk controller itself is not loaded if no local drives are present. Because the Windows operating system requires a disk controller to be present to boot to any form of local storage, even a virtual hard drive mounted using PXE, Windows crashes when the vDisk mount is attempted during boot. VMWare ESX provides no option to configure a virtual machine with only a disk controller and no local drives. The workaround for this issue is to attach a very small local hard drive to the virtual machine (can be less than 10MB). This allows the VM to configure the disk controller to use to mount the vDisk during the PXE boot process.VirtualCenter Virtual Machine RequirementsIn VirtualCenter virtual machines, the guest operating systems must use SCSI hard disks (though CD-ROM drives can be configured as IDE).