Your SlideShare is downloading. ×
Оптимизация продуктов Citrix под VMware<br />Денис Гундарев, независимый консультант<br />gundarev@itbubble.ru<br />blog.i...
Денис Гундарев<br />Независимый консультант<br />gundarev@itbubble.ru<br />blog.itbubble.ru<br />twitter.com/fdwl<br />
ТУТ БЫЛО 40 СЛАЙДОВ ПРО ПРЕЙМУЩЕСТВА ВИРТУАЛИЗАЦИИ<br />Зачем виртуализироватьXenApp?<br />
Причины проблем с XenAppна vSphere<br />Завышенные ожидания по консолидации серверов<br />Терминальные сервера это клиентс...
Thin Client SupportTSO comes to NTlower per-client costs<br />Dedicated Windows terminal<br />Net PC<br />Existing,  Deskt...
<ul><li>Инфраструктура:</li></ul>Web Interface, SQL, Password Manager, EdgeSight, Secure Gateway, SmartAuditor<br /><ul><l...
Виртуализация терминальных серверов<br />
Единственный сервер в инфраструктуре с большим количеством процессов<br />• Context Switches<br />• Page Faults<br />• Pro...
Что нужно помнить про память <br />
32-Bit Windows Memory Architecture50%-50%<br />System PTEs (~900 MB)<br />4 GB (2^32) address space<br />2 GB kernel mode ...
32-Bit Windows Memory Architecturewith /PAE switch in BIOS<br />System PTEs (~900 MB)<br />64 GB (2^36) address space<br /...
64-bit Windows Architecture50%-50% Split<br />System PTEs (128 GB)<br /><ul><li>16 TB address space
8 TB Kernel virtual address space (VA)
Shared across processes
8 TB User virtual address space
Each 64-bit process has it’s own space
Each 32-bit app runs in a virtual         2 GB WOW: Windows-on-Windows
Kernel VA includes
System Page Table Entry (PTE) area – KM thread stacks 128 GB
Paged Pool – page tables, kernel objects  128 GB
System Cache – file cache, registry 1 TB
Others (Non Paged Pool 128 GB)</li></ul>Kernel VA (8 TB)<br />Paged Pool (128 GB)<br />System Cache (1 TB)<br />Non Paged ...
x32 ОС может использовать только 4 Gb памяти. (точка)<br />А вот ключ /3GB – памяти будет больше! <br />А у ядра памяти не...
Внутренности терминальных служб<br />
IMA<br />Session Space<br />Kernel Mode<br />WIN32K.SYS<br />(GDI)<br />TERMDD<br />WDICA<br />DISPLAY DRIVER<br />VDTW30....
SMSS (WindowsNT SessionManager)<br />Ожидает подключения от терминального сервиса <br />Создает сессию пользователя (Sessi...
TS  SMSS  CSRSS, WINLOGON<br />LPC<br />SmSsWinStationApiPort<br />CSRSS<br />CreateProcess<br />SMSS<br />Session Manag...
Старт CSRSS (client/server run-time subsystem)<br />1. Инициализация<br />2. Подключение устройств ввода/вывода<br />3. Со...
Reverse LPC<br />and CSRSS calls SMWinstationDoConnect<br />Terminal Services<br />CSRSS<br />USER<br />KERNEL<br />WIN32K...
Startup Processes на Server 2003<br />Session Manager (SMSS) создает Winlogonи Csrssдля каждой сессии<br />Сессии создаютс...
Startup Processes наServer 2008<br />В Windows Server 2008<br />Smssклонирует себя для каждой новой сессии<br />Это позвол...
Первые выводы:<br />Два маленьких сервера лучше одного большого<br />Для Win 2008 – больше vCPU -  быстрее логоны<br />Лог...
Виртуальными и физическими<br />Балансировка нагрузки между серверами<br />
По количеству пользователей на сервер<br />По расписанию<br />По IP-адресу<br />По  счетчикам производительности <br />roc...
Каждый сервер оценивает свою загрузку числом от 0 до 10000 и сообщает ее коллектору данных<br />Коллектор данных направляе...
ICA Client<br />Data Collector<br />Server A<br />Server B<br />Dynamic Store<br />Load Throttling - Low logon rate<br />S...
ICA Client<br />Data Collector<br />Server A<br />Server B<br />Dynamic Store<br />Load Throttling<br />x60<br />Server  L...
Работа DRS<br />
CPU Overcommit – зло для XenApp<br />CPU Overcommit<br />
esxcfg-advcfg --set 100 /Cpu/HaltingIdleMsecPenalty<br />Ожидается патч от vmware, подробности от Scott Drummonds  - http:...
Что это: <br /><ul><li>«справедливое» распределение ресурсов CPU между пользователями в рамках одного сервера
Выставление приоритетов определенным  пользователям или приложениям</li></ul>CPU Utilization Management and RebalancerServ...
DRS не приносит выгоды на выделенном пуле серверов.<br />По утрам DRS будет работать, после этого нет.<br />При множестве ...
Вспоминаем<br />Опять про память<br />
Upcoming SlideShare
Loading in...5
×

Citrix on VMware

2,110

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,110
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Зачастую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).
  • Transcript of "Citrix on VMware"

    1. 1. Оптимизация продуктов Citrix под VMware<br />Денис Гундарев, независимый консультант<br />gundarev@itbubble.ru<br />blog.itbubble.ru<br />twitter.com/fdwl<br />
    2. 2.
    3. 3. Денис Гундарев<br />Независимый консультант<br />gundarev@itbubble.ru<br />blog.itbubble.ru<br />twitter.com/fdwl<br />
    4. 4. ТУТ БЫЛО 40 СЛАЙДОВ ПРО ПРЕЙМУЩЕСТВА ВИРТУАЛИЗАЦИИ<br />Зачем виртуализироватьXenApp?<br />
    5. 5. Причины проблем с XenAppна vSphere<br />Завышенные ожидания по консолидации серверов<br />Терминальные сервера это клиентская ОС!<br />Слишком много маркетинга<br />Отсутствие рекомендаций<br />http://www.vmware.com/pdf/esx2_citrix_planning.pdf (2005 год!)<br />Реальность не имеет отношения к синтетическим тестам<br />Спец по виртуализации ≠ спец по терминальным серверам<br />
    6. 6. Thin Client SupportTSO comes to NTlower per-client costs<br />Dedicated Windows terminal<br />Net PC<br />Existing, Desktop PC <br />MS-DOS, <br />UNIX, <br />Mac <br />clients<br />Windows NT Server<br />with “Hydra” Server<br />1997<br />
    7. 7.
    8. 8. <ul><li>Инфраструктура:</li></ul>Web Interface, SQL, Password Manager, EdgeSight, Secure Gateway, SmartAuditor<br /><ul><li>Готовые vmdk:</li></ul>NetScaler VPX, Access Gateway VPX, Branch Repeater VPX, Merchandising server, EasyCall<br /><ul><li>XenApp for UNIX (Solaris)</li></ul>Естественные кандидаты на виртуализацию<br />
    9. 9. Виртуализация терминальных серверов<br />
    10. 10. Единственный сервер в инфраструктуре с большим количеством процессов<br />• Context Switches<br />• Page Faults<br />• Process creation/destruction<br />• MMU intensive<br /> Page Table updates<br /> SMP VM much higher overhead – per vCPU page tables<br />• Real-life workloads vary drastically<br />Специфика XenApp<br />
    11. 11. Что нужно помнить про память <br />
    12. 12. 32-Bit Windows Memory Architecture50%-50%<br />System PTEs (~900 MB)<br />4 GB (2^32) address space<br />2 GB kernel mode address space<br />Shared across processes<br />2 GB user mode address space<br />Each process has it’s own<br />Kernel address space includes<br />System Page Table Entry (PTE) area <br />KM thread stacks <br />Paged Pool<br />page tables, kernel objects <br />System Cache<br /> file cache, registry<br />Kernel(2 GB)<br />Paged Pool (~270 MB)<br />System Cache (~500 MB)<br />Non Paged Pool, images, etc.<br />Apps<br />User (2 GB)<br />
    13. 13. 32-Bit Windows Memory Architecturewith /PAE switch in BIOS<br />System PTEs (~900 MB)<br />64 GB (2^36) address space<br />Requires Enterprise Version <br />of Windows Server OS<br />2 GB kernel mode address space<br />Shared across processes<br />62 GB total user mode address space<br />Each application has it’s own 1.5 GB of virtual space<br />Kernel address space includes<br />System Page Table Entry (PTE) area <br />KM thread stacks <br />Paged Pool<br />page tables, kernel objects <br />System Cache<br /> file cache, registry<br />Paged Pool (~270 MB)<br />Kernel(2 GB)<br />System Cache <br />(~500 MB)<br />Non Paged Pool, images, etc.<br />User (62 GB)<br />Apps<br />
    14. 14. 64-bit Windows Architecture50%-50% Split<br />System PTEs (128 GB)<br /><ul><li>16 TB address space
    15. 15. 8 TB Kernel virtual address space (VA)
    16. 16. Shared across processes
    17. 17. 8 TB User virtual address space
    18. 18. Each 64-bit process has it’s own space
    19. 19. Each 32-bit app runs in a virtual 2 GB WOW: Windows-on-Windows
    20. 20. Kernel VA includes
    21. 21. System Page Table Entry (PTE) area – KM thread stacks 128 GB
    22. 22. Paged Pool – page tables, kernel objects 128 GB
    23. 23. System Cache – file cache, registry 1 TB
    24. 24. Others (Non Paged Pool 128 GB)</li></ul>Kernel VA (8 TB)<br />Paged Pool (128 GB)<br />System Cache (1 TB)<br />Non Paged Pool (128 GB)<br />User VA (8 TB)<br />Apps<br />
    25. 25. x32 ОС может использовать только 4 Gb памяти. (точка)<br />А вот ключ /3GB – памяти будет больше! <br />А у ядра памяти не будет, 5 пользователей забьют NonPagedPool<br />А вот с ключом /PAE памяти больше!<br />У ядра осталось 2 Gb, при большом количестве процессов, PTE съест ее раньше чем приложения доступную память<br />Разница в стоимости между Windows Enterprise и Standard заставляет думать<br />ВЫВОД:<br />x32 Standard виртуализируемв любом случае.<br />Методы тренировки памяти<br />
    26. 26. Внутренности терминальных служб<br />
    27. 27. IMA<br />Session Space<br />Kernel Mode<br />WIN32K.SYS<br />(GDI)<br />TERMDD<br />WDICA<br />DISPLAY DRIVER<br />VDTW30.DLL<br />TDTCP<br />Элементы терминальных служб<br />SERVER BASED<br />SESSION BASED<br />Windows Logon<br />Winlogon.EXE<br />Terminal Service<br />SvcHost.exe<br />TERMSRV.DLL<br />(W2K: TERMSRV.EXE)<br />Session manager<br />SMSS.EXE<br />Client server<br />Runtime<br />Subsystem<br />CSRSS.EXE<br />Application and <br />Services<br />Per Session<br />Protocol<br />Extension<br />WSXICA.DLL<br />User Mode<br />Session Space<br />
    28. 28. SMSS (WindowsNT SessionManager)<br />Ожидает подключения от терминального сервиса <br />Создает сессию пользователя (Sessions Directory in Object Manager, Session Space, DOS Devices (C:, COM1, LPT1, etc.)<br />Стартует процессы логона (Winlogon.exeи Csrss.exe)<br />
    29. 29. TS  SMSS  CSRSS, WINLOGON<br />LPC<br />SmSsWinStationApiPort<br />CSRSS<br />CreateProcess<br />SMSS<br />Session Manager<br />LPC<br />SmApiPort<br />Terminal Services<br />CreateProcess<br />WINLOGON<br />EVENT/LPC<br />
    30. 30. Старт CSRSS (client/server run-time subsystem)<br />1. Инициализация<br />2. Подключение устройств ввода/вывода<br />3. Создание Window Manager <br />4. Старт диспетчера печати<br />5. Оповещение терминальных служб о готовности<br />
    31. 31. Reverse LPC<br />and CSRSS calls SMWinstationDoConnect<br />Terminal Services<br />CSRSS<br />USER<br />KERNEL<br />WIN32K<br />Display Driver<br />Старт WinLogon<br />WinLogonобщается с терминальным сервисом и ждет логона пользователя.<br />Event<br />WinLogon<br />RPC (TS WINLOGON)<br />
    32. 32. Startup Processes на Server 2003<br />Session Manager (SMSS) создает Winlogonи Csrssдля каждой сессии<br />Сессии создаются последовательно<br />Бутылочное горлышко для Terminal Services<br />
    33. 33. Startup Processes наServer 2008<br />В Windows Server 2008<br />Smssклонирует себя для каждой новой сессии<br />Это позволяет создавать сессии одновременно<br />Максимум параллельно создаваемых сессий равно количеству процессоров<br />Сессия 0 стартует все сервисы <br />Сессии 1-n создают только то, что необходимо в конкретной сессии, системные сервисы уже запущены<br />
    34. 34. Первые выводы:<br />Два маленьких сервера лучше одного большого<br />Для Win 2008 – больше vCPU - быстрее логоны<br />Логонможет занимать больше минуты, в это время ресурсы сервера максимально нагружены<br />Внутренности терминальных служб<br />
    35. 35. Виртуальными и физическими<br />Балансировка нагрузки между серверами<br />
    36. 36. По количеству пользователей на сервер<br />По расписанию<br />По IP-адресу<br />По счетчикам производительности <br />rocessor(_Total) Processor Time<br />ystemontext Switches/sec<br />emory Committed Bytes In Use<br />emoryage Faults/sec<br />emoryages/sec<br />hysicalDisk(_Total)isk Bytes/sec<br />hysicalDisk(_Total)isk Reads/sec<br />hysicalDisk(_Total)isk Writes/sec<br />По комбинации параметров<br />Методы балансировки XenApp<br />
    37. 37. Каждый сервер оценивает свою загрузку числом от 0 до 10000 и сообщает ее коллектору данных<br />Коллектор данных направляет пользователя на самый свободный сервер<br />Специальная формула для регулирования нагрузки при вводе новых серверов и массовых утренних логонахВременная=текущая + [(10000– текущая) / ILBMultiplier]<br />Обновление метрик:<br />После logon или logoff<br />При изменении нагрузки +/- 500<br />Дополнительные проверки актуальности данных раз в 30 секунд<br />Методы балансировки XenApp<br />
    38. 38. ICA Client<br />Data Collector<br />Server A<br />Server B<br />Dynamic Store<br />Load Throttling - Low logon rate<br />Server Load<br />BIAS<br />Server A<br />0<br />100<br />0<br />(10000-0)/2+0 = 5000<br />0<br />100<br />0<br />(10000-0)/2+0 = 5000<br />Server B<br />
    39. 39. ICA Client<br />Data Collector<br />Server A<br />Server B<br />Dynamic Store<br />Load Throttling<br />x60<br />Server Load<br />BIAS<br />Server A<br />(10000-0)/2+0 = 5000<br />0<br />0<br />(10000-7500)/2+7500 = 8750<br />(10000-5000)/2+5000 = 7500<br />6000<br />(10000-6000)/2+6000 = 8000<br />0<br />Server B<br />
    40. 40. Работа DRS<br />
    41. 41. CPU Overcommit – зло для XenApp<br />CPU Overcommit<br />
    42. 42. esxcfg-advcfg --set 100 /Cpu/HaltingIdleMsecPenalty<br />Ожидается патч от vmware, подробности от Scott Drummonds - http://aibu.ru/y2D<br />HyperThreading<br />
    43. 43. Что это: <br /><ul><li>«справедливое» распределение ресурсов CPU между пользователями в рамках одного сервера
    44. 44. Выставление приоритетов определенным пользователям или приложениям</li></ul>CPU Utilization Management and RebalancerServices<br />
    45. 45. DRS не приносит выгоды на выделенном пуле серверов.<br />По утрам DRS будет работать, после этого нет.<br />При множестве маленьких серверов функция CPU Utilization Management не дает эффекта<br />vSphereбалансирует CPU между серверами, XenAppмежду пользователями<br />Балансировка нагрузки<br />
    46. 46. Вспоминаем<br />Опять про память<br />
    47. 47. Управление памятью ВМ<br />Guest Virtual Address<br />Guest Virtual Address<br />Гостевая ОС определяет<br />GVA-to-GPA<br />Shadow page tables объединяет эти представляения, потому как процессор умеет работать только с один уровнем трансляции<br />Guest Physical Address<br />Гипервизор определяет<br />GPA-to-SPA<br />System Physical Address<br />System Physical Address<br />Накладные расходы- заполнение и отчистка страниц памяти вызывается гипервизором- отнимает много процессорного времени, до 10%<br />
    48. 48. Second Level Address Translation(SLAT)<br />Новая технология с разными названиями<br />Intel называет это Extended Page Tables (EPT)<br />AMD называет это Nested Page Tables (NPT) илиRapid Virtualization Indexing (RVI)<br />Процессор поддерживает два уровня адресации<br />Работа с таблицами памяти ВМ напрямую<br />Нет необходимости поддерживать Shadow Page Table<br />Гипервизор не выполняет работу по трансляции памяти<br />Уменьшение накладных расходов<br />Загрузка процессора гипервизором падает до 2%<br />Около 1MB на ВМ сохраняется<br />
    49. 49. To vMMU or not to vMMU<br />
    50. 50. Пользователь стартует приложение , которое загружает DLL1 в память, DLL1 не имеет уникального адреса загрузки, поэтому загружается в адрес по умолчанию<br />Пользователь запускает второе приложение, оно загружает DLL2, тоже без базового адреса, загрузчик меняет смещения в коде приложения, при этом выделяется двойной объем памяти<br />Запускается третье приложение<br />Virtual Memory Optimization<br />ПАМЯТЬ<br />Ссылки на адреса DLL2<br />DLL2<br />0x20000000<br />DLL1<br />0x10000000<br />DLL2<br />0x10000000<br />Ссылки на адреса DLL2<br />
    51. 51. Page Sharing Impact On TS<br />
    52. 52. TPS не работает для терминальных серверов<br />TPS может заработать, если включить Citrix VMO<br />Baloon – зло для терминального сервера<br />Память<br />
    53. 53. Отделите XenAppот других серверов<br />Разделяйте роли XenApp<br />AMD RVI и Intel EPT<br />No overcommitting on CPU<br />2 vCPU 4Gb Ram<br />НЕТ P2V! Только новая установка<br />Используйте vmxnet<br />Прочие рекомендации<br />
    54. 54. XenDesktop System Overview<br />Licensing<br />ICA<br />XenApp Farm<br />LDAP<br />WI 5.0<br />DDC Servers<br />looser<br />AD<br />Web Svc<br />ICA<br />WebService<br />LDAP<br />VM Host<br />(XenServer, MS Virtual Server 2005, VMware)<br />VMs or Blades<br />
    55. 55. Windows 7 на ESX – нет подключения<br />Удалите WDDM video driver от vmware (CTX123952 )<br />Pool management <br />установите vmware SDK на vCenter<br />Установите сертификат на vCenter<br />User Profile Manager конфликтует с Shared Folders<br />XenDesktop<br />
    56. 56. B<br />C<br />A<br />Provisioning Server<br />Ферма Один<br />Provisioning Server<br />(Потоковая служба)<br />Ферма Два<br />Сетевое хранилище<br />Ферма Три<br />Сервера перезагружаются. ОС & Приложения потоково доставляются по сети.<br />
    57. 57. Загрузка сервера<br />DHCP<br />IP address<br />Target Device<br />PXE<br />DHCP Server<br />TFTP IPName NBP<br />TFTP<br />NBP<br />Streaming Service<br />vDisk<br />Provisioning Server w/ PXE Service Installed<br />
    58. 58. Используйте последние версии PVS<br />STOP 0x0000007B – верните диск VM!<br />Даже если вы сделаете vmбез диска – vMotionперестанет работать<br />Vmware tools должны быть установлены первыми<br />Обновлениеvmware tools - CTX115211 <br />1Gb диск в target Device - CTX123337<br />vSphere + Provisioning Server<br />
    59. 59. Вопросы?<br />gundarev@itbubble.ru<br />blog.itbubble.ru<br />twitter.com/fdwl<br />

    ×