Nov 13, 2009

OSD SCCM: способы задания имени компьютера


Процесс установки операционной системы через OSD SCCM в принципе удовлетворяет большинству предъявляемых к нему требований: он занимает мало времени и еще меньше сил, на выходе мы получаем полностью готовый к работе компьютер с установленными программами, драйверами и последними обновлениями безопасности. И все с помощью нескольких кликов мыши. Не жизнь, а сказка. Но аппетит, как известно, приходит во время еды и со временем (а иногда и сразу, на этапе планирования) у системных администраторов появляются новые «хотелки» которые необходимо поддержать в OSD.
Пожалуй, самой частой упоминаемой из них является желание в явном виде указать те или иные параметры перед началом установки ОС. Чаще всего таким параметром является имя компьютера. Действительно, пользователям трудно объяснить, почему их компьютер называется MININT-KGKGUBG, а не COMP-V-PUPKIN. Либо на предприятии существует политика, которая предписывает именовать все компьютеры, опираясь на их роль и территориальную принадлежность, например W-MSK-000129.


Вариант I – Computer Association

Одним из способов решения данной проблемы является заведение записи компьютера в базе SCCM. В этом нам поможет механизм Computer Association, смысл которого заключается в ручном добавлении пары Имя компьютера – MAC адрес в базу данных SCCM.
Для того чтобы вручную добавить компьютер в базу данных SCCM необходимо перейти к пункту: Configuration Manager Console – Site Database – Computer Management – Operating System Deployment – Computer Association – Actions: Import Computer Information. В появившемся мастере доступны два способа добавления записей: Import computer using file (добавление группы компьютеров с помощью CSV файла) и Import single computer (добавление одиночного компьютера).

Для примера добавим одиночный компьютер с желаемым именем W-TST-0001 и MAC-адресом 00:E0:4C:62:02:B0. Если мы добавляем новый, ранее не известный SCCM компьютер, то поле SMSBIOS GUID можно не заполнять, оно будет заполнено автоматически.

Параметром Source computer мы можем указать уже существующую запись в базе данных SCCM, с которой будет ассоциирована новые данные (имя и MAC-адрес).

Далее указываем коллекцию в которую будет добавлена запись.

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

Затем выбираем пункт: Import computer using a file. Указываем место нахождение файла, и соответствие столбцов файла и полей БД.


Но такой способ (Computer Association) приемлем, только если у вас малое количество компьютеров и при этом он требует значительных трудозатрат (предварительно необходимо собрать MAC-адреса компьютеров и внести их в базу). Если есть возможность – переложите эту «ношу» на поставщика вашей техники. Пусть вместе с бухгалтерскими документами, вам передается и заранее сформированный файл. Другим вариантом частичного решения проблемы будет экспорт данных из БД вашего DHCP сервера. Но по многим причинам он далек от оптимального:
  • необходимо чтобы компьютеры получили адрес от DHCP сервера;

  • выгрузку из DHCP необходимо вручную обработать и удалить записи известных компьютеров;

  • выгрузку из DHCP необходимо обработать и привести MAC адрес к виду XX:XX:XX:XX:XX.

Вариант II – Автоматическая генерация имени

Рассмотрим другой способ задания имени компьютера. Он будет основываться на обработке заранее известных нам признаков. Например, если за такой признак мы возьмем его серийный номер, и тип компьютера (рабочая станция или ноутбук), то мы сможем формировать примерно такие имена компьютеров:
N-DGDG3546
Для того чтобы воспользоваться данным методом, нам необходим скрипт, который мог бы обрабатывать переменные OSD (OSD variables). Мы можем написать такой скрипт с нуля самостоятельно, либо воспользоваться уже готовой обвязкой из скриптов LTI из набора MDT 2010. Для этого нам необходимо выполнить условия:
  1. установить на сервере MDT 2010

  2. интегрировать MDT 2010 в SCCM 2007

  3. создать и использовать Microsoft Deployment Task Sequence

Думаю что процесс установки MDT не вызовет вопросов, поэтому его описание я опущу. А для того чтобы интегрировать MDT в SCCM необходимо запустить Start – All pograms – Microsoft Deployment Toolkit 2010 – Configure ConfigMgr Intergation и в появившемся мастере выбрать параметр Install the ConfigMgr extensions.
После этого возможно создание MDT Task Sequence в консоли SCCM. Для этого переходим в пункт OSD – Task Sequence – Create Microsoft Deployment Task Sequence.
Внимание! Рассматривается работа MDT 2010 и SCCM 2007 SP2. Настройки для других версий SCCM могут незначительно отличаться.
Выбираем шаблон для рабочих станций: Client Task Sequence.

Вводим название и комментарии.

Задаем настройки присоединения к домену. Необходимо ввести лицензионный ключ, причем установка XP SP3\Vista\Win7 в принципе его не требует, но в поле его вбить все равно необходимо.

Выбираем, будем ли мы снимать образ с данной установки или нет.

