Справляемся с проблемами роста внутрикорпоративной сети
Сергей «grinder» Яремчук (grinder@synack.ru), Мартин «urban.prankster» Пранкевич (martin@synack.ru)
Редко когда в небольших компаниях при установке нескольких компьютеров задумываются о будущем расширении. Как правило, строится одноранговая рабочая группа, где каждая система работает независимо от других. Но по мере роста сети управлять всем парком становится все труднее, и приходится прилагать большие усилия, чтобы не потерять контроль. Поэтому рано или поздно придется принимать решение по кардинальному переустройству всей сетевой инфраструктуры, чтобы сделать ее более гибкой и управляемой.
Содержание:
- Переход на Active Directory
- Хранение данных
- Рулим терминалами
- Масштабирование IIS
- Заключение
- Врезка: Полезные инструменты при переходе на Active Direcory
- Боковые выносы
Число компьютеров в подчинении админа может расти по-разному. Это может быть постепенное увеличение количества и качества систем по мере развития компании. Начинают появляться мобильные компьютеры, выделенные сервера, новые сотрудники (а значит, новые рабочие станции), начальство дергает, заставляя поднять WiFi, чтобы гости могли свободно выйти в интернет. Становится необходимым отдельное хранилище файлов, к которому можно бы было получить доступ удаленно и в любое время суток. Появляется необходимость в терминальном доступе, чтобы с одной копией 1С могли работать несколько человек. И так далее, список новых задач можно продолжать. Парк разрастается, а админ начинает наматывать все больше и больше километров по этажам. В такой ситуации хочешь, не хочешь, а приходится думать об оптимизации своего труда. Еще интереснее происходит в том случае, если рост количества систем произошел скачкообразно. Например, в результате слияния или объединения ресурсов нескольких более мелких структур, в которых уже имеются свои сервисы и, возможно, специфические протоколы и приложения. И главное: заведен определенный порядок, к которому привыкли пользователи, и который не желательно кардинально менять. Как бы то ни было, но в любом случае тебя ждут определенные трудности и придется заранее предусмотреть все свои действия и рассчитать время. Мы не будем рассматривать процесс возможной миграции на свободные ОС, а также массовое наращивание вычислительной мощности систем. Постараемся обойтись имеющимся железом, объединяя доступные вычислительные ресурсы.
Вполне естественным в случае роста компании будет переход на доменную структуру. В этом случае достигается требуемая централизация настроек, можно легко организовать правильный доступ к сетевым ресурсам, интернет, контролировать настройки на клиентских ОС и наличие только нужных пользователю приложений. Процесс поднятия контроллера домена со всеми тонкостями уже описывался в журнале (см. «Первый шаг навстречу Active Directory» в ][ 04.2007 и "В лабиринте AD" ][ 11.2008), поэтому остановимся лишь на основных рабочих моментах.
Прежде, чем установить роль "Доменные службы Active Directory", запустить мастер установки доменных служб Active Directory (dcpromo) и подключить к домену компьютеры пользователей, следует собрать информацию от пользователей следующего характера: ФИО, сетевое имя системы (текущее и желаемое), логин, пароль (для первого входа), список программ, необходимость доступа к сетевым ресурсам, использование интернет-сервисов, местонахождение компьютера. Такая бумага с одной стороны поможет лучше сориентироваться и более качественно подготовиться к переходу, с другой стороны является своего рода подстраховкой, чтобы пользователь потом не жаловался, почему у него вдруг перестала работать аська. Особое внимание уделяем структурам организации, в которых используется специфическое ПО. В первую очередь, бухгалтерии, где и "своих" программ более чем предостаточно, и представители этого отдела, как правило, не могут внятно объяснить, что им действительно нужно, и как они там вообще работают. Но чуть что случись, гнев начальства обрушится, естественно, на админа.
Далее ставим КД и тестируем подключение к домену одной-двух систем, если проблем не обнаружено, заводим последовательно всю сеть. Так как после ввода в домен пользователь уже не будет являться локальным администратором, могут возникнуть грабли с доступом к некоторым данным на NTFS разделе, возможно, перестанут запускаться программы, или окажутся недоступными некоторые файлы настроек и данных. Первый вход под учетной записью пользователя должен сделать сам администратор, чтобы убедиться, что все работает. При необходимости нужно скорректировать параметры доступа. Чтобы в первые дни не бегать лишний раз, лучше сразу активировать удаленный доступ к компьютерам по RDP или настроить любой другой способ, если это не было сделано ранее (об удаленном управлении Windows читай в статье "Незримое присутствие", опубликованной в предыдущем номере ][).
В качестве контроллера домена нужно использовать только выделенный сервер, с минимальным количеством ролей (в небольших организациях обычно этой рекомендацией пренебрегают, но тут уже ничего не поделаешь). Учитывая, что КД является сердцем сети, необходимо гарантировать отказоустойчивость и доступность сервиса, поэтому КД должно быть два. В удаленных филиалах, имеющих большое количество компьютеров, также желательно присутствие "своего" КД, который будет реплицировать данные с основным КД. Лучше, если это будет контроллер домена только для чтения (Read-Only Domain Controller, RODC), при его использовании пользователи смогут без проблем регистрироваться даже при отсутствии доступа в интернет, а компрометация или кража RODC не повлечет нарушение функционирования всего леса.
Наверное, не стоит даже напоминать о необходимости создания резервной копии перед проведением важных перестроек.
При небольшом количестве компьютеров и малом объеме общих данных пользователи обычно обмениваются файлами через гостевые папки. Расширение количества систем заставляет задуматься о доступности информации и более эффективном хранении данных, ведь при множественных сетевых подключениях компьютер начинает ощутимо тормозить. Здесь самое время вспомнить о распределенной файловой системе (Distributed File System, DFS). Пользователь получит более прозрачный механизм доступа к сетевым ресурсам, ведь все общие ресурсы будут объединены в единое пространство имен, и не нужно будет каждый раз искать компьютер, на котором находятся нужные файлы. Учитывая, что данные одновременно хранятся на нескольких компьютерах с автоматической репликацией, получаем возможность более равномерно распределить нагрузку и увеличить доступность данных, в случае выхода из строя одной из систем, где находился сетевой ресурс. Репликация использует механизм, получивший название удаленное разностное сжатие (Remote Differential Compression - RDC), при котором по сети передаются лишь различия, что уменьшает трафик. Отслеживается актуальность содержимого, поэтому сервер, который долгое время был недоступен, не сможет переписать обновленные данные.
В принципе, DFS можно активировать и без Active Directory в режиме Standalone (автономный), но в таком случае не используется репликация, а доступность данных будет зависеть от работоспособности сервера, хранящего информацию о структуре DFS.
В статье "Страж файлового дерева", опубликованной в декабрьском номере ][ за 2007 год, подробно говорилось о реализации DFS на Win2k3. В Win2k8/R2 у DFS появились новые возможности, и немного изменился принцип настроек. Так DFS реализован в виде сервисной роли файловых служб. Для установки следует активировать роль "Файловые службы" и затем на этапе выбора служб ролей включить два пункта "Пространства имен DFS" и "Репликация DFS". На следующем шаге мастера можно создать пространство имен или отложить этот шаг и организовать Namespace при помощи консоли. Затем следует выбрать тип создаваемого пространства имен. Так как у нас используется Active Directory, тип "Изолированное пространство имен" нам не подходит. Поэтому отмечаем "Пространство имен на основе домена" и переходим к следующему шагу, где указываем учетную запись (должна входить в группу админов домена), от имени которой мастер будет выполнять все настройки. И, наконец, последняя установка позволяет добавить сетевые папки в пространство имен. Просто выбираем систему, затем сетевой ресурс и указываем имя. По окончании нажимаем Установить и ожидаем завершения работы мастера.
В консоли все делается проще:
> ServerManagerCmd -install FS-DFS FS-DFS-Namespace FS-DFS-Replication
Дальнейшая настройка производится при помощи консоли DFS, ярлык для запуска которой находится в меню Администрирование. В частности, рассмотрим, как настроить реплицирование данных. Добавляем еще один объект, который в пространстве имен DFS будет связан с текущей папкой. Выбираем в окне консоли первую папку и в контекстном меню пункт "Добавить конечный объект папки", указываем еще один сетевой ресурс. Мастер запросит создать группу репликации для выбранных объектов, соглашаемся. В дальнейшем при добавлении новых папок в группу настроить репликацию можно при помощи мастера репликации папок.
В некоторых ситуациях необходимо изменение файлов, расположенных в одной сетевой папке, остальные используется лишь для доступности и резервного копирования. В DFS, реализованной в Win2k8, эта задача решается просто, достаточно установить нужную папку в режим "Только чтение". Папки для чтения предназначены только для реплицирования в них данных, которые не нужно менять. Это могут быть отчеты, файлы установки, да и, в принципе, любые файлы (например, веб-сервера, о чем ниже), если такая необходимость возникла. Для включения режима для чтения выбираем группу репликации, переходим во вкладку Членства и, выбрав нужную сетевую папку из контекстного меню, щелкаем "Сделать доступным только для чтения".
Пользователи, обращающиеся к сетевым ресурсам, видят список всех ресурсов, часто тех, к которым они не должны иметь доступа. Это отвлекает их от работы, так они пытаются открыть такую папку или файл. При этом службы аудита заносят в системный журнал большое количество варнинговых сообщений. Еще один неприятный момент: если пользователь увидит файл типа "Уволить.doc" он, естественно, будет нервничать и создавать нерабочую обстановку. Новая функция - перечисление на основе доступа (Enable Access-Based Enumeration, ABDE) - как раз и позволяет решить эту проблему. С ABDE пользователи видят только разрешенные файлы и каталоги. Суть в следующем: после включения в корне DFS все ссылки будут иметь связанный дескриптор безопасности, что дает возможность скрыть от пользователя те файлы, на которых у него нет прав.
По умолчанию функция ABDE для пространств имен отключена. Активировать достаточно просто. Для этого используется консольная утилита dfsutil. Включаем:
> dfsutil property ABDE \\synack.ru\Namespace1 Пространство имен \\synack.ru\Namespace1: ABDE ВКЛЮЧЕНО
Для примера установим разрешение на чтение списка файлов группе админов домена:
> dfsutil property acl grant \\srv1\Namespace1\docs \ "SYNACK\Domain Admins":R Protect Replace
Примечание: если сетевой ресурс находится на системе ниже Win2k8/Vista, то указанные параметры не сработают. При попытке их использования получим ошибку.
Также в консоли DFS обращает на себя внимание новая вкладка Репликация. Дело в том, что в Win2k8 для репликации папки SYSVOL вместо службы репликации файлов используется DFS. Настройки в указанной вкладке позволяют установить квоты, выбрать каталог для промежуточных файлов и определить действия при конфликтах. В случае если DFS запущен на контроллере RODC, DFS для SYSVOL автоматически устанавливается в режим "только для чтения".
В Win2k8R2 появились новые функции, и возможности DFS не ограничиваются лишь работой с сетевыми папками. Так в DFS теперь можно настроить отказоустойчивые кластеры как часть группы репликации, причем кластеры поддерживаются как в Standalone, так и в Domain-based DFS.
В большинстве повседневных задач обычному пользователю хватает компьютера с небольшой мощностью, и только некоторые приложения требуют более производительных систем, но нужны они не часто. Выход из ситуации прост: установить один мощный комп, а пользователи будут подключаться к нему по протоколу RDP, используя службу терминалов. Такой подход, кроме прочего, позволяет сэкономить и на лицензиях. При увеличении количества компьютеров и объединении офисов возникнет необходимость пересмотреть существующие настройки, чтобы к TS (Terminal Services) могли подключаться удаленные пользователи, а также распределить увеличившуюся нагрузку между имеющимися серверами. В Win2k и Win2k3 поставленные вопросы решались танцами с бубном, но в Win2k8 появились новые функции, которые практически полностью снимают все проблемы с настройкой доступа к TS. Это технология RemoteApp, позволяющая работать удаленно с отдельно выбранным приложением, веб-доступ к службам терминалов (TS Web Access) и шлюз служб терминалов (TS Gateway) (подробно о настройке TS в Win2k8 читай в статье «Зона терминального доступа» в ][ 09.2008). В Win2k8R2 к ним добавилась функция Virtual Desktop Infrastructure (VDI), которая (для пользователя) практически стирает грань между приложением, запущенным на локальной системе и в виртуальной среде.
Также стоит отметить, что в R2 служба Terminal Services стала называться иначе — служба удаленных рабочих столов (Remote Desktop Services, RDS), так что придется привыкать к новому названию. Теперь рассмотрим подробнее отдельные настройки.
Службы RDS являются одной из ролей сервера Win2k8R2, достаточно отметить нужный флажок и затем установить необходимые службы ролей. Перечислять их все не буду, так как назначение понятно из описания, которое приводится здесь же. Причем если планируется использование «Узла сеансов удаленных рабочих столов», то все приложения на сервере лучше установить после настройки этой роли. Если ранее работавшие приложения после развертывания RDS отказываются запускаться, просто переустанови их, это решит проблему.
При выборе VDI появится запрос на добавление Hyper-V, поэтому сервер должен отвечать всем требованиям, которые предъявляются для установки этой системы виртуализации (подробнее о Hyper-V читай в статье «Гиперактивная виртуальность», опубликованной в ][ 02.2009).
В зависимости от выбранных служб ролей, в мастере будут появляться дополнительные шаги для предварительной настройки их работы.
Если в сети используются компьютеры с ОС, которые поддерживают протокол CredSSP (от Vista и выше), то нужно активировать проверку подлинности на уровне сети. Это увеличит безопасность, так как подлинность пользователя проверяется *перед* подключением к серверу, что позволит снизить ущерб от DoS-атак и требует меньше системных ресурсов при подключении. Затем в консоли можно изменить эти и любые другие установки. На этапе "Настройка взаимодействия с пользователем" флажком указывается функциональность, которая будет доступна пользователям - воспроизведение аудио и видеопотока, запись звука, Aero (конечно, если они не запрещены групповыми политиками).
Для работы шлюза RDS необходимо создать политики авторизации подключений, это можно сделать при помощи мастера установки роли или затем в консоли. Процесс создания политик при помощи мастера достаточно прост. Указываем группы пользователей, которым будет разрешен доступ (это, естественно, должна быть отдельная группа), имя политики и метод проверки подлинности Windows (пароль и/или смарт-карта), и определяем, к каким компьютерам смогут подключаться пользователи в этой политике (определенные или любые). Также в процессе работы мастера необходимо установить службу защиты сетевого доступа NAP (подробности смотри в статье "Сетевой коп" из ][ 12.2008).
После перезагрузки, которую необходимо произвести по окончании установки роли, будут выведены результаты установки и рекомендации по дополнительной настройке сервисов.
Далее разберем настройку фермы хост-серверов RDS. Основной компонент - посредник подключений к удаленному рабочему столу (RD Connection Broker, в Win2k8 - брокер сеансов служб терминалов), который и обеспечивает равномерное распределение нагрузки между серверами, с возможностью подключения к существующим сеансам (в Win2k3 для этого использовалась политика Session Directory (каталог сеансов).
Используя консоль "Управление компьютером", добавляем все хост-сервера в локальную группу "Компьютеры посредника сеансов" (Локальные пользователи и группы - Группы - Компьютеры посредника сеансов - Свойства - Добавить - Типы объектов - Компьютеры). Открываем консоль "Конфигурация узла сеансов удаленных рабочих столов" (Администрирование - Службы удаленных рабочих столов), находим раздел "Член фермы в посреднике подключений к удаленному рабочему столу", вызываем окно свойств, переходим в "Посредник подключений к удаленному рабочему столу". Параметры здесь неактивны, чтобы настроить их, нажимаем "Изменить" и в появившемся окне устанавливаем переключатель в "Член фермы". В открывшихся полях внизу страницы заполняем имя сервера посредника и имя фермы. После проведенных операций становится доступным параметр "Участвовать в балансировке нагрузки посредника подключений". При помощи цифр указывается относительный вес сервера. По умолчанию установлено значение 100, если другому серверу присвоить 50, то он будет принимать вдвое меньше нагрузки, чем первый. В поле "Выберите IP-адреса, используемые для повторного подключения" устанавливаем флажки для всех IP-адресов, которые необходимо использовать.
Вот, собственно, и все. Кстати, эти настройки можно произвести при помощи групповых политик: Конфигурация компьютера - Политики - Административные шаблоны - Компоненты Windows - Службы удаленных рабочих столов - Хост-сервер сеансов удаленных рабочих столов - Посредник подключений к удаленному рабочему столу.
После всех этих манипуляций с возросшей нагрузкой будут справляться два менее производительных сервера.
Если веб-сервер перестает справляться с нагрузкой, и под рукой есть маломощные сервера, то прежде чем бросаться покупать новое оборудование, можно настроить веб-ферму и равномерно распределить входящие подключения между узлами кластера. Используя два сервера, мы не только поднимаем производительность, но и увеличиваем отказоустойчивость. В Win2k8/R2 используется новая версия IIS 7.х, являющаяся совершенно новым решением, по сравнению с предыдущими версиями этого веб-сервера. Главные новшества IIS седьмой версии — модульная архитектура, использование новых конфигурационных файлов и новые инструменты управления. Всего доступно около 40 служб ролей IIS, которые разбиты на 8 групп, но администратор устанавливает лишь действительно необходимые функции.
Конфигурационные файлы выполнены в XML-формате (размещаются в %systemroot%\windows\system32\inetsrv\config) и достаточно просто переносятся между машинами (здесь IIS стал напоминать Apache), поэтому клонировать настройки веб-сервера можно простым копированием файлов (например при помощи xcopy). В предыдущих версиях это было на порядок сложнее. Данная особенность используется в механизме Общая конфигурация (Shared Configuration), когда один конфигурационный файл (AppHost.config), размещенный на UNC ресурсе, используют несколько веб-серверов, что помогает в создании веб-ферм. Для начала создаем общую сетевую папку и отдельную учетную запись пользователя, который будет владельцем этой папки (устанавливаем нужные права для NTFS и сетевого доступа). Затем в диспетчере служб IIS выбираем узел и в поле Управление щелкаем пункт «Общая конфигурация». При помощи ссылки с несколько странным названием «Выполняется экспорт конфигурации», размещенной в поле Действия, экспортируем настройки, указав сетевой путь и учетные данные для доступа. Чтобы защитить данные от чтения посторонними, вводим ключ шифрования. Теперь ставим флажок «Включить общую конфигурацию», вводим логин и пароль для доступа к ресурсу и в появившемся окне ключ для расшифровки. Теперь веб-сервер будет брать настройки с указанного сетевого ресурса. На остальных серверах выполняем аналогичные действия (без экспорта настроек, так как они уже есть), копируем контент и получаем несколько абсолютно одинаковых сайтов. Настройки теперь можно производить только в одной из консолей диспетчера служб IIS, все изменения автоматически будут подхвачены другими серверами. Задействовав возможности DFS и указав в качестве места расположения файлов (конфигурационных и статического контента) сетевой ресурс, мы получаем самонастраивающуюся отказоустойчивую веб-систему. Останется только настроить службу Network Load Balancing (NLB) для распределения сетевой нагрузки между веб-серверами.
Как видишь, многие проблемы, возникающие при увеличении нагрузки, можно решить, просто перераспределив ресурсы или изменив стандартную схему. Конечно, не всегда это удается, иногда все же приходится докупать оборудование. Здесь важно проанализировать ситуацию и правильно оценить конечный результат.
Врезка: Полезные инструменты при переходе на Active Direcory
Переход на Active Directory представляет собой достаточно трудоемкий процесс, который требует тщательного планирования. Чтобы уменьшить количество спорных вопросов, Microsoft выпустила ряд утилит.
Microsoft Assessment and Planning Toolkit — инструмент широкого применения, позволяющий собрать данные (без установки агентов, используя WMI) об установленном оборудовании, системных настройках и установках безопасности, а затем выдать рекомендации по возможности использования ряда сервисов (Hyper-V, SQL и так далее). И хотя Active Directory в списке нет, общую картину ты все же получишь.
Подобная утилита Active Directory Sizer tool, которая на основании введенной админом информации (количество доменов, топология, наличие Exchange) помогает определиться с системными требованиями. К сожалению, Active Directory Sizer tool ориентирован под домен на Win2k, поэтому в современных ОС может помочь лишь при общем анализе ситуации.
Утилита ADTest.exe позволяет провести нагрузочное тестирование сервера Active Directory и оценить потенциал имеющегося оборудования.
При слиянии двух и более организаций придется либо настраивать доверительные отношения между доменами, либо организовать один домен. В последнем случае будет полезен инструмент Active Directory Migration Tool (ADMT), предназначенный для переноса учетных записей пользователей и компьютеров, а также группы в другой домен. Мастер позволяет проверить параметры миграции перед переносом данных и убедиться в отсутствии конфликтов.
INFO
Что можно почитать по данной теме:
-
Установка контроллера домена на Win2k3 — «Первый шаг навстречу Active Directory», ][_04_2007.
- Настройка КД в Win2k8 - "В лабиринте AD", ][_11_2008.
- Настройка Hyper-V - "Гиперактивная виртуальность", ][_02_2009.
- Настройка Terminal Services в Win2k8 - "Зона терминального доступа", ][_09_2008.
- Настройка NAP - "Сетевой коп", ][_12_2008.
- Настройка NLB в Win2k3 - "Непотопляемый сервер", ][_02_2008.
- Настройка Failover Cluster в Win2k8 - "Безотказный файлообменник", ][_10_2008.
WWW
-
Ресурс Microsoft, посвященный Win2k8R2 —
Статья опубликована в апрельском номере журнала «Xakep» за 2010 год.





