Оригинал данной статьи находится тут.
Продолжая тему развёртывания Service Pack 1 (SP1) для линейки продуктов Microsoft System Center (SC) 2012, в этой заметке опишу опыт обновления Virtual Machine Manager (VMM).
Выполним обновление сервера VMM до уровня SP1, при этом также обновим операционную систему сервера до Windows Server 2012 Standard а БД перенесём на SQL Server 2012 Standard.
Сразу отмечу, что в моём примере не используются хосты виртуализации VMware и не используются механизмы Performance and Resource Optimization (PRO). В случае использование этих вещей перед обновлением стоит ознакомится с дополнительными подготовительными процедурами согласно Planning Considerations for Upgrading to VMM in System Center 2012 SP1
С системными требованиями для развёртывания VMM можно ознакомится в документе System Requirements for System Center 2012 – Virtual Machine Manager. При этом мы можем обнаружить, что среди поддерживаемых ОС для серверной части VMM есть только Windows Server 2012 (Full/Server Core installation) в редакциях Standard/Datacenter, поэтому, в силу того, что у нас на момент обновления используется Windows Server 2008 R2, мы фактически будем вынуждены выполнить переустановку ОС на поддерживаемую версию – Windows Server 2012.
После установки ОС для экземпляра БД VMM мы развернём SQL Server 2012 Standard Service Pack 1.
В нашем случае на одном сервере будут развернуты компоненты VMM:
– VMM Management Server
– VMM Console
– VMM Database
– VMM Library Server
Ранее мы использовали функционал Self-Service Portal, но начиная с версии SP1 этот функционал из VMM убрали. Грустно конечно, но не смертельно, так как при необходимости в качестве альтернативного решения предлагается использовать сервер App Controller. Но этот продукт в этой заметке мы затрагивать не будем.
Весь процесс будет состоять последовательности действий:
1. Удаляем VMM с сохранением БД VirtualManagerDB
2. Переустанавливаем ОС на Windows Server 2012
3. Устанавливаем SQL Server 2012
4. Восстанавливаем БД VirtualManagerDB в SQL Server
5. Устанавливаем VMM 2012 SP1 в режиме восстановления БД
6.Обновляем агентов VMM
1. Удаляем VMM с сохранением БД VirtualManagerDB
Для начала, на текущем сервере VMM мы должны убедиться в том, что отсутствуют выполняющиеся задачи в рабочей области Задания, после чего надо выполнить резервную копию базы данных VMM. Сделать это можно разными способами, но предпочтительный – с помощью консоли VMM (Параметры > Резервное копирование). Укажем каталог в который будет сохранена резервная копия и запустим процедуру.
Отследить состояние задачи резервного копирования можно в рабочей области Задания. Копируем получившийся файл резервной копии вида VirtualManagerDB-02042013-103204.bak в надёжное месторасположение, например в сетевую папку на другом сервере.
Закрываем консоль и через оснастку установки и удаления программ вызываем процедуру удаления VMM. В мастере установки выбираем режим удаления – Remove features
Затем выбираем компоненты VMM которые мы хотим удалить – отмечаем все.
На следующем шаге выбираем режим сохранения БД – Retain database.
Дожидаемся окончания процесса удаления.
На самом деле, в нашем случае не имеет значения режим удаления VMM, так как мы уже сделали предварительно копию БД, а это по сути и есть всё, что нам нужно для возможности восстановления VMM после переустановки ОС.
2. Переустанавливаем ОС на Windows Server 2012
Переустанавливаем ОС на нашем сервере на Windows Server 2012 Standard, при этом для установленной системы присваиваем тоже имя сервера что было ранее.
Устанавливаем все доступные обновления с WSUS
Включаем в группу локальных Администраторов доменные сервисные учетные записи, от имени которых будут работать службы SQL Server и VMM. В нашем случае это s-SCVMMDB и s-SCVMMSvc
В дальнейшем для установки SQL Server 2012 на наш сервер нам потребуется наличие компонент .NET Framework 3.5. Включаем их с помощью PowerShell:
Import-ModuleServerManager
Add-WindowsFeature NET-Framework-Core -Restart -Source:\\FILESERVER\OSInstallers\WinSrv2012RTM\sources\sxs
3. Устанавливаем SQL Server 2012
О системных требованиях, предъявляемых к БД SC 2012 SP1 VMM, читаем в документе System Requirements: VMM Database
В процессе установки SQL Server выбираем компоненты. Необходимый минимум:
- Database Engine Services
- Management Tools – Complete
Имя экземпляра SQL Server можно оставить по умолчанию – MSSQLSERVER
Для запуска служб SQL Server Database Engine и SQL Server Agent используем ранее созданную доменную учетную запись (которую мы включили в группу локальных Администраторов) – s-SCVMMDB. Режим запуска службы SQL Server Agent – Automatic
Порядок сортировки Collation устанавливаемого экземпляра SQL Server должен быть регистро-независимым (case-insensitive). В нашим примере выбран SQL_Latin1_General_CP1_CI_AS
Режим аутентификации – Windows authentication mode. В группу администраторов SQL Server добавляем локальную группу Администраторовсервера
При необходимости изменяем пути к расположению файлов БД, например можно разместить файлы системной БД tempdbна отдельном логическом диске.
Дожидаемся успешного окончания процесса установки выбранных компонент SQL Server
Устанавливаем обновления доступные на WSUS, в том числе Service Pack 1 для SQL Server
Отдельно устанавливаем доступное на данный момент кумулятивное обновления KB2790947 – Cumulative update package 2 for SQL Server 2012 Service Pack 1
В Windows Firewall создаем правила разрешающие входящие подключения к ресурсам SQL Server:
netsh advfirewall firewall add rule name = “SQL Server Default Port” dir = in protocol = tcp action = allow localport = 1433
4. Восстанавливаем БД VirtualManagerDB в SQL Server
Восстанавливаем в установленный SQL Server 2012 из резервной копии БД VirtualManagerDB. В нашем случае файлы БД должны быть расположены следующим образом:
D:\SQLData\VirtualManagerDB.mdf
D:\SQLData\VirtualManagerDB_log.ldf
Соответственно команда восстановления будет следующей:
Sqlcmd -Q “RESTORE DATABASE [VirtualManagerDB] FROM DISK = N’D:\VMM2012_RTM_DB_BACKUP\VirtualManagerDB-02042013-103204.bak’ WITH FILE = 1, MOVE N’VirtualManagerDB’ TO N’D:\SQLData\VirtualManagerDB.mdf’, MOVE N’VirtualManagerDB_log’ TO N’D:\SQLData\VirtualManagerDB_log.ldf’, NOUNLOAD”
Опционально при желании можно переопределить значения Initial Size для файлов служебной БД tempdb:
Sqlcmd -Q “ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N’tempdev’, SIZE = 102400KB ); ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N’templog’, SIZE = 51200KB )”
В силу того что в нашем примере SQL Server и VMM выполняются на одном сервере, для того чтобы экземпляр SQL Server не отобрал под себя все ресурсы, -настроим ему ограничение по использованию оперативной памяти.
Sqlcmd -Q “EXEC sys.sp_configure N’show advanced options’, N’1′ RECONFIGURE WITH OVERRIDE; EXEC sys.sp_configure N’min server memory (MB)’, N’2048′; EXEC sys.sp_configure N’max server memory (MB)’, N’8192′; RECONFIGURE WITH OVERRIDE; EXEC sys.sp_configure N’show advanced options’, N’0′ RECONFIGURE WITH OVERRIDE”
Или же можно изменить ограничение с помощью графического интерфейса в SQL Server Management Studioоткрыв свойства экземпляра SQL Server
5. Устанавливаем VMM 2012 SP1 в режиме восстановления БД
Перед установкой VMM выполним требования к предварительной установке ПО:
- Windows PowerShell 3.0(уже включено в Windows Server 2012)
- WinRM(уже включено в Windows Server 2012 и по умолчанию служба Windows Remote Management (WS-Management) настроена в режиме автоматического запуска).
- Microsoft .NET Framework 4 или 4.5(уже включено в Windows Server 2012)
- Windows Assessment and Deployment Kit (ADK) for Windows 8 (потребуется отдельная установка)
Загружаем Windows ADK и запускаем исполняемый файл adksetup.exe. Нам потребуется загрузить в отдельный каталог полный дистрибутив ADK
В моём случае по окончании процесса загрузки размер этого каталога составил примерно 2,55 GB.
По завершении загрузки снова запускаем adksetup.exeи переходим к установке, где на этапе выбора компонент отмечаем необходимый минимум:
После того как ADK установлен, стоит ещё раз вспомнить о дополнительных требованиях, предъявляемых к серверу VMM:
- Компьютер должен быть членом домена Active Directory
- Имя компьютера не должно содержать последовательность символов “–SCVMM-” и/или быть более 15 символов
- Если VMM разворачивается на виртуальной машине Hyper-V с включенным механизмом Dynamic Memory, значение startup RAM должно быть не менее 2048 Mb
Запускаем процесс установки VMM и выбираем компоненты VMM management server и VMM console
Вводим название организации, Product key, принимаем условия лицензирования и на шаге конфигурации базы данных указываем имя нашего сервера, экземпляр SQL Server и выбираем опцию использования существующей БД (Existing database) – VirtualManagerDB
Мастер установки определит что мы подсовываем ему старую версию БД и предложит выполнить её обновление в процессе установки, с чем мы должны согласиться.
На следующем этапе укажем доменную учетную запись (которую мы ранее включили в группу локальных Администраторов) от имени которой будут запущены службы сервера VMM – s-SCVMMSvc
Включение опции сохранения ключей шифрования VMM в AD в нашем случае неактуально, так как мы не используем отказоустойчивую конфигурацию – кластер VMM
Далее предлагаемые номера портов для коммуникации между компонентами VMM оставляем в значении по умолчанию, если для их изменения нет реальных причин.
Стоит отметить, что на нашем сервере запущена служба Windows Firewall, для которой в процессе установки автоматически будут настроены все необходимые разрешающие правила.
На следующем шаге информацию о создаваемом сетевом каталоге библиотеки VMM (library share) также оставляем без изменений
Внимательно читаем дополнительные предупреждения о режиме обновления и определяем применимы ли они к нам.
Ещё раз проверяем все выбранные настройки и запустив процесс установки дожидаемся его успешного завершения…
Если в процессе установки произошли какие-то ошибки, то для анализа ситуации можно воспользоваться лог-файлами в каталоге
%SYSTEMDRIVE%\ProgramData\VMMLogs
Далее запрашиваем с WSUS последние обновления для компонент VMM – в нашем случае это Update Rollup 1
После установки этих обновлений перезагружаем сервер.
6. Обновляем агентов VMM
При первом запуске консоли VMM указываем FQDN имя сервера и порт, который был определён в процессе установки..
Из личных ощущений могу отметить тот факт что скорость открытия консоли и отклик консоли на действия администратора в обновлённой версии стали на порядок лучше. Отдельно порадовало то, что теперь нет проблемы замерзания консоли из-за попытки получить статус отображаемых групп/пользователей из Lync.
Переходим в рабочую область консоли Fabric (Структура) и запускаем процедуру обновления агентов VMM – Update Agent
Первая попытка обновления будет завершена с ошибкой если на целевых хостах виртуализации не установлен пакет Microsoft Visual C++ 2010 x64 Redistributable – версии 10.0.40219. То есть фактически при первой попытке будет произведена автоматическая установка этого пакета на хост, о чём свидетельствуют события в журнале Application
Log Name: Application
Source: MsiInstaller
Date: 04.02.2013 22:55:51
Event ID: 1038
Task Category: None
Level: Information
Keywords: Classic
User: SYSTEM
Computer: KOM-AD01-VM04.holding.com
Description:
Windows Installer requires a system restart. Product Name: Microsoft Visual C++ 2010 x64 Redistributable – 10.0.40219. Product Version: 10.0.40219. Product Language: 0. Manufacturer: Microsoft Corporation. Type of System Restart: 2. Reason for Restart: 1.
После установки этого пакета нужно перезагрузить хосты виртуализации, и уже после перезагрузки развертывание новой версии агента VMM должно пройти успешно.
О том как автоматизировать процесс обновления отдельно установленных консолей VMM с помощью SCCM 2012 описано в заметке В.Якоба – Развёртывание консоли управления System Center 2012 Virtual Machine Manager SP1 при помощи SC 2012 CM
Дополнительные источники информации:
TechNet Library – Tasks to Perform Before Beginning the Upgrade to VMM in System Center 2012 SP1
TechNet Library – Upgrading to VMM in System Center 2012 SP1
TechNet Library – Installing VMM from a Command Prompt