Відмова від відповідальності: Це, звичайно, не підтримується / рекомендований спосіб зробити це. Не робіть цього на виробничій коробці. Я робив це з вимкненими усіма VM і вимкнутим vSphere, просто для безпеки.
По-перше, вам потрібно отримати доступ до консолі ESXi . Потім це легко зробити за допомогою редагування /etc/vmware/esx.conf
.
Для кожного vSwitch є запис типу:
/net/vswitch/child[0000]/name = "vSwitch0"
/net/vswitch/child[0000]/...
/net/vswitch/child[0001]/name = "vSwitch1"
/net/vswitch/child[0001]/...
...
Ви можете перейменувати vSwitches там, до речі.
У групи портів є вузлами під vSwitches :
/net/vswitch/child[0000]/portgroup/child[0000]/name = "Management Network"
/net/vswitch/child[0000]/portgroup/child[0000]/...
...
/net/vswitch/child[0000]/portgroup/child[0001]/name = "VM Network"
/net/vswitch/child[0000]/portgroup/child[0001]/...
...
Щоб перемістити групу портів з одного vSwitch на інший, ви просто зміните під яким /net/vswitch/child[XXXX]/
вузлом знаходиться, переконуючись у повазі до того, що portgroup
діти вже є. Іншими словами, після переміщення групи портів до іншого vSwitch вам може знадобитися змінити його дочірній номер.
Примітка. Вам потрібно перенумерувати всі відповідні рядки (усі рядки, що відповідають цій групі портів).
Примітка 2: Якщо teamPolicy
для групи портів є записи, вам може знадобитися переконатися, що пов’язані uplinks[nnnn]/pnic =
параметри відповідають фактичним vmnicN
для vswitch, до якого ви переміщуєте.
Після редагування файлу, я просто перезавантажив сервер ESXi: $ reboot
. Може замість цього перезапустити якусь службу чи процес, але я вважав, що перезавантаження - найпростіший і безпечний спосіб.
Приклад
Скажімо, у нас є два vSwitches з однією vmnic
висхідною лінією та двома групами портів:
vSwitch0 --> vmnic0
|--portGroupA
|--portGroupB
vSwitch1 --> vmnic1
|--portGroupC
|--portGroupD
Відповідні записи esx.conf
можуть виглядати приблизно так 1 :
# vSwitch0
/net/vswitch/child[0000]/...
/net/vswitch/child[0000]/name = "vSwitch0"
/net/vswitch/child[0000]/numPorts = "128"
# vSwitch0->portGroupA
/net/vswitch/child[0000]/portgroup/child[0000]/name = "portGroupA"
/net/vswitch/child[0000]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
# vSwitch0->portGroupB
/net/vswitch/child[0000]/portgroup/child[0001]/name = "portGroupB"
/net/vswitch/child[0000]/portgroup/child[0001]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
/net/vswitch/child[0000]/uplinks/child[0000]/pnic = "vmnic0"
# vSwitch1
/net/vswitch/child[0001]/...
/net/vswitch/child[0001]/name = "vSwitch1"
/net/vswitch/child[0001]/numPorts = "128"
# vSwitch1->portGroupC
/net/vswitch/child[0001]/portgroup/child[0000]/name = "portGroupC"
/net/vswitch/child[0001]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic1"
# vSwitch1->portGroupD
/net/vswitch/child[0001]/portgroup/child[0001]/name = "portGroupD"
/net/vswitch/child[0001]/portgroup/child[0001]/teamPolicy/uplinks[0000]/pnic = "vmnic1"
/net/vswitch/child[0001]/uplinks/child[0000]/pnic = "vmnic1"
Тепер ми хочемо перейти portGroupC
від vSwitch1
до vSwitch0
, тому конфігурація виглядає так:
vSwitch0 --> vmnic0
|--portGroupA
|--portGroupB
|--portGroupC
vSwitch1 --> vmnic1
|--portGroupD
Для цього ми:
- Визначте всі
portGroupC
рядки, з яких починається /net/vswitch/child[0001]/portgroup/child[0000]
. Перемістіть ці записи в vSwitch0
налаштуваннях (не обов'язково, але вони роблять зрозумілішими під час редагування).
- Зміна
/net/vswitch/child[0001]
в /net/vswitch/child[0000]
кожному рядку (тому що ми рухаємося його до цього комутатора).
- Зрозумійте, що вже є
/net/vswitch/child[0000]/portgroup/child[0000]
( portGroupA
), і перейдіть portGroupC
до /portgroup/child[0002]
.
- Зрозумійте, що наша висхідна посилання для цієї групи портів зараз неправильна (якщо вона вказана), і змініть
uplinks[0000]/pnic =
з vmnic1
на vmnic0
(тому що це vmnic, який обслуговує цей vSwitch.)
Кінцевий конфігурація повинен виглядати так:
# vSwitch0
/net/vswitch/child[0000]/...
/net/vswitch/child[0000]/name = "vSwitch0"
/net/vswitch/child[0000]/numPorts = "128"
# vSwitch0->portGroupA
/net/vswitch/child[0000]/portgroup/child[0000]/name = "portGroupA"
/net/vswitch/child[0000]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
# vSwitch0->portGroupB
/net/vswitch/child[0000]/portgroup/child[0001]/name = "portGroupB"
/net/vswitch/child[0000]/portgroup/child[0001]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
# vSwitch1->portGroupC
/net/vswitch/child[0000]/portgroup/child[0002]/name = "portGroupC"
/net/vswitch/child[0000]/portgroup/child[0002]/teamPolicy/uplinks[0000]/pnic = "vmnic0"
/net/vswitch/child[0000]/uplinks/child[0000]/pnic = "vmnic0"
# vSwitch1
/net/vswitch/child[0001]/...
/net/vswitch/child[0001]/name = "vSwitch1"
/net/vswitch/child[0001]/numPorts = "128"
# vSwitch1->portGroupD
/net/vswitch/child[0001]/portgroup/child[0000]/name = "portGroupD"
/net/vswitch/child[0001]/portgroup/child[0000]/teamPolicy/uplinks[0000]/pnic = "vmnic1"
/net/vswitch/child[0001]/uplinks/child[0000]/pnic = "vmnic1"
Зауважте, що я також змінився portGroupD
з portgroup/child[0001]
на [0000]
(оскільки вже не було 0.)
1 - #
коментарі тут лише для пояснення; Я не знаю, чи працюють вони в реальному файлі, і все одно здуваються при наступному налаштуванні.