Простое масштабируемое развертывание средствами BDD 2007

OSzone.net » Microsoft » Windows Server 2008 » Прочее » Простое масштабируемое развертывание средствами BDD 2007
Автор: Адам Шеферд (Adam Shepherd)
Иcточник: TechNet Magazine
Опубликована: 13.11.2007

Большинство участников процесса развертывания Windows слышали о приложении Microsoft Solution Accelerator для Business Desktop Deployment. Известное также под именем BDD, оно представляет собой комплект рекомендаций и средств, разработанных для помощи в развертывании Windows® на компьютерах клиентов. Windows Vista® содержит обновление Solution Accelerator в форме BDD 2007. Эта версия включает новую консоль управления Microsoft® и секвенсор задач из диспетчера System Center Configuration Manager 2007, который пришел на смену серверу Systems Management Server (SMS) 2003.

Одна из наиболее сложных для понимания функций BDD 2007 — это возможность данной системы действовать в качестве решения полного развертывания. В предыдущих версиях способ создания и поддержки образов настольных систем с помощью BDD был довольно прост и позволял повторно создавать образы. Теперь в BDD 2007 предусмотрена дополнительная возможность создания масштабируемого решения развертывания путем комбинирования BDD со службами развертывания Windows, SQL ServerTM и службой репликации распределенной файловой системы Windows Server® 2003.

Но постойте-ка… разве для развертывания Windows на клиентских компьютерах не рекомендуется использовать сервер SMS 2003 с пакетом дополнительных компонентов для развертывания операционной системы (OSD)?

Да, если у вас уже есть инфраструктура SMS 2003, вы можете выполнять развертывание с помощью BDD 2007, SMS 2003 и пакета OSD. На данный момент это наиболее эффективный метод автоматического развертывания, способный в значительной мере снизить затраты организации на настройку, установку и управление операционной системой Windows.

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


Основные понятия в BDD 2007

BDD 2007 предлагает два основных метода развертывания. В первом методе, установке с незначительным участием пользователя, для развертывания используется только BDD 2007. Этот метод предполагает запуск комплекта мастеров во время установки для сбора информации по развертыванию, например: какое имя следует присвоить клиенту (см. рис. 1), какую раскладку клавиатуры и какой часовой пояс следует использовать и т.д. Данный метод называется «установка с незначительным участием пользователя», так как обычно требует лишь минимального ввода самим пользователем информации, необходимой для начала установки.

Рис. 1 Мастер развертывания BDD 2007 с незначительным участием пользователя
Рис. 1 Мастер развертывания BDD 2007 с незначительным участием пользователя

Второй метод, автоматическая установка, основан на возможностях SMS 2003 с пакетом дополнительных компонентов OSD и интеграции с BDD 2007. Такая конфигурация обеспечивает полностью автоматизированное, масштабируемое и управляемое решение развертывания без участия пользователя.

Во время установки, на одной из первых стадий развертывания клиентской ОС, BDD 2007 собирает информацию из множества различных источников. Эти источники включают обращения к WMI и файлы настроек BDD 2007 — Bootstrap.ini и CustomSettings.ini. Собранная информация хранится в виде переменных, которые используются в процессе развертывания. В методе установки с незначительным участием пользователя файлы Bootstrap.ini и CustomSettings.ini дают возможность предопределить всю информацию, которую иначе потребовалось бы вводить вручную в окнах мастеров развертывания.

Возможность предварительного определения всей необходимой информации позволяет вам автоматизировать весь процесс установки с незначительным участием пользователя и перейти к решению автоматической установки в средах, не поддерживаемых сервером SMS 2003. Вот примерная информация, которую вы можете предопределить: ComputerName=RDG0001VST — присваивает компьютеру имя RDG0001VDT или TimeZoneName=GMT Standard Time — настраивает часовой пояс компьютера на время по Гринвичу. Все доступные свойства, которые могут быть использованы во время развертывания посредством BDD, перечислены в справочнике по настройке на странице tech-net.microsoft.com/library/bb490302.aspx.

Для получения дополнительной информации о настройке и использовании BDD 2007 см. статью "Развертывание Windows Vista при помощи BDD 2007» в сентябрьском выпуске журнала TechNet Magazine (technetmagazine.com/issues/2007/09/BDD) за 2007 год.


