In-Place Upgrade SC VMM 2012 R2 to SC VMM 2016

Опять я и опять про непривычное.

Есть задачка обновить инсталляцию SC VMM до новой версии. Связано такое пожелание с требованиями программы MPN (Microsoft Partner Network), которая вроде как обязывает партнеров использовать самые последние версии ПО, поставляемого по партнерской программе (читай «бесплатно») и с тем, что как системный интегратор, пусть даже карманный и все такое, мы должны протестировать продукты на себе, как Илья Ильич Мечников, и только потом предлагать их заказчику(-ам). Для того, чтобы текущая инсталляция SC VMM поддерживала в качестве гостевых ОС новый Windows Server 2016, достаточно установить Hotfix 1 for UR 11 for SC VMM 2012 R2. Создать и запустить машину с Windows Server 2016 можно даже без этого хотфикса, она заведется и будет работать, но вот создать на ее основе шаблон не получится, потому что VMM просто не понимает, какая ОС установлена в качестве гостевой. Это все лирика, а я буду обновлять SC VMM 2012 R2 в своей лабе для того, чтобы отловить все большие и мелкие косяки, которые могут выплыть в процессе обновления продуктивных серверов. Сервера, если быть точным J.

Сразу оговорюсь: как сказал «хороший человек» (теперь этот товарищ имеет собственный codename), во-первых, технически это не in-place upgrade, т.к. установка продукта технически производится не поверх существующего, во-вторых, весь этот пост можно отнести к Kumar-style, т.е. бесконечные Next-Next-Finish от индийских коллег, пересказывающих технеты с картинками. Соглашусь, пожалуй. Но вот по второму пункту есть нюансы… Я пытался найти руководство, как обновить сервер SC VMM до новой версии, в котором все разжевывалось бы для таких лохов, как я. Но не нашел. Почти везде встречаю три строчки текста:

— Удалите VMM 2012 R2 с опцией retain database

— Установите VMM 2016 обратно, подцепив базу

— Наслаждайтесь сервисом

Как-то вот оно все вроде бы и просто, а вроде бы и нет… Поэтому родился этот пост.

Итак, что мы имеем?

Имеем мы один сервер VMM Server 2012 R2, на нем же установлен SQL Server 2012 Standard, и все это на Windows Server 2012 R2 Standard.

Пруфпикчи вот:

Смотрим на системные требования для SC VMM 2016 и видим:

— Windows Server 2016

— SQL Server 2014 Enterprise

— ADK for Windows 10

Насчет требования Enterprise-редакции для SC VMM я малость засомневался, спросил у одного знакомого MVP Datacenter and Cloud, на что тот мне рассказал душераздирающую историю о том, что в одном из Technical Preview у них VMM по какой-то причине никак не хотел дружить с SQL Server Standard, но при этом замечательно дружил с Enterprise, то Product Team впихнул в Release Notes требование Enterprise, а с выходом RTM версии VMM 2016, заменить это требование просто забыли. И побожился, что «Усе будет у порядке, шеф!» даже с редакцией Standard.

В общем простые на вид рекомендации «Кумаров» осложняются следующими вопросами:

— Как обновить SQL Server 2012 до SQL Server 2014?

— Как обновить OS с Windows Server 2012 R2 до Windows Server 2016?

— Когда удалять SC VMM 2012 R2?

— Подцепит ли SC VMM 2016 старую базу? (у меня был жуткий опыт переустановки VMM 2012 R2, когда при попытке зацепить базу, обновленную до UR8 установщиком от RTM я получал большой и смачный кукиш на весь экран, просто я тогда не знал кое-чего)

— И не поломается ли все это к хренам собачьим в процессе?

В итоге, создавая Checkpoint после каждого шага я начал эксперименты. Результат здесь J

Этап 1. Обновление SQL Server 2012 R2 до SQL Server 2014.

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

Потом просто втыкаем дистрибутив SQL Server 2014 и запускаем установщик.

