ESXi Перемістіть групу портів на різні vswitch


4

Як в ESXi, як перенести існуючу групу портів до іншого vSwitch?

Це виглядає як часто бажану дію, але без легкодоступного рішення:

введіть тут опис зображення

Отже, у мене є один великий vSwitch з приблизно 8 різними групами портів (кожній з яких призначено 4-6 ВМ). Через зміни мережі мені потрібно розбити цей vSwitch на декілька vSwitches (у кожного зі своїм фізичним адаптером). Я хочу просто перемістити існуючі групи портів (включаючи ідентифікатори VLAN) до правильного (нового) vSwitch.

Чи є простий спосіб зробити це без перенастроювання всієї справи? Якщо б якийсь файл XML зберігався, це була б 5-секундна операція вирізання та вставки.

Відповіді:


3

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

Для цього ми:

  1. Визначте всі portGroupCрядки, з яких починається /net/vswitch/child[0001]/portgroup/child[0000]. Перемістіть ці записи в vSwitch0налаштуваннях (не обов'язково, але вони роблять зрозумілішими під час редагування).
  2. Зміна /net/vswitch/child[0001]в /net/vswitch/child[0000]кожному рядку (тому що ми рухаємося його до цього комутатора).
  3. Зрозумійте, що вже є /net/vswitch/child[0000]/portgroup/child[0000]( portGroupA), і перейдіть portGroupCдо /portgroup/child[0002].
  4. Зрозумійте, що наша висхідна посилання для цієї групи портів зараз неправильна (якщо вона вказана), і змініть 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 - #коментарі тут лише для пояснення; Я не знаю, чи працюють вони в реальному файлі, і все одно здуваються при наступному налаштуванні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.