Данные в кармане

Дмитрий Ландэ, к.т.н.,
Заместитель директора
Информационного центра "ЭЛВИСТИ"
dwl@visti.net

Способы увеличения производительности сетевых ресурсов

Для многих компаний вопросы роста производительности и эффективности работы с сетевыми ресурсами являются достаточно актуальными. При этом существуют технологии, позволяющие решать подобные задачи "малой кровью"

По некоторым оценкам специалистов, сейчас происходит практически двухкратный рост объемов сетевой информации всего-то за 6-8 месяцев. Понятно, что справиться с таким потоком данных могут достаточно производительные сети. Причем это касается как частных сетей предприятий и организаций, так и глобальных сетей в целом. Отсюда вытекает острая необходимость в их периодической модернизации, чтобы приспособить такие сети к новым требованиям.

Однако, если компании ценой ощутимых затрат могут "поднять" производительность своих сетей на должный уровень, то о приемлемых характеристиках глобальных каналов приходится порой только мечтать (ситуация очень характерна для отечественных реалий). Но успех бизнеса в сфере информационных технологий напрямую связан со своевременной доставкой контента пользователям. Так, мало кто из пользователей готов мириться с медленной загрузкой Web-страниц и долгими транзакциями. Вместо этого, как правило, пользователь вводит новый адрес и отправляется решать свои деловые задачи в другом месте. По информации Zona Research, только Web-сайты ежемесячно теряют в объеме продаж порядка $102 млн. из-за недостаточной оперативности отклика на запросы конечных пользователей. Подобных же неприятностей можно избежать и без модернизации инфраструктуры сетевых каналов. А именно, применив технологию кэширования сетевого трафика, которые способны повысить пропускную способность таких каналов для исходящего трафика до 30%.

Обращение к истокам

О преимуществах идеи кэширования было известно задолго до того, как Internet достигла современного уровня. Ранее архивы файлов для таких популярных в свое время архивных служб, как FTP, GOPHER и конференции, копировались по всему миру (создавались зеркальные копии), для того чтобы часто запрашиваемые файлы находились как можно ближе к пользователям. С появлением HTTP зеркальное копирование стало неэффективным ввиду огромных объемов информации, хранимой в Web, а также по причине высокой скорости ее обновления.

Вот тут-то и пришли на помощь технологии кэширования информации (реализованные на кэш-серверах), которые фактически стали для HTTP тем же вариантом зеркального копирования. При этом идея работы кэш-серверов базируются на перехвате запросов к Web-серверам и сохранении полученных от них объектов в своих рабочих областях (как правило, на жестких дисках) перед передачей их клиентам. В результате этого, при последующих запросах от других клиентов тех же объектов кэш-сервер возвращает их копию из своей рабочей области, вместо того, чтобы передавать запрос на Web-сервер для получения исходной информации.

Первые кэш-серверы реализовывались обычно на базе серверов-посредников (так называемые proxy-серверы). Они являются своеобразными брокерами сетевых объектов для групп пользователей, принимая все их запросы и передавая их дальше по Internet.

В качестве общей точки доступа для всех пользователей серверы-посредники оказались чрезвычайно привлекательными для реализации таких дополнительных сервисов, как фильтрация информационного наполнения, идентификация пользователей, протоколирование событий и кэширование объектов. Одним из первых серверов-посредников с поддержкой функций кэширования стал программный сервер Harvest Cache - результат совместного проекта американских организаций - Агентства по исследовательским проектам в области передовых технологий (ARPA), Национального научного фонда (NSF) и Национального космического агентства (NASA), проведенного в 1994 - 1996 годах.

Успех проекта обусловил появление большого количества кэширующих посредников от разных производителей, включая такие компании, как Netscape, Microsoft и Novell. При этом proxy-серверы с поддержкой кэширования также тесно интегрированы с другими инструментальными средствами: идентификация пользователей, фильтрация информационного наполнения, сканирования на наличие вирусов, обеспечение защиты и протоколирование событий. Proxy-сервер Microsoft реализован на базе Windows NT 4.0, Proxy-сервер от Netscape - на базе большинства разновидностей UNIX, а также Windows NT, BorderManager FastCache от Novell базировался на IntranetWare и NetWare разных версий.

