Полное руководство по Citrix MetaFrame XP

         

Использование распределения нагрузки


Если у вас есть несколько серверов MetaFrame, то неплохо бы иметь способ равномерно распределять нагрузку на несколько серверов, чтобы облегчить работу ваших пользователей. Один из способов состоит в равномерном распределении пользователей по доступным серверам, назначая пользователей на определенный сервер. Хотя такой подход будет работать, он ограничен. Во-первых, он предполагает необходимость распределения пользователей по разным серверам MetaFrame. Это довольно сложно реализовать; вы должны оценить их использование до того, как вручную распределите пользователей - ведь один сервер может поддерживать 15 пользователей, а другой - 30. Во вторых, если вы добавляете больше серверов в ферму (или удаляете серверы из фермы), вы должны перестроить ваше распределение. Короче говоря, ручное назначение клиентов на серверы лучше оставить для маленьких ферм, которые не меняются часто и имеют стабильный набор пользователей. Если у вас большая ферма, вы можете подумать о том, как применить возможности управления нагрузкой MetaFrame XP, доступные в MetaFrame XPa и XPe.

В MetaFrame 1.8, управление нагрузкой было доступно в виде отдельного компонента, но теперь она входит в состав основного программного обеспечения двух версий MetaFrame XP. См. для полного описания особенностей различных версий MetaFrame XP.

Управление нагрузкой в MetaFrame XP отличается инструментов распределения нагрузки MetaFrame 1.8. Во первых, улучшен графический интерфейс пользователя - ползунки управления нагрузкой ушли в прошлое и заменены числами. Во вторых, новое управление нагрузкой содержит больше опций, называемых правилами, для создания оценщиков нагрузки (load evaluators) или комбинации правил. Правило представляет собой маленький модуль исполняемого кода, который делает запрос определенных состояний и метрик производительности для серверов или опубликованных приложений. .

Как Load Manager решает, где запустить сеанс ICA

При использовании распределения нагрузки с серверами или опубликованными приложениями, Load Manager должен подсоединить новые сеансы ICA к тому серверу, который в настоящее время меньше всего загружен в соответствии с примененными правилами. Давайте посмотрим, как работает этот процесс.

Для большинства правил распределения загрузки вы можете установить два порога: нижний порог, ниже которого сервер (или приложение) считается для Load Manager незагруженным, и верхний порог, выше которого Load Manager считает сервер перегруженным и более не управляет им, используя это правило. (Не все правила работают таким образом. Как вы увидите, вы можете установить такие правила, как время работы, максимальное число одновременных соединений или ограничения адресов IP).

Допустим, вы пытаетесь соединиться с вашим любимым опубликованным Пасьянсом, чтобы улучшить опыт владения мышью. Вместо того, чтобы соединиться с определенным сервером (идентифицируемым по имени или адресу IP), вы с помощью клиента ICA создаете соединение с опубликованным приложением "Solitaire". Клиент входит в контакт с фермой серверов. Хранилище данных фермы знает, какие серверы публикуют Пасьянс, и предлагает эти серверы для потенциальных соединений.

