《虚拟数据中心构建指南》——3.3 存储网络

本文涉及的产品
函数计算FC,每月15万CU 3个月
文件存储 NAS,50GB 3个月
简介: 本节书摘来自华章出版社《虚拟数据中心构建指南》一 书中的第3章,第3.3节,作者:(法)麦里(Maillé, V.),(法)门内尔(Menecier, R. F.)著;姚军等译.更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3  存储网络

前一节已经作过解释,可能使用的网络有两种:IP以太网(NAS或者iSCSI模式)和FC网络(FC或者FCoE)。

3.3.1 IP存储网络

这类网络原来的设计不是用于提供高性能存储的,而是在网络不同要素之间传递信息。因此,它不适合于需要高性能的应用,例如数据库应用。IP网络处于OSI第3层,所以它可以路由,适合于长距离网络互联。FC网络位于第2层,因此无法路由。目前,IP网络的吞吐量达到10GbE,未来将达到40GbE和100GbE。

IP网络的问题在于因为如下因素而导致“丢包”:
物理线路上的信号衰减
路由问题
缓冲区溢出(接收器无法处理输入流)
TCP/IP协议允许丢包重传(如果发送数据没有得到接收方的确认),但是这对性能有显著影响。

另一个问题是,在一个IP包中只能传输有限的数据量,称作最大传输单元(Meximum Tranomission Unit,MTU)。这个数量(有效载荷,payload)对于以太网数据包为1500个字节。超过1500个字节的数据在发送之前必须分段。每当网卡接收到一个包,就向主机发送一个中断以确定接收。这增加了主机的负载和CPU周期(称作开销,overhead)。随着发送包数增加,路由变得更加复杂和费时。

注意:在整合的虚拟环境中,需要考虑这种开销。它不应该恶化主机服务器的性能,主机服务器的处理能力应该专用于应用。

为了减少这种数据帧碎片,创建了超长帧(jumbo frame)。这种帧允许传递大于1500个字节的包(MTU最大为9000个字节)。超长帧在效率改进中起到了很大的作用,一些研究显示,它将CPU开销减少了50%。MTU必须在整个传输链条中激活和兼容,包括物理交换机、网卡、电缆等。

注意:9000字节的超长帧替换了6个标准的1500字节以太网包,主机的CPU周期消耗减少了5倍。

不过,需要当心的是,如果出现问题,源和目标之间的MTU越大,重传的包也就越大,这会降低性能,增加延迟。为了最大限度地利用超长帧,网络必须稳定并且很好地实现。

IP存储网络的优点是比SAN FC设备便宜,以太网络已经部署,所以在某些情况下,需要的实现工作较少,这种网络更容易使用。而且,IT团队对这种技术已经有多年的使用经验。

1. VMware中的iSCSI

在VMware环境中,iSCSI协议在2006年开始才被支持。如果以最优化的方式部署,这种协议能提供非常好的性能。IP网络由存储团队之外的团队管理。

优点:iSCSI已经得到许多活动部门的采用,因为它使用了公司的TCP/IP网络进行块模式访问,不需要投资FC设备。因此,它更容易安装,从而对于某些环境来说是理想的选择。使用传统的以太网络,意味着覆盖更长的距离,而不需要特殊的转换设备(例如FC-IP转换器),例如,用于复制。实施这种技术所需的技能是网络技能,而不是高级的存储技能。

缺点:测试证明,iSCSI协议是消耗CPU资源最多的协议。因此,监控CPU的使用很重要,应该在网络部署时加以考虑。

我们建议如下的最佳实践:
只在架构能够启用超长帧(MTU 9000),从而最大限度地利用该协议的时候,使用iSCSI才有价值,这种情况能够提供出色的性能。启用超长帧必须在传输链的两端进行。

iSCSI HBA卡在使用10GB连接时必不可少,应该尽可能实现链路聚合,以提供高性能和冗余,以防故障。
建议从物理上分隔iSCSI存储网络和标准IP网络。如果不可能,应该使用虚拟局域网(Virtual Local-Area Network,VLAN)隔离传输流。

使用具有TCP减负引擎(TCP Offload Engine ,TOE)的网卡,从主机接管某些与iSCSI层相关的指令,减少开销。

实施服务质量(QoS),为传输流设置优先级。在vSphere中,可以使用存储I/O控制(Storage I/O Control,SIOC)功能实现。

网络丢包是获得好的iSCSI网络性能所面临的主要挑战之一。丢包可能是因为错误的网络配置或者错误的线路质量引起的(例如,在千兆链路上使用5类线而没有使用6类线)。

