[TOC]
0x00 前言描述
描述:VMware基础设施上需要的更多虚拟化管理,关键在于任务的自动化;虽然VMware ESX主机可以管理与vSphere客户端用户界面,数据中心管理员往往喜欢登录到VMware服务控制台和使用ESX命令行来解决,如网络配置问题或重新配置主机。
关于Linux的而一些基础命令我就不说了,本文主要针对于 VMware ESX和ESXI的特定命令进行讲解
- VMware ESX和ESXi的命令可以运行在ESX服务控制台(本地或远程使用Secure Shell)或RCLI(在VMware Infrastructure 3)和vSphere CLI的(在vSphere)
- 在RCLI和vSphere CLI中 注意到很多命令已更名为vicfg,而不是
esxcfg -(即esxcfg - nics.pl和vicfg - nics.pl)
,两个命令都执行相同的功能但VMware试图从esxcfg迁移到vicfg
。
0x01 常用命令
描述:由于采用了借鉴Linux的内核(官方说是自研内核),但是不开放源代码谁知道呢,其系统带有Linux内核相关味道,其采用了BusyBox工具箱里面放置了常见的Linux命令;
ESXI 操作系统命令一览:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62# Linux工具三巨头命令查找,显示和搜索文件。
find #找出具体的文件
grep #在拼接的所有文件中找到所需文本
awk #字符分割与正则匹配
# 文件内容
cat #显示文件内容
tail #显示一个文本的最后部分的文件,也可以输出到监控实时文件、
nano #编辑文本文件(新手推荐)
vi #编辑文本文件
# 用户与进程权限
su #用户切换
sudo #命令权限控制和防止root帐户被使用
# 进程服务管理
service #可以启动、停止和重新启动主机服务器上的服务(或程序)常见的ESX服务包括MGMT的和VMware、vmware-vpxa、firewall、vmware-hostd和vmware Web Access。
ps #进程服务查看
kill #强行终止VM进程
# 磁盘与文件系统查看
df #文件系统显示(存储默认VMFS-5格式,系统默认是vfat格式)
vdf #显示文件系统(分区)的资料,包括自由空间。
# 基本的网络故障排除命令
ping #通信查看
vmkping #
# 系统配置常用命令
ntpq #使用 NTP Query 实用程序 ntpq 远程查询 ESXi/ESX 主机的 ntpd 服务。
# ESXi 服务停止与重启
shutdown.sh
services.sh {start,stop,restart}
#####################
# VMware ESX和ESXi命令
#####################
vmware #ESXI相关版本西悉尼
vmware-cmd # 负责管理和检索虚拟机信息。它可以改变虚拟机电源状态、管理快照、注册和注销的用户,并检索和设置各种虚拟机的信息。 (6.0没有)
vim-cmd #VMware的vim - cmd是一种逻辑的vimsh,能够简化vimsh,无需知道很多前端交换命令。
vmkfstools #可用于复制、转换、重命名、输入、输出和调整虚拟磁盘文件的大小。
vm-support #一个强大的信息收集工具,常用于故障排除。该命令收集大量信息、日志文件,并把很多命令以单一的tgz存档文件方式输出。它也可以用来显示VM的信息以及停止没有响应的虚拟机。
esxtop #它提供实时的CPU、内存、硬盘和网络使用的历史表现的统计数字。
esxcfg-nics #观察和配置物理网络接口卡(NIC)。它显示网卡状态和配置的速度和全双工网卡。
esxcfg-vswitch #显示和配置虚拟交换机。它是在vSphere不能使用网络中有用的配置客户端。该命令用于配置端口组和连接物理网卡(称为上行)配置虚拟局域网ID,思科协议(CDP)和vswitch中的MTU。
esxcfg-vmknic #配置VMkernel网络接口,这是VMotion和连接到iSCSI和网络文件系统的网络存储设备所必要的。
esxupdate #更新ESX和ESXi主机和打补丁。 Esxupdate用于ESX服务控制台和vihostupdate,通过RCLI / vSphere CLI使用。此外,vihostupdate35是用来修补ESX和ESXi 3.5版主机。
svmotion #$RCLI/vSphere CLI命令用于发起Storage VMotion的迁移虚拟机虚拟磁盘到另一个数据存储空间。此命令的ESX 3.5版本是唯一启动SVMotion的方法,加上vSphere客户端的GUI,vSphere能做到这一点。
esxcfg-mpath #显示和设置一台主机从所有路径到达它的存储设备。
Esxcfg-rescan #让主机产生一个特定的存储适配器,用来发现新的存储设备。这是非常有用的工具,存储设备已被添加,删除或从存储网络改变。
esxcfg-ipsec #显示信息和配置内置的防火墙保护ESX服务控制台
esxcfg-info #命令提供了有关运行中的主机信息。它可以重新定向到一个文本文件记录主机配置。
#6.0没有的命令
esxcfg-firewall
esxcfg-vswif #允许您查看和配置vSwitches特殊的端口组,配置的ESX服务控制台网络接口,它也被称为vswif港口。
Esxcfg-auth #在ESX主机上配置服务控制台验证,它可以配置第三方LDAP或Active Directory服务器的身份验证并设置多个本地安全选项。
0x01 基础命令
vmware 命令
描述:显示当前EXSI主机的相关版本信息1
2
3[root@localhost:~] vmware -vl
VMware ESXi 6.0.0 build-3620759
VMware ESXi 6.0.0 Update 2
vmkping 命令
描述:Ping通过发送Internet控制消息协议数据包测试与其他主机和网络设备的网络连接。
Vmkping是VMware的Ping命令的特定版本,它使用的IP VMkernel去Ping另一个ESX主机的VMkernel端口。此命令有助于解决VMotion和网络存储的问题。
基础示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#1.其中 x.x.x.x 是要 ping 的服务器的主机名或 IP 地址。
$vmkping 127.0.0.1
# PING 127.0.0.1 (127.0.0.1): 56 data bytes
# 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.024 ms
#2.如果环境中配置了巨型帧,请在运行 vmkping 命令时包含 -s 和 -d 选项。
$vmkping -d -s 8972 127.0.0.1
# PING 127.0.0.1 (127.0.0.1): 8972 data bytes
# 8980 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.034 ms
#3.5.1版本中使用 -I 选项指定要将哪个 vmkernel 端口用于传出 ICMP 流量:
[root@localhost:~] esxcfg-vmknic -l
Interface Port Group/DVPort/Opaque Network IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type NetStack
vmk0 Management Network IPv4 192.168.1.188 255.255.255.0 192.168.1.255 64:00:6a:6c:14:ca 1500 65535 true STATIC defaultTcpipStack
vmk0 Management Network IPv6 fe80::6600:6aff:fe6c:14ca 64 64:00:6a:6c:14:ca 1500 65535 true STATIC, PREFERRED defaultTcpipStack
[root@localhost:~] vmkping -I vmk0 192.168.1.201
PING 192.168.1.201 (192.168.1.201): 56 data bytes
64 bytes from 192.168.1.201: icmp_seq=0 ttl=62 time=0.620 ms
64 bytes from 192.168.1.201: icmp_seq=1 ttl=62 time=0.637 ms
#4.在 vSphere 5.5 中,VXLAN 具有其自己的 vmkernel 网络堆栈,因此必须使用以下任一语句从 ESXi 控制台执行对传输 VLAN 中两个不同 vmknic 之间的 ping 连接性测试:
vmkping ++netstack=vxlan <vmknic IP> -d -s <packet size>
[root@localhost:~] vmkping ++netstack=vxlan 127.0.0.1 -d -s 64
Killed
注意事项:
- 如果发现 ping 操作出现间歇性成功,可能表明 vMotion 端口上的绑定网卡中存在不兼容的网卡。
请选择兼容的网卡进行绑定,或将其中一个网卡设置为备用 (standby)
。 - 如果用服务器主机名执行 ping 命令时没有看到响应,请使用 IP 地址执行 ping 命令。对 IP 地址启动 ping 操作,可以判断故障是否由主机名解析问题所引起。如果要测试到另一个服务器上的另一个 VMkernel 端口的连接,请谨记要使用 VMkernel 端口的 IP 地址,因为服务器的主机名通常会解析至远程服务器上的服务控制台地址
estop 命令
描述:它提供实时的CPU、内存、硬盘和网络使用的历史表现的统计数字。与linux中top异曲同工之妙;
1 | $ estop |
vim-cmd 命令
描述:Vimsh是一个强大的交互式框架,有很多允许执行的命令,以及具备显示和配置能力,而vim-cmd是是一种逻辑的vimsh,能够简化vimsh,无需知道很多前端交换命令。
1 | # 查看可用命令 |

