esxi网络模型:
物理网卡: 一般会有多个物理网卡,用于管理口和其他(vsan)
虚拟交换机:创建虚拟交换机时,会要求选择至少1个上行链路(物理网卡)
端口组:一般一个虚拟交换机会创建两个端口组,一个虚机使用,一个vmware使用,vmware使用的即内部数据和业务使用,需要创建vmkernel;
每个端口组可以有自己的负载均衡策略,端口安全模式
vmkernel: 这个是针对每个esxi, vmware内部使用的端口组要求创建vmkernel,创建时会提示选择该vmkernel的使用场景,比如vsan
可以在创建好端口组后,直接在端口组上添加vmkernel适配器,然后可以批量选择物理机,这样可以快速在每台物理机上创建vmkernel;
通常虚机使用的端口组不需要vmkernel,而vmware使用的则需要,比如管理面、vsan等
vmkernel适配器就是相当于虚拟网卡,可以配置IP
esxi安装好后默认会创建一个标准的虚拟交换机vSwitch0,包含两个端口组Manager Network和VM Network,默认创建一个vmk0(只勾选了管理),设置的IP就是给vmk0设置IP,
vmk0连接Manager Network端口组,进而连接到vSwitch0标准虚拟交换机上,通过物理口出去
通常通过vcenter管理esxi时,会将同一机架的esxi添加为一个集群(集群内的esxi一般都在同一子网,如果不是的话后续配置vsan等需要配置ip时会很麻烦),集群要求CPU型号一致,
同时将esxi的存储组建成vsan,另外会创建一个DVS(分布式交换机),添加两个端口组,一个用来给虚机使用,一个用来给宿主机内部使用,需要创建vmkernel(包含:vMotion、置备、vSphere Replication、vSphere Replication NFC、vSAN)
esxi虚机网络负载默认是根据虚机网卡的端口ID来的,这样就会导致某个时刻,物理网卡的负载不均衡,处理办法:
1、调整虚机配置,编辑虚机,将网口的连接和启动连接关闭,确认后再次编辑打开;
2、迁移虚机到其他宿主机
3、调整端口组的负载均衡策略,改成安装物理网卡的实际负载来执行
显示物理网卡信息
[root@localhost:~] esxcli network nic list
Name PCI Device Driver Admin Status Link Status Speed Duplex MAC Address MTU Description
------- ------------ ------ ------------ ----------- ----- ------ ----------------- ---- -----------
vmnic0 0000:1a:00.0 i40en Up Up 10000 Full 8c:2a:8e:08:9c:74 9000 Intel(R) Ethernet Connection X722 for 10GbE SFP+
vmnic1 0000:1a:00.1 i40en Up Up 10000 Full 8c:2a:8e:08:9c:75 9000 Intel(R) Ethernet Connection X722 for 10GbE SFP+
显示标准虚拟交换机:
[root@localhost:~] esxcli network vswitch standard list
vSwitch0
Name: vSwitch0
Class: cswitch
Num Ports: 9216
Used Ports: 4
Configured Ports: 128
MTU: 1500
CDP Status: listen
Beacon Enabled: false
Beacon Interval: 1
Beacon Threshold: 3
Beacon Required By:
Uplinks: vmnic2
Portgroups: VM Network, Management Network
查询标准交换机端口组:
[root@localhost:~] esxcli network vswitch standard portgroup list
Name Virtual Switch Active Clients VLAN ID
------------------ -------------- -------------- -------
Management Network vSwitch0 1 0
VM Network vSwitch0 1 0
显示分布式交换机:
[root@localhost:~] esxcli network vswitch dvs vmware list
DVSInfra
Name: DVSInfra
VDS ID: 50 32 c6 7b 2e d8 28 d9-61 62 b4 c0 b4 de 7e da
Class: cswitch
Num Ports: 3323
Used Ports: 8
Configured Ports: 512
MTU: 9000
CDP Status: listen
Beacon Timeout: -1
Uplinks: vmnic5, vmnic6
VMware Branded: true
DVPort:
Client: vmnic5
DVPortgroup ID: dvportgroup-4970
In Use: true
Port ID: 16
Client: vmnic6
DVPortgroup ID: dvportgroup-4970
In Use: true
Port ID: 17
注意,这里的Port ID其实是DVS Port ID,不能用来抓包;esxi上没有查询分布式端口组的命令
如果要抓包,则可以通过esxcli network vm list 命令显示的虚机world id,然后再通过esxcli network vm port list -w WORLDID,这个命令会显示Port ID和DVS Port ID
输入esxtop 再按n 可显示虚机的网络使用请求,里面有port num可用来抓包,跟net-stats -l显示的por num是一样的
查询当前vsan下不可访问的虚机
esxcli vsan debug object list --health inaccessible
esxi上进行抓包:
pktcap-uw --vmk vmk0 --dir 2 --mac 00:50:56:bd:ff:f8 -e
指定物理网卡抓包
pktcap-uw --uplink vmnic0 --dir 2 --mac 00:50:56:bd:ff:f8
这里的PortNum可以用来抓包
pktcap-uw --dir 2 --switchport [PortNum/PortID]
显示esxi上所有活跃的端口信息
[root@localhost:~] net-stats -l
PortNum Type SubType SwitchName MACAddress ClientName
2214592530 4 0 DvsPortset-0 8c:2a:8e:08:9c:74 vmnic0
2214592532 4 0 DvsPortset-0 8c:2a:8e:08:9c:75 vmnic1
67108887 3 0 DvsPortset-0 00:50:56:6f:ea:93 vmk1
67108929 5 7 DvsPortset-0 00:50:56:b2:c0:6c centos_7.0.eth0
67109120 5 9 DvsPortset-0 00:50:56:b2:c5:57 XXX6.3.0-14.eth5
67109121 5 9 DvsPortset-0 00:50:56:b2:2f:b3 XXX6.3.0-14.eth4
67109122 5 9 DvsPortset-0 00:50:56:b2:fc:cd XXX6.3.0-14.eth3
67109123 5 9 DvsPortset-0 00:50:56:b2:88:97 XXX6.3.0-14.eth2
67109124 5 9 DvsPortset-0 00:50:56:b2:57:40 XXX6.3.0-14.eth1
67109125 5 9 DvsPortset-0 00:50:56:b2:49:40 XXX6.3.0-14.eth0
67109126 5 7 DvsPortset-0 00:50:56:b2:02:f5 centos_8.0-12.eth0
可以查看某个端口的网络统计信息
[root@localhost:~] esxcli network port stats get -p 67109168
Packet statistics for port 67109168
Packets received: 105476160732
Packets sent: 9582511311
Bytes received: 3982297224
Bytes sent: 25482787
Broadcast packets received: 85681935373
Broadcast packets sent: 62395482
Multicast packets received: 8661218972
Multicast packets sent: 8699038
Unicast packets received: 11133006387
Unicast packets sent: 9511416791
Receive packets dropped: 1459543
Transmit packets dropped: 372
当磁盘组显示异常,但是虚机都正常时,处理步骤:
1、查看当前esxi中所有加入到vsan的磁盘,并过滤磁盘名称和磁盘组uuid
esxcli vsan storage list | grep -E "naa|Group UUID"
2、删除磁盘组
esxcli vsan storage remove -u [uuid] 这里的uuid就是磁盘组的Group UUID
这里可以是磁盘组的uuid,也可以是磁盘的uuid,如果是磁盘组的uuid,则是从vsan中删除磁盘组,如果是磁盘的uuid,则是从磁盘组中删除磁盘,
从磁盘组中删除磁盘最好是在界面上操作,只有当磁盘组中存在unknown的磁盘,才在esxi里面删除,显示unknown的磁盘,磁盘uuid也会显示
Unknown
Device: Unknown
Display Name: Unknown
Is SSD: false
VSAN UUID: 520a6f1c-2d5c-e7b6-f5b5-32454d93c0f1
VSAN Disk Group UUID:
VSAN Disk Group Name:
Used by this host: false
In CMMDS: false
On-disk format version: -1
Deduplication: false
Compression: false
Checksum:
Checksum OK: false
Is Capacity Tier: false
Encryption Metadata Checksum OK: true
Encryption: false
DiskKeyLoaded: false
Is Mounted: false
Creation Time: Unknown
这种磁盘在界面上无法删除
查询当前vsan下不可访问的虚机
esxcli vsan debug object list --health inaccessible
命令会显示不可访问对象的路径(部分没有)
然后进入/vmfs/volumes/vsan:52ee42c2aeda28e2-edb4ed96882f258d/
再执行
/usr/lib/vmware/osfs/bin/osfs-rmdir --force XXX6.9.1
删除不可访问的对象
vsan删除不可访问的对象
/usr/lib/vmware/osfs/bin/objtool delete -f -u db6f235b-b856-89dd-6324-0010181a9981
/usr/lib/vmware/osfs/bin/objtool delete -f -u 6238115c-0828-2cc6-3dd3-b8aeedb7689f
/usr/lib/vmware/osfs/bin/objtool delete -f -u c19a245b-f031-9b4f-9b10-b8aeedb7689f
查看磁盘分区
partedUtil get /vmfs/devices/disks/naa.600605b00c30f7e027e6d4c16c0d55ff
删除指定分区
partedUtil delete /vmfs/devices/disks/naa.600605b00c30f7e027e6d4c16c0d55ff 1 #删除第一块分区
partedUtil delete /vmfs/devices/disks/naa.600605b00c30f7e027e6d4c16c0d55ff 2 #删除第二块分区
重做分区
partedUtil mklabel /vmfs/devices/disks/naa.600605b00cc7ae8027e8b92329e47a6b msdos
查看
partedUtil get /vmfs/devices/disks/naa.600605b00cc7ae8027e8b92329e47a6b
1、查询当前esxi中的所有磁盘
esxcli storage core device list #会显示磁盘是否为SSD,Model,是否为启动设备(即安装esxi系统的)
2、查看vmfs存储,即本地存储
esxcli storage vmfs extent list
Volume Name VMFS UUID Extent Number Device Name Partition
------------------------------------------ ----------------------------------- ------------- -------------------- ---------
datastore1 (1) 674fbf93-5ae75af0-1eed-0894eff96a38 0 naa.500a07513438e2a1 8
OSDATA-674fbf93-314af3ee-7a0c-0894eff96a38 674fbf93-314af3ee-7a0c-0894eff96a38 0 naa.500a07513438e2a1 7
当使用一个磁盘安装esxi后,多余的磁盘空间会被创建成存储,OSDATA即为esxi系统分区
3、查询加入到vsan的磁盘列表
esxcli vsan storage list
4、查看磁盘健康状况:
[root@localhost:~] esxcli storage core device smart get -d naa.50014ee05973baf5
Parameter Value Threshold Worst Raw
--------------------------------- ----- --------- ----- ---
Health Status OK N/A N/A N/A
Write Error Count 31 0 N/A 31
Read Error Count 0 51 N/A 0
Power-on Hours 26 0 26 54164
Power Cycle Count 125 0 N/A 125
Reallocated Sector Count 0 140 N/A 0
Drive Temperature 35 0 N/A 35
Initial Bad Block Count 0 0 N/A 0
Sector Reallocation Event Count 0 0 N/A 0
Pending Sector Reallocation Count 26 0 N/A 26
Uncorrectable Sector Count 26 0 N/A 26