在 NFS v3 数据存储上使用 nConnect 来提高数据存储性能
使用 NFS nConnect 功能来提高 VMware vSphere 8 环境中的数据存储性能。此过程包括为每个 NFS 数据存储托管虚拟机、提升 NFS 数据存储性能以及为基于虚拟机和容器的应用程序配置更高层级。
从 VMware vSphere 8.0 U1(作为技术预览版)开始,nconnect 功能为 NFS v3 数据存储卷启用多个 TCP 连接以实现更高的吞吐量。使用 NFS 数据存储的客户现在可以增加与 NFS 服务器的连接数量,从而最大限度地利用高速网络接口卡。
|
该功能通常适用于 8.0 U2 的 NFS v3,请参阅存储部分"VMware vSphere 8.0 Update 2 发行说明"。 vSphere 8.0 U3 添加了 NFS v4.1 支持。有关更多信息,请查看"vSphere 8.0 Update 3 发行说明" |
使用情形
-
在同一主机上为每个 NFS 数据存储托管更多虚拟机。
-
提高 NFS 数据存储性能。
-
为基于 VM 和容器的应用程序提供更高层级的服务选项。
技术细节
nconnect 的目的是为 vSphere 主机上的每个 NFS 数据存储提供多个 TCP 连接。这有助于提高 NFS 数据存储的并行性和性能。在ONTAP中,建立 NFS 挂载时,会创建连接 ID (CID)。该 CID 可提供最多 128 个并发飞行中操作。当客户端超过该数量时, ONTAP会实施某种形式的流量控制,直到其他操作完成时它可以释放一些可用资源。这些暂停通常只有几微秒,但在数百万次操作的过程中,这些暂停会累积起来并产生性能问题。 Nconnect 可以采用 128 的限制并将其乘以客户端上的 nconnect 会话数,从而为每个 CID 提供更多的并发操作,并可能增加性能优势。更多详细信息请参阅"NFS 最佳实践和实施指南"
默认 NFS 数据存储
为了解决 NFS 数据存储单一连接的性能限制,需要挂载额外的数据存储或添加额外的主机来增加连接。
使用 nConnect NFS 数据存储
使用ONTAP工具或其他选项创建 NFS 数据存储库后,可以使用 vSphere CLI、PowerCLI、govc 工具或其他 API 选项修改每个 NFS 数据存储库的连接数。为了避免 vMotion 出现性能问题,请保持 vSphere 群集中所有 vSphere 主机上的 NFS 数据存储的连接数相同。
先决条件
要使用 nconnect 功能,应满足以下依赖关系。
ONTAP 版本 |
vSphere 版本 |
注释 |
9.8或以上 |
8 Update 1 |
技术预览,可选择增加连接数量。必须卸载数据存储以减少连接数。 |
9.8或以上 |
8 Update 2 |
通常可以选择增加或减少连接数量。 |
9.8或以上 |
8 Update 3 |
NFS 4.1 和多路径支持。 |
更新与 NFS 数据存储的连接数
使用ONTAP工具或 vCenter 创建 NFS 数据存储库时,使用单个 TCP 连接。要增加连接数量,可以使用 vSphere CLI。参考命令如下所示。
# Increase the number of connections while creating the NFS v3 datastore.
esxcli storage nfs add -H <NFS_Server_FQDN_or_IP> -v <datastore_name> -s <remote_share> -c <number_of_connections>
# To specify the number of connections while mounting the NFS 4.1 datastore.
esxcli storage nfs41 add -H <NFS_Server_FQDN_or_IP> -v <datastore_name> -s <remote_share> -c <number_of_connections>
# To utilize specific VMkernel adapters while mounting, use the -I switch
esxcli storage nfs41 add -I <NFS_Server_FQDN_or_IP>:vmk1 -I <NFS_Server_FQDN_or_IP>:vmk2 -v <datastore_name> -s <remote_share> -c <number_of_connections>
# To increase or decrease the number of connections for existing NFSv3 datastore.
esxcli storage nfs param set -v <datastore_name> -c <number_of_connections>
# For NFSv4.1 datastore
esxcli storage nfs41 param set -v <datastore_name> -c <number_of_connections>
# To set VMkernel adapter for an existing NFS 4.1 datastore
esxcli storage nfs41 param set -I <NFS_Server_FQDN_or_IP>:vmk2 -v <datastore_name> -c <number_of_connections>
或者使用类似于下面显示的 PowerCLI
$datastoreSys = Get-View (Get-VMHost host01.vsphere.local).ExtensionData.ConfigManager.DatastoreSystem
$nfsSpec = New-Object VMware.Vim.HostNasVolumeSpec
$nfsSpec.RemoteHost = "nfs_server.ontap.local"
$nfsSpec.RemotePath = "/DS01"
$nfsSpec.LocalPath = "DS01"
$nfsSpec.AccessMode = "readWrite"
$nfsSpec.Type = "NFS"
$nfsSpec.Connections = 4
$datastoreSys.CreateNasDatastore($nfsSpec)
这是使用 govc 工具增加连接数量的示例。
$env.GOVC_URL = 'vcenter.vsphere.local'
$env.GOVC_USERNAME = 'administrator@vsphere.local'
$env.GOVC_PASSWORD = 'XXXXXXXXX'
$env.GOVC_Datastore = 'DS01'
# $env.GOVC_INSECURE = 1
$env.GOVC_HOST = 'host01.vsphere.local'
# Increase number of connections while creating the datastore.
govc host.esxcli storage nfs add -H nfs_server.ontap.local -v DS01 -s /DS01 -c 2
# For NFS 4.1, replace nfs with nfs41
govc host.esxcli storage nfs41 add -H <NFS_Server_FQDN_or_IP> -v <datastore_name> -s <remote_share> -c <number_of_connections>
# To utilize specific VMkernel adapters while mounting, use the -I switch
govc host.esxcli storage nfs41 add -I <NFS_Server_FQDN_or_IP>:vmk1 -I <NFS_Server_FQDN_or_IP>:vmk2 -v <datastore_name> -s <remote_share> -c <number_of_connections>
# To increase or decrease the connections for existing datastore.
govc host.esxcli storage nfs param set -v DS01 -c 4
# For NFSv4.1 datastore
govc host.esxcli storage nfs41 param set -v <datastore_name> -c <number_of_connections>
# View the connection info
govc host.esxcli storage nfs list
参考"VMware 知识库文章 91497"了解更多信息。
设计考虑
ONTAP上支持的最大连接数取决于存储平台型号。查找 exec_ctx"NFS 最佳实践和实施指南"了解更多信息。
随着每个 NFSv3 数据存储区的连接数增加,可挂载在该 vSphere 主机上的 NFS 数据存储区的数量会减少。每个 vSphere 主机支持的连接总数为 256 个。查看"VMware 知识库文章 91481"每个 vSphere 主机的数据存储限制。
|
vVol 数据存储不支持 nConnect 功能。但是,协议端点计入连接限制。创建 vVol 数据存储时,会为 SVM 的每个数据生命周期创建一个协议端点。 |