2. VMware中的NFS

网络文件系统(NFS)是NAS使用的协议,从2006年起得到ESX的支持。它通过网络提供文件系统级的存储共享。VMware支持NFS over TCP第3版。和某些说法相反,测试显示在正确实现的情况下,这个协议的性能很好。因此,某些条件下在虚拟环境中可以使用这种协议。超长帧(MTU 9000)的启用允许传输8192(8KB)NFS数据块,很适合于这个协议。默认情况下,ESXi主机可以安装8个NFS,并且可以扩展到256个NFS。如果将最大NFS安装数增加到超过默认的8个,确保一定要增加Net.TcpipHeapSize和Net. TcpipHeapMax。这些值在高级配置中,控制堆存储的数量(以兆字节为单位),这些存储分配用于管理VMkernel TCP/IP网络连通性。

ESXi 5.0:将Net.TcpipHeapSize设置为32
ESXi 5.0:将Net.TcpipHeapMax设置为128

注意:默认情况下,精简配置是NFS数据存储上创建的虚拟磁盘所用的格式。

优点:和iSCSI一样,NFS使用标准的TCP/IP网络,非常易于实施,不需要专用的存储架构。这是最便宜的解决方案,也不需要特殊的存储技能。NAS往往提供重复数据消除功能,这能减少存储空间需要量。

缺点:在这里描述的所有解决方案中,NFS的性能最低,但是接近于iSCSI。它所利用的主机服务器CPU比FC协议多,但是少于iSCSI软件。所以可以想象,它可以用于以下生产环境:VM要求第2层和第3层应用的平均性能。

注意:在vSphere 5中,这个协议不支持NFS启动或者RDM的使用。

我们建议如下的最佳实践:
每个NFS卷使用100~400个vmdk文件。对于最大尺寸为64TB的NFS卷来说,最大可能逻辑单元号(Logic Unit Number,LUN)为256。(制造商可能提供文件系统支持限额的信息,通常是16TB)
使用专用交换机或者VLAN分隔专门的存储网络和以太网络。

启用流控制
使用具有大的端口缓存的专用交换机,启用超长帧
启用生成树协议
使用10Gb网络(强烈推荐)
使用全双工TOE卡降低ESXi主机服务器负载
为NFS和iSCSI流量使用专用的交换机或者VLAN,将存储流量与其他网络流量分离

3.3.2 光纤通道网络

从根本上说,光纤通道网络是专用于存储的,提供对块模式数据的直接无丢失访问。这种网络是为高性能存储设计的,通过缓冲区信用阀值(buffer credit,一种用于调整SAN数据流的缓存)等高级机制得到很低的延迟。FC协议通过专用的光纤通道网络封装SCSI包。速度为1Gbps、2 Gbps、4 Gbps、8 Gbps或者16Gbps。FC包携带的有效载荷为2112个字节。这种存储网络通过光纤通道交换机在服务器和存储设备之间传送数据。图3-5中展示的SAN实现了存储整合,提供了高伸缩性。

image

1.VMware中的SAN FC

光纤通道(Fibre Channel,FC)是VMware支持的最高级协议。这也是它成为生产环境中最常用协议的原因。

优点:目前为止,FC似乎是性能最高的协议,和NFS和iSCSI相比,它所使用的主机服务器CPU资源也最少。该协议能实现很高的性能,而且因为这种技术是无丢失的,因此网络是可预测的。这种协议适用于所有流行的应用,对于数据库或者企业资源计划(Enterprise Resource Planning,ERP)等I/O密集型应用很理想。

缺点:FC是最昂贵的解决方案,因为它需要建设特殊的存储架构,并且需要投资HBA卡、FC交换机、小封装热插拔收发器(Small form-factor pluggable transceiver ,SFP)和电缆。而且,实现这种解决方案更为复杂,需要专门的存储技能。培训是必需的,还要学习管理SAN的新术语,例如LUN masking、Zoning WWN和Fabric。

我们建议如下的最佳实践:

为了减少损坏的链路,在每个服务器上插入多张HBA卡,并使用多存储阵列访问路径。

使用负载均衡软件(如ESXi Round Robin或者EMC PowerPath/Virtual Edition),优化服务器和存储之间的路径管理。
使用符合ALUA,与VMware的VAAI API兼容的存储阵列。
在群集所有成员之间使用相同数量的路径,群集中的所有主机服务器应该看到相同的卷。
服从ESXi群集成员和存储之间的连接兼容性矩阵。