Сегодня широко используемым кэширующим сервером-посредником является Squid (продолжение проекта Harvest Cache), развитием которого занимается Национальная лаборатория сетевых исследований (NLANR). Однако существуют и другие разработки кэш-систем, основанные на аппаратной реализации. По мнению производителей, такие системы обеспечивают лучшие характеристики кэширования, чем программные аналоги, поскольку операционные системы и кэш-сервер тесно интегрированы и оптимизированы для решения задач кэширования. Кроме того, аппаратные кэш-серверы проще в настройке и конфигурировании, что положительно сказывается на их надежности.

Одним из первых аппаратных устройств, выполняющих функции кэширования, был сервер NetCache (также развитие проекта Harvest) компании Network Appliance. В качестве программного обеспечения такого устройства использовался доработанный продукт Harvest Cache.

Среди первых аппаратных устройств кэширования можно отметить Cache Engine от Cisco Systems, CacheFlow от CacheFlow и DynaCache от InfoLibria. Первыми недорогими устройствами кэширования были WebSpeed от Packetstorm Technologies, CacheQube и CacheRaQ от Cobalt Networks, которые оценивались от $2 до $7 тыс. в зависимости от размера кэша (для сравнения, программные кэш-серверы Netscape, Microsoft и Novell стоят около $1 тыс.)

Принципы работы

Информационный ускоритель

Одним из способов повышения производительности сети и, в частности, увеличения скорости получения Internet-контента, является применение коммутаторов 7-го уровня (они также получили название коммутаторов информации). Традиционные устройства, как правило, коммутируют блоки данных по адресной информации, расположенной в заголовке блока. При этом они не имеют никакого представления о типе и характере передаваемой информации. В отличие от них, коммутаторы 7-го уровня анализируют информацию в пакетах и согласно полученным данным производят коммутацию однородного трафика. Коммутаторы информации (КИ) работают на 4-7 уровнях модели OSI, обрабатывая различные информационные протоколы и приложения - HTTP, FTP, Telnet и др. Примечательно, что помимо ряда полезных функций - создание виртуальных серверов под единым IP-адресом, равномерное распределение трафика между брандмаузерами, оптимизация ресурсов аппаратных средств и другое, - КИ выполняют задачу прозрачного кэширования информации. Для этого КИ анализируют имя URL, проверяют наличие запрошенного файла в локальном кэше, при наличии копии файла сверяют дату его создания и размер с оригиналом и передают копию пользователю. Интересно, что для такого способа кэширования адаптация программного обеспечения или его настройка не требуются. Подобные системы сегодня выпускаются компаниями Cisco System, Nortel Networks, Foundry, Intel и др.

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

Различают прямое и обратное кэширование. Прямое - подразумевает размещение копии контента, пользующегося наибольшим спросом, как можно ближе к пользователям (непосредственно на их рабочих местах или на серерах Internet-провайдеров), тем самым уменьшая время реакции на запрос. Обратное кэширование (или кэширование на входе) заключается в том, что средства кэширования устанавливаются в непосредственной близости от Web-сервера, тем самым освобождают его от обработки запросов к наиболее популярным Web-страницам. При получении запроса на загрузку страницы, находящейся в "обратном" кэше, она будет немедленно отправлена на ПК пользователя без обращения к Web-серверу.

Многие системы кэширования, (например, CacheFlow) скрывают от Web-серверов IP-адреса клиентских станций, запросивших данные, и выдают лишь IP-адрес кэширующего устройства. Другие системы (например, CacheRaQ), напротив, сохраняют адреса клиентов и сообщают их Web-серверу вместе с запросом. В этом случае IP-адреса локальных ПК могут оказаться известными "внешнему миру".

Для устранения задержек, связанных с последовательной загрузкой Web-страниц, используются также методы параллельных сетевых вычислений. Например, в сервере CacheFlow применяется конвейерный алгоритм Pipeline Retrieval, который устанавливает такое количество одновременных соединений TCP, сколько позволяет сервер, с которого загружаются данные, при этом передача нескольких объектов осуществляется параллельно. Объекты доставляются клиенту с той скоростью, с которой они запрашиваются браузером.

