Если вы много работали с Hyper-V вы знаете, что настройка Hyper-V адаптеров сети занимает много времени. Во-первых, потому большую часть времени у вас есть много сетевых карт, встроенных в ваш хост для разных Hyper-V и кластеров сети, и, во-вторых, Windows называет сетевые карты случайным образом, поэтому его трудно узнать и понять, какая сетевая карта является правильной. Может быть, ваша первая карта на Hyper-V Host01 называется "Подключение по локальной сети 2" и на втором Hyper-V с принимающей же аппаратной конфигурации сетевая карта называется "Подключение по локальной сети 3". Одна из возможностей, чтобы узнать, какие сетевые карты является правильным, чтобы проверить МАС-адрес сетевого адаптера. Но для этого вам все равно придется узнать, какой MAC-адрес, на котором находится порт сетевого адаптера.
Еще один способ - это подключить сетевые кабели по одному. Таким образом, вы можете увидеть, какой порт активен, а затем вы можете переименовать сетевой адаптер. Правда это занимает достаточно много времени, чтобы делать это на каждом хосте.
Теперь есть решение, вы можете отсортировать ваши сетевые карты на PCI шине и PCI слот.
С помощью некоторых скриптов, созданных Thomas Maurer, можн упростить процесс работы
1
|
netsh interface set interface "Local Area Connection 2" newname= "Management"
|
Сначала я настроил первый Hyper-V хозяина и переименовал все сетевые адаптеры. Если у вас есть графический сервер можно сделать с помощью графического интерфейса или если у вас есть основной Windows Server или Hyper-V Server вы можете сделать это с помощью Netsh.
Это дает мне много информации о сетевых карт на первом хосте.
Но важной частью является порядок сетевых карт. В моем примере я знаю, что порядок такой:
* Управление * VMNet * CSV * LiveMigration * iSCSI01 * iSCSI02
Так как мой других хостов иметь такое же оборудование, они будут иметь одинаковый порядок шин PCI.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
Write-Host " " -BackgroundColor Black -ForegroundColor White
Write-Host " PowerShell Get-NICInformation " -BackgroundColor Black -ForegroundColor White
Write-Host " " -BackgroundColor Black -ForegroundColor White
Write-Host " by Thomas Maurer " -BackgroundColor Black -ForegroundColor White
Write-Host " www.thomasmaurer.ch " -BackgroundColor Black -ForegroundColor White
Write-Host " " -BackgroundColor Black -ForegroundColor White
$adapters = Get-WMIObject Win32_PNPSignedDriver | Where-Object { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*”
} | Sort-Object location
foreach ( $adapter in
$adapters ) {
$adapterName = Get-WMIObject Win32_NetworkAdapter
| Where-Object { $_.PNPDeviceID -eq $adapter .DeviceID }
$adapterConfiguration = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.index -eq $adapterName .Index }
Write-Host ‘Adapter Name :’ $adapterName .NetConnectionID
Write-Host ‘PCI BUS :’ $adapter .Location
Write-Host ‘MAC Address :’ $adapterName .MACAddress
Write-Host ‘GUID :’ $adapterName .GUID
Write-Host ‘Adpater Index :’ $adapterName .Index
Write-Host ‘Hardwarename :’ $adapterName .Name
Write-Host ‘DHCP enabled :’ $adapterConfiguration .DHCPEnabled
Write-Host ‘IP Address :’ $adapterConfiguration .IPAddress
Write-Host ‘Subent :’ $adapterConfiguration .IPSubnet
Write-Host ‘Default Gateway :’ $adapterConfiguration .DefaultIPGateway
Write-Host
}
|
Для следующего шага я использовал мой второй хост
Там у меня был мой другой Windows PowerShell скрипт (Set-IPAddressfromXML) и XML - файл (networkconfig.xml).
Я отредактировал networkconfig.xml файл с правильной информацией о сети. Важно здесь ID = "" параметры. Они показывают порядок сетевых карт, поэтому с Get-NICInformation я вижу интерфейс управления является первым, поэтому он получает идентификатор = "1", VMNET является вторым он получает ID = "2" и так далее. Также установим правильный адрес IP для второго хоста.
Вы также можете установить без статических IP-адресов (DHCP), в моем случае я сделал это для VMNET адаптера, который будет использоваться в Hyper-V переключаться между виртуальными и не нуждается в IP-адресе
1
2
3
4
5
6
7
8
9
10
11
12
13
|
< config >
< networkadapters >
< nic id = "1" name = "Management" static = "true" ip = "10.0.20.1" subnet = "255.255.0.0" gateway = "10.0.0.1" />
< nic id = "2" name = "LiveMigration" static = "true" ip = "192.168.21.1" subnet = "255.255.255.0" gateway = "" />
< nic id = "3" name = "CSV" static = "true" ip = "192.168.22.1" subnet = "255.255.255.0" gateway = "" />
< nic id = "4" name = "TeamedAdpater01" static = "false" ip = "" subnet = "" gateway = "" />
< nic id = "5" name = "TeamedAdpater02" static = "false" ip = "" subnet = "" gateway = "" />
< nic id = "6" name = "TeamedAdpater03" static = "false" ip = "" subnet = "" gateway = "" />
< nic id = "7" name = "ISCSI01" static = "true" ip = "10.10.21.1" subnet = "255.255.255.0" gateway = "" />
< nic id = "8" name = "ISCSI02" static = "true" ip = "10.10.22.1" subnet = "255.255.255.0" gateway = "" />
networkadapters >
config >
|
После того как вы сделали это, теперь вы можете просто запустить Set-IPAddressfromXML сценарий. Это позволит использовать информацию из networkconfig.xml файл и переименовать все сетевые адаптеры и установить правильный адрес IP.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
Write-Host " " -BackgroundColor Black -ForegroundColor White
Write-Host " PowerShell Set-IPAddressfromXML " -BackgroundColor Black -ForegroundColor White
Write-Host " " -BackgroundColor Black -ForegroundColor White
Write-Host " done by Thomas Maurer " -BackgroundColor Black -ForegroundColor White
Write-Host " www.thomasmaurer.ch " -BackgroundColor Black -ForegroundColor White
Write-Host " " -BackgroundColor Black -ForegroundColor White
[Xml] $global :xmlData = Get-Content ".\networkconfig.xml"
[int] $global :nicNumber
= "1"
$Adapters =
Get-WMIObject Win32_PNPSignedDriver | where {
$_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*”}
| Sort-Object location
foreach ( $Adapter in
$Adapters ) {
$AdapterName = Get-WMIObject Win32_NetworkAdapter | where {
$_.PNPDeviceID -eq $Adapter .DeviceID
}
$nic = $xmlData .config.networkadapters.nic | Where-Object {$_.id -eq $nicNumber }
Write-Host ‘Adapter Name :’ $AdapterName .NetConnectionID
Write-Host ‘PCI BUS :’ $Adapter .Location
Write-Host ‘MAC Address :’ $AdapterName .MACAddress
Write-Host ‘GUID :’ $AdapterName .GUID
Write-Host ‘New Name :’ $nic .name
Write-Host
Invoke-Expression ( 'netsh
interface set interface `"' + $AdapterName .NetConnectionID + '`"
newname=`"' + $nic .name
+ '`" | out-null' )
Write-Host ( 'netsh interface set
interface "' + $AdapterName .NetConnectionID + '"
newname="' + $nic .name
+ '"' ) -BackgroundColor Green -ForegroundColor Black
if ( $nic .static -eq "true" ){
Invoke-Expression ( 'netsh
interface ipv4 set address `"' + $nic .name
+ '`" static ' + $nic .ip + ' ' + $nic .subnet + ' ' + $nic .gateway
+ ' | out-null' )
Write-Host ( 'netsh interface ipv4 set
address "' + $nic .name
+ '" static ' + $nic .ip + ' ' + $nic .subnet + ' ' + $nic .gateway)
-BackgroundColor Green -ForegroundColor Black
}
else {
Write-Host "No IP set" -BackgroundColor Green -ForegroundColor Black
}
$nicNumber ++
}
|
Теперь я могу скопировать Set-IPAddressfromXML.ps1 и networkconfig.xml каждого Hyper-V хостами и редактирования IP-адресов в XML-файл, запустите файл PowerShell.
Обобщим:
1. Переименовали сетевые карты первого хоста 2. Запустили Get-NICInformation.ps1 на первом компьютере и проверили сетевой порядок 3. Изменили networkconfig.xml на втором хостов в правильном порядке из сетевых карт 4. Выполнить Set-IPAddressfromXML.ps1 5. Сделайте это для всех Hyper-V
Я надеюсь, что это сделает жизнь проще.
Вы можете скачать скрипты отсюда: Skydrive
Оставьте свой комментарий!
Добавить комментарий
|