确定 ESXi 中的网络/存储固件和驱动程序版本 (1027206)

一、确定 ESXi 中的网络/存储固件和驱动程序版本 (1027206)

https://kb.vmware.com/s/article/1027206?lang=zh_cn

【系统相关】

获取esxi版本

vmware -v

esxcli system version get

查看系统时间

esxcli system time get

e.g.

esxcli system time set <options>

修改系统时间,例子:

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

[root@localhost:~] esxcli system time set -y=2020 -M=6 -d=29 -H=14 -m=16

esxcli system – 通过该命令使你能够控制ESXi的高级选项,比如设置syslog并管理主机状态。

# 查看是否为维护模式

esxcli system maintenanceMode get

esxcli system maintenanceMode set --enable true/false # ESXi主机进入/退出,维护模式

# 系统重启/关机(必须处于维护模式,否则命令不生效)

esxcli system shutdown reboot/poweroff

# 查看所有虚拟机姓名和Vmid

vim-cmd vmsvc/getallvms

【网络相关】

# 查看网卡状态

esxcfg-vmknic -l

# 查看服务器自身IP地址

esxcli network ip interface ipv4 get

# 获取所有虚拟机名字和IP地址

for item in `vim-cmd vmsvc/getallvms |grep -v Vmid| awk '{print $1}'`;do vim-cmd vmsvc/get.summary $item | grep -E "ipAddress|hostName";done

# 查宿主机下每个对应的mac

net-stats -l

# 查看路由表

esxcli network ip route ipv4 list

# 查看ESXi主机网卡列表(nic)或up-link列表

esxcli network nic list

# 关闭/打开vmnic1接口

esxcli network nic down/up -n=vmnic1

esxcli network –需要监控vSphere网络并对如下网络组件进行调整时,包括虚拟交换机、VMkernel网络接口、防火墙以及物理网卡等

【防火墙相关】--2020.7.30更新

esxcli network firewall

# 已经开启的服务

esxcli network firewall ruleset list | grep "true"

# 防火墙允许的IP地址

esxcli network firewall ruleset allowedip list

# 批量授权某个IP访问开启的所有服务

for item in `esxcli network firewall ruleset list |grep "true"|awk '{print $1}'`;do esxcli network firewall ruleset allowedip add --ip-address "192.168.x.x" --ruleset-id "$item";done;esxcli network firewall ruleset allowedip list

【硬件相关】

# 获取ESXi主机的硬件及配置信息

esxcli hardware

esxcli hardware cpu list – 获取CPU信息(系列、型号以及缓存)

esxcli hardware memory get – 获取内存信息(可用内存以及非一致内存访问)

# 查看磁盘列表

esxcli storage – 可能是最常用的esxcli命令命名空间之一,包括了管理连接到vSphere的存储的所有信息。

esxcli storage core device list – 列出当前存储设备

esxcli storage core device vaai status get –获得存储设备支持的VAAI的当前状态。

# 查看磁盘raid情况

esxcli storage core device list |grep -E "Level|Drives|Vendor|Device Type|Model|Status:"|grep -Ev "unknow|VAAI"|head -7

PS:这里看到硬盘状态为“degraded”(降级)

【服务相关】

# 重启所有的服务

services.sh restart

【软件相关】

esxcli software – 软件命名空间可以用于检索ESXi主机已安装的软件及驱动并可以安装新组件。

esxcli software vib list – 列出ESXi主机上已经安装的软件及驱动。

【脚本相关】

计划任务路径:

cat /var/spool/cron/crontabs/root

# 获取虚拟机列表

vim-cmd vmsvc/getallvms

获取vm状态

vim-cmd vmsvc/power.getstat [vmid]

关闭虚机

vim-cmd vmsvc/power.shutdown [vmid]

vim-cmd vmsvc/power.off [vmid] # 强制关闭

长期脚本存放路径

vi /etc/rc.local.d/local.sh # 内容写在exit 0 之前

# Esxi 开机脚本

#/bin/bash

# author:jerry

# create date:2017-8-29

# last update:2018-7-30