BDD и SQL Server

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

Давайте немного подробнее остановимся на интеграции SQL Server с системой BDD 2007. Прежде всего, необходимо убедиться, что на вашем сервере развертывания установлен SQL Server (предпочтительно SQL Server 2005 или более поздняя версия). К счастью, создание базы данных в BDD 2007 не представляет никакой сложности: все, что вам нужно сделать — щелкнуть правой кнопкой узел Database в средстве BDD 2007 Deployment Workbench, выбрать команду New («Создать») и следовать инструкциям (см. рис. 2). Группа BDD проделала немалую работу по созданию мастеров, помогающих легко и быстро справиться с этой задачей.

Рис. 2 Настройка базы данных развертывания для BDD 2007
Рис. 2 Настройка базы данных развертывания для BDD 2007

После создания базы данных вы можете ознакомиться со всеми ее возможностями. Записи в базе данных делятся на четыре основных категории: «Компьютер», «Роль», «Расположение» и «Марка и модель». Каждая категория позволяет определять записи и заполнять каждую запись переменными BDD 2007, назначать приложения и выполнять другие важные настройки (см. рис. 3).

Рис. 3 Назначение свойств развертывания
Рис. 3 Назначение свойств развертывания

Очень интересно взглянуть на эти четыре категории в двух разных группах. Категории «Компьютер», «Расположение» и «Марка и модель» предоставляют вам различные способы идентификации компьютера во время установки. Затем каждый идентифицированный компьютер можно связать с определенной ролью в базе данных, подготовив его таким образом к выполнению задач в конкретной области, например торговля, маркетинг или финансы. Для каждой роли устанавливается соответствующий комплект бизнес-приложений.

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

Раздел «Расположение» используется для создания записей о конкретных географических местоположениях организации. Каждая запись идентифицируется по шлюзу, используемому по умолчанию для этого местоположения. Это особенно удобно, если в службе каталога Active Directory® имеются локальные структурные подразделения, и вы хотите, чтобы компьютеры, созданные в каком-либо расположении, были добавлены в домен структурного подразделения, соответствующего этому расположению.

Раздел «Марка и модель» используется для создания записей по каждому типу оборудования, который поддерживается вашим решением развертывания. BDD 2007 сравнивает эти данные с информацией, полученной посредством обращений к WMI. В средах разработки раздел «Марка и модель» используется для создания записи, посредством которой производится проверка, является ли компьютер виртуальной машиной Virtual PC 2007 или Virtual Server 2005 с помощью просмотра свойств «Корпорация Microsoft» и «Виртуальная машина» из раздела «Марка и модель» соответственно. Если эти свойства проверяются во время установки, вы можете сообщить BDD о том, что при развертывании необходимо установить приложение Virtual Machine Additions. Для этого просто добавьте данное приложение в запись «Марка и модель».

Теперь, когда методы идентификации машин определены, можно воспользоваться разделом «Роль», чтобы создать записи для всех требуемых ролей развертывания. В качестве примера можно привести запись для ролей Windows XP и Windows Vista, которые настраиваются путем добавления свойства BuildID, отвечающего сборке Windows XP или Windows Vista, определенной в BDD для каждой записи. Есть и другой подход: определить роли отделов, например «Бухгалтерия», «Продажи» или «Финансы». Я обычно стараюсь заполнить максимальное количество свойств BDD в этом разделе (часовой пояс, региональные настройки, организационная информация и т.п.). Это позволяет свести администрирование баз данных к минимуму, поскольку эти записи не привязаны к конкретным компьютерам, аппаратным устройствам или расположению.

Мы должны сообщить BDD 2007, что во время развертывания необходимо найти в базе данных все записи, соответствующие компьютеру, на котором производится развертывание. Чтобы настроить BDD на использование базы данных в процессе развертывания, щелкните правой кнопкой точку развертывания и выберите команду Configure DB («Настроить базу данных»). При этом вам будет предложено выполнить инструкции ряда мастеров, которые заполнят файл CustomSettings.ini записями, используемыми процессом установки с незначительным участием пользователя для запроса информации из базы данных.


