Установка и настройка Free Windows Hyper-V Server 2019 (2016)
https://winitpro.ru/index.php/2019/08/07/nastrojka-free-windows-hyper-v-server/
После установки необходимо осуществить сетевые настройки.
По-умолчанию в консоли sconfig в пункте 8 предлагается сделать настройки для физической сетевого адаптера. Такой вариант подходит для быстрого получения доступа к установленному серверу, однако в производственной среде управление через одиночный сетевой интерфейс вряд ли можно считать хорошей практикой, поэтому лучше сразу сделать тиминг из 2-х сетевых адаптеров, подключенных к разным коммутаторам. Также это позволит использовать сетевые адаптеры не только для управления, но и для виртуалок, а также выставить Поэтому запускаем консоль powershell и погнали.
План следующий:
1) делаем тиминг
2) создаём виртуальный сетевой коммутатор на интерфейсе тиминга
3) создаём виртуальный сетевой адаптер для управления Hyper-V Server
4) присваиваем сетевые настройки на сетевом адаптере управления
Литература:
https://www.altaro.com/hyper-v/virtual-networking-configuration-best-practices/
http://pyatilistnik.org/nic-teaming-on-windows-server-2019/
Объединение сетевых карт (Teaming)
Посмотреть список физических сетевых адаптеров с мак-адресами (можно также через ipconfig /all):
Get-NetAdapter | FT -auto

Предположим, мы хотим объединить интерфейсы “Ethernet” и “Ethernet 2”.
Если действия будут производиться с интерфейсом, по которому в данный момент идёт удалённое управление сервером, то, прежде чем начинать, нужно подключиться к консоли сервера (iLO или KVM), т.к. в процессе создания тиминга входящие в него интерфейсы потеряют адреса, а свежесозданный тиминг IP-адреса иметь не будет, по умолчанию он будет пытаться получить его по dhcp.
New-NetLbfoTeam -Name Teaming_Mgmt -TeamMembers "Ethernet", "Ethernet 2" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm Dynamic