Указываем загрузочный образ. Если его у нас нет, мы можем создать (см. ниже).

Переходим к самому интересному – к созданию различных пакетов MDT. В частности именно этот пакет (MDT Binaries) содержит в себе файлы скриптов LTI.

Вводим служебные данные пакета.

Указываем WIM файл с операционной системой. Кроме того мы можем использовать вариант установки ОС через пакет (OS Install Package), либо тут же создать новый образ\пакет.

Указываем пакет с клиентом SCCM.

Указываем пакет с USMT, даже если мы не планируем использовать данное средство, как и в случае с лицензионным ключом, нам всеже придется создать пакет.


Данный пакет (MDT Settings) содержит файл unattend.ini\unattend.xml и описывает параметры установки ОС.


Использовать или нет sysprep. Отмечать необходимо только если у нас в начале выбран вариант снятия образа (capture image).

Проверяем итоговую сводку настроек.

После создания пакетов, не забудте указать для них Distribution Point!
А теперь собственно, то ради чего мы создавали MDT Task Sequence. Открыв созданный TS, необходимо выкинуть «неинтересные» нам шаги (например USMT) и добавить шаг со скриптом. Добавлять шаг со скриптом необходимо перед шагом TS:
Общий смысл скрипта сводится к изменению значения переменной OSDCOMPUTERNAME на необходимое нам значение. Сделать это можно добавив например такой скрипт в TS перед шагом применения образа ОС.









Сам скрипт можно подожить в исходную папку пакета MDT Binaries (в моем случае это \\sccm2007\source$\osd\mdt_binaries\scripts\).

В итоге мы будем получать уже более-менее осмысленное имя компьютера.

Вариант III – MDT Boot Wizard Hook

Но и этот способ не оптимален. К счастью, в новой версии MDT была внедрена штатная поддержка хуков TS, что позволило нам запускать свой мастер, до старта мастера OSD. Следует сказать, что OSD SCCM предназначен для установки ОС с помощью метода Zero Touch Installation (ZTI) – т.е. полностью в автоматическом режиме. Работа данного метода лучше всего демонстрируется на примере Task Sequence на принудительную перезаливку компьютеров. Когда задание запускается не по сети (PXE) или с диска (CD\DVD Boot Media), а из клиентской операционной системы, а затем производит ее переустановку. В MDT же применяется другой метод: Lite Touch Installation (LTI) – т.е. пользователь предварительно отвечает на некоторые вопросы некоего мастера, а затем установка происходит в автоматическом режиме. ZTI метод предназначен в первую очередь для массовой установки\переустановки, и дает меньшую свободу действий по сравнению с LTI (она есть, но основана на автоматическом выборе неких критериев, например: в зависимости от модели и производителя компьютера). LTI, напротив, дает большую свободу, но меньше приспособлен к массовому развертыванию. До выхода MDT 2010 LTI метод был не возможен в OSD SCCM, теперь при интеграции MDT 2010 и SCCM 2007 мы можем использовать и LTI установку. Для поддержки LTI нам необходимо, во-первых, использоваться загрузочный образ MDT, во-вторых, включить хук при создании этого образа.
Чтобы создать MDT Boot Image необходимо в консоли администрирования SCCM перейти к разделу Operating Sustem Deployment – Boot Image – Create Boot Image Using Microsoft Deployment.

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

Вводим название загрузочного образа и другие информационные данные.

Самое интересное начинается на странице Image Options. Во-первых, нам необходимо выбрать архитектуру загрузочного образа (х86 или х64). Во-вторых, указать, что данный образ будет содержать в себе hook файл. Для этого отмечаем параметр Add media hook files to enable the Deployment Wizard for this boot media.