В установщике нам нужен раздел Installation и опция Upgrade from SQL Server 2005, 2008, 2008 R2 or 2012.

Стартует проверка на готовность к обновлению и если все хорошо (а у меня за две попытки все было хорошо) нам предлагают выбрать Instance для обновления. Дело в том, что данная инсталляция самая примитивная, All-in-one, и кроме SQL Server 2012 Standard там еще есть SQL Server Express, который ставится вместе с Windows Assessment and Deployment Kit (он необходим при установке любой версии VMM и был установлен и обновлен до версии Windows 10, о чем я писал недавно). Нам нужно выбрать правильный экземпляр для обновления.

Установщик посмотрит на все это дело, и предложит выбрать Server Features, которые вы хотите обновить. Закономерно, что выбрать вы сможете только из тех, что уже установлены.

На этом, собственно и все. Дальше зажимаете посильнее кнопку Next и кнопку Upgrade в самом конце. Ну и терпеливо ждете окончания обновления. Все должно пройти без ошибок, у меня так прошло два раза подряд J Ну и траблшутинг обновления SQL Server за рамками этой статьи и моего понимания.

После окончания процесса обновления забытая мною в открытом состоянии консоль SC VMM 2012 R2 автоматически переподключилась, что послужило лишним признаком того, что все прошло хорошо.

Этап 2. Удаление SC VMM 2012 R2.

Почему я делаю это ДО обновления OS? Потому что не уверен, что будет все хорошо с Compatibility и хочу исключить лишнее звено. А так как SC VMM нам все равно надо удалять, какая разница, когда это делать.

Что нужно сделать первым делом ПОСЛЕ обновления SQL Server? Опять сделать резервную копию. Все это для того, что если что-то вдруг пойдет не так, мы смогли бы восстановить базу уже на новом SQL Server 2014 минуя этап его удаления. У нас же после окончания этапа 1 все работает, помним, да?

Заходим в панель управления и выбираем удаление SC VMM 2012 R2

Выбираем Remove Features и отмечаем все без исключения компоненты. А их там всего два: Management Server и Administrative Console.

Установщик будет думать, потом выдаст следующий экран, в котором находится самая главная на данном этапе опция: Retain Database (или оставить в покое текущую базу). Эта опция выбрана по умолчанию и не вздумайте переключить ее на что-то другое, иначе весь смысл теряется.

И опять же на этом все. SC VMM удаляется, база остается.

Этап 3. Обновление Windows Server 2012 R2 до Windows Server 2016.

Ничего супер-пупер-страшного в этом этапе на самом деле нет.

Втыкаем дистрибутив Windows Server 2016 и стартуем установщик прямо из сеанса в Windows Server 2012 R2. По умолчанию вам предложат проверить наличие обновлений (можно и не проверять. На данном этапе все равно ничего не находит). Обновлений файлов установки, а не самой Windows Server 2016, заметьте. А вот дальше опять важный момент: выбор типа установки. Вы можете выбрать два варианта: обновить с сохранением данных и ПО, или ничего не сохранять и просто накатить ОС заново, удалив все. Нам интересен, по очевидным причинам, первый вариант. Его и выбираем.

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

Предупреждение №1. Не рекомендуется обновлять операционную систему, лучше поставить ее заново бла-бла-бла. Лучше всего на новый сервер. И на новой работе. Шутка юмора. В общем ребята вывесили дисклеймер, что за работу приложений после обновления они ответственности не несут. Ну не несут и ладно, жмем Confirm.

Предупреждение №2. Установщик не понимает, сможет ли он обновить компоненты интеграции Hyper-V (сервер виртуальный, и установщик увидел это). А нам и не надо. Жмем Confirm.

После нажатия Confirm на всех предупрежениях кнопка Refresh пропадет и появится кнопка Next. Жмите и будет вам счастье.

Процесс обновления ОС – самый долгий этап всей нашей с вами котовасии.