WeiyiGeek.
esxcfg-info 命令
描述:提供了有关运行中的主机信息,它可以重新定向到一个文本文件记录主机配置即导出为xml或者perl解析格式。
基础信息:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#主机信息
$ esxcfg-info | more
+Host :
\==+Hardware Info :
|----BIOS UUID................................................0x4c 0x4c 0x45 0x44 0x0 0x57 0x30 0x10 0x80 0x42 0xb3 0xc0 0x4f 0x38 0x38 0x32
|----Product Name.............................................Precision T1700
|----Vendor Name..............................................Dell Inc.
|----Serial Number............................................3W0B882
|----Hardware Uptime..........................................3066504523329
|----Ipmi Supported...........................................false
\==+PCI Info :
#以特定的格式进行打印
$ esxcfg-info -s -F xml
vm-support 命令
描述:该命令收集大量信息、日志文件,并把很多命令以单一的tgz存档文件方式输出
1 | #常用于故障排除,它可以进行信息收集 |

WeiyiGeek.
esxupdate 命令
描述:ESX和ESXi主机和打补丁, Esxupdate 用于ESX服务控制台和vihostupdate通过RCLI / vSphere CLI使用
。此外vihostupdate35是用来修补ESX和ESXi 3.5版主机。
1 | [root@localhost:~] esxupdate |
####
0x02 磁盘管理
df 命令
描述:该不会显示虚拟机文件系统(VMFS)卷,因为它无法阅读。1
2
3
4
5
6
7
8
9
10[root@localhost:~] df -h
Filesystem Size Used Available Use% Mounted on
VMFS-5 931.2G 574.3G 356.9G 62% /vmfs/volumes/ds5
VMFS-5 465.5G 421.5G 44.0G 91% /vmfs/volumes/ds2
VMFS-5 465.5G 264.3G 201.2G 57% /vmfs/volumes/ds3
VMFS-5 458.2G 301.1G 157.2G 66% /vmfs/volumes/ds1
vfat 285.8M 202.6M 83.2M 71% /vmfs/volumes/40b466b0-95e35fd0-0d26-64006a6c14ca
vfat 249.7M 170.9M 78.8M 68% /vmfs/volumes/ec0dcc7f-6713c574-0f64-2a38ec4ed097
vfat 4.0G 29.1M 4.0G 1% /vmfs/volumes/40b466b2-b745fce4-2631-64006a6c14ca
vfat 249.7M 16.0K 249.7M 0% /vmfs/volumes/40f32077-1ca96d84-254b-6fcc7ff43ff7
vdf 命令
描述:该命令的VMware的版本,这也将显示VMFS卷的信息。df与vdf命令都可以使用H变换,可用易读的形式显示。(即2 GB 而不是2016044
)
1 | [root@localhost:~] $vdf -h |
vmkfstools 命令
描述:虚拟磁盘工具被比做虚拟磁盘中的瑞士军刀,可用于复制、转换、重命名、输入、输出和调整虚拟磁盘文件
的大小。
前面我们讲解虚拟磁盘类型:
厚置备 延迟置零
(默认选项):创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零 ;厚置备 置零
: 创建支持群集功能的厚磁盘,在创建时为虚拟磁盘分配所需的空间,创建中会将物理设备上保留数据置零。创建所需的时间可能会比创建其他类型的磁盘长。精简置备
: 使用该磁盘最初所需要的数据存储空间,简单的说就是当前磁盘有多大的数据就存储占用磁盘多大的空间,存在一个问题精简配置只增长不收缩;
vmdk有两种文件类型:
- 虚拟机名.vmdk,文件很小,存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等);
- 虚拟机名-flat.vmdk,实际数据都存放在flat.vmdk文件中转换时需要使用vmdk文件而不是flat.vmdk文件
语法命令:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#1.虚拟磁盘类型转换(thick to thin)
vmkfstools -i <source-disk-name.vmdk>-d {thin|thick} <destination-disk-name.vmdk>
# -i <source-disk-name.vmdk> 参数 :原vmdk磁盘名
# -d {thin|thick}<destination-disk-name.vmdk> :目标磁盘的格式 thin或thick; <destination-disk-name.vmdk>为要生成的目标vmdk磁盘名;
#2.更改虚拟磁盘(vmdk)大小
#特別注意的是,如果此虚拟机已有快照,请先删除所有快照在执行以下操作,否则这个VMDK将出错,內部的资料丢失。
vmkfstools -X [新的大小] [目的vmdk文件]
#3.创建fs虚拟磁盘格式及其块大小
vmkfstools -C --createfs vmfs3
-b --blocksize #[mMkK]
-S --setfsname fsName
-Z --spanfs span-partition
-G --growfs grown-partition
操作实例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36#1.虚拟机所在的datastore目录,每个目录为一个虚拟机/vmfs/volumes/datastore1
#使用vmkfstools将厚模式的vmdk文件克隆为精简的vmdk磁盘文件
vmkfstools -i converter-two.vmdk -d thin converter-two_new.vmdk #转换后将生成两个新的vmdk和flat.vmdk文件
vmkfstools --inflatedisk /vmfs/volumes/DatastoreName/VMName/VMName.vmdk #精简置备转换至厚置备置零
vmkfstools --eagerzero /vmfs/volumes/DatastoreName/VMName/VMName.vmdk #厚置备延迟置零转换至厚置备置零
#转换前后的存储大小区别
20.0G converter-two-flat.vmdk #厚置备 延迟置零
64.0k converter-two.vmdk
7.9G converter-two_new-flat.vmdk #精简模式
64.0k converter-two_new.vmdk
#备份源vmdk将新生成的vmdk和flat.vmdk磁盘文件分别重命名为原有磁盘名称
$ mv converter-two_new.vmdk converter-two.vmdk
$ mv converter-two_new-flat.vmdk converter-two-flat.vmdk
#编辑 vmdk 文件,确保 # Extent description "converter-two-flat.vmdk" 为原有磁盘名称
$ cat converter-two.vmdk
# Extent description
RW 41932416 VMFS "converter-two-flat.vmdk"
#启动虚拟机检查是否工作正常,对比精简置备与厚置备大小
$ du -sh *500.0M converter-two-326dc793.vswp
-------------------------------------------------------------
#2.更改虚拟磁盘(vmdk)大小 (一定要删除所有快照进行操作)
$ disk -l /dev/sda #当前虚拟机虚拟磁盘大小
Disk /dev/sda: 21.4 GB, 21469396992 bytes
# 关闭虚拟机,登陆ESXI调整虚拟磁盘大小为40G
vmkfstools -X 40g converter-two.vmdk
# 开启虚拟机,验证虚拟磁盘大小
fdisk -l /dev/sda
Disk /dev/sda: 42.9 GB, 42949672960 bytes
0x03 硬件驱动
lspci 命令 - 列出当前系统PCI设备信息
描述: 常见的PCI设备比如显卡/网卡/HBA卡/Raid卡等等,默认情况下它显示一个简短的设备列表,对于输出的某些部分,特别是在高度冗长的模式中,可能只有经验丰富的PCI黑客才能理解。
注意:对PCI配置空间的某些部分的访问限制在许多操作系统上的根用户,因此lspci的特性对普通用户可用性是有限的。
所属软件包:pciutils-3.6.4
语法参数:1
2
3
4# [基础参数]
-m #Dump PCI device data in a backward-compatible machine readable form. See below for details.
-mm #Dump PCI device data in a machine readable form for easy parsing by scripts. See below for details.
-t # Show a tree-like diagram containing all buses, bridges, devices and connections between them.
基础示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73# 1.显示EXSI主机加载的HBA卡PCI适配器
[root@localhost:~] lspci | grep HBA
0000:04:00.0 Mass storage controller: LSI Dell 12Gbps SAS HBA external [vmhba3]
# 2.Linux主机种的PCI设备信息
$lspci
# 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
# 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
# 00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
# 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
# 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
# 00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
# 00:0f.0 VGA compatible controller: VMware SVGA II Adapter
# 00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
# 00:11.0 PCI bridge: VMware PCI bridge (rev 02)
# 3.Linux主机HBA设备识别信息查看与系统块查看
$lspci | grep "SAS"
# 01:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3108 [Invader] (rev 02)
# 04:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS3008 PCI-Express Fusion-MPT SAS-3 (rev 02) # 主机适配器标识 04:00.0
$ ll /sys/block/ | grep 04:00.0 # 主机适配器标识 04:00.0
lrwxrwxrwx 1 root root 0 Sep 11 16:57 sdb -> ../devices/pci0000:00/0000:00:02.0/0000:04:00.0/host4/port-4:2/end_device-4:2/target4:0:2/4:0:2:1/block/sdb/ # 获取存储设备LUN卷映射到主机的设备ID 4 0 2 1
lrwxrwxrwx 1 root root 0 Sep 11 16:57 sdc -> ../devices/pci0000:00/0000:00:02.0/0000:04:00.0/host4/port-4:2/end_device-4:2/target4:0:2/4:0:2:2/block/sdc/
lrwxrwxrwx 1 root root 0 Sep 11 15:15 sdd -> ../devices/pci0000:00/0000:00:02.0/0000:04:00.0/host4/port-4:1/end_device-4:1/target4:0:1/4:0:1:1/block/sdd/
lrwxrwxrwx 1 root root 0 Sep 11 15:15 sde -> ../devices/pci0000:00/0000:00:02.0/0000:04:00.0/host4/port-4:1/end_device-4:1/target4:0:1/4:0:1:2/block/sde/
# 4.以树形结构显示系统中的PCI设备
lspci -t -v| more
-+-[0000:ff]-+-08.0 Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 0
| +-08.2 Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 0
| +-08.3 Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 0
| +-09.0 Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 1
| +-09.2 Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 1
| +-09.3 Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D QPI Link 1
\-[0000:00]-+-00.0 Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DMI2
+-01.0-[01]----00.0 Broadcom / LSI MegaRAID SAS-3 3108 [Invader]
+-02.0-[04]----00.0 Broadcom / LSI SAS3008 PCI-Express Fusion-MPT SAS-3
# 5.查看硬件设备的驱动
spci -vvv | grep "Ethernet controller"
5e:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
5e:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
61:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 09)
61:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 09)
86:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
86:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
# 5e:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
# Subsystem: Gigabyte Technology Co., Ltd 82599ES 10-Gigabit SFI/SFP+ Network Connection
# Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
# Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
# Latency: 0, Cache Line Size: 32 bytes
# Interrupt: pin A routed to IRQ 133
# Region 0: Memory at c5800000 (64-bit, non-prefetchable) [size=2M]
# Region 2: I/O ports at 9020 [size=32]
# Region 4: Memory at c5a04000 (64-bit, non-prefetchable) [size=16K]
# Expansion ROM at c5600000 [disabled] [size=2M]
# Capabilities: <access denied>
# Kernel driver in use: ixgbe # 驱动名称
# Kernel modules: ixgbe
# 61:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 09)
# DeviceName: Intel Ethernet X722 #2
# Subsystem: Super Micro Computer Inc Device 37d2
# Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+
# Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
# Latency: 0, Cache Line Size: 32 bytes
# Interrupt: pin A routed to IRQ 36
# Region 0: Memory at c1000000 (64-bit, prefetchable) [size=16M]
# Region 3: Memory at c4000000 (64-bit, prefetchable) [size=32K]
# Expansion ROM at c5c00000 [disabled] [size=512K]
# Capabilities: <access denied>
# Kernel driver in use: i40e # 驱动名称
# Kernel modules: i40e
ethtool 命令
描述:查看你网卡
1 | #查看网卡驱动与esxcfg-nices可得更详细的网卡信息 |
esxcfg-nics 命令
描述:观察和配置物理网络接口卡(NIC),它显示网卡状态和配置的速度和全双工网卡使用情况的等信息。1
2
3
4
5
6
7#查看网卡网卡相关信息
[root@localhost:~] esxcfg-nics -l
Name PCI Driver Link Speed Duplex MAC Address MTU Description
vmnic0 0000:02:00.0 tg3 Up 100Mbps Full 18:66:da:55:a8:83 1500 Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic1 0000:02:00.1 tg3 Down 0Mbps Half 18:66:da:55:a8:84 1500 Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic2 0000:03:00.0 tg3 Down 0Mbps Half 18:66:da:55:a8:85 1500 Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
vmnic3 0000:03:00.1 tg3 Down 0Mbps Half 18:66:da:55:a8:86 1500 Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet
esxcfg-vmknic 命令
描述:EXSI主机配置VMkernel网络接口这是VMotion和连接到iSCSI和网络文件系统的网络存储设备所必要的。
基础示例:1
2
3
4
5# 获取可用 VMkernel 网络接口的列表:
$ esxcfg-vmknic -l
Interface Port Group/DVPort IP Family IP Address Netmask Broadcast MAC Address MTU TSO MSS Enabled Type
vmk0 iSCSI IPv4 10.10.10.10 255.255.255.0 10.10.10.255 00:50:56:XX:XX:64 9000 65535 true STATIC
vmk1 Management Network IPv6 fe80::6600:6aff:fe6c:14ca 64 64:00:6a:6c:14:ca 1500 65535 true STATIC, PREFERRED defaultTcpipStack
esxcfg-vswitch
描述:显示和配置虚拟交换机,它是在vSphere不能使用网络中有用的配置客户端;
该命令用于配置端口组和连接物理网卡(称为上行)配置虚拟局域网ID,思科协议(CDP)和vswitch中的MTU
。
1 | $ esxcfg-vswitch -l |
esxcfg-mpath 命令
描述:显示和设置一台主机从所有路径到达它的存储设备。
1 | [root@localhost:~] esxcfg-mpath -l |
esxfg-rescan 命令
描述: 让主机产生一个特定的存储适配器,用来发现新的存储设备。存储设备已被添加,删除或从存储网络改变都可以进行扫描显示;
基础语法1
2
3
4
5
6
7
8esxcfg-rescan -h
#esxcfg-rescan <vmkernel SCSI adapter name> #其中 <vmkernel SCSI adapter name> 为要重新扫描的 vmhba#。
esxcfg-rescan <options> <adapter>
-a|--add Scan for only newly added devices.
-d|--delete Scan for only deleted devices.
-A|--all Scan all adapters.
-u|--update Scan existing paths only and update their state.
-h|--help Display this message.
基础示例:1
2
3[root@localhost:~] esxcfg-rescan -a
Missing Adapter Name
[root@localhost:~] esxcfg-rescan -a vmhba33
esxcfg-scsidevs 命令
描述:显示存储器适配器相关数据以及硬件设备信息1
2
3
4
5[root@localhost:~] esxcfg-scsidevs -a
vmhba39 ahci link-n/a sata.vmhba39 (0000:00:1f.2) Intel Corporation Wellsburg AHCI Controller
vmhba0 lsi_mr3 link-n/a sas.51866da06f803b00 (0000:01:00.0) LSI PERC H730 Mini
vmhba1 ahci link-n/a sata.vmhba1 (0000:00:11.4) Intel Corporation Wellsburg AHCI Controller
vmhba3 lsi_msgpt3 link-n/a sas.51866da091944100 (0000:04:00.0) Avago (LSI Logic) Dell 12Gbps SAS HBA external
esxcfg-module 命令
1 | #查看Radi卡驱动 |
vmkmgmt_keyval 命令
描述:主要是对于虚拟机的EXSI管理以及硬件信息查看
1 | #查看HBA卡固件 |
vmkload_mod 命令
1 | #EXSI虚拟机内核模块加载信息查看 |
0x04 防火墙
esxcfg-ipsec 命令
描述:显示信息和配置内置的防火墙保护ESX服务控制台。它允许和阻止特定的TCP /IP服务之间的控制台和其他网络设备端口。
基础语法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33esxcfg-ipsec
esxcfg-ipsec <options>
--add-sa 添加安全关联 requires sa-src,sa-dst,spi, sa-mode, ealgo and ialgo
--add-sp 添加安全策略, requires sp-src, src-port,
sp-dst, dst-port, action, ulproto, dir, sp-mode
sa-name. Specify sa-name only for unique SA, otherwise specify 'auto'.
--remove-sa Remove the given Security Association from kernel.
--remove-sp Remove the given Security Policy from kernel.
--flush-sa Remove all SAs
--flush-sp Remove all SPs
-l|--list-sa List all SAs.
-L|--list-sp List all SPs.
--sa-src SA source IPv6 address <X:X:X:X>
--sp-src SP source IPv6 address and prefix length <X:X:X::/X>
--sa-dst SA destination IPv6 address <X:X:X:X>
--sp-dst SP destination IPv6 address and prefix length <X:X:X::/X>
--src-port Source Port for SP
--dst-port Destination Port for SP
--ulproto Upper layer protocol for SP <any|tcp|udp|icmp6>
any, tcp, udp or icmpv6
--dir Flow direction for SP <in|out>
--action Action for SP <none|discard|ipsec>.
--sa-mode SA mode <transport|tunnel>.
--sp-mode SP mode <transport|tunnel>.
--sa-name SA name. Specify 'auto' to let vmkernel automatically choose an SA.
If no applicable SA exists, then vmkernel may request one using IKE.
--spi SPI value for the SA.
--ealgo Encryption algorithm for the SA <null|3des-cbc|aes128-cbc>.
--ekey Encryption key (ASCII or hex). Length of hex key is dependent upon algorithm used.
(optional if ealgo is null).
--ialgo Integrity algorithm for the SA <hmac-sha1|hmac-sha2-256>.
--ikey Integrity key (ASCII or hex). Length of hex key is dependent upon algorithm used.
--ike-conf Pass an IKE config path to IKE daemon, this will copy the config to IKE config and restart
基础示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#显示防火墙策略设置
$ esxcfg-ipsec -l
SA Name Src Addr Dst Addr State SPI Mode Encrypt Algo Integrity Algo Lifetime
#To add a SA(安全关联)
esxcfg-ipsec --add-sa --sa-src x:x:x:: --sa-dst x:x:x:: --sa-mode transport --ealgo null --spi 0x200 --ialgo hmac-sha1 --ikey key saname
#to add a SP(安全策略)
esxcfg-ipsec --add-sp --sp-src x:x::/x --sp-dst x:x::/x --src-port 100 --dst-port 200 --ulproto tcp --dir out --action ipsec --sp-mode transport --sa-name saname spname
esxcfg-ipsec --add-sp --sp-src any -sp-dst any --src-port any --dst-port any --ulproto any --dir out --action ipsec --sp-mode transport --sa-name saname spname
esxcfg-ipsec --add-sp --sp-src x:x::/x --sp-dst x:x::/x --src-port 100 --dst-port 200 --ulproto tcp -dir out --action discard spname
#删除安全关联何策略
esxcfg-ipsec --remove-sa saname #To delete a SA
esxcfg-ipsec --remove-sp spname #To delete a SP
#To delete an auto SA
esxcfg-ipsec --remove-sa --sa-src x:x:x:: --sa-dst x:x:x:: --spi 0x300 auto
#To flush all SPs
esxcfg-ipsec --flush-sp
0x05 管理命令
esxcli 命令
描述:这是一个管理EXSI的客户端管理的命令,他有非常丰富的二级命令可监控管理EXSI虚拟机;
software
1 | #显示安装的HBA卡软件驱动vib列表 |
system
1 | # 系统版本信息 |
storage
1 | #该命令类似于esxcfg-scsidevs -a命令 |
network
描述:控制台通过客户端命令进行查看测试EXSI网络信息;1
2#1.VXLAN 具有其自己的 vmkernel 网络堆栈,因此必须使用以下任一语句从 ESXi 控制台执行对传输 VLAN 中两个不同 vmknic 之间的 ping 连接性测试:
esxcli network diag ping --netstack=vxlan --host <vmknic IP> --df --size=<packet size>
0x06 系统配置
ntpq 命令
描述:使用 NTP Query 实用程序 ntpq 远程查询 ESXi/ESX 主机的 ntpd 服务。该实用程序通常安装在 Linux 客户端上,在 ESX 服务控制台和 vSphere Management Assistant 中也提供;
基础示例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 1.要使用 NTP Query 实用程序 ntpq 远程查询 ESX 主机的 NTP 服务 (ntpd),并确定其是否成功与上游 NTP 服务器同步,请执行以下操作:
$ntpq -p 127.0.0.1
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.10.254 144.76.76.107 3 u 53 64 377 1.158 0.805 0.058
# 字段含义说明:
remote #已配置的上游 NTP 服务器的主机名或 IP 地址。
refid #与 NTP 服务器同步的时间流的标识。如果收到的 refid 为“.INIT.”,则说明 ESXi/ESX 主机未从已配置的 NTP 服务器收到响应。
st #Stratum 值代表上游 NTP 服务器的层次结构。值越高,表明 NTP 服务器越偏离根时间源。这些值是相对值,可以通过 NTP 服务器手动设置。
t #用于 NTP 通信的软件包交换类型。通常“u”表示单播 UDP。
when #自上次尝试轮询已配置的上游 NTP 服务器以来所经过的时间(秒)。
poll #ESXi/ESX 主机轮询已配置的 NTP 服务器的间隔(秒)。
reach #8 位八进制 (base 8) 的移位寄存器,在连接已配置的 NTP 服务器时,每一位代表成功 (1) 或失败 (0)。值 377 是 11111111 (base 2),指出在上 8 个轮询间隔期间,每个查询均已成功。
delay #已配置的 NTP 服务器与 ESXi/ESX 主机之间通信的往返延迟(毫秒)。
offset #已配置 NTP 服务器与 ESXi/ESX 主机之间的时间偏移(毫秒)。理想值为接近 0 的值。
jitter #在已配置 NTP 服务器的时间时钟脉冲之间观察到的时间抖动或偏差。理想值为接近 0 的值。
默认情况下ESXi/ESX 使用 NTPv4,但某些 NTP 源会使用 NTPv3 ,此类版本不匹配问题将导致同步失败。要解决此问题必须更新 /etc/ntp.conf
文件以包含要使用的版本。1
2
3
4
5
6
7
8
9
10$cat /etc/ntp.conf
restrict 127.0.0.1
restrict default kod nomodify notrap
driftfile /etc/ntp.drift
server 192.168.0.10 version 3
#注意:要检查最终 ntpq 偏移的延迟,可使用以下命令创建名为 /var/log/ntp 的文件夹 `mkdir /var/log/ntp`
statistics loopstats
statsdir /var/log/ntp/
filegen peerstats file peers type day link enable
filegen loopstats file loops type day link enable
注意事项:
- 如果收到消息“No association ID’s returned”,ESXi/ESX 主机将无法连接已配置的 NTP 服务器。如果收到消息“***Request timed out”,则说明 ntpq 命令未从 ESXi/ESX 主机的 NTP 守护进程收到响应。
- 如果显示类似以下内容的消息,则表明
ntpd
成功连接到远程 NTP 服务器:ntpd[263140]:synchronized to **, stratum **
- 如果显示类似以下内容的消息,则表明 ESXi/ESX 主机与远程 NTP 服务器之间的时间偏移过高,无法自动更正。手动设置 ESXi/ESX 主机时间,并再次启动 NTP 守护进程。
ntpd[263140]:** 秒的时间更正超出健全性限制 (1000);手动设置时钟以更正 UTC 时间。
- 如果显示类似以下内容的消息,则表明 ESXi/ESX 主机与远程 NTP 服务器之间的时间错误超出了步进阈值。NTP 守护进程已更正 ESXi/ESX 主机时间,以便在一个大跳跃中与 NTP 服务器相匹配。无需执行任何操作。
ntpd[263140]:time reset "+/- "
- 如果显示类似以下内容的消息,则表明 ESXi/ESX 主机与远程 NTP 服务器之间的时间错误超出了步进阈值。NTP 守护进程将缓慢更正 ESXi/ESX 主机的时间,以与 NTP 服务器相匹配。无需执行任何操作。
ntpd[263140]:time slew "+/- "
- VMware 建议仅配置一次服务(netlogond 或 ntp)。但是如果需要将 NTP 与 Active Directory (AD) 结合使用,则配置 AD 服务器以使用可靠的时间源,并配置 ESXi/ESX 主机的 NTP 服务器以使用此 AD 服务器或者 AD 正在使用的 NTP 服务器。