Если серверы используют распределение нагрузки, Load Manager фермы сообщает нагрузку следующим образом:


  • Сервер с загрузкой, которая ниже определенного правилом порога, сообщит о себе как незагруженном, и таким образом будет самым привлекательным кандидатом для нового соединения.

  • Сервер с загрузкой где-то между ее нижним и верхним порогами сообщит о своей загрузке в виде процента от общего количества. Серверы с более низким процентом будут вероятными кандидатами для нового соединения.

  • Сервер с загрузкой выше верхнего порога (это возможно, если оценщик включает правила типа использования памяти или процессорного времени) сообщают, что перегружены и не будут принимать новые соединения. Фактически их даже не будет в списке доступных серверов.


  • Найдя серверы с самой низкой загрузкой, Load Manager выбирает одного из из них и возращает его адрес клиенту ICA, чтобы начать соединение.

    Понимание встроенных оценщиков распределения нагрузки

    MetaFrame XP идет с двумя встроенными оценщиками распределения нагрузки. Давайте рассмотрим их, чтобы помочь вам определить, стоит ли вам формировать собственные оценщики. Чтобы увидеть правила для любого оценщика, откройте вкладку Contents раздела Load Evaluators в Citrix Management Console, щелкните правой кнопкой мыши на значке оценщика и выберите из контекстного меню Load Evaluator Properties.

    Вы не можете редактировать или удалять встроенные оценщики. Если вы хотите создать оценщика, подобного встроенному, вы должны создать новый.

    Заданный по умолчанию оценщик имеет только одно правило: Server User Load (пользовательская загрузка сервера). Это правило означает, что соединения Клиента ICA балансируются согласно числу пользователей на каждом сервере, и сервер откажет в соединении, если это число превысит 100. В пределах этого ограничения серверы будут принимать соединения как обычно..

    Расширенный оценщик более сложен и включает три правила, а не одно: CPU Utilization, Memory Usage и Page Swaps. Согласно набору порогов, серверы с расширенным оценщиком, сообщают о предельной нагрузке при достижении любого из следющих условий: использование процессора превышает 90%; использовано более 90% виртуальной памяти (не физической); менеджер памяти сервера делает 100 или более операций подкачки в секунду. Сервер будет считаться незагруженным, пока истинны все следующие условия: загрузка процессора менее 10%; использовано менее 10% виртуальной памяти и виртуальный менеджер памяти не использует файл подкачки. Другими словами, очень маловероятно, что сервер, использующий расширенного оценщика, когда-либо сообщит, что он не загружен. Только одно правило - Memory Usage - будет этому препятствовать.



    Хотя комментарий для расширенного оценщика говорит о том, что он также использует правило Context Switches (переключение контекстов), это правило находится в списке доступных правил, а не в списке назначенных.

    Применение оценщиков

    Для применения оценщика к серверу, откройте вкладку Usage Reports в разделе Load Evaluators. При первой установке распределения нагрузки, встроенный оценщик применяется ко всем серверам фермы.



    Для изменения назначенного оценщика, щелкните правой кнопкой на сервере и выберите опцию Load Manage Server . Появится окно со списком прикрепленных к нему оценщиков:







    Для назначения нового оценщика выберите его из списка и щелкните OK. После этого вы вернетесь во вкладку Usage Report, которая будет отображать новые оценщики.

    К сожалению, вы не можете изменить оценщик для всех серверов фермы. Вы можете лишь делать это по одному. Важно, чтобы все серверы, участвующие в распределении нагрузки, использовали один и тот же оценщик.

    Если вы публикуете на сервере приложения, вы можете применять оценщики не только к серверу, но и к приложению. Для этого откройте в консоли папку Applications, щелкните правой кнопкой мыши и выберите из меню Load Manage Application. Появится окно со списком доступных оценщиков. Выберите один из них и щелкните OK.



    Встроенные оценщики более подходят для серверов, чем для приложений, но следующая процедура поможет вам создать собственного оценщика. После его создания он появится в списке доступных оценщиков в Available Load Evaluators.

    Для прекращения распределения нагрузки для приложения, установите оценщик <None>.

    Создание собственных оценщиков

    Вы можете создавать собственных оценщиков любой сложности. Самый простой способ состоит в копировании существующего оценщика и внесении изменений. Например, встроенный оценщик неплох, но вы хотите уменьшить максимальное число одновременных соединений с 100 до 50. Вы не можете редактировать всроенный оценщик, но можете скопировать его, внести изменения и затем применить его к вашим серверам. Для этого выполните следующие шаги:




    1. Откройте вкладку Contents раздела Load Evaluators. Если вы еще не добавляли своих оценщиков, то увидите двух встроенных оценщиков: Default и Advanced.

    2. Щелкните правой кнопкой на Default и выберите из меню Duplicate Load Evaluator. Появится приблизительно такое окно:



      Щелкните Server User Load в панели Assigned Rules для отображения информации в нижней части окна.

    3. Введите имя для нового оценщика и необязательное описание.

    4. Ранее мы не могли изменить значение для Report full load when…. Однако, поскольку мы сделали дубликат правила, мы можем изменить это число. Введите число - в нашем примере это 50 - и щелкните OK. Окно закроется, а новый оценщик появится на вкладке Contents вместе с Default и Advanced. Теперь вы можете применить его к серверам и приложениям.


    5. Вы также можете создать своего оценщика "с нуля". Это просто:


      1. Щелкните по любому оценщику правой кнопкой и выберите из меню New Load Evaluator

      2. Введите имя и необязательное описание нового оценщика

      3. В списке Available Rules (доступные правила) выберите правило и щелкните Add для добавления его в список Assigned Rules (назначенные правила).

      4. Выберите в списке Assigned Rules правило и установите для него пороги


      5. Дальнейший процесс зависит от типа применяемого правила. Для серверных правил вы вводите значения для нижнего и верхнего порогов. Для других типов могут быть разные опции. Например, если вы создаете оценщик для фермы, уже имеющей несколько опубликованных приложений, то при выборе правила Application User Load и переноса его в список Assigned Rules появляется следующее окно:



        Правило Application User Load работает аналогично Server User Load в оценщике Default, определяя максимальное число пользователей, запускающих одно приложение (именно пользователей, а не соединений. Один и тот же пользователь может несколько раз подключиться к приложению, но будет учтен только один раз. Т.е. вы не ограничиваете число экземпляров приложений, которые могут быть запущены одним пользователем).



        Как видно на рисунке, список внизу экрана содержит список всех опубликованных приложений. Выберите одно из них - вы не можете использовать оценщик для более чем одного приложения - и введите нужное число соединений.

        Если вы выбрали правило IP Range, то увидите следующее окно:



        Назначение диапазонов IP немного напоминает указание диапазона на сервере DHCP. Выберите, хотите ли вы разрешить или запретить доступ и щелкните кнопку Add.

        Вообще говоря, разрешение доступа только для указанного диапазона IP лучше, чем запрещения. Вы не можете одновременно и разрешать, и запрещать доступ в одном и том же оценщике.

        Последнее правило работает немного иначе, чем остальные. При выборе правила Scheduling открывается следующее окно:



        Часы, когда разрешено использовать приложение, закрашены в зеленый цвет. Часы, когда запрещено - в белый. Load Manager подразумевает, что сотрудники вашей компании работают 7 дней в неделю, 8 часов в день. Для добавления часов, щелкайте по ним, пока они не станут зелеными, а для удаления щелкайте пока не станут белыми.

        Так или иначе, после выбора правила, которое вы хотите применить (не более одного экземпляра каждого правила для одного оценщика), нажмите OK и теперь вы можете применить оценщика к серверам или приложениям. Как видно из таблицы, MetaFrame XP предлагает широкий спектр правил распределения нагрузки, которые вы можете объединить при создании собственного оценщика для любой ситуации.

         
        Счетчик Описание
        Предполагаемое использование

        Application User Load

        Вычисляет загрузку, основываясь на числе пользователей, обращающихся к определенному опубликованному приложению на прикрепленном сервере. Используйте этот оценщик, чтобы ограничить число экземпляров некоторого приложения, выполняющегося на сервере MetaFrame.

        Полезен для предотвращения перезагрузки сервера многими копиями ресурсемкого приложения. Также полезен при лицензировании, потому что вы можете ограничить число пользователей числом лицензий.

        Context Switches

        Вычисляет загрузку, основываясь на частоте переключения контекстов процессора. Переключение контекста происходит всякий раз, когда ОС переключается от одного процесса к другому. Допустимый диапазон для высоких и низких порогов - от 0 до 2147483647.


        Будьте внимательными при установке порогов. Сервер Win2K обычно делает много переключений контекста. Хотя они приводят к небольшой задержке, это нормальная часть работы ОС Windows. Не используйте это правило, если не знакомы с переключениями контекста или не уверены в своих действиях. Если вы используете это правило, применяйте его к серверам, а не к приложениям.

        CPU Utilization

        Вычисляет загрузку, основанную занятости процессора. Допустимый диапазон для высоких и низких порогов - от 0 до 100.

        Лучше всего подходит для серверов, а не для приложений.

        Disk Data I/O

        Вычисляет загрузку, основанную на производительности ввода - вывода физического диска (в килобайтах).

        Лучше всего подходит для серверов, а не для приложений.

        Disk Operations

        Вычисляет загрузку, основанную на количестве физических дисковых операций в секунду. Это правило аналогично Disk Data I/O, но учитывает число операций, которые делает диск, а не объем передаваемых данных..

        Лучше всего подходит для серверов, а не для приложений.

        IP Range

        Позволяет вашему оценщику разрешать или запрещать доступ к опубликованному приложению на основании того, принадлежат ли адреса IP клиентов ICA указанным диапазонам адресов IP.

        Используйте это правило для ограничения доступа к серверам MetaFrame XP или приложениям. Обычно вы будете использовать это правило в комбинации с другими правилами, поскольку оно фактически не связано с распределением нагрузки, а лишь ограничивает доступ.

        License Thresholds

        Вычисляет загрузку, основанную на числе назначенных или объединенных лицензий на подключение, используемых на каждом сервере.

        Эти лицензии являются лицензиями MetaFrame XP, поэтому относятся к серверу. Вы не можете использовать это правило для приложений.

        Memory Usage

        Позволяет вашему оценщику вычислять загрузку на основании использования памяти.

        Лучше всего для серверов, а не приложений.

        Page Faults

        Вычисляет загрузку, основанную на числе отсутствий страницы в каждую секунду. Отсутствия страницы случаются, когда процесс пробует читать данные, который был сброшены из памяти на диск в файл подкачки.

        Лучше всего для серверов, а не приложений.

        Page Swaps

        Подобно правилу Page Faults, это правило для определения загрузки использует подкачку. Разница состоит в том, Page Faults считает количество в секунду. Это правило позволяет вашему оценщику вычислять загрузку на основании числа подкачек страниц в секунду. Подкачка страницы происходит каждый раз, когда ОС переносит физическую память нв виртуальную память на диске.

        Лучше всего для серверов, а не приложений.

        Scheduling

        Включает или отключает сервера или опубликованного приложения в течение некоторых дней недели и некоторых часов дня. Вне диапазона разрешенных часов существующие соединения не удаляются, но новые соединения запрещаются.

        Используйте это правило для серверов или приложений.

        Server User Load

        Вычисляет загрузку, основанную на числе пользователей, подключенных к данному серверу. В основном, это правило работает аналогично подобно правилу Application User Load, за исключением того, что относится к серверу.

        Лучше всего для серверов, а не приложений.

        Итак, какие правила вам следует выбрать и какие пороги применить? Очевидно, ответ зависит от того, в чем вы больше всего заинтересованы. Если вы хотите препятствовать пользователям запускать много копий ресурсемкого приложения, то используйте правило Application User Load. Чтобы препятствовать подключаться к серверам со слабым процессором или малым количеством памяти, используйте правила CPU Usage или Memory Usage. При проектировании новых оценщиков думайте о том, как вы хотите распределить нагрузку.

        В моем опыте, параметр объема памяти, используемой сервером, более надежен, чем использование процессора или дискового ввода-вывода.

        Один из способов, которым вы можете настроить параметры, состоит в использовании Системного Монитора из состава Win2K. Он поможет выяснить нормальные значения для ваших серверов MetaFrame XP, чтобы вы легко могли установить разумные пороги. Перед созданием оценщиков понаблюдайте за сервером.

         
        Правило Load Manager
        <

        System Monitor Counter Context Switches Processor: % Processor Time Disk Data I/O Physical Disk:Avg Disk Bytes/Transfer ( but convert to KB before using) Physical Disk:%Disk Time Memory:%Page Faults/sec Memory:%Page Writes/sec
        Thread:Context Switches/sec
        CPU Utilization
        Disk Operations
        Memory Usage Memory: %Committed Bytes in Use
        Page Faults
        Page Swaps
        Server User Load ServerServer Sessions
        Наконец, после выбора правил для оценщиков, вспомните, как они применяются. Во-первых, правила с верхними и нижними порогами (например, использование памяти) будут сообщать процент от их верхнего погрога. Во-вторых, эти проценты изменятся постоянно, в зависимости от состояния сервера сразу после создания соединения ICA. Если ваши оценщики содержат правила, учитывающие значения, которые могут легко измениться (например, использование центрального процессора), сервер может принимать соединения в 8:00 утра и запретить в 8:02 из-за превышения верхнего порога, а затем снова разрешить в 8:05. В третьих, если пользователь начинает сеанс на некотором сервере и запускает бесшовное приложение Windows (я буду говорить об этом в Главе 6), то другие бесшовные приложения этого пользователя будут по возможности запущены с этого же сервера, чтобы уменьшить использование памяти и снизить риск повреждения профиля.

        Наконец, если вы применяете к серверу более одного правила, то имейте в виду, что все правила должны быть ниже их порога, чтобы сервер мог считаться незагруженным, но только одно правило должно быть выше своего порога, чтобы регистрировать предельную нагрузку.

        Переименование и удаление оценщиков

        Вы можете переименовать или удалить только созданный вами оценщик. Щелкните на нем правой кнопкой, выберите из меню Load Evaluator Properties. Когда откроется окно свойств, введите новое имя и щелкните OK.

        Вы также можете легко удалить оценщик. Щелкните по нему правой кнопкой и выберите из меню Delete Load Evaluator(s) (Для выбора нескольких оценщиков щелкайте по ним мышью, удерживая клавишу Ctrl). Или подсветите оценщик и щелкните Delete. Вы должны быть уверены в своих действиях. Кнопки Undo не предусмотрено.

        Что происходит, когда оценщик запрещает доступ?



        Большую часть времени ваши серверы вряд ли будут работать под полной загрузкой. Однако, когда все серверы достигают ее, вы можете столкнуться с ограничениями. Если кто-то не может подключиться к выбранному серверу из-за правил распределения нагрузки, ему выдается два сообщения об ошибке. Первое из их гласит "The systems was not able to acquire a Citrix Product License. The IMA Service may not be running. Please contact your System Administrator" ("Система не может получить лицензию продукта Citrix. Возможно, не работает служба IMA. Обратитесь к вашему системному администратору"). Когда пользователь, которому отказано в доступе, нажимает OK, то получает второе сообщение: "You do not have access to logon to this Session" (У вас нет прав доступа к этому сеансу).

        Хотя эти сообщения свидетельствуют о неполадках в соединении с сервером, проблема на самом деле заключается в том, что выбранный сервер или приложение недоступны по причине превышения порогового значения распределения нагрузки. С одной стороны, эти сообщения не сообщают пользователю истинную причину отказа. С другой стороны, неопределенность сообщений может подтолкнуть пользователя повторить соединение позже, что может быть достаточно для его успешного установления ( с учетом поминутного измерения параметров загрузки).

        Резюме

        В этой главе мы обсуждали, как подготовить сервер для клиентов. Мы сделали обзор уровней выпуска, активацию лицензий, сбор информации о сеансах, конфигурирование распределения загрузки, а также управление зонами и фермами. В мы рассмотрим варианты предоставления приложений для пользователей.

          

        Содержание раздела