Кластеризация Web-серверов и логическое разбиение
Динамическое изменение трафика, который приходится обслуживать организациям, владеющим крупными Web-узлами, требует использования компьютерных систем, обладающих высоким уровнем масштабируемости, управляемости и надежности. ИТ-службы при выборе таких систем традиционно отдают предпочтение серверам с симметричной многопроцессорной архитектурой (symmetric multiprocessing — SMP). Но SMP-серверы не могут похвастаться масштабируемостью, достаточной для того, чтобы обрабатывать все увеличивающийся в объеме трафик, генерируемый современными Web-средами, а кроме того, они слишком дороги и сложны в эксплуатации.
С другой стороны, кластеры Web-серверов легко масштабируются в случае необходимости, а сопровождение и управление ими не требует значительных затрат. Традиционные системы с SMP-архитектурой могут оказаться весьма мощными, но их установка, обслуживание и модернизация требуют серьезных технических навыков. Еще более существенным ограничением является тот факт, что SMP-компьютеры предусматривают разделение всех ресурсов. Иными словами, все процессоры совместно используют шину, сеть, память и системы ввода/вывода. Кроме того, в системе действует единственная копия выбранной операционной системы и СУБД. Работа совместно выполняется несколькими процессорами; им следовало бы сотрудничать, но они конкурируют друг с другом, одновременно претендуя на такие ресурсы, как дисководы и сетевые платы.
Взаимодействия в системах с симметричной многопроцессорной обработкой осуществляются через единый разделяемый пул памяти, доступ к которому происходит через внутренние шины. Однако с ростом числа процессоров объем трафика в этих шинах также растет, что провоцирует возникновение узких мест, которые ограничивают пропускную способность системы и тем самым снижают ее общую производительность.
В отличие от SMP, в кластерных системах взаимодействие между системными ресурсами и процессорами задается принципом так называемой слабой связности. Объединенные в кластер серверы снабжены программным обеспечением с функциями балансировки нагрузки, которое распределяет работу между серверами в кластере, направляя задание тому серверу, который в данный момент времени имеет больше всего свободных ресурсов. На каждом сервере работает собственная операционная система; каждый сервер обладает собственными ресурсами, что позволяет минимизировать снижение производительности, наблюдаемое при использовании разделяемых ресурсов. Рабочая нагрузка может распределяться даже между несколькими кластерами, благодаря чему увеличивается общая пропускная способность системы и ее производительность.
Кластеризация Web-серверов и логическое разбиение Администраторы Web-серверов, которым требуется высокий уровень готовности, возможность балансировки нагрузки между несколькими Web-серверами и возможность логического разбиения для оптимизации ресурсоемких |
Реализация функции балансировки нагрузки как неотъемлемой составляющей конфигурации Web-сервера — самый дешевый способ обеспечить высокую степень масштабируемости, максимальную производительность сервера и приемлемый уровень готовности реализуемых им служб. Серверы, объединенные в кластер с возможностью балансировки нагрузки, позволяют администраторам сети более эффективно управлять потоком работ и распределять их так, чтобы оптимально использовать имеющиеся ресурсы. Не менее важен и тот факт, что администраторы получают возможность увеличить пропускную способность за счет добавления в систему дополнительных Web-серверов с учетом того, что балансировка и оптимизация нагрузки будут выполняться автоматически.
С помощью встроенного ПО балансировки нагрузки сетевые администраторы получают более гибкие возможности обеспечить избыточность системы и адаптировать ее к растущим требованиям. Во-первых, администраторы могут увеличить избыточность на уровне шлюза в конфигурации крупных узлов, просто реализовав шлюзовую службу на нескольких Web-серверах.
Во-вторых, благодаря применению агентов балансировка нагрузки может выполняться не только между серверами в кластере, но и внутри каждого сервера. Это достигается за счет реализации методики, известной как логическое разбиение, в сочетании с интеллектуальными агентами, размещенными на каждом сервере. При логическом разбиении определенная часть каждого Web-сервера назначается для работы конкретного приложения. Агент будет отслеживать использование каждого приложения, сопоставляя его с разделом, выделенным для данного Web-сервера, и динамически перераспределять нагрузку в случае необходимости.
Администратор сети может динамически настроить раздел Web-сервера, выделенный для данного приложения, в любой момент времени. Если уровень использования приложения увеличивается, этот раздел может быть также увеличен за счет сокращения других. Данная методика предоставляет мощные средства управления пропускной способностью, причем позволяет обойтись без серьезных затрат и сделать это максимально эффективно.
Быстрое распространение бизнес-систем, основанных на Internet, серьезно усложняет задачу управления и поддержки крупных Web-серверов при использовании традиционной клиент-серверной архитектуры. Сетевые администраторы не могут себе позволить отключать компьютерную систему для того, чтобы ее модернизировать: Web работает круглосуточно и без выходных. Гибкая кластерная архитектура позволяет оперативно реагировать на постоянно меняющиеся требования пользователей.
Лоренс Дженовези — генеральный директор и основатель компании Network Engines, производителя серверов для Internet. С ним можно связаться по электронной почте по адресу larry.genovesi@networkengines.com