Hyper-V Server 2012\2016\2019 установка и настройка

Главная Форумы SOFTWARE System settings Hyper-V Server 2012\2016\2019 установка и настройка

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Автор
    Сообщения
  • #187
    E-tec
    Хранитель

      Первым делом следует скачать дистрибутив операционной системы(ОС), т.к. ОС условно бесплатная, ее можно совершенно спокойна скачать с сайта microsoft, скачивать и устанавливать ОС нужно на английском языке, т.к. система не понимает русского и большая часть команд могут не работать, но проблемы в этом не вижу в самой ОС на англиском языке мы увидим только первоначальную настройку сервера! Для удаленного управления Hyper-V Server можно использовать ОС Windows Server 2012 R2 Standard или Datacenter, а также Windows 8\8.1\10.

      В случае использования Windows Server 2012 R2 Standard или Datacenter необходимо установить консоль Hyper-V Manager. Это можно сделать в Server Manager или при помощи командлета PowerShell Install-WindowsFeature -Name ‘RSAT-Hyper-V-Tools’

      В Windows 8\8.1\10 для установки Hyper-V Manager можно использовать средство настройки компонентов Windows.

      Для остальных версий Windows необходимо установить Remote Server Administration Tools (RSAT), которую также можно скачать на официальном сайте Microsoft.

      Прежде, чем перейти непосредственно к настройке серверов, хочу подробнее остановиться на схеме сети, которая будет использоваться в нашей демонстрации.

      В моем случае я буду использовать наипростейший вариант — локальная подсеть 192.168.1.0/24 с двумя машинами: Hyper-V Server 2012 R2 с IP-адресом 192.168.1.5 в качестве хоста виртуализации и Windows Server 2012 R2 Standard R2 с IP 192.168.1.6 в качестве хоста управления. Обе машины не являются участниками домена и входят в рабочую группу TESTLAB.

      Итак, после завершения вполне себе интуитивной установки Hyper-V Server 2012 R2 перед нами предстает рабочий стол с двумя окнами, стандартная командная строка cmd.exe и окно скрипта sconfig.cmd:

      Данный скрипт позволяет произвести первоначальную настройку сервера:
      – сменить имя сервера
      – сменить имя рабочей группы или ввести сервер в домен
      – добавить локального администратора
      – включить удаленный доступ к серверу, что позволить управлять им с помощью Server Manager, консолей MMC, PowerShell, подключаться по RDP, проверить доступность с помощью pingили tracert
      – настроить Windows Update и устанавливать обновления
      – настроить сетевые карты сервера
      – настроить время на сервере

      Также настройку времени на сервере можно выполнить с помощью команды controltimedate.cpl, а настройку региональных параметров — с помощью команды control intl.cpl. При этом будут запущены привычные консоли Панели Управления.

      АВТОМАТИЧЕСКИЙ ЗАПУСК POWERSHELL ПРИ ВХОДЕ В СЕАНС

      Когда вышла первая версия Hyper-V Server 2008, PowerShell в нем официально не поддерживался, и, единственным способом настройки и получения информации с сервера были утилиты командной строки, такие как net, netsh, wmic, и множество других. Они не обладали единообразным интерфейсом и способом использования, что в итоге увеличивало порог вхождения для администратора и влияло на производительность работы. Но время не стоит на месте и, начиная с Hyper-V Server 2008 R2, Microsoft внедряет поддержку PowerShell, а в Hyper-V Server 2012 PowerShell можно использовать сразу после установки системы. Более того, в Hyper-V Server 2012 включен модуль PowerShell для взаимодействия с Hyper-V, а в Hyper-V Server 2012 R2 количество командлетов для работы с Hyper-V превысило значение 170. Точное значение можно посмотреть с помощью
      Get-Command -ModuleHyper-V | Measure-Object

      Зайдем в оболочку PowerShell и запустим командлет New-ItemProperty, который создаст новый ключ в реестре HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\run.

      New-ItemProperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\run -Name PowerShell -Value "cmd /c start /max C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -noExit" -Type string

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

      НАСТРОЙКА СЕТЕВЫХ АДАПТЕРОВ
      Если сетевые адаптеры до этого не были настроены с помощью sconfig.cmd, сделаем это с помощью командлетов PowerShell.

      Смотрим текущую конфигурацию IP на сетевых интерфейсах. В моем случае адресация назначена службой APIPA, так как в сети нет DHCP сервера.

      Get-NetIPConfiguration

      Назначаем статическую адресацию, маску сети, шлюз по умолчанию и адреса DNS серверов. InterfaceIndex сетевого адаптера берем из вывода предыдущего командлета.

      New-NetIPAddress -InterfaceIndex 13 -IPAddress 192.168.1.5 -DefaultGateway 192.168.1.1 -PrefixLength 24

      Set-DnsClientServerAddress -InterfaceIndex 13 -ServerAddresses 192.168.1.2,192.168.1.3

      Если использование IPv6 на сетевом интерфейсе пока не планируется, имеет смысл отключить его на интерфейсе для уменьшения «attacksurface».

      Проверяем текущую настройку IPv6 на интерфейсе. Имя интерфейса берем из вывода командлетов Get-NetAdapter или Get-NetIPConfiguration.

      Get-NetAdapterBinding -InterfaceDescription "Microsoft Hyper-V Network Adapter" | Where-Object -Property DisplayName -Match IPv6 | Format-Table –AutoSize

      Отключить поддержку IPv6 на сетевом адаптере можно командлетом Disable-NetAdapterBinding. Данное действие будет аналогично снятию галки «Internet Protocol Version 6 (TCP/IPv6)» в настройках адаптера в графическом интерфейсе Windows.

      Disable-NetAdapterBinding -InterfaceDescription "Microsoft Hyper-V Network Adapter" -ComponentID ms_tcpip6

      Настройка межсетевого экрана (Advanced Firewall)

      С внедрением PowerShell в Hyper-V Server появился удобный способ управления правилами межсетевого экрана, взамен устаревающего netsh. Просмотреть список комадлетов можно с помощью Get-Command.

      Get-Command -Noun *Firewall* -Module NetSecurity

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

      Get-NetFirewallRule | Where-Object -Property DisplayName -Match "firewall" | Format-List -Property Name, DisplayName, Enabled

      Включаем оба правила.

      Enable-NetFirewallRule -Name RemoteFwAdmin-In-TCP,RemoteFwAdmin-RPCSS-In-TCP

      Теперь можно попробовать подключиться к оснастке MMC управления межсетевым экраном с хоста управления.

      ВЗАИМОДЕЙСТВИЕ С SERVER MANAGER

      Если гипервизор и хост управления не являются частью домена, а находятся в рабочей группе, как в нашем случае, то при попытке добавить сервер Hyper-V в Server Manager на удаленном хосте возникнет ошибка согласования WinRM.

      Решается проблема довольно просто – достаточно добавить на Hyper-V Server в доверенные узлы WinRM на хосте управления и обновить текущее состояние в ServerManager.

      Set-Item wsman:\localhost\Client\TrustedHosts HYPER-V01 -Concatenate –Force

      HYPER-V01 — имя вашего Hyper-v сервера

      Создание дискового хранилища для виртуальных машин

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

      Get-Command -Module Storage

      Get-Command -Verb *Get* -Module Storage

      Просмотрим список физических дисков на сервере.

      Get-Disk

      Создаем новый раздел на диске максимально возможного размера, назначаем букву D. Используем id из Get-Disk. После этого форматируем раздел в NTFS и указываем его метку.

      New-Partition -DiskNumber 0 -DriveLetter D –UseMaximumSize

      Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "VMStore"

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

      Enable-NetFirewallRule RVM-VDS-In-TCP,RVM-VDSLDR-In-TCP,RVM-RPCSS-In-TCP

      Как мы видим, наш только что созданный диск прекрасно отображается в Disk Management.

      Создадим папку на нашем разделе, где будем хранить настройки и файлы дисков виртуальных машин. Командлет New-Item позволяет создавать вложенные пути, так что нет необходимости запускать его два раза для каждой папки.

      New-Item -Path "D:\Hyper-V\Virtual Hard Disks" -Type Directory

      Создадим папки D:\Distrib и D:\ImportedVM, которые будем соответственно использовать для хранения дистрибутивов ОС и импортированных ВМ с других хостов виртуализации.

      New-Item -Path D:\Distrib -ItemType Directory

      New-Item -Path D:\ImportedVM -ItemType Directory

      Для создания шары используем командлет New-SmbShare, с помощью которого дадим полный доступ по сети для группы локальных администраторов сервера.

      New-SmbShare -Path D:\Distrib -Name Distrib -Description "OS Distributives" -FullAccess "BUILTIN\Administrators"

      New-SmbShare -Path D:\ImportedVM -Name ImportedVM -Description "Imported VMs" -FullAccess "BUILTIN\Administrators"

      Проверяем с помощью PowerShell и с помощью ServerManager с хоста управления.

      Get-SmbShare -Name Distrib,ImportedVM | Format-List

      Get-SmbShareAccess -Name Distrib,ImportedVM | Format-List

      Общий список командлетов, относящихся к SMB (ServerMessageBlock), как обычно можно получить с помощью командлета Get-Command.

      Get-Command -ModuleSmbShare

      В заключение этой темы добавлю только то, что если на сервере не используется физический или логический RAID, то для повышения производительности и надежности работы с хранилищем ВМ целесообразно использование технологии Storage Pools (к примеру, такие командлеты, как New-StoragePool, New-Volume). Более подробнее об использовании Storage Pools совместно с Hyper-V я напишу в одной из будущих статей.

      НАСТРАИВАЕМ ПАРАМЕТРЫ ГИПЕРВИЗОРА

      Приступим к настройке параметров гипервизора. Основные параметры Hyper-V можно получить с помощью командлета Get-VMHost.

      Get-VMHost | Format-List

      Как мы видим из вывода командлета, пути ВМ и виртуальных дисков сейчас размещаются на одном разделе с ОС, что нас не устраивает ни с точки зрения скорости работы, ни с точки зрения надежности. Пропишем пути к созданным в прошлом разделе папкам с помощью командлета Set-VMHost.

      Set-VMHost -VirtualMachinePath D:\Hyper-V -VirtualHardDiskPath 'D:\Hyper-V\Virtual Hard Disks'

      Проверим с помощью PowerShell…

      Get-VMHost | Format-List

      … и с помощью Hyper-V Manager.

      Как я упоминал выше, в Hyper-V Server 2012 R2 возможно использование EnhancedSessionMode для ВМ, что позволит пробросить в ВМ локальные диски, принтеры, звук, использовать буфер обмена и многомониторные конфигурации. Давайте включим его.

      Set-VMHost -EnableEnhancedSessionMode 1

      СОЗДАДИМ ВИРТУАЛЬНЫЙ КОММУТАТОР

      Виртуальный коммутатор Hyper-V (Hyper-V Extensible Switch) предназначен для организации сетевого взаимодействия между различными ВМ, между ВМ и хостом виртуализации, между ВМ и внешней средой. На самом деле у Hyper-V Extensible Switch обширное количество возможностей, много вкусного появилось в версии 2012 R2. Так что сейчас не будем углубляться в эту тему, и создадим простейший External Switch, который привязывается к сетевой карте Hyper-V Server, и организует взаимодействие ВМ с физической сетью.

      Для начала проверим поддержку SR-IOV (Single-Root Input/Output (I/O) Virtualization).

      Get-VMHost | Select-Object -Property "Iov*" | Format-List

      или

      Get-NetAdapterSriov

      В моем случае поддержки SR-IOV нет. Это связано с тем, что я немного схитрил, и в данной демонстрации у меня Hyper-V сервер запущен не на живом железе, а в виртуальной среде.

      Получим список подсоединенных сетевых адаптеров

      Get-NetAdapter | Where-Object -PropertyStatus -eqUp

      Привязываем виртуальный свитч к сетевому адаптеру и при наличии SR-IOV включим его поддержку.

      Внимание: Включить или отключить поддержку SR-IOV после создания свитча будет невозможно, для изменения этого параметра необходимо будет пересоздавать свитч.

      New-VMSwitch -Name "Extenal_network" -NetAdapterName "Ethernet 2" -EnableIov 1

      В моем случае Hyper-V выдает ошибку, опять же связанную с тем, что гипервизор сам запущен в виртуальной среде. На живом железе командлет создаст External Switch с именем «External_network» и привяжет его к сетевому адаптеру Ethernet 2. Виртуальный свитч также появится в списке сетевых адаптеров и на него будет перепривязаны все сетевые параметры физического адаптера Ethernet 2

      Проверить можно с помощью командлетов

      Get-VMSwitch и Get-NetIPConfiguration –Detailed

      На этом этапе первоначальная настройка Hyper-V Server 2012 R2 закончена, и все готово для создания нашей первой виртуальной машины. Но об этом мы поговорим в следующей статье, использовать будем, естественно, PowerShell.

      #188
      E-tec
      Хранитель

        Ошибки в процессе установки и настройки Hyper-V Server 2012 и способы их устранения.

        В.: На завершающей стадии установки Hyper-V Server 2012, а точнее после последней перезагрузки, система не загружается — чёрный экран, отсутствие реакции на нажатие клавиш, помогает только hard reset, возможна загрузка в Safe mode.
        П.: ОС не поддерживает или не совместима с драйверами USB 3.0.
        Р.: Отключите в BIOS USB 3.0 Controller и все связанные устройства.

        В.: Не отображается сетевой адаптер в Hyper-V Server Configuration console (п.8).
        П.: 1) В сетевой адаптер не вставлен кабель;
        2) Неполадки с активным (коммутатор, маршрутизатор и др.) или пассивным (кабели, розетки, патч-панель и др.) сетевым оборудованием .
        Р.: 1) Вставьте кабель;
        2) Проверьте работоспособность сетевого оборудования.

        В.: При попытке выполнить в консоли команду вида netsh advfirewall firewall set rule group=“” new enable=yes появляется сообщение об ошибке «Group cannot be specified with other identification conditions» (Группа не может быть задана вместе с другими условиями идентификации).
        П.: Команды вставлялись в консоль методом copy-paste.
        Р.: Введите команды от руки или просто сотрите и заново напишите кавычки.

        В.: В диспетчере Hyper-V отображается сообщение об ошибке «Access denied. Unable to establish communication between and » (Отказано в доступе. Не удается установить соединение между и).
        П.: Пользователю не предоставлены права на удаленный запуск (remote launch and activation) в DCOM.
        Р.: Все манипуляции производятся на клиентском компьютере:
        1) Запустите оснастку «Component Services» (Службы компонентов) с полными правами администратора. Для этого можно, например, выполнить программу %SystemRoot%\System32\dcomcnfg.exe.
        2) В дереве консоли последовательно разверните узлы «Component Services» (Службы компонентов) и «Computers» (Компьютеры).
        3) В контекстном меню объекта «My Computer» (Мой компьютер) выберите «Properties» (Свойства).
        4) В окне «My Computer Properties» (Свойства моего компьютера) выберите вкладку «COM Security» (Безопасность COM).
        5) В разделе «Access Permissons» (Права доступа) нажмите кнопку «Edit Limits» (Редактировать ограничения).
        6) В диалоговом окне «Access Permissions» (Права доступа) выберите строку НANONYMOUS LOGON» (Анонимный вход) из списка «Group or user names» (Имена пользователей и групп).
        В графе «Allow» (Разрешить) раздела «Permissions for User» (Разрешения для пользователя) выберите «Remote Access» (Удалённый доступ).
        7) Закройте все диалоговые окна кнопкой ОК.

        В.: В диспетчере Hyper-V отображается сообщение об ошибке «Не удается подключиться к службе RPC на удаленном компьютере «xxx.xxx.xxx.xxx». Убедитесь, что служба RPC запущена.».
        П.: 1)В фаерволе не созданы необходимые правила.
        2) В файле hosts не установлено однозначное соответствие между IP компьютера и его сетевым именем.
        Р.: 1) Возможны 2 пути решения проблемы:
        а) Отключить фаервол на клиенте и на сервере (нежелательно).
        б) Создать в фаерволе на клиенте и сервере правила, введя следующие команды:
        Для удаленного управления дисками:
        Netsh advfirewall firewall set rule group=“Remote Volume Management” new enable=yes
        Для удаленного запуска оснастки по управлению фаерволом:
        Netsh advfirewall firewall set rule group=“Windows Firewall Remote Management” new enable=yes
        2)Для однозначной привязки имени сервера и IP-адреса нужно внести изменения в файл hosts. Например:192.168.1.100 HVserver

        В.: В диспетчере Hyper-V отображается сообщение об ошибке «The virtual machine could not be started because the hypervisor is not running.» (Не удается запустить виртуальную машину, поскольку не выполняется низкоуровневая оболочка.).
        П.: Возможны разные причины возникновения данной ошибки:
        1) Несоответствие аппаратного обеспечения хостового компьютера рекомендуемым параметрам.
        2) Неправильно сконфигурировано хранилище BCD для корректного запуска гипервизора.
        3) У вас установлен процессор AMD на платформе «Bulldozer».
        Р.: 1)Проверьте, соответствуют ли характеристики вашего компьютера следующим условиям:
        x64-совместимый микропроцессор Intel или AMD;
        аппаратно обеспечиваемая виртуализация (Intel VT-x или AMD-V(SVM));
        поддержка аппаратного предотвращения выполнения данных (DEP) через XD-разряд Intel или NX-разряд AMD;
        Проверить, поддерживает ли ваш процессор виртуализацию, можно на официальных сайтах Intel и AMD.
        В BIOS также должны быть отключены следующие параметры: 1)Intel VT-d 2)Trusted Execution.
        !!!Внимание!!! После любых манипуляций с BIOS выключайте и включайте компьютер, а не просто перезагружайте.
        2) Выполните в консоли команду:
        bcdedit /set hypervisorlaunchtype auto
        3) Запросите исправление на этой странице.

        В.: При попытке подключиться к виртуальной машине в диспетчере Hyper-V появляется окно с запросом имени пользователя и пароля и следующим сообщением: «Системный администратор запретил использовать сохраненные учетные данные для входа в систему удаленного компьютера , так как его подлинность проверена не полностью. Введите новые учетные данные.»
        П.: Не сохраняются учетные данные при подключении к удаленному компьютеру.
        Р.: Воспользуйтесь решением, предложенной в этой статье. Это решение не относиться непосредственно к Hyper-V, но помогает решить проблему.

        В.: Добавив новый жесткий диск в сервер Microsoft Hyper-V Server 2008 R2, его можно проинициализировать через консоль «Управление дисками» (Disk Management MMC) с удаленного компьютера. Однако при попытке подключения к серверу, консоль сообщает: «RPC сервер не доступен» («RPC Server is unavailable»).

        Р.:Необходимо изменить правила брандмауэра на обоих компьютерах (не только на Hyper-V Server). Для английской версии ОС выполните команду:

        netsh advfirewall firewall set rule group="Remote Volume Management" new enable=yes

        #191
        E-tec
        Хранитель

          UPD

          Ошибка подключение к hyper-v core с удаленного рабочего места выдает ошибку «Сбой подключения к удаленному серверу. Клиенту WinRM не удается обработать запрос»

          Решение проблемы: нужно включить WinRM на хосте управления для этого вводом команду:
          Enable-PSRemoting
          Все настройки произведутся автоматически

          После чего добавляем Hyper-V Server в доверенные узлы WinRM на хосте управления и обновляем текущее состояние в ServerManager.

          #857
          E-tec
          Хранитель

            UPD 22.06.19

            ВНИМАНИЕ! На официальном сайте microsoft появился образ hyper-v core server 2019 рекомендую устанавливать его! На hyper-v core server 2016 нет обновлений с марта 2019 года!

            • Для удобства администрирования после поной настройки hyper-v core server 2016\2019 рекомендую сразу установить Windows Admin Center с сайта microsoft или каталога файлов моего сайта. Утилита решит проблему удаленного управления с windows 7\Linux (мультиплатформенность т.к. работает через браузер) + удобный мониторинг сервера.

            #918
            administrator
            Хранитель

              UPD 22.07.19

              После обновления системы безопасности, при подключении с хоста управления (windows 10 pro) выдается ошибка 0x8009030e:

              Описание: Ошибка возникает при не соответствии учетных записей хоста и сервера, дефолтное имя на сервера Администратор, в 90% случаев на хосте управления используется другая учетная запись, либо пароль.

              Решение: Указать на хосте управления учетную запись сервера, для этого в командную строку вводим:
              cmdkey /add:ИМЯ_ВАШЕГО_СЕРВЕРА /user:Администратор /pass:ПАРОЛЬ_ОТ_УЧЕТНОЙ_ЗАПИСИ_НА_СЕРВЕРЕ

              После чего подключаемся с хоста к серверу

              #1171
              Grigilo
              Участник

                Есть ли еще решение данной проблемы?!

                 

                В.: В диспетчере Hyper-V отображается сообщение об ошибке «Access denied. Unable to establish communication between and » (Отказано в доступе. Не удается установить соединение между и).
                П.: Пользователю не предоставлены права на удаленный запуск (remote launch and activation) в DCOM.
                Р.: Все манипуляции производятся на клиентском компьютере:
                1) Запустите оснастку «Component Services» (Службы компонентов) с полными правами администратора. Для этого можно, например, выполнить программу %SystemRoot%\System32\dcomcnfg.exe.
                2) В дереве консоли последовательно разверните узлы «Component Services» (Службы компонентов) и «Computers» (Компьютеры).
                3) В контекстном меню объекта «My Computer» (Мой компьютер) выберите «Properties» (Свойства).
                4) В окне «My Computer Properties» (Свойства моего компьютера) выберите вкладку «COM Security» (Безопасность COM).
                5) В разделе «Access Permissons» (Права доступа) нажмите кнопку «Edit Limits» (Редактировать ограничения).
                6) В диалоговом окне «Access Permissions» (Права доступа) выберите строку НANONYMOUS LOGON» (Анонимный вход) из списка «Group or user names» (Имена пользователей и групп).
                В графе «Allow» (Разрешить) раздела «Permissions for User» (Разрешения для пользователя) выберите «Remote Access» (Удалённый доступ).
                7) Закройте все диалоговые окна кнопкой ОК.

                #1173
                E-tec
                Хранитель

                  Есть ли еще решение данной проблемы?!

                  1. Я бы остановил firewall hyper-v core и попробовал снова, если доступ будет получен, то проблема в настройке firewall, потом просто по очереди проверял какое правило блокирует соединение (в графическом интерфейсе естественно)

                  2. Возможно нет сопоставления учетных записей, т.е. hyper-v core сервер, должен содержать идентичную учетную запись клиентского ПК, который им будет управлять.

                  Это пока два варианта которые пришли в голову сразу =)

                  #1245
                  E-tec
                  Хранитель

                    UPD 16.03.2020
                    На ms hyper-v server 2016\2019 есть баг на некотором серверном железе, заключается в том, что если отключить IPv6 на сетевых адаптерах консоль sconfig начинает закрываться с ошибкой: «C:\Windows\System32\en-US\sconfig.vbs(726, 21) SWbemObjectEx: Invalid index.», если Вы хотите поменять параметры сетевых интерфейсов. Решение этой проблемы заключается в включение IPv6 обратно, пока это единственное рабочее решение, после которого sconfig у меня сработал нормально. Чтоб включить IPv6 пишем команду в powershell:
                    Enable-NetAdapterBinding -InterfaceDescription "НАЗВАНИЕ ВАШЕГО ИНТЕРФЕЙСА" -ComponentID ms_tcpip6

                  Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
                  • Для ответа в этой теме необходимо авторизоваться.
                  Авторизация
                  *
                  *
                  Регистрация
                  *
                  *
                  *
                  Пароль не введен
                  *
                  Генерация пароля