使用 iSCSI Extensions For RDMA (iSER) 为采用 VMware®ESXi 或 VJBOD 的 QNAP NAS 提升性能


最后修订日期: 2018-11-09

1.挑战

在虚拟化环境中,硬盘、存储配置、网络、虚拟机监控程序和应用程序都是影响整体性能和稳定性的关键因素。中小企业 (SMB) 的 IT 人员经常需要优化性能并找出瓶颈所在。

身为致力于深耕中小企业市场的存储提供商,QNAP 不仅了解这些挑战,更深知提高存储性能的关键不只在于存储系统,更在于存储网络。目前,QNAP 在 QNAP SMB NAS 产品的所有主要系列上都支持 iSCSI Extensions for RDMA (iSER),这是一套已经被众多企业采用多年的解决方案。我们的目标是为 IT 专业人士提供一个可以极大优化虚拟化环境性能的必备解决方案,从而协助他们的企业提高 IT 总体效率。

根据 QNAP 实验室测试结果,启用 iSER 让采用 Qtier? 的 QNAP 混合存储 NAS 提升性能高达 50% 以上。详情参阅第 5 章。

2.iSCSI Extensions for RDMA (iSER) 简介

在 QTS 版本 4.3.3 和更高版本中,可以在 VMware 虚拟化服务器与基于 Intel 或 AMD 的 QNAP NAS 之间的 iSCSI 连接上启用 iSER。唯一要求是每台服务器和 NAS 必须具有与 iSER 兼容的网卡。在 QTS 4.3.5 中,也可以对 QNAP Virtual JBOD (VJBOD) 连接启用 iSER。

iSER 协议与传统 iSCSI 协议不同,允许传输的数据绕过网络驱动器和套接字层,直接进入 ESXi 服务器或 NAS 的内存缓冲区。这样不仅可以改善传输性能,还可以减少延迟时间和 NAS 上的 CPU 负载。

QNAP 已经证实,通过采用 iSER,虚拟机的性能可以提高 60% 到 100%*,而随机访问的延迟时间也可以至少缩减 50%。上述测试结果显示,iSER 特别适合用于使用 QNAP NAS 作为 VMware ESXi 数据存储的企业,用于托管业务应用程序或虚拟桌面基础架构 (VDI)。 

以下章节将列出在虚拟化环境中启用 iSER 时的系统要求和必要步骤。此外,本文档还将简要说明,对于使用 Qtier(?) 的混合存储 NAS、全闪存 NAS,以及具有 SSD 高速缓存并用作 VJBOD 的 NAS,iSER 如何提升它们的性能。

iSER(右侧)可绕过 TCP/IP、网络驱动器和套接字库,直接将数据传输至应用程序或存储内存。

*如需测试配置与结果的相关信息,请参阅第 5 章。性能提升的幅度将随系统配置的不同而有所差异。

3.系统要求

在 QNAP NAS 上启用 iSER 的要求如下:

硬件要求

  • VMware:
    • 至少一个搭载 Intel 或 AMD CPU 且运行 QTS 4.3.3 或更高版本的 QNAP NAS。
    • 至少一个 VMware ESXi 服务器(QTS 仅支持 iSER 搭配 VMware ESXi)。
  • VJBOD:两个搭载 Intel 或 AMD CPU 且运行 QTS 4.3.5 或更高版本的 QNAP NAS 设备。

网络要求

  • 每个 QNAP NAS 和 VMware ESXi 服务器必须安装与 iSER 兼容的网卡*。
  • 所有 NAS 设备和 VMware ESXi 服务器必须与支持 iSER** 的 Mellanox 交换机连接,或不使用交换机而直接连接。

重要

  • 与 iSER 兼容的网卡应当使用专用子网连接并且配置为仅用于传输数据。否则,可能会导致性能下降或连接失败。
  • 可以使用支持 PFC(优先级流量控制,Priority Flow Control)的其他品牌交换机。但是,如果使用 Mellanox 以外的交换机,QNAP 无法保证 iSER 可以提升性能。