Как сделать развертывание масштабируемым

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

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

Рис. 4 Архитектура развертывания «звезда»
Рис. 4 Архитектура развертывания «звезда»

Чтобы активировать эту архитектуру, необходимо воспользоваться службой DFS-R для репликации дистрибутивного общего ресурса на каждом из серверов развертывания. Затем с помощью репликации моментальных снимков SQL Server вы подготавливаете копию базы данных развертывания BDD также для каждого дочернего сервера. Преимущество этого решения в том, что дочерние серверы развертывания имеют минимальные требования: для начала установки вам нужно лишь установить на каждой машине SQL Server Express, службы развертывания Windows и DFS-R.

Из-за больших объемов данных, которые могут храниться в дистрибутивном общем ресурсе BDD 2007, я предпочитаю использовать DFS-R в Windows Server 2003 R2, а не службы репликации файлов в более ранней версии Windows Server. Служба DFS-R использует удаленное разностное сжатие (RDC) для репликации только разностных изменений файлов элементов группы репликации. Это может сильно повлиять на объем трафика репликации в тех случаях, когда в пользовательский файл образа вносится небольшое изменение, например новый драйвер. При использовании службы DFS-R объем трафика репликации определяется только размером внесенных изменений, при этом повторное распространение всего файла образа не требуется.

На веб-узле Microsoft вы найдете предостаточно информации о распределенной файловой системе (DFS). Начать можно с microsoft.com/windowsserver2003/technologies/storage/dfs. Я, однако, расскажу об основных стадиях установки и настройки, чтобы дать вам общее представление об этом процессе в контексте развертывания на базе BDD.

Обратите внимание, что в случае если на ваших серверах используется служба Active Directory на базе установки Windows Server 2003 версии до R2, может понадобиться обновление схемы Active Directory до совместимости с DFS-R, поскольку службе репликации требуются новые классы объектов. Подробную информацию о расширении схемы Active Directory в Windows Server 2003 R2 можно найти на странице go.microsoft.com/fwlink/?LinkId=99936.

Первым делом вам нужно установить компоненты DFS на сервере развертывания Windows Server 2003 R2. Это можно сделать несколькими способами, самый простой из которых — воспользоваться стандартным мастером установки и удаления компонентов Windows. После этого необходимо установить группу репликации с помощью консоли управления DFS, которая изображена на Рис. 5.

Рис. 5 Консоль управления DFS
Рис. 5 Консоль управления DFS

Для масштабирования вашего решения развертывания BDD 2007 необходима репликация двух папок. Первая — это дистрибутивный общий ресурс BDD 2007, в котором содержатся все исходные файлы и файлы настройки BDD. Эти файлы должны быть доступны на всех серверах развертывания.

Вторая папка, которую следует реплицировать — это папка Boot. Она используется службой развертывания Windows для хранения файла LiteTouch_x86.wim. Именно среда загрузки BDD переносится службой развертывания Windows на клиентские компьютеры, чтобы можно было начать процесс развертывания. Репликация этого файла позволяет отразить во всей инфраструктуре развертывания все изменения, внесенные в среду загрузки на родительском сервере развертывания.

Итак, реплицировать нужно следующие папки: X:\Distribution (где Х: — диск, который вы указали во время установки BDD 2007) и Y:\RemoteInstall\boot (где Y: — том, в котором хранится общий ресурс службы развертывания Windows RemoteInstall).

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

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

Выполните следующую команду на всех серверах развертывания:

WDSUTIL /set-server /BCDRefreshPolicy /Enabled:yes /RefreshPeriod:<time in minutes> 

Период обновления зависит от того, насколько часто обновляются данные на серверах развертывания. Если вы настраиваете службу DFS-R на репликацию через каждый час, имеет смысл и политику обновления хранилища также настроить на обновление через каждые 60 минут.


Репликация SQL Server

Итак, вы уже выполнили масштабирование BDD 2007 с целью репликации дистрибутивного общего ресурса и образа загрузки службы развертывания Windows с первичного сервера развертывания на все дочерние серверы. Теперь нужно завершить процесс и реплицировать базу данных BDD 2007 Deployment Workbench, чтобы она была доступна локально на каждом сервере развертывания.

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

