отказ от ответственности: это, конечно, не поддержанная/рекомендуемый способ сделать это. Не делайте это на производственной коробке. Я сделал это, когда все виртуальные машины выключены, а 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, вам может понадобиться изменить своего ребенка число.
Примечание: вы должны повторно номер all соответствующих строк (все строки, соответствующие этой группе портов).
примечание 2: если есть teamPolicy
записей для группы портов, вам может потребоваться, чтобы гарантировать, что связано uplinks[nnnn]/pnic =
настройки соответствуют фактическим vmnicN
для переключателя, на который вы его перемещаете.
после редактирования файла, я просто перезагрузил сервер ESXi: $ reboot
. Вместо этого может быть перезапущена какая-то служба или процесс, но я решил, что перезагрузка была самым простым и безопасным способом.
пример
скажем, у нас есть два vSwitches каждый с одним vmnic
uplink и две группы портов:
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
to vSwitch0
, поэтому конфигурация такой:
vSwitch0 --> vmnic0
|--portGroupA
|--portGroupB
|--portGroupC
vSwitch1 --> vmnic1
|--portGroupD
для этого:
- определение
portGroupC
строк, начинающихся с /net/vswitch/child[0001]/portgroup/child[0000]
. Переместите эти записи с помощью vSwitch0
config (необязательно, но проясняет ситуацию при редактировании).
- изменить
/net/vswitch/child[0001]
to /net/vswitch/child[0000]
на каждой строке (потому что мы перемещаем его на этот переключатель).
- поймите, что уже есть
/net/vswitch/child[0000]/portgroup/child[0000]
(portGroupA
), и portGroupC
to /portgroup/child[0002]
.
- понимаю, что наш канал связи для этой группы портов теперь неверен (если он указан) и change
uplinks[0000]/pnic =
С vmnic1
to 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]
to [0000]
(так как больше не было записи 0.)
1-The #
комментарии здесь только для объяснения; я не знаю, работают ли они в реальном файле, и получить сдувается на следующей конфигурации в любом случае.