软件要求

*下面列出了目前可以与 iSER 搭配使用的网卡。要购买扩展卡,请访问 QNAP 网站或联系授权经销商。

型号 规格 产品
LAN-10G2SF-MLX 双端口 10 GbE 适配器:Mellanox Connect-3 Pro EN 连接器:SFP+
LAN-40G2SF-MLX 双端口 40 GbE 适配器:Mellanox ConnectX-3 Pro EN 连接器:QSFP

** 以下所列为建议与 iSER 配合使用的 Mellanox 以太网交换机。Mellanox Spectrum 交换机以线路速率始终如一地提供超低延迟和无阻交换,并且不会发生数据包丢失情况。结合最佳的拥塞管理,Mellanox 交换机可以最大限度发挥 iSER 性能。有关与 iSER 兼容的交换机和网卡的更多信息,请参阅 Mellanox 官方网站或联系授权经销商。

型号 规格
MSN2700-BS2F 基于 Spectrum? 的 40GbE 1U 开放式以太网交换机、MLNX-OS、32 个 QSFP 28 端口
MSN2700-BS2R 基于 Spectrum? 的 40GbE 1U 开放式以太网交换机、MLNX-OS、32 个 QSFP 28 端口
MSN2410-BB2F 基于 Spectrum? 的 10GbE/100GbE 1U 开放式以太网交换机、MLNX-OS、48 个 SFP 28 端口
MSN2100-BB2F 基于 Spectrum? 的 40GbE 1U 开放式以太网交换机、MLNX-OS、16 个 QSFP 28 端口
MSN2100-BB2R 基于 Spectrum? 的 40GbE 1U 开放式以太网交换机、MLNX-OS、16 个 QSFP28 端口

4.在现有 VMware 虚拟化环境中部署 iSER

本章说明如何在 QNAP NAS 与 VMware ESXi 6.0 服务器之间的 iSCSI 连接上启用 iSER。如果您的环境包含多个 NAS 设备或多个 VMware 服务器,请针对每个 NAS 和服务器执行适当的步骤。

4-1.配置 NAS 的网络设置

在更改任何设置之前,请先确定 QNAP NAS 是基于 Intel 还是 AMD 的型号,并且已经在运行 QTS 4.3.3 或更高版本。

  1. 关闭 NAS 和 VMware ESXi 服务器,然后在每个设备中安装与 iSER 兼容的网卡。
  2. 连接 NAS 与 VMware ESXi 服务器;您可通过与 iSER 兼容的交换机连接,也可以将它们直接连接。
  3. 开启 NAS 与 ESXi 服务器。
  4. 登录到 NAS 上的 QTS,然后转到“Control Panel”(控制台)>“Network & Virtual Switch”(网络和虚拟交换机)>“Interfaces”(接口)。找出与 iSER 兼容的网卡包含的接口,然后为它们指定一个专用子网上的静态 IP 地址。此外,建议将“Jumbo Frame”(巨型帧)设置为 9,000,以便在使用 iSER 时充分提高性能。
在“Network & Virtual Switch”(网络和虚拟交换机)中编辑新添加的网卡的适配器。单击“Configure”(配置)图标即可找到“Jumbo Frame”(巨型帧)设置。

4-2.安装 Mellanox iSER 驱动程序(不适用于 VMware ESXi 6.5 或更高版本)

注意:

  • 必须在每个 ESXi 服务器上安装 Mellanox iSER 驱动程序。
  • 本文档使用 ESXi 6.0 和驱动程序版本 1.9.10.5-10EM-600.0.0.2494585。对于不同的 ESXi 和驱动程序版本,操作步骤和 UI 可能会稍有不同。
  • 在 VMware ESXi 6.7 和更高版本中,已经预安装驱动程序,无需再安装驱动程序。
  1. 从以下位置下载 Mellanox iSER 驱动程序:http://www.mellanox.com/page/products_dyn?product_family=29
  2. 将驱动程序上传到 ESXi 服务器。在本教程中,我们直接将驱动程序保存到 NAS,然后使用 Putty 与 SSH 将驱动程序上传到 ESXi 服务器。