По окончании обновления я залогинился в систему (думаю говорить о том, что система с тем же именем осталась в том же домене и зашел я с той же доменной учетной записью излишне, но уже поздно, сказал) и увидел, что несколько сервисов не запустились. И среди них вожделенный SQL Server.

Можно было бы запустить их вручную, но не спешите этого делать. Если чуть-чуть подождать, то в разделе Manageability в Server manager появится уведомление о том, что сервер хочет еще одной перезагрузки.

На этом обновление операционной системы можно считать законченным.

Этап 4. Установка SC VMM 2016.

И тут я хочу передать привет разработчикам и тем, кто выкладывает дистрибутивы ПО в библитеку MSDN. Дело в том, что скачав образ (ISO) нового SC VMM 2016 вы получили не дистрибутив ПО в привычном смысле, а тупой самораспаквывающийся архив. И запустить установку с диска у вас не получится. По умолчанию, при запуске единственного файла SC2016_SCVMM.exe запускается нечто, именующее себя System Center 2016 Virtual Machine Manager Setup Wizard, на самом деле таковым не являющееся. Это обычный распаковщик. По умолчанию он предлагает «установить» SC VMM 2016 в папку System Center 2016 Virtual Machine Manager на том же диске, откуда запускается. А т.к. это DVD, то он в Read-only. Если этого не заметить и жать Next-Next-Finish до посинения, то получите предупреждение о том, что на диске недостаточно места

Нажмите No и смените расположение целевой папки на что-то, расположенное на локальных дисках. После распаковки этот самый «Setup Wizard» выдаст успокоительное оповещение, что все сделано. Но ничегошеньки еще не сделано и это только начало.

Перейдите в каталог, указанный «Setup Wizard’у» в качестве расположения извлеченных файлов и запустите Setup.exe. Вот сейчас и начнется самое интересное…

Откроется уже привычный Splash-мастер, в котором надо будет выбрать опцию Install

Буквально на самом старте мастер уведомит вас о том, что дело телеметрии в новых продуктах цветет и пахнет, и теперь она включена по умолчанию. Т.е. Usage Reports отправляются в Microsoft (без каких-либо реально приватных данных, к счастью, не устану это повторять. Сомневающиеся могут про это почитать отдельно). Можно отключить, да.

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

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

Далее вам предложат указать учетную запись, от имени которой будет работать SCVMMService и определиться наконец с хранением криптографических ключей для защиты sensitive data (см. вчерашний пост). Напомню, что для инсталляции All-in-one вам совершенно незачем хранить ключи где-то кроме локальной машины, хотя если вы когда-либо соберетесь сделать вашу инсталляцию высокодоступной – это может преподнести сюрпризов (ниже я опишу, почему), но я совершил смертный грех, и переназначил место хранения в контейнер VMMDKM в Active Directory. Смертным грехом это является потому, что нарушает чистоту эксперимента, но вы можете оставить все, как было.

После анализа базы мастер выдаст Compatibility Report, в котором расскажет о теоретически возможных проблемах. Почитайте, интересно. У меня там получилось три пункта:

  • Если я поставлю VMM не на ту же машину, где он был, и у меня не было настроено хранение ключей шифрования в Active Directory, то я потеряю доступ к sensitive data. Ссылка там, кстати, кривая и ведет на Getting Started page раздела, посвященного SC VMM 2016 в TechNet Library. Правильная ссылка примерно вот такая: https://technet.microsoft.com/en-us/library/dn469611(v=sc.12).aspx. Хоть она актуальна для предыдущей версии SC VMM, принципиально там ничего не изменилось.
  • Новый SC VMM не поддерживает VMM Library Servers на базе Windows Server 2003. Ссылка ведет на статью про SC VMM 2012 R2. Стоит почитать аналог для новой версии.

  • После успешного обновления необходимо будет проделать ряд задач, связанных с переконфигурацией некоторых компонентов. Ссылка опять же ведет на старую статью. Более актуальная версия вот тут (в разделе Post-upgrade tasks).

Ну и последнее, что остается – выбрать расположение библиотеки VMM. По умолчанию предлагается существующее. Его и выбираем.