Удалить или добавить сетевую карту в тиминг:
Add-NetLbfoTeamMember -Team Teaming_Mgmt -Name "Ethernet 2"
Remove-NetLbfoTeamMember -Team Teaming_Mgmt -Name "Ethernet 2"
Создание виртуального сетевого коммутатора (vSwitch)
Создадим виртуальный свитч на менеджмент интерфейсе Teaming_Mgmt:
New-VMSwitch -Name vSwitch-Mgmt -NetAdapterName Teaming_Mgmt
Remove-VMSwitch -Name vSwitchName
Данная команда создаёт виртуальный свитч типа External (можно указать -SwitchType Internal/Private).
Создание виртуального сетевого адаптера (vNIC)
Add-VMNetworkAdapter -ManagementOS -SwitchName vSwitch-Mgmt -Name vNIC-Mgmt
Get-VMNetworkAdapter –ManagementOS
Rename-VMNetworkAdapter -ManagementOS -Name CurrentName -NewName NewName
Указание VLAN на виртуальном сетевом адаптере
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName vNIC-Mgmt -Access -VlanId 3303
Get-VMNetworkAdapterVlan -ManagementOS
Сетевые настройки на виртуальном сетевом адаптере
Задать IP-адрес можно следующей командой:
New-NetIPAddress -InterfaceAlias Teaming_Mgmt -IPAddress 172.16.1.120 -PrefixLength 24 -DefaultGateway 172.16.1.1
New-NetIPAddress -InterfaceIndex 34 -IPAddress 172.16.1.120 -PrefixLength 24 -DefaultGateway 172.16.1.1
В случае если у интерфейса не задан InterfaceAlias, можно указать InterfaceIndex, взяв его из результата команды Get-NetAdapter
Задать DNS-сервер:
Set-DnsClientServerAddress -InterfaceAlias Teaming_Mgmt -ServerAddresses 10.128.2.16
Настройка Firewall
https://winitpro.ru/index.php/2019/09/25/upravlenie-windows-firewall-powershell/
Get-NetFirewallRule | ft DisplayName, Enabled
Set-NetFirewallRule -DisplayName "File and Printer Sharing (Echo Request - ICMPv4-In)" -enabled True
Set-NetFirewallRule -DisplayName "File and Printer Sharing (SMB-In)" -Enabled True
Enable-NetFireWallRule -DisplayName "Windows Management Instrumentation (DCOM-In)"
Enable-NetFireWallRule -DisplayGroup "Remote Event Log Management"
Enable-NetFireWallRule -DisplayGroup "Remote Service Management"
Enable-NetFireWallRule -DisplayGroup "Remote Volume Management"
Enable-NetFireWallRule -DisplayGroup "Windows Defender Firewall Remote Management"
Enable-NetFireWallRule -DisplayGroup "Remote Scheduled Tasks Management"
netsh advfirewall monitor show currentprofile
netsh advfirewall set allprofiles state off
netsh advfirewall set allprofiles state on
netsh advfirewall show allprofiles
netsh advfirewall set publicprofile state on
netsh advfirewall reset
#Включить уделенное управление томами
Enable-NetFirewallRule -name RVM-RPCSS-In-TCP,RVM-VDSLDR-In-TCP,RVM-VDS-In-TCP
Отключение IPv6 на сетевом адаптере
Get-NetAdapterBinding | Where-Object -Property DisplayName -Match IPv6 | Format-Table –AutoSize
Disable-NetAdapterBinding -Name "MyAdapter" -ComponentID ms_tcpip6
Get-NetAdapterBinding | Where-Object -Property DisplayName -Match IPv6 | Disable-NetAdapterBinding -ComponentID ms_tcpip6
Включение MPIO
https://winitpro.ru/index.php/2013/11/15/ustanovka-i-nastrojka-mpio-v-windows-server-2012/
Add-WindowsFeature -Name 'Multipath-IO'
Графический интерфейс для включения MPIO можно открыть, введя команду mpiocpl
Из командной строки:
mpclaim.exe -r -i -a ""
Команда проанализирует все устройства, обнаруженные системой, определит какие из них имеют несколько путей и включит поддержку MPIO для них:
Обязательно перезагрузить сервер для включения MPIO!
Обновление списка дисков
diskpart
list disk
rescan
list disk
"rescan" | diskpart
"list disk" | diskpart
Удалённая консоль mmc бесполезна. При любом изменении данных консоль нужно открывать заново, никакие кнопки “обновить” не помогают!
Можно использовать Windows Admin Center, тоже основные функции выполнять можно.
Просмотреть WWN storage-адаптеров
Get-InitiatorPort
Список дисков и LUN
Get-WmiObject Win32_DiskDrive | sort scsilogicalunit | ft @{Label=”Disk Number”;Expression={"Disk "+$_.index}}, @{Label=”Size (GB)”;Expression={[Math]::Round($_.size / 1GB, 2)}; Alignment="left"}, @{Label=”LUN”;Expression={$_.scsilogicalunit}}, @{Label=”ScsiBus”;Expression={$_.scsibus}}, SerialNumber, Caption -autosize
Отключить/включить сетевую карту
Get-NetAdapter | FT -auto
Get-NetAdapter -name Teaming_Data | Disable-NetAdapter -Confirm:$false
Get-NetAdapter -name Teaming_Data | Enable-NetAdapter -Confirm:$false
Создание кластера без домена
http://woshub.com/workgroup-failover-cluster-windows-server-2016/
https://www.vembu.com/blog/workgroup-cluster-in-hyper-v-failover-cluster/
Установка Windows Admin Center
После того как сетевые настройки выполнены и есть доступ по сети к управляющему интерфейсу Hyper-V Server, можно установить довольно удобную админку, в которой можно впоследствии делать рутинные операции по управлению сервером и виртуальными машинами.
Скачиваем пакет msi со странички:
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-admin-center
и заливаем его в папку на локальном диске через SMB. Открываем со своего компьютера \\HYPERV\c$ и вводим логин/пароль администратора.
Заходим по RDP на хост Hyper-V и в командной строке запускаем установочный файл msi:
PS C:\_Distrib> .\WindowsAdminCenter2103.2.msi
Запустится установщик с GUI. Все настройки можно оставить по-умолчанию, не устанавливать галочку напротив Use WinRM over HTTPS only, порт оставляем 443, установить галочку редиректа с 80-го порта.
Настройка хранения файлов виртуальных машин
Get-VMHost | FL
Set-VMHost -VirtualMachinePath D:\Hyper-V -VirtualHardDiskPath 'D:\Hyper-V\Virtual Hard Disks'
Установка Server Core App Compatibility Feature on Demand (OFD)
Набор совместимости предназначен для Windows Server Core, но также может быть установлен на Hyper-V Server.
Скачать отсюда:
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2019
Если нужна консоль управления кластером, сначала нужно добавить фичу кластера в ОС, а затем установить FOD:
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
Mount-DiskImage -ImagePath c:\_Distrib\17763.1.180914-1434.rs5_release_amd64fre_SERVER-FOD-PACKAGES_OEM_amd64fre_MULTI.iso
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0 -Source D:\ -LimitAccess
После завершения установки необходимо перезагрузить сервер.
Появятся следующие возможности:
- Microsoft Management Console (mmc.exe)
- Event Viewer (Eventvwr.msc)
- Performance Monitor (PerfMon.exe)
- Resource Monitor (Resmon.exe)
- Device Manager (Devmgmt.msc)
- File Explorer (Explorer.exe)
- Windows PowerShell (Powershell_ISE.exe)
- Disk Management (Diskmgmt.msc)
- Failover Cluster Manager (CluAdmin.msc)
Настройка Live Migration
https://theitbros.com/live-migration-in-hyper-v/
https://winitpro.ru/index.php/2017/03/30/nastrojka-hyper-v-live-migration-bez-klastera/
Изоляция виртуальных машин с помощью ACL
https://windowsnotes.ru/virtualization/spiski-kontrolya-dostupa-porta-v-hyper-v/
Подключение pass-through дисков
http://devguis.com/hyper-v-storage-pass-through-disks.html
тут отговаривают от проброса дисков:
https://www.altaro.com/hyper-v/hyper-v-pass-through-disks/
Основным минусом я вижу то, что никак нельзя сделать снэпшот диска средствами гипервизора и зафиксировать состояние диска вместе с ВМ.
Получается, без агента внутри ВМ нельзя бэкапить Exchange, SQL и т.д.