使用命令 #scp 将驱动程序上传到 ESXi 服务器的根目录。
  1. (可选)移除旧版的驱动程序。
    iSER 驱动程序不能与该驱动程序的任何其他版本同时使用。如果已安装其他版本的驱动程序,请先停止 ESXi 服务器上的所有操作和虚拟机,然后移除现有驱动程序。

    您可以运行命令 esxcli software vib list | grep mlx 来确认当前安装的驱动程序版本和名称。下面是用来移除旧版驱动程序的命令(共三个部分):nmlx4-core、nmlx4-en 和 nmlx4-rdma。
    esxcli software vib remove -n (nmlx4-core)
    esxcli software vib remove -n (nmlx4-en)
    esxcli software vib remove -n (nmlx4-rdma)
  2. 运行以下命令以安装新的驱动程序:
    esxcli software vib install -d /MLNX-OFED-ESX-1.9.10.5-10EM-600.0.0.2494585.zip
  3. 安装完毕后,请重新启动 VMware ESXi,并运行命令 esxcli software vib list | grep mlx 以确认成功安装 net-mlx4-core、net-mlx4-en 和 net-mlx4-ib 驱动程序,且版本皆为 1.9.10.5-10EM-600.0.0.2494585。
可使用 Putty 将驱动程序安装在 ESXi 服务器上。

4-3.配置 ESXi 服务器的网络设置

本节逐步说明如何在 ESXi 服务器上设置 iSER 连接。

  1. 登录到 VMware vCenter。
  2. 在左侧面板中选择 VMware ESXi 服务器。
  3. 转到“Configuration”(配置)选项卡>“Networking”(网络),然后单击“Add Networking”(添加网络)以打开“Add Network Wizard”(添加网络向导)。
    从 vCenter 为 ESXi 服务器添加新的虚拟交换机。
  4. 如果您需要来宾操作系统可以访问网络接口,请先选择“Virtual Machine”(虚拟机)作为“Connection Type”(连接类型),然后单击“Next”(下一步);否则,请直接转到第 6 步。
  5. 在“Network Access”(网络访问)页面上,选择新安装的与 iSER 兼容的网卡。单击“Next”(下一步),然后再单击“Next”(下一步),保留所有设置,接下来单击“Finish”(完成)以完成“Add Network”(添加网络)向导。
    选择新添加的网卡以继续设置。
  6. 再次单击“Add Networking”(添加网络)。选择“VMkernel”作为“Connection Type”(连接类型),确保选择新安装的与 iSER 兼容的网卡,然后按照向导完成设置。将“Port Group”(端口组)属性留作默认值。
  7. 在“IP Settings”(IP 设置)页面上,为网络适配器指定一个静态 IP 地址。然后单击“Next”(下一步)和“Finish”(完成)以关闭向导。
    继续添加 VMkernel 类型并为网卡指定一个静态 IP
  8. 转到“Configuration”(配置)>“Networking”(网络),确保屏幕上显示 iSER 网卡的新虚拟交换机。
    新增的虚拟交换机包含 VM 网络(可选)和 VMkernel。