status=`vim-cmd /hostsvc/hostsummary | grep inMaintenanceMode|cut -c 27`

[ $status == "t" ] && vim-cmd hostsvc/maintenance_mode_exit 1&> /dev/nullfor on in `vim-cmd vmsvc/getallvms |awk'{print $1}'|tail -n 12`

doif [ $on -eq 11 ]

then

continue

else

vim-cmd vmsvc/power.on $on

sleep30fidone

# Esxi 关机脚本

#!/bin/sh

# author:jerry

# create date:2017-7-27

# last update:2018-7-30

off=`esxcli vm process list|grep World |awk'{print $3}'|wc -l`

status=`vim-cmd /hostsvc/hostsummary | grep inMaintenanceMode|cut -c 27`

if [ $off == 0 ] ;then

[ $status == "f" ] && vim-cmd hostsvc/maintenance_mode_enter 1&> /dev/null && sleep10 && halt || halt

else

hostsum=`vim-cmd vmsvc/getallvms|awk'NR>1{print $1}'|wc -l`

vim-cmd vmsvc/getallvms|awk'NR>1{print $1}'>tmp.txt

for i in `seq1 $hostsum`

do

vid=`sed -n "$i p" ./tmp.txt`

on=`vim-cmd vmsvc/power.getstate $vid |tail -1|awk'{print $2}'2&>/dev/null`

if [ $on == on ] ;then

vim-cmd vmsvc/power.shutdown $vid 1&>/dev/nullsleep5fidonerm -rf ./tmp.txt

off=`esxcli vm process list|grep World|awk'{print $3}'|wc -l`

if [ $off == 0 ] ;then

vim-cmd hostsvc/maintenance_mode_enter 1&> /dev/nullsleep10

halt

elseps |grep vmx|awk'{print $2}' |uniq >tmp.txt

on=`ps |grep vmx|awk'{print $2}' |uniq |wc -l`

for i in `seq1 $on`

do

hostid=`sed -n " $i p " ./tmp.txt`

kill $hostid 1&> /dev/nulldonerm -rf ./tmp.txt

vim-cmd hostsvc/maintenance_mode_enter 1&> /dev/nullsleep10

halt

fifi

ESXI 更新 安装补丁

参考文档:使用“esxcli software vib”命令修补 ESXi 6.x/7.x 主机 (2008939)


第一步,虚拟机关机,ESXI 主机进入维护模式,开启 SSH

第二步,上传补丁 zip 文件,记住目录,如

/vmfs/volumes/data/VMware-ESXi-7.0U3g-20328353-depot.zip

第三步,查看升级模块的名称

执行下步后,看到模块名 ESXi-7.0U3g-20328353-standard

esxcli software sources profile list -d /vmfs/volumes/data/VMware-ESXi-7.0U3g-20328353-depot.zip

第四步,查看有无不兼容的驱动

esxcli software profile install -d /vmfs/volumes/data/VMware-ESXi-7.0U3g-20328353-depot.zip -p ESXi-7.0U3g-20328353-standard --dry-run

如有,先卸载老版本的不兼容驱动,使用 esxcli software vib list 与 esxcli software vib remove -n sata-xahci 命令

可参考 https://blog.51cto.com/fxn2025/2552095

第五步,正式更新升级

esxcli software profile update -d /vmfs/volumes/data/VMware-ESXi-7.0U3g-20328353-depot.zip -p ESXi-7.0U3g-20328353-standard

install 命令会覆写组件,可能引起不稳定,慎用

esxcli software profile install -d /vmfs/volumes/150/update/VMware-ESXi-7.0U3d-19482537-depot.zip -p ESXi-7.0U3d-19482537-standard

第六步,重启 ESXI 主机,查看版本号

reboot

vmware -v

vmware -l


使用 esxcli software vib 命令,也能升级组件,但似乎升级不完全,升级完后版本不变,不知道具体原因,也不清楚该命令与上一种方法的区别。

进行更新

esxcli software vib update -d /vmfs/volumes/data/VMware-ESXi-7.0U3g-20328353-depot.zip

验证 VIB 是否已安装在 ESXi 主机上

esxcli software vib list