• Save
Citrix on VMware
Upcoming SlideShare
Loading in...5
×
 

Citrix on VMware

on

  • 2,890 views

 

Statistics

Views

Total Views
2,890
Views on SlideShare
2,876
Embed Views
14

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 14

http://www.slideshare.net 10
http://www.linkedin.com 3
http://www.lmodules.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Зачастую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).

Citrix on VMware Citrix on VMware Presentation Transcript

  • Оптимизация продуктов Citrix под VMware
    Денис Гундарев, независимый консультант
    gundarev@itbubble.ru
    blog.itbubble.ru
    twitter.com/fdwl
  • Денис Гундарев
    Независимый консультант
    gundarev@itbubble.ru
    blog.itbubble.ru
    twitter.com/fdwl
  • ТУТ БЫЛО 40 СЛАЙДОВ ПРО ПРЕЙМУЩЕСТВА ВИРТУАЛИЗАЦИИ
    Зачем виртуализироватьXenApp?
  • Причины проблем с XenAppна vSphere
    Завышенные ожидания по консолидации серверов
    Терминальные сервера это клиентская ОС!
    Слишком много маркетинга
    Отсутствие рекомендаций
    http://www.vmware.com/pdf/esx2_citrix_planning.pdf (2005 год!)
    Реальность не имеет отношения к синтетическим тестам
    Спец по виртуализации ≠ спец по терминальным серверам
  • 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
    • Инфраструктура:
    Web Interface, SQL, Password Manager, EdgeSight, Secure Gateway, SmartAuditor
    • Готовые vmdk:
    NetScaler VPX, Access Gateway VPX, Branch Repeater VPX, Merchandising server, EasyCall
    • XenApp for UNIX (Solaris)
    Естественные кандидаты на виртуализацию
  • Виртуализация терминальных серверов
  • Единственный сервер в инфраструктуре с большим количеством процессов
    • 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
  • Что нужно помнить про память 
  • 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)
  • 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
  • 64-bit Windows Architecture50%-50% Split
    System PTEs (128 GB)
    • 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)
    Kernel VA (8 TB)
    Paged Pool (128 GB)
    System Cache (1 TB)
    Non Paged Pool (128 GB)
    User VA (8 TB)
    Apps
  • x32 ОС может использовать только 4 Gb памяти. (точка)
    А вот ключ /3GB – памяти будет больше!
    А у ядра памяти не будет, 5 пользователей забьют NonPagedPool
    А вот с ключом /PAE памяти больше!
    У ядра осталось 2 Gb, при большом количестве процессов, PTE съест ее раньше чем приложения доступную память
    Разница в стоимости между Windows Enterprise и Standard заставляет думать
    ВЫВОД:
    x32 Standard виртуализируемв любом случае.
    Методы тренировки памяти
  • Внутренности терминальных служб
  • 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
  • SMSS (WindowsNT SessionManager)
    Ожидает подключения от терминального сервиса
    Создает сессию пользователя (Sessions Directory in Object Manager, Session Space, DOS Devices (C:, COM1, LPT1, etc.)
    Стартует процессы логона (Winlogon.exeи Csrss.exe)
  • TS  SMSS  CSRSS, WINLOGON
    LPC
    SmSsWinStationApiPort
    CSRSS
    CreateProcess
    SMSS
    Session Manager
    LPC
    SmApiPort
    Terminal Services
    CreateProcess
    WINLOGON
    EVENT/LPC
  • Старт CSRSS (client/server run-time subsystem)
    1. Инициализация
    2. Подключение устройств ввода/вывода
    3. Создание Window Manager
    4. Старт диспетчера печати
    5. Оповещение терминальных служб о готовности
  • Reverse LPC
    and CSRSS calls SMWinstationDoConnect
    Terminal Services
    CSRSS
    USER
    KERNEL
    WIN32K
    Display Driver
    Старт WinLogon
    WinLogonобщается с терминальным сервисом и ждет логона пользователя.
    Event
    WinLogon
    RPC (TS WINLOGON)
  • Startup Processes на Server 2003
    Session Manager (SMSS) создает Winlogonи Csrssдля каждой сессии
    Сессии создаются последовательно
    Бутылочное горлышко для Terminal Services
  • Startup Processes наServer 2008
    В Windows Server 2008
    Smssклонирует себя для каждой новой сессии
    Это позволяет создавать сессии одновременно
    Максимум параллельно создаваемых сессий равно количеству процессоров
    Сессия 0 стартует все сервисы
    Сессии 1-n создают только то, что необходимо в конкретной сессии, системные сервисы уже запущены
  • Первые выводы:
    Два маленьких сервера лучше одного большого
    Для Win 2008 – больше vCPU - быстрее логоны
    Логонможет занимать больше минуты, в это время ресурсы сервера максимально нагружены
    Внутренности терминальных служб
  • Виртуальными и физическими
    Балансировка нагрузки между серверами
  • По количеству пользователей на сервер
    По расписанию
    По IP-адресу
    По счетчикам производительности
    rocessor(_Total) Processor Time
    ystemontext Switches/sec
    emory Committed Bytes In Use
    emoryage Faults/sec
    emoryages/sec
    hysicalDisk(_Total)isk Bytes/sec
    hysicalDisk(_Total)isk Reads/sec
    hysicalDisk(_Total)isk Writes/sec
    По комбинации параметров
    Методы балансировки XenApp
  • Каждый сервер оценивает свою загрузку числом от 0 до 10000 и сообщает ее коллектору данных
    Коллектор данных направляет пользователя на самый свободный сервер
    Специальная формула для регулирования нагрузки при вводе новых серверов и массовых утренних логонахВременная=текущая + [(10000– текущая) / ILBMultiplier]
    Обновление метрик:
    После logon или logoff
    При изменении нагрузки +/- 500
    Дополнительные проверки актуальности данных раз в 30 секунд
    Методы балансировки XenApp
  • 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
  • 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
  • Работа DRS
  • CPU Overcommit – зло для XenApp
    CPU Overcommit
  • esxcfg-advcfg --set 100 /Cpu/HaltingIdleMsecPenalty
    Ожидается патч от vmware, подробности от Scott Drummonds - http://aibu.ru/y2D
    HyperThreading
  • Что это:
    • «справедливое» распределение ресурсов CPU между пользователями в рамках одного сервера
    • Выставление приоритетов определенным пользователям или приложениям
    CPU Utilization Management and RebalancerServices
  • DRS не приносит выгоды на выделенном пуле серверов.
    По утрам DRS будет работать, после этого нет.
    При множестве маленьких серверов функция CPU Utilization Management не дает эффекта
    vSphereбалансирует CPU между серверами, XenAppмежду пользователями
    Балансировка нагрузки
  • Вспоминаем
    Опять про память
  • Управление памятью ВМ
    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%
  • Second Level Address Translation(SLAT)
    Новая технология с разными названиями
    Intel называет это Extended Page Tables (EPT)
    AMD называет это Nested Page Tables (NPT) илиRapid Virtualization Indexing (RVI)
    Процессор поддерживает два уровня адресации
    Работа с таблицами памяти ВМ напрямую
    Нет необходимости поддерживать Shadow Page Table
    Гипервизор не выполняет работу по трансляции памяти
    Уменьшение накладных расходов
    Загрузка процессора гипервизором падает до 2%
    Около 1MB на ВМ сохраняется
  • To vMMU or not to vMMU
  • Пользователь стартует приложение , которое загружает DLL1 в память, DLL1 не имеет уникального адреса загрузки, поэтому загружается в адрес по умолчанию
    Пользователь запускает второе приложение, оно загружает DLL2, тоже без базового адреса, загрузчик меняет смещения в коде приложения, при этом выделяется двойной объем памяти
    Запускается третье приложение
    Virtual Memory Optimization
    ПАМЯТЬ
    Ссылки на адреса DLL2
    DLL2
    0x20000000
    DLL1
    0x10000000
    DLL2
    0x10000000
    Ссылки на адреса DLL2
  • Page Sharing Impact On TS
  • TPS не работает для терминальных серверов
    TPS может заработать, если включить Citrix VMO
    Baloon – зло для терминального сервера
    Память
  • Отделите XenAppот других серверов
    Разделяйте роли XenApp
    AMD RVI и Intel EPT
    No overcommitting on CPU
    2 vCPU 4Gb Ram
    НЕТ P2V! Только новая установка
    Используйте vmxnet
    Прочие рекомендации
  • 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
  • Windows 7 на ESX – нет подключения
    Удалите WDDM video driver от vmware (CTX123952 )
    Pool management
    установите vmware SDK на vCenter
    Установите сертификат на vCenter
    User Profile Manager конфликтует с Shared Folders
    XenDesktop
  • B
    C
    A
    Provisioning Server
    Ферма Один
    Provisioning Server
    (Потоковая служба)
    Ферма Два
    Сетевое хранилище
    Ферма Три
    Сервера перезагружаются. ОС & Приложения потоково доставляются по сети.
  • Загрузка сервера
    DHCP
    IP address
    Target Device
    PXE
    DHCP Server
    TFTP IPName NBP
    TFTP
    NBP
    Streaming Service
    vDisk
    Provisioning Server w/ PXE Service Installed
  • Используйте последние версии PVS
    STOP 0x0000007B – верните диск VM!
    Даже если вы сделаете vmбез диска – vMotionперестанет работать
    Vmware tools должны быть установлены первыми
    Обновлениеvmware tools - CTX115211
    1Gb диск в target Device - CTX123337
    vSphere + Provisioning Server
  • Вопросы?
    gundarev@itbubble.ru
    blog.itbubble.ru
    twitter.com/fdwl