Обратите внимание, что сервер-издатель базы данных SQL Server не может работать с версией SQL Server Express Edition: на нем должна быть установлена полная версия SQL Server. Для первичного сервера развертывания я использовал SQL Server 2005 (хотя SQL Server 2000 тоже подойдет). Для дочерних серверов развертывания можно использовать версии SQL Server 2005 или SQL Server 2005 Express.

Перед началом настройки репликации SQL Server следует выполнить несколько действий, чтобы проверить правильность настройки SQL Server для поддержки репликации. При подготовке серверов развертывания убедитесь, что компоненты репликации включены в процесс установки SQL Server 2005 или SQL Server 2005 Express Edition. SQL Server Express по умолчанию не устанавливает эти компоненты.

Далее, в SQL Server необходимо активировать удаленные подключения, иначе среда загрузки для установки с незначительным участием пользователя не сможет удаленно подключаться к SQL Server. Чтобы настроить удаленные подключения в SQL Server, запустите средство настройки контактной зоны SQL Server, выберите вариант Surface Area Configuration for Services and Connections («Настройка контактной зоны для служб и подключений») и настройте сервер на принятие как локальных, так и удаленных подключений по протоколу TCP/IP и именованным каналам.

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

Для последней стадии настройки вполне достаточно будет версии SQL Server Express Edition на дочерних серверах развертывания. По умолчанию служба обозревателя SQL Server отключена. Чтобы разрешить репликацию, вам потребуется настроить эту службу на автоматическую работу и запустить ее. Для настройки службы используйте диспетчер конфигураций SQL Server. Кроме того, нужно также создать на дочерних серверах, на которые будет выполняться репликация, базу данных. Рекомендую использовать для этой базы данных такое же имя, как для базы данных BDD 2007 на первичном сервере развертывания: это позволит уменьшить количество дополнительных настроек.


Настройка репликации

Итак, теперь вы полностью готовы к настройке репликации SQL Server. Для начала запустите среду SQL Server Management Studio на главном сервере развертывания, на котором должна быть установлена полная версия SQL Server 2005. Прежде всего, нужно создать и настроить распространение. Для этого перейдите к папке Replication на консоли управления, как показано на рис. 6. Чтобы запустить мастер распространения, щелкните правой кнопкой мыши эту папку и выберите команду «Настройка распространения».

Рис. 6 Сервер управления SQL Server: Репликация
Рис. 6 Сервер управления SQL Server: Репликация

В окне мастера подтвердите, что первичный сервер развертывания должен функционировать как собственный распространитель. Укажите, что корневая папка моментальных снимков является путем UNC для созданного ранее общего ресурса репликации SQL Server. Теперь укажите, что первичный сервер развертывания должен быть настроен как издатель.

После того как мастер успешно завершит настройку сервера в качестве издателя и распространителя, вы должны будете сообщить SQL Server, какую базу данных следует опубликовать. Для этого щелкните правой кнопкой папку Replication и выберите пункт «Свойства издателя». В диалоговом окне свойств щелкните «Базы данных публикации» и выберите базу данных BDD 2007 для транзакционной репликации, как показано на рис. 7. В данном случае транзакционная репликация фактически не используется, однако этот параметр выбирается независимо от предназначения — моментальный снимок или транзакционная репликация.

Рис. 7 Публикация базы данных
Рис. 7 Публикация базы данных

Теперь нужно создать публикацию, на которую смогут подписаться дочерние серверы развертывания. В папке Replication щелкните правой кнопкой «Локальные публикации» и выберите команду «Создать публикацию», чтобы запустить мастер публикаций. Выберите базу данных BDD в качестве базы данных для публикации. Выберите тип публикации «Репликация моментального снимка» и укажите все таблицы, хранимые процедуры и представления, которые необходимо реплицировать. Выберите вариант немедленного создания исходного моментального снимка. Что касается планирования работы агента моментальных снимков, для наших целей будет более чем достаточно запускать его по умолчанию один раз в день, если только вы не собираетесь обновлять базу данных очень часто.