Параметр Custom background bitmap file мы можем указать использование в загрузочном образе собственных обоев. В принципе точно такого же результат можно добиться потом, указав данный параметр в свойствах образа в консоли администрирования SCCM. Параметр Extra directory to add указывает папки, содержимое которой будет скопировано в корень загрузочного диска. В эту папку полезно помещать программу trace32.exe, кроме того сюда же, а точнее в .\Deploy\Scripts\ необходимо добавлять свои скрипты и файлы, если вы планируете их использовать в при работе мастера.
Включение хука, в принципе, регулируется только наличием файла TS.ini в корне загрузочного образа. Загружаясь WinPE проверяет наличие данного файла и если находит его, то запускает указанный в нем скрипт. Это метод работал и при использовании MDT 2008, однако данный файл необходимо было включать в образ вручную.
Однако мало запустить скрип, необходимо создать мастер, который будет выполнятся по указанному нами сценарию. По умолчанию такой мастер уже существует, он называется MDT Boot Wizard и выполняет только одну функцию: запрос имени компьютера у пользователя. Как это происходит можно увидеть на видео в блоге Michael Niehaus. (http://blogs.technet.com/mniehaus/attachment/3284170.ashx).
Мастер представляет из себя xml-файла параметров, который взаимодействуя с готовой формой Wizard.hta и показывает заданные параметры пользователю. По умолчанию файл описания Deploy_SCCM_Definition_ENU.xml находится в папке %programfiles%\Microsoft Deployment Toolkit\SCCM\
Внимание! В текущей версии MDT 2010 есть небольшая ошибка. В загрузочный образ MDT Boot Image включаются только заранее предопределенные файлы из папки %programfiles%\Microsoft Deployment Toolkit\SCCM\. Например файл Deploy_SCCM_Definition_ENU.xml и Deploy_SCCM_Definition_ENU_my_custom.xml будут скопированы в образ. А файл Deploy_SCCM_MyCompany.xml нет. Точно так же будет и с файлами скриптов. Для добавления этих файлов в образ, необходимо воссоздать структуру каталогов Disk:\Deployment\Scripts и эту папку указывать при создании образа (Extra directory to add).

Nov 11, 2009

Программы архивации и восстановления SQL Server

Джефф Джеймс

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


Вспомним об основах
Первая остановка в поисках решения архивации и восстановления для SQL Server — собственно SQL Server. При работе со сравнительно небольшой базой данных собственных функций SQL Server 2008/2005 может оказаться вполне достаточно. «Обычно я говорю пользователям, что встроенные функции архивации SQL Server вполне приемлемы в большинстве случаев», — рассказывает внештатный редактор SQL Server Magazine и консультант SQLServerAudits.com Майкл Кэмпбелл.
Для некоторых проектов достаточно собственных функций архивации и восстановления, но Брент Озар, специалист по SQL Server из компании Quest Software, в своем блоге указывает на изъяны встроенного компонента SQL Server 2005. Озар объясняет, что во встроенном компоненте архивации SQL Server 2005 недостает возможности сжатия данных, поэтому архивные файлы получаются очень большими. Процесс записи архивных копий может оказаться бесконечно долгим, к тому же Озар отмечает, что в SQL Management Studio нет отчетов о процессе архивации. Версия SQL Server 2008 дополнена функциями сжатия данных и шифрования, но администраторам крупных баз данных SQL Server полезно познакомиться с более полнофункциональными решениями архивации.
Время обновления продукта архивации и восстановления
Чтобы выбрать подходящий момент для перехода на более мощное решение, Кэмпбелл учитывает количество ситуаций, в которых он рекомендовал бы клиентам решения сторонних поставщиков: «Если не хватает места на диске, поскольку на нем хранятся архивные данные за два или три дня, занимающие слишком много места, или данные конфиденциальны и требуют шифрования данных в состоянии покоя». Среди прочих ситуаций, в которых Кэмпбелл рекомендует более мощное решение архивации, — необходимость использовать сеть для хранения архивных копий в удаленных местах, наличие очень крупной базы данных или дополнительные выгоды от большого коэффициента сжатия стороннего продукта (40–60%). Наконец, Кэмпбелл предпочитает решения независимых поставщиков при работе с чрезвычайно большими базами данных, которые нужно постоянно архивировать: «Если компания регулярно восстанавливает базы данных величиной от 300 до 800 Гбайт (или более крупные), сжатие архивов приводит к существенному уменьшению нагрузки на подсистему ввода-вывода, что способствует увеличению скорости архивации, особенно если администратор удачно использует несколько файловых групп».
Важнейшие характеристики
Какие компоненты продукта архивации и восстановления SQL Server наиболее важны? «Я обращаю внимание на возможность интерактивной архивации, восстановления таблицы или группы файлов и архивации полнотекстовых каталогов, — говорит Майкл Оти, технический директор SQL Server Magazine. — Также полезны функции архивации объектов FileStream, сжатия и шифрования данных и интерфейс командной строки T-SQL».
Кэмпбелл настороженно относится к решениям, для которых требуется устанавливать многочисленные программы. «Я не доверяю программам, развертываемым сторонними поставщиками на компьютерах для активизации новых компонентов и функциональности, — объясняет Кэмпбелл. — В идеале настройка целевого сервера для стороннего продукта архивации должна заключаться в добавлении пары новых хранимых процедур в главную базу данных и регистрации на компьютере пары файлов dll. Все эти операции должны выполняться очень легко из командной консоли, поставляемой с решением архивации».
Важность планирования архивации
По мнению Кэмпбелла, важно помнить, что архивные копии, которые не проходят регулярных проверок, могут оказаться бесполезными: «Многим приходилось работать в компаниях, в которых происходила авария сервера или другого критического элемента, и ИТ-специалисты выглядели очень глупо, так как архивные копии оказывались испорченными. Кроме того, я всегда отмечаю, что руководители обычно знают о программе архивации лишь то, что она должна защитить их от аварий, поэтому забыть о регулярном тестировании архивных копий и моделировании процедуры восстановления — непростительная оплошность». Иными словами, самое неудачное время учиться восстанавливать базу данных (с использованием собственных архивных копий SQL Server или сторонних программ) — после отказа базы данных в отделе продаж, когда 300 человек ждут ее восстановления.