Майкрософт как всегда, свято соблюдает свои традиции. Несмотря на то, что их операционные системы слывут «системами для домохозяек», но установка и настройка некоторых из них настолько нетривиальна, что далеко не каждая домохозяйка справится с этим непосильным трудом. Возьмем, например, замечательный продукт, так продвигаемый Microsoft в последнее время – Hyper-V Server 2008 R2. Казалось бы, что о виртуализации не писал и не говорил только самый ленивый. В том числе и о виртуализации от Microsoft. Но в очередной раз услышав от своих партнеров вопрос о том, а что же делать с этим голубым экраном с пятнадцатью менюшками и командной строкой, и где же тут создавать виртуальные машины, я поняла, что разговоров было все-таки не достаточно. И разговоров именно о практическом применении. Конечно, поискав в интернете можно найти разнообразные советы то от одного гуру, то от другого. Похоже, что лично мне удалось наступить на все возможные «грабли» при установке и первичной настройке этого чуда от Microsoft. Поэтому мне бы хотелось собрать все полезные советы в одну небольшую статью и описать возможные подводные камни в установке и администрировании виртуальной платформы Hyper-V Server 2008 R2.
Начнем с того, что, не смотря на утверждение, что это самостоятельный продукт, базируется он все же на ядре Windows 2008. Причем, хочу сразу обратить внимание, что это не привычный для нас Windows с «дружественным интерфейсом» а так называемая Core версия, где для истинных любителей непростых путей решения простых задач есть только командная строка. Если ранее не доводилось управлять операционной системой из «повер шелла», придётся немного поломать голову. И учтите, это не линуксовая командная строка. Маны тут не помогут. Так что, не обольщайтесь, и не надейтесь, что поставив Hyper-V Server 2008 R2 вам удастся сходу с ним подружиться.
Ну вот, прокликав все необходимые «Next» мы установили очень даже быстро систему на наше железо. Заходим и видим два окна:
1. Черное с Windows PowerShell — расширяемое средство автоматизации от Microsoft, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев согласно Википедии;
2. Синее – с текстовым меню из 15-ти пунктов.
Собственно с помощью последнего и делаем все первичные настройки. Настроили ip и DNS, обязательно открыли все виды удаленного доступа и управления. Вот, казалось бы и счастье наступило. Но вопрос, а как же тут создавать виртуальные машины пока остается без ответа.
Дело в том, что тут их создавать никак нельзя! Для управления сервером вам потребуется скачать и установить Remote Server Administration Tools (RSAT) для клиентской операционной системы и установить компонент Диспетчер Hyper-V - необходимо выбрать компоненты через установку программ, для управления сервером, т.к. по умолчанию они просто внесутся в список компонентов windows, но не поставятся.
Пытаемся подключиться к нашему серверу и видим ошибку, которая отправляет нас к Администратору, чтобы он выдал нужные права. Вспомнив, что мы и есть тот самый админ, не падаем духом и читаем дальше.
John Howard, который занимает пост Senior Program Manager in the Hyper-V team at Microsoft, написал цикл статей, посвященный раздаче необходимых прав, а в последствии создал замечательную утилиту HVRemote, которая произведет хитроумную настройку сервера и клиента.
Ей мы и воспользуемся. Итак, скачиваем, заходим на сервер по \\server\C$, кладем HVremote.wsf в папку Windows (или в любое другое место, но тогда не забываем указывать полный путь к ней). Запускаем на сервере:
cscript hvremote.wsf /add:domain\account ***,
где domain\account – ваше имя пользователя в домене (или на машине с сервером виртуализации). Скрипт пропишет все необходимые привилегии, в том числе откроет нужные порты на фаерволе. Только одно маленькое но – скрипт замечательно работает на английской версии ОС. На русской будут проблемы с названием групп. Рекомендую в таком случае все политики фаервола менять вручную заменив английские названия групп на соответствующие русские.
Теперь можно запускать Диспетчер Hyper-V и подключаться к нашему серверу, создавать виртуалки и радоваться жизни.
Но тут появляется вторая проблема. Microsoft рекомендует ввести машину с Hyper-V Server 2008 R2 в домен и тогда все вопросы с администрированием будут просты и прозрачны. Но что делать если у нас нет домена???
Нужно будет выполнить следующие шаги:
• Создать на сервере и на клиенте аккаунт с помощью net user
• Дать этому пользователю доступ cscript hvremote.wsf /add:accountname ***
• На клиенте разрешить анонимный доступ к DCOM cscript hvremote.wsf /anondcom:grant, залогиниться под тем же аккаунтом, которому разрешили доступ на сервере, или запустить Диспетчер Hyper-V из под нужного аккаунта, прописать учетные данные для подключения к серверу командой cmdkey /add:servername /user:servername\account /pass, а также создать исключения брандмауэра командой cscript hvremote.wsf /mmc:enable
Кроме того, если клиент или сервер находятся в рабочей группе или они находятся в разных доменах, между которыми нет доверительных отношений, то соединение от сервера до клиента, устанавливаемое для доставки результирующей информации, происходит анонимно. Анонимное соединение завершается неудачно с кодом ошибки 0x80070005 или 0x8007000e до тех пор, пока анонимному соединнеию не будет дано право Remote Access на DCOM клиента. Дать это право можно, выполнив следующие шаги:
1. Нажмите Start, выберите Run, запустите dcomcnfg.exe.
2. В Component Services раскройте Computers, правой кнопкой выберите My Computer и укажите Properties.
3. В My Computer Properties раскройте COM Security.
4. В Launch and Activation Permissions выберите Edit Limits.
5. В окне Access Permissions выберите ANONYMOUS LOGON в списке Group or user names. В колонке Allow в Permissions for User укажите Remote Access и нажмите OK.
Если со скриптом совсем все плохо, то все действия, автоматизированные скриптом можно проделать вручную, как описано в статье
Рекомендую посмотреть этот материал, даже если скрипт отработал без проблем - cпособствует пониманию концепции.
И напоследок хочу порекомендовать замечательную утилиту, которая очень облегчает жизнь администратору серверов в Core редакции - http://coreconfig.codeplex.com/