Кроме того, алгоритм Pipeline Retrieval реализует тактику упреждающей загрузки (передача объектов по сети начинается до того, как их непосредственно запрашивает клиент). Компания CacheFlow также разработала специальную операционную систему CacheOS, в которую интегрированы специальные алгоритмы, предназначенные минимизировать время загрузки Web-страниц.

Сегодня все программы и устройства кэширования, основанные на proxy-серверах, могут выполнять функции прозрачного или непрозрачного кэширования. Так, в случае применения непрозрачного режима работы такие серверы-посредники оперируют со всеми проходящими через них запросами, выполняя необходимые функции по преобразованию и фильтрации IP-адресов. При эом ПО клиентов сети нуждается в соответствующих настройках (например, при использовании Web-кэша в опциях настройки браузера необходимо указать IP-адрес посредника и присвоенный ему порт TCP). Непрозрачные посредники целесообразно применять там, где необходима строгая идентификация пользователей, однако такой режим работы замедляет передачу данных и загрузку Web-страниц.

В свою очередь, прозрачные proxy-серверы невидимы для клиентов сети (например, при получении запроса от клиента посредник, если это необходимо, транслирует его далее на сервер без преобразования адресов). Следует отметить, что режим прозрачного кэширования информации можно организовать с помощью сетевых компонентов. Например, путем установки маршрутизатора или коммутатора 4-го уровня (например, ACEdirector от Alteon Networks или ServerIron от Foundry Networks) для перенаправления трафика на кэш-сервер или группу серверов. Эти устройства перехватывают весь трафик HTTP через порт 80 (стандартный порт, выполняющий функции прозрачной трансляции) и перенаправляют его кэш-серверу.

Стандартизация процесса

Функционирование кэш-серверов регламентируется рядом стандартов, принятых недавно в области кэширования сетевого трафика.

Internet Caching Protocol. Протокол ICP ведет свое начало от первых исследований в рамках проекта Harvest Project. Этот протокол основывается на документе Internet-сообщества RFC 2186 (Request for Comments).Он определяет совместное использование объектов Web-сервера несколькими кэш-серверами, а также способ обмена информацией между ними без извлечения объектов с исходного Web-сервера. С помощью протокола ICP можно сконфигурировать кэш-сервер на подачу запросов к другим аналогичным системам на предмет наличия у них последней информации об объектах. В настоящее время практически все решения в области кэширования поддерживают протокол ICP.

Caching Array Routing Protocol. Протокол маршрутизации для массива кэш-серверов CARP позволяет организовать разделение нагрузки по кэшированию в рамках локального парка таких систем. Он был разработан корпорацией Microsoft и представлен в Консорциум W3C в качестве стандарта в Internet. Сегодня, кроме самой Microsoft, CARP поддерживают и другие производитеди, среди которых Packetstorm Technologies и Sun Microsystem.

Web Cache Communication Protocol. Для того, чтобы устройство кэширования от компании Cisco - Cache Engine могло взаимодействовать с ее же маршрутизаторами, компания разработала коммуникационный протокол для кэш-серверов в WCCP (Web Cache Communication Protocol). В соответствии с этим протоколом маршрутизатор Cisco с поддержкой операционной системы IOS перехватывает запросы HTTP, поступающие от клиентов, и перенаправляет их на кэш-сервер. Протокол WCCP обеспечивает масштабируемость за счет распределения запросов между несколькими кэш-серверами в зависимости от их доступности. В настоящее время компания Cisco выдет лицензии на WCCP другим производителям кэш-серверов.

Hyper Text Caching Protocol. Гипертекстовый протокол кэширования HTCP представлен в январе 2000 года в качестве документа Internet-сообщества RFC 2756 и предназначен обеспечивать управления кэшем и кэшируемыми данными. Пока этот протокол является экспериментальным, хотя он уже применяется на популярном кэширующем сервере Squid.

Рынок кэш-серверов

