简介
本文档介绍如何在思科统一计算系统(UCS)上为常见操作系统安装设备驱动程序。
先决条件
要求
Cisco 建议您了解以下主题:
- Cisco UCS Manager
- 思科集成管理控制器(CIMC)
- 虚拟机软件(VMware)、Windows Server或Linux操作系统(OS)
使用的组件
本文档中的信息基于以下硬件平台:
"本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解任何命令的潜在影响。”
背景信息
驱动程序定义
设备驱动程序是操作系统与硬件之间的接口软件。设备驱动程序将一般的OS命令转换为特定设备的专用命令,从而允许OS与硬件设备通信。
需要驱动程序的设备
以下是需要设备驱动程序的硬件设备列表:
- 以太网网络接口卡(ENIC)
- 光纤通道网络接口卡(FNIC)
- 独立磁盘冗余阵列(RAID)控制器
- 主板芯片组
- 显卡
- 可信平台模块(TPM)
驱动程序与固件
设备驱动程序与固件不同。设备驱动程序软件安装在操作系统上,而固件是安装在硬件设备上的较低级别的代码。固件存储在非易失性存储器中,例如ROM、可擦除可编程ROM(EPROM)或闪存器。
驱动程序对固件的依赖
设备驱动程序对设备固件有很强的依赖性。设备驱动程序必须与硬件设备的固件级别兼容,以便它们能够正确地相互通信;驱动程序和固件功能必须匹配才能进行正确的操作。
必须安装和更新驱动程序时
设备驱动程序预装在操作系统中(例如Cisco OEM VMware ESXi映像),也可以在OS安装后手动安装。
通常,在下列步骤后需要更新设备驱动程序:
需要的驱动程序版本
UCS硬件和软件互操作性表概述了特定操作系统、设备和固件组合所需的驱动程序版本。
警告:矩阵中列出的驱动程序版本已经过思科工程质量保证团队的测试和验证,因此安装正确的驱动程序至关重要;否则,会出现可能导致网络中断的意外行为。
本示例显示,在UCS版本3.2.2上,具有运行ESXi 6.0 U3的虚拟接口卡(VIC)1240的B200 M4需要1.6.0.36版本的FNIC驱动程序。
下载驱动程序捆绑包
要下载驱动程序捆绑包,请完成以下步骤:
- 在Web浏览器中,导航至https://www.cisco.com
- 在支持下,单击下载软件。
- 单击Unified Computing and Servers。
- 选择您的服务器。Cisco UCS驱动程序可用于Cisco UCS B系列刀片服务器和Cisco UCS C系列机架安装。
- 单击Unified Computing System(UCS)Drivers。
- 选择要下载的捆绑包,然后单击Download Now。
提示:选择要下载的驱动程序捆绑包时,必须选择与服务器固件版本最相似的驱动程序捆绑包版本。例如,如果您运行UCS-B版本3.2(2b),则需要VMware驱动程序套件ucs-bxxx-drivers-vmware.3.2.2.iso。
提示:大多数VMware ESXi驱动程序直接从VM Ware下载,并搜索驱动程序版本。这通常比下载整个驱动程序捆绑包更快。
确定服务器硬件
在选择正确的驱动程序之前,必须确定服务器上安装了哪些硬件设备。 本节介绍如何查找UCS Manager和CIMC中的设备。
UCS B系列
此示例显示如何在UCS Manager中查找服务器资产。服务器1/1安装了两个适配器型号:VIC 1240。
UCS C系列
此示例说明如何在CIMC中查找服务器硬件设备。服务器安装了Cisco12G ModularSAS HBA RAID控制器。
确定UCS固件版本
在选择正确的驱动程序版本之前,必须确定UCS版本。本节介绍如何识别服务器上安装的当前UCS版本。
UCS B系列
在本示例中,UCS B系列运行UCS版本4.1(3h)
UCS C系列
在本示例中,UCS C系列运行UCS版本4.1(2f)。
操作系统具体信息
本节介绍如何检查驱动程序版本以及如何将驱动程序安装在常见操作系统上。
VMware ESXi
使用以下命令检查当前驱动程序版本和VMware内部版本:
提示:这些命令从ESXi CLI执行。在启动SSH会话之前,必须启用安全外壳(SSH)。
命令 |
描述 |
vmware -vl |
显示VMware版本和补丁级别 |
esxcli software profile get |
显示ISO安装风格 |
esxcfg-scsidevs -a |
列出主机HBA和关联的驱动程序名称 |
esxcfg-nics -l |
列出主机虚拟接口卡和网络接口卡(NIC)型号 |
ethtool -i vmnicX |
显示指定vmnic使用的以太网驱动程序 |
esxcli network nic get -n vmnicX |
显示ESXi 6.5上指定vmnic使用的以太网驱动程序 |
vmkload_mod -s fnic |
显示Cisco VIC的主机总线适配器(HBA)驱动程序版本 |
vmkload_mod -s enic |
显示Cisco VIC的以太网驱动程序版本 |
vmkload_mod -s nenic |
显示Cisco VIC for ESXi 6.5及更高版本的以太网驱动程序版本 |
vmkload_mod -s megaraid_sas |
显示LSI MegaRAID驱动程序版本 |
vmkload_mod -s lsi_mr3 |
显示LSI lsi_mr3驱动程序版本(ESXi 6.7上的本机驱动程序) |
vmkload_mod -s driver_name |
显示指定驱动程序的驱动程序版本 |
这些示例显示vmnic2使用Cisco VIC和驱动程序版本1.4.2.15a。
这些示例显示Qlogic主机总线适配器(HBA)使用驱动程序qla2xxx(版本901.1k.1-14vmw)。
安装驱动程序
要安装驱动程序,请完成以下步骤:
- 解压驱动程序zip文件的内容,并标识*.vib文件。
- 使用Datastore浏览器将*.vib文件上传到ESXi主机datastore。
- 将主机进入维护模式。
- 安装驱动程序。
ESXi 5.x/6.x
使用以下命令在ESXi版本5.x/6.x上安装驱动程序:
esxcli software vib install –v /path/async-driver.vib
注:如果驱动程序需要签名验证,请使用—no-sig-check开关运行此命令。确保使用文件的完整路径。
ESXi 4.x
使用以下命令在ESXi版本4.x上安装驱动程序:
esxupdate --bundle=offline-bundle.zip update
完成安装
使用上述命令之一安装驱动程序后,请退出Maintenance模式并重新启动主机。有关如何安装驱动程序的更多信息,请参阅本文档末尾的相关信息部分。
有用的VMware CLI命令
以下是安装驱动程序时可以使用的一些其他有用VMware命令:
检查维护模式状态
vim-cmd hostsvc/hostsummary | grep -i maintenace
检查已通电的虚拟机
vim-cmd vmsvc/getallvms
关闭VM
vim-cmd vmsvc/power.off <vm id>
进入维护模式
vim-cmd hostsvc/maintenace_mode_enter
退出维护模式
vim-cmd hostsvc/maintenace_mode_exit
Microsoft Windows Server
本节介绍如何在Microsoft Windows服务器上安装驱动程序。
检查当前驱动程序版本
要检查Microsoft Windows中的设备驱动程序,请使用控制面板中的Device Manager。
检查当前驱动程序版本CLI
对于Windows Server Core,即插即用(PnP)实用程序(PNPUtil.exe)用于检查驱动程序版本。
缺少驱动程序
驱动程序缺失的硬件设备在设备管理器中显示,带有黄色问号。必须用正确的驱动程序更新这些设备,以防止意外行为。
安装驱动程序
要在Microsoft Windows中安装或更新驱动程序,请右键单击该设备,然后选择安装/更新驱动程序以启动安装向导。
从CLI安装驱动程序
PNPUtil工具也可用于从CLI安装驱动程序。驱动程序ISO捆绑包可以通过UCS KVM控制台虚拟媒体进行安装。
有用的Windows CLI命令
命令 |
描述 |
pnputil.exe -e |
列出所有已安装的第三方驱动程序 |
pnputil.exe -a <INF名称> |
安装驱动程序 |
pnputil.exe -d <INF名称> |
删除驱动程序 |
pnputil.exe -f -d <INF名称> |
强制删除驱动程序 |
|
|
Red Hat和SUSE Linux
本节介绍如何在Red Hat Enterprise Linux(RHEL)和SUSE Linux Enterprise Server(SLES)上安装并验证驱动程序。
SUSE背景信息
从SLES 12 SP1开始,思科eNIC和usNIC驱动程序将捆绑到单个RPM中(与其他Linux发行版不同,它们封装在单独的RPM中)。由于在SLES 12 SP1及更高版本中如何管理内核模块依赖关系,因此需要将两个驱动程序捆绑到单个RPM中。如果您未使用Cisco usNIC功能(例如,如果您尚未在UCSM/CIMC中调配任何usNIC设备),则实际上会忽略usNIC驱动程序。
eNIC和usNIC驱动程序具有各自不同的版本号。如果在SLES 12 SP 1或更高版本上安装cisco-enic-usnic RPM,则这些驱动程序加载到运行的内核(例如,通过重新启动)后,请使用cat /sys/module/enic/version和cat /sys/module/usnic_verbs/version查看各自的版本号。cisco-enic-usnic RPM也有其自己的不同版本号。由于它代表eNIC和usNIC驱动程序的打包,因此RPM版本号看起来相似,但不反映任一驱动程序的特定版本。
有关确切的驱动程序版本的其他信息,请查询并查看RPM说明部分。该查询类似于以下示例:
# rpm -qip cisco-enic-usnic-kmp-default-
.x86_64.rpm
Name : cisco-enic-usnic-kmp-default Relocations: (not relocatable)
...
Summary : Cisco VIC Ethernet NIC drivers
Description :
This RPM contains both the Cisco VIC Linux Ethernet driver (enic.ko, version
) and
the Cisco Userspace NIC (usNIC) Linux Ethernet driver (usnic_verbs.ko, version
).
Some Linux distros require both kernel modules to be in the same RPM in order to properly test for
symbol compatibility (because usnic_verbs.ko depends on enic.ko) when installing into post-GA
upgrade kernels.
验证当前驱动程序版本和操作系统版本
以下是用于检查当前驱动程序版本和操作系统版本的命令列表:
命令 |
描述 |
modinfo driver_name |
显示下次重新启动时加载(默认)的指定驱动程序的驱动程序版本 |
modinfo /path/to/driver_name.ko |
显示指定驱动程序内核对象文件的驱动程序版本 |
cat /sys/module/enic/version |
显示Cisco VIC适配器的运行Linux内核中当前加载的以太网驱动程序版本 |
cat /sys/module/fnic/version |
显示Cisco VIC适配器的运行Linux内核中当前加载的FC NIC驱动程序版本 |
cat /sys/module/megaraid_sas/version |
显示当前正在运行的Linux内核中加载的LSI MegaRAID驱动程序版本 |
lsmod -l |
列出内核中当前加载的驱动程序 |
cat /etc/redhat-release |
显示RHEL版本(适用于RHEL 6.x及更早版本) |
cat /etc/SuSE-release |
显示SUSE版本(适用于SLES 11 SP3及更早版本) |
cat /etc/os-release |
显示RHEL版本(适用于RHEL 7.x及更高版本,以及SLES 11 SP4及更高版本) |
uname -a |
显示内核相关信息 |
注意:请注意,命令modinfo [ driver name ] 显示有关下次重新启动时加载的驱动程序的模块信息。这不一定与当前运行的内核中加载的驱动程序版本相同。查看cat/sys/module/DRIVER_NAME/version以验证当前运行的内核中加载的驱动程序版本,和/或使用命令modinfo [ /path/to/driver.ko ]以验证特定驱动程序内核对象文件的模块信息。
提示:有关其他常见驱动程序名称的示例,请参阅附录中的驱动程序名称参考表。
此示例显示SLES 15 GA上安装了cisco-enic-usnic RPM包3.2.272.23中捆绑的3.2.210.18-738.12版ENIC驱动程序。
# cat /etc/os-release
NAME="SLES"
VERSION="15"
VERSION_ID="15"
PRETTY_NAME="SUSE Linux Enterprise Server 15"
ID="sles"
ID_LIKE="suse"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:suse:sles:15"
# rpm -qa | grep enic
cisco-enic-usnic-kmp-default-3.2.272.23_k4.12.14_23-738.12.x86_64
# modinfo enic | grep ^version
version: 3.2.210.18-738.12
# cat /sys/module/enic/version
3.2.210.18-738.12
安装驱动程序
RHEL和SLES中的驱动程序使用Redhat软件包管理器(RPM)安装。 使用以下命令安装驱动程序:
# rpm -ihv RPM_filename.x86_64.rpm
提示:在Linux中安装驱动程序时,请确保查看与驱动程序相关联的自述文件(如果可用)。您可以查看RPM的内容,以查看其关联的README文件的安装位置(rpm -qp kmod-enic)。 某些RPM驱动程序包依赖于其他模块,因此需要安装额外的RPM程序包。README文件包含有关如何安装驱动程序文件的完整说明。
Appendix
驱动程序名称参考表
此表显示常用驱动程序的驱动程序名称或前缀。
命令 |
描述 |
enic |
Cisco VIC以太网卡 |
fnic |
思科VIC FC NIC |
qle或qla |
Qlogic适配器 |
lpfc |
Emulex HBA(光脉冲) |
be2net |
Emulex以太网NIC |
igb或ixgbe |
英特尔NIC |
bnx |
Broadcom适配器 |
megaraid |
LSI MegaRAID |
兆马 |
嵌入式软件RAID |
nenic |
适用于ESXi 6.5的思科VIC以太网卡 |
相关信息