注意:我们曾经遇到一些管理员,他们将服务器直接连接到控制器存储阵列,以节约交换机的成本!这样的做法失去了FC SAN提供的冗余性,不建议这么做。

在所有连接中使用相同速度的交换机,避免在SAN中造成竞争点。

示例:某公司有具备FC 8Gb端口的刀片服务器。SAN核心交换机速度为4Gbps。在核心交换机上出现一个明显的竞争点,对所有连接的元素都有影响。正确的做法是强制新设备采用4Gbps的速度。

检查FC交换机和HBA的固件级别,遵循存储阵列制造商的使用说明。

2.VMware中的SAN FcoE

以太网光纤通道(FCoE)代表着几个不同领域的融合:以太网络(TCP/IP)、存储用的SAN(SAN FC)和群集所用的InfiniBand(IPC)。这意味着,现在可以在这些不同的协议上使用一种类型的接口卡、交换机电缆和管理接口。FC帧被封装在以太帧中,提供了比TCP/IP更有效的传输。

FCoE帧携带2500个字节的有效载荷。目标是实现和FC类似的以太网无丢失性能。这通过加强物理网络可靠性和一些改进(尤其是关于QoS的改进)来实现。FCoE需要专用的设备,也需要启用超长帧(2180字节)。通过流控机制消除了拥堵。

因为FCoE在2012年中还相对不常见,我们对这种协议在VMware环境中的优缺点还缺乏实际的经验。

3.3.3 哪个协议最适合你

在我们的经验中,SAN FC是虚拟生产环境中管理员首选的协议管理器。据估计,有70%的客户在VMware生产环境中使用SAN FC。然而,具有超长帧的10GbE的出现,使得SAN IP基础架构易于实现,同时保持着能够满足某些情况的性能水平。除了技术标准之外,最好的选择还要根据现有架构和预算来决定。

总结如下:
SAN FC应该是需要高性能(第1层和第2层)的应用(如数据库应用)首选的方案。

iSCSC可以用于2层应用。有些公司在iSCSI中使用IP进行远程数据复制,这很有效且能控制成本。
NAS可以用于网络服务,例如基础架构VM—域控制器、DNS、文件或者非关键应用服务器(第3层应用),也可以用于ISO映像、模板和VM备份存储。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
30天前
|
安全 网络架构
MPLS线路构建稳定、高效网络的优选方案
【10月更文挑战第17天】MPLS线路构建稳定、高效网络的优选方案
46 5
|
10天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
10天前
|
存储 网络协议 安全
软件管理,磁盘存储,文件系统以及网络协议
【11月更文挑战第9天】本文介绍了软件管理、磁盘存储和网络协议等内容。软件管理包括软件生命周期管理和软件包管理,涉及需求分析、设计、实现、测试、发布、维护等阶段,以及软件包的安装、升级和依赖关系处理。磁盘存储部分讲解了磁盘的物理结构、分区与格式化、存储管理技术(如 RAID 和存储虚拟化)。网络协议部分涵盖了分层模型、重要协议(如 HTTP、TCP、IP)及其应用与安全。
|
27天前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
14天前
|
监控 安全 网络安全
企业网络安全:构建高效的信息安全管理体系
企业网络安全:构建高效的信息安全管理体系
43 5
|
13天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
38 3
|
22天前
|
数据采集 存储 机器学习/深度学习
构建高效的Python网络爬虫
【10月更文挑战第25天】本文将引导你通过Python编程语言实现一个高效网络爬虫。我们将从基础的爬虫概念出发,逐步讲解如何利用Python强大的库和框架来爬取、解析网页数据,以及存储和管理这些数据。文章旨在为初学者提供一个清晰的爬虫开发路径,同时为有经验的开发者提供一些高级技巧。
14 1
|
1月前
|
消息中间件 监控 网络协议
Python中的Socket魔法:如何利用socket模块构建强大的网络通信
本文介绍了Python的`socket`模块,讲解了其基本概念、语法和使用方法。通过简单的TCP服务器和客户端示例,展示了如何创建、绑定、监听、接受连接及发送/接收数据。进一步探讨了多用户聊天室的实现,并介绍了非阻塞IO和多路复用技术以提高并发处理能力。最后,讨论了`socket`模块在现代网络编程中的应用及其与其他通信方式的关系。
|
15天前
|
存储 安全 网络安全

热门文章

最新文章

下一篇
无影云桌面