В конце 2000 года корпорация Toshiba приобрела лицензию у Novell на производство Novell Internet Caching System и уже в январе 2001 года начала поставки в Японию устройств кэширования Toshiba MAGNIA CS10 Cache Server. Эта система работает под управлением ОС IOS, Linux, NetWare, NT, Solaris и других версий UNIX. Устройства на базе Novell Internet Caching System нашли применение как в местных отделениях корпорации, так и у крупнейших поставщиков услуг Internet в Японии. В свое время такие компании, как Akamai, Fujitsu Siemens, Alteon, Compaq, Dell, Edgix, Foundry, Intel, Log-On Data, Mirror Image, N2H2, Pionex, Quantex, SkyCache, признали Novell Internet Caching System лучшим решением кэширования для поставщиков услуг Internet, издателей информационного наполнения и корпораций.

В феврале 2001 года Novell совместно с Nortel Networks и Accenture создает предприятие - Novell Launches Volera по выпуску систем кэширования информациии Internet Caching System (ICS). Теперь эта система, которую, в частности, успешно применила корпорация IBM, известна как Volera`s ICS.

В мае 2001 года корпорация IBM представила новые недорогие серверы и устройства кэширования данных, которые позволяют значительно ускорить доставку Web-контента конечным пользователям. Речь идет о линейке eServer, включающей сервер xSeries 300 и серии кэширующих устройств Internet Caching Appliances (ICA), которые, позволяют пятикратно ускорить загрузку Web-контента и обрабатывать до 5 тыс. запросов в секунду

В свою очередь компания Cisco Systems выпустила семейство кэш-серверов Cisco Cache Engine 500 Series. Благодаря использованию протокола WCCP, устройства Cache Engine могут быть установлены в существующую сеть без необходимости внесения каких-либо изменений в сетевую архитектуру. Маршрутизаторы поддерживающие WCCP, будут прозрачно передавать трафик данных устройствам Cache Engine.

Системы Cisco Cache Engine 500 выпускаются в нескольких конфигурациях, расчитанных на разные WAN-каналы и условия использования: младшая модель Cash 505, модель среднего класса Cache Engine 550 и кластерная реализация модели Cache Engine 550-DS3.

Кэширование для "поисковиков"

Следует понимать, что сегодняшняя Internet - это не только хранилище информации, но и всевозможные механизмы ее поиска, так называемые информационно-поисковые системы (ИПС). Поэтому применение кэширования информации в структуре ИПС также является актуальным. Так, в свое время японская корпорация Inktomi представила технологию Traffic Server, которая позволила провайдерам сохранять часто просматриваемые динамические Web-страницы на отдельном компьютере. Покупателями Traffic Server уже стали несколько крупных компаний, включая лидера Internet-видео Real Networks.

В то же время, многим корпоративным пользователям необходим оперативный доступ к полным базам данных определенных ИПС, отвечающих их информационным потребностям. Одной из первых такую ситуацию почувствовала известная своим поисковым сервисом калифорнийская компания Google, которая вышла на рынок с аппаратно-поисковым сервером Google Search Appliance. Это устройство подключалось к сетям предприятий, выполняя функции поиска информации как внутри этих сетей, так и в Internet. При этом неотъемлимым режимом работы Google Search Appliance было кэширование информации. Сейчас эта система предлагается в двух моделях - GB-1001 для малых и средних фирм ценой от $20 тыс. (охват до 150 тыс. документов) и GB-8008 для крупных корпораций стоимостью $250 тыс. (просматривает миллионы документов)

Следует отметить, что помимо Google на рынке кэш-систем присутствуют программные продукты таких компаний, как AltaVista, Ask Jeeves и Verity. Для сравнения, аналогичная система AltaVista стоит $30 тыс., при этом такая система способна просматривать более 30 тыс. документов.

В свою очередь российские ИПС Rambler и серверы Anecdot.ru и Kaspersky.ru применяют программный модуль Mod-accel, работающий с сервером Apache.

Говоря про Украину, можно отметить технологию автоматического мониторинга новостей в Internet - Infostream, разработанную в ИЦ "ЭЛВИСТИ", где также применяется идея кэш-сервера ИПС. Эта технология обеспечивает сканирование информации в режиме реального времени из нескольких сотен украинских и зарубежных Web-сайтов. В настоящее время поток информации, охватываемый системой, превышает 20 тыс. документов в сутки. Для корпоративных пользователей на основе технологии InfoStream построено решение Stream-corporate, которое обеспечивает доступ к базам данных в рамках корпоративной сети.

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

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