n1.vSphere命令参数使用学习一览

2020-10-23 17:44:04 浏览数 (1)

[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命令;

EXSi 操作系统命令一览:

代码语言:javascript复制
# 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主机的相关版本信息

代码语言:javascript复制
[[email protected]:~] 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和网络存储的问题。

基础示例:

代码语言:javascript复制
#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 流量:
[[email protected]:~] 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

[[email protected]:~] 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>
[[email protected]:~] 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异曲同工之妙;

代码语言:javascript复制
$ estop
5:02:37am up 35 days 10:28, 570 worlds, 8 VMs, 30 vCPUs; CPU load average: 0.17, 0.17, 0.17
PCPU USED(%): 9.4 8.5 9.9 6.4  10 9.7 8.5 8.1 AVG: 8.8
PCPU UTIL(%):  11 9.7  10 7.7  11  10 9.7 8.6 AVG: 9.9
CORE UTIL(%):  18      16      18      16     AVG:  17
      ID      GID NAME             NWLD   %USED    %RUN    %SYS   %WAIT %VMWAIT    %RDY   %IDLE  %OVRLP   %CSTP
 3443044  3443044 K8S-Master-211      9   17.12   18.15    0.16  896.85    0.00    1.60  387.85    0.11    0.00
vim-cmd 命令

描述:Vimsh是一个强大的交互式框架,有很多允许执行的命令,以及具备显示和配置能力,而vim-cmd是是一种逻辑的vimsh,能够简化vimsh,无需知道很多前端交换命令。

代码语言:javascript复制
# 查看可用命令
[[email protected]:~] vim-cmd hostsvc/
Commands available under hostsvc/:

# 进入或者退出维护模式
vim-cmd /hostsvc/maintenance_mode_enter
vim-cmd /hostsvc/maintenance_mode_exit

WeiyiGeek.

esxcfg-info 命令

描述:提供了有关运行中的主机信息,它可以重新定向到一个文本文件记录主机配置即导出为xml或者perl解析格式。

基础信息:

代码语言:javascript复制
#主机信息
$ 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存档文件方式输出

代码语言:javascript复制
#常用于故障排除,它可以进行信息收集
[[email protected]:~] vm-support
06:42:45: Creating /var/tmp/esx-localhost-2019-12-06--06.42.tgz
06:43:05: Gathering output from /usr/sbin/localcli --plugin-dir /usr/lib/vmware/esxcli/int systemInternal coredump06:43:05: Gathering output from /usr/sbin/vmkerrcode -l 

[[email protected]:~] ls -lah /var/tmp/esx-localhost-2019-12-06--06.42.tgz
-rwx------    1 root     root       67.8M Dec  6 06:46 /var/tmp/esx-localhost-2019-12-06--06.42.tgz

WeiyiGeek.

esxupdate 命令

描述:ESX和ESXi主机和打补丁, Esxupdate 用于ESX服务控制台和vihostupdate通过RCLI / vSphere CLI使用。此外vihostupdate35是用来修补ESX和ESXi 3.5版主机。

代码语言:javascript复制
[[email protected]:~] esxupdate
Options:
  -h, --help             show this help message and exit
  --HA                   HA mode only, required

####

0x02 磁盘管理

df 命令

描述:该不会显示虚拟机文件系统(VMFS)卷,因为它无法阅读。

代码语言:javascript复制
[[email protected]:~] 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

代码语言:javascript复制
[[email protected]:~] $vdf -h
Tardisk                  Space      Used
sb.v00                    139M      139M
s.v00                     315M      315M
lsi_mr3.v00               280K      277K
lsi_msgp.v00              460K      456K
bnxtnet.v00               412K      408K
net_tg3.v00               300K      298K

-----
Ramdisk                   Size      Used Available Use% Mounted on
root                       32M      240K       31M   0% --
etc                        28M      224K       27M   0% --
opt                        32M        0B       32M   0% --
var                        48M      452K       47M   0% --
tmp                       256M        4K      255M   0% --
iofilters                  32M        0B       32M   0% --
hostdstats                303M        5M      297M   1% --

# resource pool view (资源池查看)
[[email protected]:~] $vdf -ph
-----
Ramdisk                    Min       Max      Used  Sure avl Maybe avl Peak used
root                       32M       32M      240K       31M       31M      240K
etc                        28M       28M      224K       27M       27M      256K
opt                         0B       32M        0B        0B       32M        0B
var                         5M       48M      452K        4M       47M      516K
tmp                         2M      256M        4K        1M      255M      296K
iofilters                   0B       32M        0B        0B       32M        0B
hostdstats                  0B      303M        5M        0B      297M        5M
vmkfstools 命令

描述:虚拟磁盘工具被比做虚拟磁盘中的瑞士军刀,可用于复制、转换、重命名、输入、输出和调整虚拟磁盘文件的大小。

前面我们讲解虚拟磁盘类型:

  • 厚置备 延迟置零 (默认选项):创建过程中为虚拟磁盘分配所需空间。创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零 ;
  • 厚置备 置零 : 创建支持群集功能的厚磁盘,在创建时为虚拟磁盘分配所需的空间,创建中会将物理设备上保留数据置零。创建所需的时间可能会比创建其他类型的磁盘长。
  • 精简置备: 使用该磁盘最初所需要的数据存储空间,简单的说就是当前磁盘有多大的数据就存储占用磁盘多大的空间,存在一个问题精简配置只增长不收缩;

vmdk有两种文件类型:

  • 虚拟机名.vmdk,文件很小,存放了虚拟磁盘的一些配置信息(如虚拟磁盘数据文件等);
  • 虚拟机名-flat.vmdk,实际数据都存放在flat.vmdk文件中转换时需要使用vmdk文件而不是flat.vmdk文件

语法命令:

代码语言:javascript复制
#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

操作实例:

代码语言:javascript复制
#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 语法参数:

代码语言:javascript复制
# [基础参数]
-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.

基础示例:

代码语言:javascript复制
# 1.显示EXSI主机加载的HBA卡PCI适配器
[[email protected]:~] 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
ethtool 命令

描述:查看你网卡

代码语言:javascript复制
#查看网卡驱动与esxcfg-nices可得更详细的网卡信息
[[email protected]:~] ethtool -i vmnic0
driver: tg3
version: 3.131d.v60.4
firmware-version: FFV20.2.17 bc 5720-v1.39
bus-info: 0000:02:00.0
esxcfg-nics 命令

描述:观察和配置物理网络接口卡(NIC),它显示网卡状态和配置的速度和全双工网卡使用情况的等信息。

代码语言:javascript复制
#查看网卡网卡相关信息
[[email protected]:~] 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和网络文件系统的网络存储设备所必要的。

基础示例:

代码语言:javascript复制
# 获取可用 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

代码语言:javascript复制
$ esxcfg-vswitch -l
# Switch Name      Num Ports   Used Ports  Configured Ports  MTU     Uplinks
# vSwitch0         1792        13          128               1500    vmnic0

#   PortGroup Name        VLAN ID  Used Ports  Uplinks
#   VM Network            0        9           vmnic0
#   Management Network    0        1           vmnic0
esxcfg-mpath 命令

描述:显示和设置一台主机从所有路径到达它的存储设备。

代码语言:javascript复制
[[email protected]:~] esxcfg-mpath -l
sata.vmhba32-sata.0:0-t10.ATA_____TOSHIBA_MQ01ACF050____________________________
   Runtime Name: vmhba32:C0:T0:L0
   Device: t10.ATA_____TOSHIBA_MQ01ACF050_________________________________957EWA
   Device Display Name: Local ATA Disk (t10.ATA_____TOSHIBA_MQ01ACF050__________
   Adapter: vmhba32 Channel: 0 Target: 0 LUN: 0
   Adapter Identifier: sata.vmhba32
   Target Identifier: sata.0:0
   Plugin: NMP
   State: active
   Transport: sata
esxfg-rescan 命令

描述: 让主机产生一个特定的存储适配器,用来发现新的存储设备。存储设备已被添加,删除或从存储网络改变都可以进行扫描显示;

基础语法

代码语言:javascript复制
esxcfg-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.

基础示例:

代码语言:javascript复制
[[email protected]:~] esxcfg-rescan -a
Missing Adapter Name
[[email protected]:~] esxcfg-rescan -a vmhba33
esxcfg-scsidevs 命令

描述:显示存储器适配器相关数据以及硬件设备信息

代码语言:javascript复制
[[email protected]:~] 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 命令
代码语言:javascript复制
#查看Radi卡驱动     
$ esxcfg-module -i lsi_mr3 | more
input file: /usr/lib/vmware/vmkmod/lsi_mr3
License: GPLv2
Version: 6.605.08.00-7vmw.600.1.17.3029758
Name-space:
Required name-spaces:
[email protected]_3_0_0
Parameters:
max_sectors: int
  Maximum number of sectors per IO command
mfiDumpFailedCmd: int
  Hex dump of failed command in driver log

#EXSI6.5上禁用(disable) lsi_msgpt3
$ esxcfg-module -d lsi_msgpt3
vmkmgmt_keyval 命令

描述:主要是对于虚拟机的EXSI管理以及硬件信息查看

代码语言:javascript复制
#查看HBA卡固件
/usr/lib/vmware/vmkmgmt_keyval/vmkmgmt_keyval -a
Listing all system keys:
Key Value Instance:  lsi_msgpt3_0/LSI
Listing keys:
Name:   DriverVersion
Type:   string
value:  16.00.01.00
Name:   HBAModel
Type:   string
value:  Avago (LSI) HBA 1000:97:1028:1f46
Name:   FWVersion
Type:   string
value:  Fw Rev. 09.00.09.00
Name:   ChipRevision
Type:   string
value:  Chip rev. 0x02
Name:   CtrlSASAddress
Type:   string
value:  sas.51866da091944100
Name:   CtrlStatus
Type:   string
value:  FwState 0x20000000
Name:   CtrlLoggingLevel
Type:   string
value:  logging_level(4-Bytes)=0x00000000
vmkload_mod 命令
代码语言:javascript复制
#EXSI虚拟机内核模块加载信息查看
$ vmkload_mod -s lsi_msgpt3 | grep Version
Version: 06.255.12.00-8vmw.600.1.17.3029758

0x04 防火墙

esxcfg-ipsec 命令

描述:显示信息和配置内置的防火墙保护ESX服务控制台。它允许和阻止特定的TCP /IP服务之间的控制台和其他网络设备端口。 基础语法:

代码语言:javascript复制
esxcfg-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

基础示例:

代码语言:javascript复制
#显示防火墙策略设置
$ 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
代码语言:javascript复制
#显示安装的HBA卡软件驱动vib列表
[[email protected]:~] esxcli software vib list | grep lpfc
lpfc                           10.2.309.8-2vmw.600.0.0.2494585       VMware    VMwareCertified     2016-09-07

[[email protected]:~] esxcli software vib list | grep "msgpt3"
lsi-msgpt3                     06.255.12.00-8vmw.600.1.17.3029758    VMware    VMwareCertified     2016-09-07
lsu-lsi-lsi-msgpt3-plugin      1.0.0-1vmw.600.0.0.2494585            VMware    VMwareCertified     2016-09-07


#安装网卡或者HBA卡驱动
esxcli software vib install -v /tmp/net-i40e_2.0.7-1OEM.600.0.0.2494585.vib
esxcli software vib install -d /tmp/net-i40e_2.0.7-1OEM.600.0.0.2494585.zip

#移除网卡或者HBA卡驱动
esxcli software vib remove -n net-i40e
esxcli software vib remove –n lsi-msgpt3

#执行完成后重启生效:
reboot
system
代码语言:javascript复制
# 系统版本信息
$esxcli system version get
# Product: VMware ESXi
#    Version: 6.0.0
#    Build: Releasebuild-2494585
#    Update: 0
#    Patch: 0

# 要在ESXi 6.0和5.5上禁用lsi_msgpt3 模块请运行
esxcli system module set --enabled=false --module=lsi_msgpt3

# 硬件与软件时间设定与信息查看
# Usage: esxcli system time set [cmd options]
# Description:
#   set                   Set the system clock time. Any missing parameters will default to the current time
# Cmd options:
#   -d|--day=<long>       Day
#   -H|--hour=<long>      Hour
#   -m|--min=<long>       Minute
#   -M|--month=<long>     Month
#   -s|--sec=<long>       Second
#   -y|--year=<long>      Year
esxcli system time set -y 2020 -M 07 -d 12 -H 17 -m 52 -s 35
esxcli hardware clock set -y 2020 -M 07 -d 12 -H 17 -m 52 -s 35
esxcli system time get
storage
代码语言:javascript复制
#该命令类似于esxcfg-scsidevs -a命令
[[email protected]:~] esxcli storage core adapter list
HBA Name  Driver   Link State  UID                   Capabilities  Description
--------  -------  ----------  --------------------  ------------  ----------------------------------------------------------
vmhba38   ahci     link-n/a    sata.vmhba38                        (0000:00:1f.2) Intel Corporation Wellsburg AHCI Controller
vmhba39   ahci     link-n/a    sata.vmhba39                        (0000:00:1f.2) Intel Corporation Wellsburg AHCI Controller
vmhba0    lsi_mr3  link-n/a    sas.51866dd06f813b00                (0000:01:00.0) LSI PERC H730 Mini
vmhba1    ahci     link-n/a    sata.vmhba1                         (0000:00:11.4) Intel Corporation Wellsburg AHCI Controller
vmhba2    ahci     link-n/a    sata.vmhba2                         (0000:00:1f.2) Intel Corporation Wellsburg AHCI Controller


#列出ESXi主机的所有LUN的路径信息(若挂载的磁盘较多打印信息会较多)
[[email protected]:~] esxcli storage core path list
fc.20000024ff2969e3:21000024ff2969e3-fc.500b34200ff50800:500b34200ff50803-naa.600b3428259
e037de06fd0f2ed0000d8   
   UID: fc.20000024ff2969e3:21000024ff2969e3-fc.500b34200ff50800:500b34200ff50803-naa.600
b3428259e037de06fd0f2ed0000d8   Runtime Name: vmhba3:C0:T3:L1
   Device: naa.600b3428259e037de06fd0f2ed0000d8
   Device Display Name: MacroSAN Fibre Channel Disk (naa.600b3428259e037de06fd0f2ed0000d8
)   Adapter: vmhba3
   Channel: 0
   Target: 3
   LUN: 1
   Plugin: NMP
   State: active
   Transport: fc
   Adapter Identifier: fc.20000024ff2969e3:21000024ff2969e3
   Target Identifier: fc.500b34200ff50800:500b34200ff50803
   Adapter Transport Details: WWNN: 20:00:00:24:ff:29:69:e3 WWPN: 21:00:00:24:ff:29:69:e3
   Target Transport Details: WWNN: 50:0b:34:20:0f:f5:08:00 WWPN: 50:0b:34:20:0f:f5:08:03
   Maximum IO Size: 33553920
#若要查询LUN的详细路径信息,可使用如下命令列出某个卷的信息。
[[email protected]:~] esxcli storage core path list -d naa.61866da089f2cf001fe33f1f14adc14f #其中-d参数加上该lun的wwn号
sas.51866da089f2cf00-sas.60e33f1f14adc14f-naa.61866da089f2cf001fe33f1f14adc14f
   UID: sas.51866da089f2cf00-sas.60e33f1f14adc14f-naa.61866da089f2cf001fe33f1f14adc14f
   Runtime Name: vmhba0:C2:T0:L0
   Device: naa.61866da089f2cf001fe33f1f14adc14f
   Device Display Name: DELL Serial Attached SCSI Disk (naa.61866da089f2cf001fe33f1f14adc14f)
   Adapter: vmhba0
   Channel: 2
   Target: 0
   LUN: 0
   Plugin: NMP
   State: active
   Transport: sas
   Adapter Identifier: sas.51866da089f2cf00
   Target Identifier: sas.60e33f1f14adc14f
   Adapter Transport Details: 51866da089f2cf00
   Target Transport Details: 60e33f1f14adc14f
   Maximum IO Size: 131072

# 查询当前系统所有lun的active的路径条数
# 若该数值减去系统盘的路径=存储分配的路径数量,表明当前识别路径数量正确。
[[email protected]:~] esxcli storage core path list  | grep "State: active" | wc -l
5

# 查询单独某个LUN的路径的数量,以LUN:2为例
[[email protected]:~] esxcli storage core path list  | grep "LUN: 2" | wc -l


#列出连接到ESXi的LUN列表
[[email protected]:~] esxcli storage core device list
  naa.600b34236b6535ddb013d87d6d5a00d8
  Display Name: MacroSAN Fibre Channel Disk (naa.600b34236b6535ddb013d87d6d5a00d8)
  Has Settable Display Name: true
  Size: 2097152
  Device Type: Direct-Access 
  Multipath Plugin: NMP
  Devfs Path: /vmfs/devices/disks/naa.600b34236b6535ddb013d87d6d5a00d8
  Vendor: MacroSAN
  Model: LU
  Revision: 1.0
  SCSI Level: 5
  Is Pseudo: false
  Status: on
  Is RDM Capable: true
  Is Local: false
  Is Removable: false
  Is SSD: false
  Is VVOL PE: false
  Is Offline: false
  Is Perennially Reserved: false
  Queue Full Sample Size: 0
  Queue Full Threshold: 0
  Thin Provisioning Status: unknown
  Attached Filters: 
  VAAI Status: supported
  Other UIDs: vml.0200030000600b34236b6535ddb013d87d6d5a00d84c5500000000
  Is Shared Clusterwide: true
  Is Local SAS Device: false
  Is SAS: false
  Is USB: false
  Is Boot USB Device: false
  Is Boot Device: false
  Device Max Queue Depth: 64
  No of outstanding IOs with competing worlds: 32
  Drive Type: unknown
  RAID Level: unknown
  Number of Physical Drives: unknown
  Protection Enabled: false
  PI Activated: false
  PI Type: 0
  PI Protection Mask: NO PROTECTION
  Supported Guard Types: NO GUARD SUPPORT
  DIX Enabled: false
  DIX Guard Type: NO GUARD SUPPORT
  Emulated DIX/DIF Enabled: false
network

描述:控制台通过客户端命令进行查看测试EXSI网络信息;

代码语言:javascript复制
#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 中也提供;

基础示例:

代码语言:javascript复制
# 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 文件以包含要使用的版本。

代码语言:javascript复制
$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 服务器。

0 人点赞