4-4.将网络连接从 iSCSI 更改为 iSER

  1. 登录到 VMware vCenter。
  2. 在左侧面板中选择 VMware ESXi 服务器。
  3. 转到“Configuration”(配置)选项卡>“Storage Adapters”(存储适配器)。在此页面上除了显示现有“iSCSI Software Adapter”(iSCSI 软件适配器)之外,还可以看到显示为“Mellanox iSCSI over RDMA (iSER) Adapter”(Mellanox iSCSI over RDMA (iSER) 适配器)的 iSER。
    注意:如果您正在设置新的虚拟化环境,则需要先创建“iSCSI 软件适配器”,然后重新启动 ESXi 服务器,才能看见“Mellanox iSCSI over RDMA (iSER)”适配器。
    按照第 4-3 节配置 NAS 和 VMware ESXi 网络设置后,才会显示 Mellanox iSCSI over RDMA (iSER) 适配器
  4. 选择“iSCSI Software Adapter”(iSCSI 软件适配器)设备,然后单击“Properties”(属性)。
  5. 从“Network Configurations”(网络配置)选项卡上的列表中移除所有现有端口绑定。另外,从“Dynamic Discovery”(动态发现)和“Static Discovery”(静态发现)选项卡上的列表中移除所有 iSCSI 目标。这样可确保连接仅使用 iSER 协议。
    从“Network Configuration”(网络配置)、“Dynamic Discovery”(动态发现)和“Static Discovery”(静态发现)中的列表中清除所有项目。
  6. 关闭 iSCSI 软件适配器的属性。在“Configuration”(配置)>“Storage Adapters”(存储适配器)页面上,选择“Mellanox iSCSI over RDMA (iSER) Adapter”(Mellanox iSCSI over RDMA (iSER) 适配器)下的设备,然后单击“属性”(Properties)。
  7. 在“Network Configuration”(网络配置)选项卡上,单击“Add”(添加)以创建新的 VMKernel 端口绑定。选择在第 4-3 节中,为 iSER 连接创建的 VMKernel。
    编辑 Mellanox iSCSI over RDMA (iSER) 适配器设备属性,然后添加 iSER 虚拟交换机以重新扫描 iSCSI 目标。
  8. 针对“Mellanox iSCSI over RDMA (iSER) Adapter”(Mellanox iSCSI over RDMA (iSER) 适配器)下需要 iSER 连接的每个设备重复执行第 5 步和第 6 步。

    QNAP iSCSI 目标与 LUN 现在将使用新的 iSER 接口自动连接。
    使用 iSER 适配器连接 QNAP NAS 上的 iSCSI LUN。

5.在 QNAP NAS 上将 iSER 与 VJBOD 配合使用

本节说明当创建 VJBOD 连接时如何在两个 QNAP NAS 设备上启用 iSER。

注意:两个 NAS 设备都必须运行 QTS 4.3.5 或更高版本。

  1. 登录到主机 NAS 上的 QTS,然后转到“Main Menu”(主菜单)>“Storage & Snapshots”(存储与快照总管)>“Storage”(存储)>“Disks/VJBOD”(磁盘/VJBOD)。
  2. 选择“VJBOD”>“Create VJBOD”(创建 VJBOD)。
    此时会出现“Create Virtual JBOD Disk Wizard”(创建虚拟扩充柜磁盘向导)窗口。
  3. 单击“Next”(下一步)。
    此时会出现“Connect to a remote QNAP NAS”(连接到一台远程 QNAP NAS)屏幕。
  4. 选择已安装与 ISER 兼容的网卡的远程 NAS。
  5. 为远程 NAS 输出密码,然后单击“Next”(下一步)。
    此时会出现“Select Interfaces”(选择接口)屏幕。
  6. 在“Host NAS Interface”(主机 NAS 接口)下,选择与 iSER 兼容的适配器。
  7. 在“Remote NAS Interface”(远程 NAS 接口)下,选择与 iSER 兼容的适配器。
  8. 选择“Use iSER when available”(可用时使用 iSER),然后单击“Next”(下一步)。
  9. 按照向导的其余步骤进行操作,直到创建完 VJBOD。

要验证 iSER 是否工作,请转到“Main Menu”(主菜单)>“Storage & Snapshots”(存储与快照总管)>“Storage”(存储)>“Disks/VJBOD”(磁盘/VJBOD),然后选择远程磁盘。如果已建立 ISER 连接,“Connection Type”(连接类型)将为“iSER”。

注意:如果远程磁盘断开连接,QTS 首先会尝试使用 iSER 重新连接该磁盘。如果重新连接失败,QTS 则会尝试使用 iSCSI 重新连接该磁盘。您可以将连接类型从 iSCSI 更改回 iSER,方法是断开连接,然后重新连接远程磁盘。

6.性能测试与结果

QNAP 测试团队使用下列设备测量 iSER 相对于常规 iSCSI 的性能优势:

QNAP NAS

  • TVS-EC2480-SAS-RP:混合存储阵列
  • TES-EC3085U:全闪存存储阵列

VMware

  • 五个 Dell PowerEdge R420 服务器构成的 VMware ESXi 6.0 群集。每个服务器都配备 Intel Xeon E5-2450 CPU 和 128GB 的 RAM。
  • 虚拟机操作系统:Windows 2012 R2 64 位

网络

  • Mellanox 40GbE LAN-40G2SF-MLX 网卡,安装在 NAS 和每个 PowerEdge 服务器上。
  • Mellanox 40GbE Spectrum SN2410 交换机,用于连接 VMware ESXi 服务器和 NAS。

注意:为显示性能提升幅度,仅使用单条 40GbE 线缆将每个 NAS 连接到 Mellanox 40GbE 交换器。在一般情况下,可以配置多个 10GbE 和 40GbE 连接以及多个交换机,进一步提高采用 iSER 后的性能和存储可用性。

每个 VMware ESXi 服务器都安装 IOmeter,且设置配置如下。
注意:本测试使用通用的 IOmeter 设置。实际访问模式将因具体应用程序而有所不同。

Iometer(iSCSI 吞吐量)
Outstanding I/Os →1 per target(未完成的 I/O → 每个目标一个) Write Throughput →2M Sequential 100%
Write 100%(写入吞吐量 → 2M 顺序 100% 写入 100%)
Workers →20(工作线程 → 20) Read Throughput →2M Sequential 100%
Read 100%(读取吞吐量 → 2M 顺序 100% 读取 100%)
Ramp up time →30 seconds(预热时间 →30 秒) Transferring Size →16GB file(传输大小 → 16GB 文件)
Iometer (iSCSI IOPS)
Outstanding I/Os →1 per target(未完成的 I/O → 每个目标一个) Write IOPS →4K Sequential 100%
Write 100%(写入 IOPS → 4K 顺序 100% 写入 100%)
Workers →20(工作线程 → 20) Read IOPS →4K Sequential 100%
Read 100%(读取 IOPS → 4K 顺序 100% 读取 100%)
Ramp up time →30 seconds(预热时间 →30 秒) Transferring Size →16GB file(传输大小 → 16GB 文件)

6-1.单个虚拟机搭配 Qtier™:采用 iSER 后顺序读写性能提升 100%(达 4000 MB/秒)

在本测试中,我们测试了一个连接到混合存储 NAS 的虚拟机的性能。业务应用程序(如邮件服务器)经常采用这种既需要良好性能又需要高存储容量的配置。

NAS 规格
型号 QNAP TVS-EC2480-SAS-RP
CPU Intel Xeon E3-1246
内存 32GB
存储配置 Seagate SAS SSD x12,RAID 10
Seagate SATA HDD x12,RAID 6
1 个存储池、1 个区块 iSCSI LUN
网卡 40GbE 网卡 LAN-40G2SF-MLX

根据测试结果,顺序读写速度提升超过 100% ,顺序读取速度超过 4,000MB/秒。测试结果显示,iSER 可大幅提升高需求应用程序的顺序读写性能。



6-2.五个虚拟机搭配 Qtier™:采用 iSER 后随机读写性能提升 80%(达 180,000 IOPS)

第二次测试使用与上一次测试相同的混合存储 NAS 配置。不过在这次测试中,我们将 VMware 虚拟机的数量增加到五个。此测试案例代表了有以下需求的中小企业:在一台 QNAP NAS 上运行需要随机访问的多个应用程序,例如 Web 服务器或日志服务器数据库。

测试结果将所有虚拟机的性能合并计算,以显示整体读写性能。结果显示,使用 iSER 时,随机续写性能提升了 80% 以上。在仅使用 12 个 SSD 的 RAID 10 配置中,随机读写性能总共可达 180,000 IOPS。此外,顺序访问速度也有所提升。 
另一方面,延迟时间也从 0.9 ms 降到 0.5 ms,因此当多个应用程序需要随机访问同一 NAS 时,可加快响应速度。



