Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

Новое в Windows Server 2008 R2: BranchCache

Напечатать страницу
09.04.2009 10:28 | deeper2k

Принимая во внимание популярность (и наглядность) цикла статей "Новое в Windows 7", начинаем публикацию цикла "Новое в Windows Server 2008 R2". Автором сегодняшней публикации стал Игорь Шаститко, технический специалист украинского подразделения Microsoft.

О некоторых новых возможностях, в том числе и о BranchCache, в Windows Server 2008 R2 (бывшем Windows 7 Server) я уже вкратце писал в своем обзоре Windows 7. Поэтому на вопрос "что это такое и зачем оно надо?" повтотяться здесь не буду - читайте предыдущие посты. Просто скажу, что лично я считаю эту "фичу" наиболее востребованной в дальнейшем - универсальный распределенный кеш для оптимизации использования как сетевых каналов, так и физических серверов - что может быть полезнее для распределенных сетей?

А вот "как оно работает?" и "как это включить?" мы сейчас и рассмотрим.

Итак, функциональность распределенного кеширования обеспечивается изменениями, внесенными в клиентские и серверные части служб SMB и HTTP, в которые добавлена поддержка режима распределенного кеширования, и, собственно, сама служба распределенного кеширования PeerDist.

Процесс работы клиента с включенным BranchCache выглядит очень элегантно и прозрачно для конечных приложений:

1. Приложение на удаленном клиенте, допустим, Internet Explorer, отправляет запрос с неким URL.

2. Этот запрос на клиенте обрабатывается клиентской частью HTTP в Windows 7 - службой WebIO

3. WebIO обращается к соответствующему серверу HTTP и запрашивает нужный URL. Но не все так просто. В этом запросе присутствуют также метаданные запрашивающие сервер о поддержке им режима кеширования.

4. За кеширование на стороне сервера отвечает драйвер http.sys. Если сервер поддерживает кеширование, то запрошенные клиентом данные, возвращенные службой веб - IIS, перед тем, как быть отправленными клиенту, проверяются на предмет наличия хеша в серверной службе PeerDist.

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


5. Получив от сервера ответ, на клиентской части WebIO

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


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

Процесс настройки BranchCache очень прост - этот раздел будет интересен тем, кто уже скачал Windows 7/Windows Server 2008 R2 (или планирует сделать это в ближайшее время) и начал эксперементировать с ними. Хотя, честно говоря, я бы дождался выхода беты, где многие шероховатости настройки BranchCache планировалось убрать. Здесь я не буду подробно зарываться в перечень конкретных опций, но приведу ключевые шаги.

На клиенте Windows 7 необходимо только активировать службу кеширования и указать режим ее работы - кооперативный или серверный. Выполняется это в командной строке посредством команды Netsh:

Netsh peerdist set service mode=cooperative
или
Netsh peerdist set service mode=hostedserver

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

На сервере Windows Server 2008 R2, который будет выступать в роли файлового, веб-сервера или выделенного сервера для кеширования, требуется установить в Server Manager службу Windows Branch Cache, находящуюся в разделе Features.



А также, если кешироваться будет SMB трафик, в свойствах тех сетевых папок с общим доступом, которые требуется кешировать - разрешить использование BranchCache (через консоль Share and Storage Manager) и автоматическое создание кеша файлов в локальных политиках.



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



Но, в отличии от включения BranchCache командой Netsh, когда все параметры файрвола устанавливаются автоматически, при создании групповых политик для BranchCache необходимо вручную настроить все параметры работы для клиента и сервера в Windows Firewall with Advanced Security (входящие и исходящие правила для клиента и сервера, их несколько, на снимке экрана приведено только первое из списка, остальные идут ниже по типу).



Управление параметрами кеша, просмотр состояния кеша и т.п. выполняется также через команду Netsh:

Netsh
peerdist

Переход в контекст управления сервисами кеширования

Команды show status, show localcache и т.п. позволяют просматривать статус работы кеша, команды типа set cachesize size=10 percent=true, flush, reset и т.д. - управлять кешем. Полный список команд и настроек вы можете получить, выполнив, соответственно, команды help, show, set в контексте peerdist.

Как говориться - тестируйте и пользуйтесь на здоровье!


Источник: http://blogs.technet.com/iwalker
Автор: Игорь Шаститко

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.121 секунд (Общее время SQL: 0.105 секунд - SQL запросов: 51 - Среднее время SQL: 0.00206 секунд))
Top.Mail.Ru