Відмова від відповідальності: Це, звичайно, не підтримується / рекомендований спосіб зробити це. Не робіть цього на виробничій коробці. Я робив це з вимкненими усіма 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 - #коментарі тут лише для пояснення; Я не знаю, чи працюють вони в реальному файлі, і все одно здуваються при наступному налаштуванні.