6-3.五个虚拟机搭配全闪存存储:采用 iSER 后随机读写性能提升 60%(达 250,000 IOPS)

上一个测试使用混合存储 NAS 搭配 Qtier™,每个虚拟机的性能约为 36,000 IOPS。对于 SQL Server 这类业务应用程序而言,这样的结果仍需改进。为了进一步探索使用 iSER 可带来的效益,我们将 NAS 更换为 QNAP TES-3085U。这是一个配有 30 个 SSD 插槽的全闪存存储 NAS。我们将此 NAS 与五个 VMware 虚拟机相连。

由于这次测试设置不需要 Qtier,因此不再需要大型存储池。在测试过程中,我们将 30 个 SSD 分割成 5 个存储池,每个存储池都有一个区块 iSCSI LUN。此存储配置不仅可以降低数据丢失的风险,还可以通过从每个存储池分别检索元数据来提升性能。

NAS 规格
型号 QNAP TES-3085U
CPU Intel Xeon D-1548
内存 32GB
存储配置 Samsung SATA SSD x30,RAID 10
5 个存储池
5 个区块 iSCSI LUN
网卡 40GbE 网卡 LAN-40G2SF-MLX

此次测试中,我们将多个虚拟机的性能合并计算,以观察整体读写性能。使用 iSER 时,随即读写性能提升了 80% 以上,总共达 250,000 IOPS。这表示每个虚拟机可达 50,000 IOPS。此数字已超过一般建议 SQL Server 需要的 30,000 IOPS。相较于使用 iSCSI 时延迟 1.1 ms,延迟时间也进一步缩减到 0.3 ms。


6-4.使用 SSD 高速缓存的 VJBOD NAS:采用 iSER 后读取性能提升 80%

在 QTS 4.3.5 和更高版本中,VJBOD 连接可以使用 iSER。为了对此进行测试,我们使用 VJBOD 连接了两个硬件规格完全相同的 QNAP NAS 设备,然后测试主机 NAS 上远程磁盘的性能。

NAS 规格
型号 QNAP TVS-EC1680U
CPU Intel(R) Xeon(R) CPU E3-1246 v3 @ 3.50GHz
内存 8 GB
存储配置 8 个 SAMSUNG 860 PRO 512GB SSD(配置为 SSD 高速缓存)
其他所有硬盘架:HDD
网卡 40GbE LAN-40G2SF-MLX

在测试结果中,我们发现,使用 iSER 时,顺序和随机读取性能得到了明显提升。顺序读取性能提升了 72%,随机读取性能提升了 89%,随机延迟下降了 41%。这些结果还表明,启用 iSER 后,性能瓶颈从网络层转移到了存储层。这意味着,添加更多的 SSD 将会进一步提升写入性能。



6-5.测试结论

在使用 iSER 后,多个虚拟机的随机读写性能提升达 80%,而延迟时间则减少约 50%。这些结果适用于混合存储 NAS、全闪存 NAS,以及具有 SSD 高速缓存并用作 VJBOD 的 NAS。

我们的测试结论是,当 QNAP NAS 用作 VMware ESXi 数据存储或者由其他 QNAP NAS 用作 VJBOD 时,iSER 可有效提升其性能。与 SSD 存储结合使用时,iSER 可以提升在 VMware 集群上或者在使用 VJBOD 连接的 QNAP NAS 设备上运行的关键应用程序的性能。

通过向 QTS 添加 iSER 支持,QNAP 展示了向所有客户交付高性能存储的创新方法和努力,尤其是遇到存储性能瓶颈的客户。未来,QNAP 将继续测试不同配置下的 iSER 并公布测试结果,从而为乐于使用 iSER 的客户提供帮助。

这篇文章有帮助吗?

91% 的人认为有帮助。
谢谢您,我们已经收到您的意见。

请告诉我们如何改进这篇文章:

如果您想提供其他意见,请于下方输入。

选择规格

      显示更多 隐藏更多
      open menu
      back to top