Зажимаем Next до самого Finish и наслаждаемся процессом.

Окончание установки выглядит вот так:

Как видно на скриншоте, не все у меня сложилось так, как надо. А ругается мастер на то, что ему не удалось зарегистрировать необходимые SPN в Active Directory. И предлагает шаги по устранению этой досадной неприятности (в первый раз у меня такого не было, т.к. я не выбирал DKM для хранения ключей, сейчас появилось. Говорю же – смертный грех – менять условия эксперимента на лету. Не будьте таким, как я J).

«The Service Principal Name (SPN) could not be registered in Active Directory Domain Services (AD DS) for the VMM management server.

1) Use setspn.exe to create SPN for vmmserver using following command «C:\WINDOWS\system32\setspn.exe -S SCVMM/lab-vmm.DEALSET.RU DEALSET\vmmsvc».

2) Add SPN values to following registry key «Software\Microsoft\Microsoft System Center Virtual Machine Manager Server\Setup\VmmServicePrincipalNames».

3) Run «C:\Program Files\Microsoft System Center 2016\Virtual Machine Manager\setup\ConfigureSCPTool.exe -install» to configure SCP.

If SPN and SCP are not registered, VMM consoles on other computers will not be able to connect to this VMM management server and deploying a Hyper-V host to a bare-metal computer will not work.»

Из трех предложенных шагов пришлось выполнить два последних, т.к. SPN все-таки была на месте. Т.е. назначить значение VmmServicePrincipalName в реестре (оно было пустым) и запустить ConfigureSCPTool.exe – install.

Собственно, на этом обновление завершено. Закрыв последнюю страницу мастера установки вам откроется бесполезная страничка про Servicing Windows 10 и запустится собственно консоль уже нового SC VMM 2016.

Ведущие собаководы предлагают СРАЗУ же установить UR1 for SC VMM 2016, т.к. с ним продукт становится гораздо лучше. Ну а мне пришлось еще и перезагрузиться, чтобы выровнялись все эти дела с SPN и DKM.

UPDATE: дела эти не выровнялись, хотя все, что должно было создаться в контейнере VMMDKM создалось (значит VMM понимает, куда ему надо лезть и у него есть права на это, что обсуждалось вчера), но хосты так и висели в состоянии Host not responding до тех пор, пока я не сменил пароль для RunAs Account Hyper-V Host Administrator, который лег в базу зашифрованный уже новым ключом из контейнера в Active Directory. Еще раз подтвердилось мнение о том, что поведение системы в этом отношении штатными методами не изменить и даже переустановка не спасет. И если у вас не один кастомный RunAs Account как у меня в лабе, а пара десятков – пароли придется менять им всем. И еще раз обращаю внимание на то, что так делать не надо J

Этап 5. Post-upgrade tasks.

Ну и под занавес нужно выполнить некоторые Post-upgrade tasks, которые описаны в документации и выполнение этих пунктов проблем не вызывает.

  • Обновить агентов на хостах виртуализации
  • Обновить агентов на серверах, хранящих библиотеку VMM

  • Обновить Azure Site Recovery

  • Обновить шаблоны виртуальных машин (убедиться, что в свойствах шаблона корректно назначен диск, содержащий ОС)

  • Если были какие-то пакеты драйверов в библиотеке VMM – их тоже надо обновить.

  • На этом все, обновление завершено. Спасибо за внимание J

    Реклама
    In-Place Upgrade SC VMM 2012 R2 to SC VMM 2016

    In-Place Upgrade SC VMM 2012 R2 to SC VMM 2016: Один комментарий

    1. BTW, all that does is put the library in a place that is accessible by your path. You can also simply add that folder to your path as an alrttnaeive – no real need to copy it to another location.

    Добавить комментарий

    Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

    Логотип WordPress.com

    Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

    Google+ photo

    Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

    Фотография Twitter

    Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

    Фотография Facebook

    Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

    w

    Connecting to %s