Остался последний шаг: подписать все дочерние серверы развертывания на эту публикацию. В соответствии с этой подпиской SQL Server будет отправлять копию базы данных каждому дочернему серверу через определенные интервалы времени. В папке Replication откройте вложенную папку Local Publications и найдите там только что созданную вами публикацию. Щелкните ее правой кнопкой и выберите команду «Новые подписки», чтобы запустить мастер подписки. В окне мастера выберите созданную ранее публикацию BDD. Выберите вариант запуска всех агентов в распространении, активировав топологию репликации в качестве принудительной подписки. После этого добавьте каждый сервер развертывания в качестве подписчика и назначьте базы данных, созданные на всех серверах, на получение копии реплицированных данных (помните, что имена этих баз данных должны совпадать с именем базы данных на первичном сервере). И последнее: настройте учетную запись, которая будет использоваться для подключений, и создайте расписание для репликации. Оно должно повторять расписание, выбранное для агента моментальных снимков. Это был довольно краткий обзор подготовки и запуска репликации SQL Server. Теперь ваши данные будут реплицироваться в мгновение ока!


Настройка BDD 2007

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

При загрузке в среду предустановки Windows с незначительным участием пользователя в том случае, если клиент выполнил загрузку с сервера службы развертывания Windows, в среде предустановки Windows задается значение реестра, содержащее имя сервера, с которого клиент загрузил среду загрузки. Начальные сценарии развертывания BDD 2007 получают и хранят это значение в переменной среды %WDSServer%.

Обратите внимание, что, если вы используете первый выпуск BDD 2007, это значение может оказаться некорректно заполненным в реестре среды предустановки Windows. На странице support.microsoft.com/kb/937191 вы можете загрузить обновление для решения этой проблемы.

Для настройки BDD 2007 нужно просто отредактировать файлы BootStrap.ini и CustomSettings.ini таким образом, чтобы все ссылки на сервер развертывания были заменены ссылкой %WDSServer%. Этот процесс обычно включает в себя замену значений для имени экземпляра SQL Server значением DeploymentRoot — сервера, на котором размещен дистрибутивный общий ресурс. Образец файла Bootstrap.ini и фрагмент файла CustomSettings.ini приведены на рис. 8 и рис. 9.

Рис. 8  BootStrap.ini

[Settings]
Priority=Default

[Default]
DeployRoot=\\%WDSServer%\Distribution$
UserDomain=BUILDLAB
UserID=BddAdmin
UserPassword=Password1234
SkipBDDWelcome=YES

            
Рис. 9  CustomSettings.ini
[Settings]
Priority=MMSettings, MMApps, CSettings, CRoles, RSettings, RApps, Default
Properties=Manufacturer

[Default]
OSInstall=Y
DeployRoot=\\%WDSServer%\Distribution$
UserDomain=BUILDLAB
UserID=BddAdmin
UserPassword=Password1234

[CSettings]
SQLServer=%WDSServer%
Database=BDD_DB1
Netlib=DBNMPNTW
Table=ComputerSettings
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR

[CRoles]
SQLServer=%WDSServer%
Database=BDD_DB1
Netlib=DBNMPNTW
Table=ComputerRoles
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR

            

Обращаю ваше внимание, что данное решение подразумевает размещение службы развертывания Windows на том же сервере, где хранится реплицированная база данных BDD 2007 и реплицированный дистрибутивный общий ресурс BDD 2007. Причины этого очевидны: в этом случае вы можете использовать переменную %WDSServer% в качестве простого и надежного способа сообщения клиентскому компьютеру о расположении его локального сервера развертывания и предотвращения его обращения в глобальную сеть.


Дополнительные соображения

Одним из самых главных достоинств системы BDD 2007 является ее расширяемость, поэтому существует еще очень много различных аспектов, заслуживающих рассмотрения в плане расширения данного решения. Например, встроенные возможности позволяют вести мониторинг SQL Server и DFS-R, разрабатывать методы внедрения в компьютеры вашей среды информации из базы данных управления лицензиями и даже использовать хранимую процедуру SQL для извлечения таких сведений. К сожалению, объем данной статьи не позволяет мне подробно остановиться здесь на этих вопросах, однако я надеюсь, что предоставил вам достаточно информации обо всех возможностях BDD и их использовании внутри организации.


Ссылка: http://www.oszone.net/5829/BDD_2007