Dell ME4084 使用 iSCSI 在 Hyper-V 故障转移中使用 Intel E810 25G 时速度很慢

Dell ME4084 使用 iSCSI 在 Hyper-V 故障转移中使用 Intel E810 25G 时速度很慢

请阅读下面的第三次编辑

我目前正在尝试弄清楚为什么以下服务器设置在 SMB 复制时只会让我的速度变慢。设置如下:

  • 2 台 Dell PowerEdge R7525,每台配备 3 个 Intel 25G 2P E810-XXV
  • 1 个 Dell ME4084 存储
  • 1 个交换机 Dell S5248F-ON

VLAN 97 用于连接网络的其余部分,VLAN13 和 VLAN14 是 iSCSI 专用的。

服务器正在运行具有 Hyper-V 故障转移群集的 Windows Server 2022 数据中心。Dell ME4084 存储通过 iSCSI 使用 VLAN 和在 Windows 中启用的 MPIO 进行连接。固件和软件均为最新版本。

因此,在测试并修改了英特尔网卡上的几乎所有设置后,我能够在服务器之间实现恒定的 2-2.5GB/s 文件传输。我认为最重要的设置是启用 SR-IOV 和 RDMA,并将发送和接收缓冲区设置为最大值 (4096)。因此,服务器之间的直接流量不再是问题。

问题是数据传输到存储,速度太慢了。从任一服务器读取/写入存储时,我只能获得 300-500 MB/s,有趣的是,一台服务器的速度约为 500 MB/s,另一台服务器有时会降至 180 MB/s,大多数时候保持在 200 MB/s 左右。我已经尝试了所有网络参数,并在交换机上启用了 iSCSI 检测和 QoS(虽然不确定当前是否配置,但它可以检测 iSCSI 包),但仍然没有成功。我不知道如何获得完整的 NIC 速度,我知道存储应该更快,它有 60% 的 SSD,即使使用 HDD,根据戴尔基准测试,它也应该达到 1 GB/s 左右。

我是否配置有误,或者我需要数据中心桥接或类似的东西?是交换机的问题还是 Windows 中的 iSCSI 配置问题?

编辑: 这是 IP 配置:

服务器A:

  • Intel E810 NIC1:10.20.30.10/24(主网络)(交换机设置的vlan97标签)
  • Intel E810 NIC2:172.16.10.10/24 和 172.16.11.10/24(iSCSI 网络),在网络设备设置中设置了 VLAN13 标签

服务器B:

  • Intel E810 NIC1:10.20.30.11/24(主网络)(交换机设置的vlan97标签)
  • Intel E810 NIC2:172.16.10.11/24 和 172.16.11.11/24(iSCSI 网络),在网络设备设置中设置了 VLAN13 标签

ME4084:

  • 控制器A-端口1:172.16.10.2
  • 控制器A-端口2:172.16.11.3
  • 控制器A-端口3:172.16.10.4
  • 控制器A-端口4:172.16.11.5
  • 控制器B-端口1:172.16.10.6
  • 控制器B-端口2:172.16.11.7
  • 控制器B-端口3:172.16.10.8
  • 控制器B-端口4:172.16.11.9

编辑2:

经过进一步的试验,我发现如果我将存储卷直接安装在一台服务器上,速度大约为 900 MB/s 到 1.3 GB/s(相当不稳定,但速度要快得多)。一旦我将卷作为 ClusterStorage 添加到我的故障转移群集,速度就会下降到 500-600 MB/s,所以问题可能出在其他地方?

编辑3:

根据这里的反馈,我在服务器上添加了第二张 Intel E810 网卡。网络现在如下所示:

新的网络布局

我知道这种布局没有冗余,解决速度问题后我们将会添加第二个交换机!

因此,在阅读了大量文章后,我将网络配置如下:两个 iSCSI NIC 配置了英特尔存储配置文件,没有 SR-IOV,没有 VM-Switch,VLAN 标签由交换机添加。LAN NIC 配置了 Hyper-V 交换机,带有 SR-IOV 和 RDMA,VLAN 标签由交换机添加。因此,正如许多人所建议的那样,iSCSI NIC 没有 Hyper-V 交换机,也没有组合等。

因此,由于 Dell ME4 系列存储仅支持最大 128 TiB 的卷大小,而我们想要更大的存储,我们将池分成 3 个卷,并在 Windows 中在 3 个存储卷上创建了一个集群存储池和卷(无配置或镜像)以获得总大小约为 350 TiB。然后将此存储添加为集群共享卷,在这里我们添加了一个具有横向扩展文件存储 (SoFS) 的集群角色。在此故障转移集群上,还运行了一些启用了 SR-IOV 的 VM,VHDX 也存储在集群共享卷上。所以问题仍然是速度。它真的不一致,最大值在 500-600 MB/s 左右,有时会降到 200 MB/s 以下。我知道存储可以达到更多,因为在对不同配置进行一些测试之后,我设法达到了大约 2GB/s,但并非所有故障转移集群和池化内容都是如此。所以我不确定问题出在故障转移还是集群存储池等方面;但在与戴尔快速通话后,他们告诉我们存储池是避免 ME4 系列存储 128 TiB 限制的最佳方法。我们搞砸了吗?什么是达到大型(300TB 以上)SMB 存储并拥有具有故障转移群集的 VM 的最佳解决方案?

答案1

您没有详细说明您的 IP 配置 - PowerVault 设备就像从主机到控制器端口的 1:1 映射。如果您只有一个子网,则每个主机端口以 an:m 方式连接到每个控制器端口 - 这可能会导致您的性能不佳。

相反,对每个控制器端口对使用专用子网,例如,控制器端口 A1、B1 和主机 NIC 1 使用 172.16.10.0/24,A2、B2 和主机 NIC 2 使用 172.16.11.0/24。

由于您的主机端口速度是 ME4 端口的两倍,因此您可以只使用两个子网,其中一个子网具有控制器端口 A1、B1、A2、B2、主机 NIC 1,另一个子网具有 A3、B3、A4、B4、主机 NIC 2。

但是,如果将来可能有配备 10G NIC 的主机,我会坚持使用四个子网,并将其中两个子网的 IP 地址绑定到每个 25G NIC。

注意非首选路径 - 通过错误的控制器访问磁盘组会拉动 LUN 并严重损害性能。如果 ALUA 无法正常工作(在存储管理器或日志中检查),您将不得不手动组装首选路径,这在 Windows 中并不好玩。

当然,存储性能取决于磁盘 - 显然 SSD 性能最佳,然后是 15k 磁盘、10k 磁盘……为了使给定磁盘组获得最佳性能,请始终使用 2 的幂加上 RAID 组中的冗余驱动器,例如具有 6、10 或 18 个驱动器的 RAID 6。阵列中的旋转轴越多,速度通常就越快,但请注意使用大磁盘进行重建。

附注:您的设置不是单交换机冗余的。您应该有两个交换机,每个交换机有一半的 iSCSI 子网。以防万一,您应该使用两个 VLAN,每个交换机一个。

答案2

我无法将其放入评论中。但我有一个 PowerShell 脚本来运行最佳实践分析器。也许它发现了一个错误配置

# Import the BestPractices module
Import-Module BestPractices

# Get BPA models and invoke them
$models = Get-BPAmodel
foreach ($model in $models) {
    try {
        $results = Invoke-BPAmodel -Model $model
        $bpaResults = Get-BpaResult -Model $model
        Write-Host "Results for $($model.Name):"
        Write-Host $bpaResults
    } catch {
        Write-Host "Error invoking $($model.Name): $_"
    }
}

相关内容