存储性能101:服务器、阵列与网络架构基础

简介:

长期以来,数据都是一种蕴含着价值的商品,不论是在企业内部环境中部署,抑或是放到公有云端去实现,它 都是IT系统的核心所在。自上世纪50年代,磁带和磁盘发明后,我们便产生了在存储介质上持久存放数据的需要。

当然,这种持续的数据存储是要付出代价的。不论是磁盘、磁带或是闪存,存储设备的速度都无法赶上处理器和内存系统的发展。于是,为了得到良好的整体存储性能,我们必须不断尝试各种方式,使得存储介质运转得更快。

我们在外部存储介质中保留数据通常只有两种原因:长期存储和数据保护。

长期存储意味着在应用程序关闭或服务器断电后数据仍然能得以保留。数据无法长期驻留于系统内存(DRAM),所以当服务器或应用程序发生故障时,数据每隔一段时间就要写入到相应的介质之中。

数据保护亦是至关重要的,服务器有时会出现故障,甚至发生一些意想不到的事故灾害,如果不在多个存储介质上创建冗余,保留多个数据副本,我们很容易会遇到麻烦。数据保护机制包含RAID、纠删码和快照等,它们可以用来保护数据免遭物理和逻辑损坏,以及常见的“使用者操作失误”。

存储的性能指标

存储性能的评估通常使用这三种指标。

延迟:用以衡量设备的响应时间。系统内存的延迟通常以纳秒(ns)为单位、闪存以微秒(μs)计,而硬盘驱动器的单位则用毫秒 (ms)。

带宽:表示设备在特定时间段内传输数据的能力,通常以每秒兆比特(Mbps)或每秒千兆比特(Gbps)为单位。

吞吐量:代表了设备传输数据的实际能力,通常以每秒兆字节(MBps)或每秒千兆字节(GBps)为单位。

虽然看似类同,但带宽与吞吐量却有着本质上的差别。例如,硬盘驱动器(HDD)和固态驱动器(SSD)接口的最大带宽相同,但其输入/输出(I / O)顺序或随机、读或写的数据吞吐量却有着天壤之别。

在理想环境中,所有的数据都将存储在系统内存之中,以最快的性能提供访问,但系统内存代价不菲且容易丢失,服务器内又只能配置有限的容量。大多数应用程序不需要一直访问所有的数据,考虑到成本因素,我们访问这些数据的频繁程度和所要求的速度决定了数据最适合的存储位置。

那么,如何才能充分利用存储资源呢?我们可以怎样调优,才能以最低的成本赢得最佳性能?

存储介质性能的比较

在深入探讨之前,我们先来看下可供企业选择的各种存储介质的层次结构。

DRAM:是在性能和延迟方面都表现最佳的存储介质,缺点是所存储的内容并不稳定。DRAM容量扩容并不容易,而且不能在多台服务器之间轻松共享。DRAM可以按字节寻址。

NVDIMM:使用和DIMM相同的外形尺寸,可以像DRAM那样非常快速,并且在断电时可以借助闪存或其它技术来保留内容。其在速度上略逊于DRAM,也有类似的访问性和扩展性问题。NVDIMM通常以字节寻址。

闪存:非常快速的持久存储介质,并具有良好的可扩展性,可作为单台服务器或是存储阵列的组成部分。它比DRAM便宜很多,并按数据块寻址。根据不同价格、性能、成本可以区分出不同的闪存类型,如MLC、TLC等。

硬盘驱动器:一种相对较慢的,用以长期存储数据的介质,现在更多用于归档和备份数据的存放。硬盘驱动器同样是数据块寻址的。

上述这些介质均可单独或混合使用,从而实现了一系列不同存储性能的方案。

服务器内部的存储介质选择

存储可以直接部署在服务器内部,尽可能靠近中央处理器,缩短数据的I/O路径,从而减少延迟。

闪存则必硬盘具有更高的性能水平。根据访问数据的性能需求,可以组合使用不同闪存/硬盘驱动器容量配比的方案,从而在成本和性能之间达成平衡。闪存与系统内存可以用作高速缓存来存放活跃的数据,而同时将相对静止的数据存储到硬盘驱动器上。

这其中涉及到命中率的问题,即活跃数据都存储在缓存中,根据命中率可以推测出I/O性能。如果数据需要从硬盘驱动器而非缓存中读取,那么其访问请求的性能将受到影响。一种方案是将廉价和昂贵的不同闪存类型混合使用,从而实现适合的方案性价比。

服务器中存储的另一项考虑因素是要防止设备故障。假如驱动器发生故障,那么服务器可能要完全宕机才能更换部件,除非该设备支持热插拔。假如服务器发生故障,内部设备上的数据都将无法访问,因此我们需要复制数据。这取决于将一组服务器连接起来的网络的速度,给I/O增加了额外的延迟。

考量存储阵列的性能

共享存储阵列为数据带来了更高的可用性和更好的可访问性,不过由于需要遍历以太网或光纤通道的存储网络,这可能会造成延迟。

目前一些新产品正在上市,提供不同的连接选项(如RDMA,RoCE和NVMe)等解决方案。相比传统的存储网络,这些新技术虽然扩展性较差,但显著降低了延迟。

存储阵列亦可以通过选择不同的存储介质来改善性能。

DRAM缓存能够改进读写性能,而混合系统中的闪存与磁盘驱动器则能实现最好的方案性价比。

同时,与上文中讨论的“缓存未命中”问题的风险相比,全闪存系统能够确保所有数据的I / O性能与延迟。

闪存技术的应用引发了一系列技术的产生,已经不在局限于单纯地提高吞吐量、解决延迟。通常来说,用越多的内存和闪存来取代磁盘,我们就能得到越好的存储性能。

存储网络的性能

当使用外部存储阵列时,我们可以通过调整存储网络以提高整体系统的性能。

最新的主机总线适配器(HBA)带来了非常高的带宽(32Gbps光纤通道、40Gbps和100Gbps以太网),而网络交换机则实现了很低的延迟。通常来说,更快的单个设备都会促使整体系统的性能得以更好地发挥,尽管不断升级交换机的成本或许是不容小觑的。通过添加更多的前端连接(额外的HBA),我们可以将工作负载扩展分配到更多的连接之上,从而提高对存储阵列的吞吐量。

另有一些其它的技术同样可以改善性能:

负载均衡:这项技术能够在尽可能多的设备上平衡资源的利用率。这意味着你可以将数据扩展分布到多块磁盘(闪存或硬盘驱动器),并充分利用所有连接,能够在服务器和存储阵列之间实现宽条带化技术。

负载优化:访问活跃数据会产生较重的工作负载,可以将其迁移到更快速的设备上,例如闪存,由于闪存代价不菲,因此需要尽可能使用在最需要的地方。假如可以克服服务器可用性的问题,那么NVDIMM的应用或许可以大大提高某些工作负载的性能。

缓存:我们已经探讨过存储阵列和服务器上的缓存,其亦可以跨设备使用,即在服务器上使用DRAM和闪存,对来自外部存储的I / O进行缓存,这在读取操作上没有限制,而写出操作则要求一定的弹性以防止数据丢失。

存储网络调优:在更为复杂的存储网络中,共享存储端口和交换机之间的链路或许会变成瓶颈,需要检查队列深度和缓冲区信用阀值等设置,或者利用网络自带的拓扑技术进行优化。

通过上述讨论,我们不难看出:改善性能的前提是具备适合的度量方式。如果缺乏合适的度量工具,量化性能问题、判断问题是否得以解决便无从谈起。

所有存储供应商都会提供衡量其产品性能的工具,甚至还能实现端到端的性能测试,显示出存储对整体应用系统性能的影响。通过这些工具,你还可以看出当前实时的性能和历史的性能数值——这对于持续改进存储系统性能而言亦是至关重要的。

本文转自d1net(转载)

相关文章
|
1月前
|
存储 数据采集 弹性计算
Codota的存储架构通过多种方式保障数据安全
Codota的存储架构通过多种方式保障数据安全
30 4
|
8天前
|
存储 数据挖掘
服务器数据恢复—V7000存储上多块Mdisk成员盘出现故障的数据恢复案例
服务器存储数据恢复环境: 一台V7000存储上共12块SAS机械硬盘(其中1块是热备盘),组建了2组Mdisk,创建了一个pool。挂载在小型机上作为逻辑盘使用,小型机上安装的AIX+Sybase。 服务器存储故障: V7000存储中磁盘出现故障,管理员发现问题后立即更换磁盘。新更换的硬盘在上线同步数据的时候,存储上另一块磁盘也出现问题,导致逻辑盘无法挂接在小型机上,业务暂时中断。V7000存储的管理界面上显示两块硬盘故障脱机。 pool无法加载,其中三个通用卷均无法挂载。
|
17天前
|
安全 数据挖掘
服务器数据恢复—RAID5阵列中两块硬盘离线导致阵列崩溃的数据恢复案例
服务器数据恢复环境: 两组分别由4块SAS接口硬盘组建的raid5阵列,两组raid5阵列划分LUN并由LVM管理,格式化为EXT3文件系统。 服务器故障: RAID5阵列中一块硬盘未知原因离线,热备盘自动激活上线替换离线硬盘。在热备盘上线过程中,raid5阵列中又有一块硬盘离线。热备盘同步失败,该raid阵列崩溃,LVM结构变得不完整,文件系统无法正常使用。
|
27天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
67 7
|
25天前
|
存储 运维 数据挖掘
服务器数据恢复—EVA存储中多块硬盘离线导致存储崩溃的数据恢复案例
一台HP EVA存储中有23块硬盘,挂接到一台windows server操作系统的服务器。 EVA存储上有三个硬盘指示灯亮黄灯,此刻存储还能正常使用。管理员在更换硬盘的过程中,又出现一块硬盘对应的指示灯亮黄灯,存储崩溃,无法使用了。
|
1月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
|
1月前
|
机器学习/深度学习 自然语言处理 物联网
NeurIPS 2024 Oral:小参数,大作为!揭秘非对称 LoRA 架构的高效性能
近期,一篇题为《\model~: 非对称LoRA架构实现高效微调》的论文被NeurIPS 2024接收为口头报告,该研究提出了一种创新的非对称LoRA架构,旨在解决大型语言模型(LLMs)在保持高性能的同时提高训练和部署效率的问题。通过引入共享A矩阵和多个B矩阵,\model~不仅提高了参数效率,还在多个数据集上展示了超越现有PEFT方法的性能,尤其是在多任务域和复杂数据集上的表现尤为突出。此架构还有效减少了训练能耗和延迟,为LLMs的高效应用提供了新思路。
31 4
|
1月前
|
存储 缓存 弹性计算
Codota的服务器存储架构
Codota的服务器存储架构
29 5
|
1月前
|
存储 缓存 弹性计算
Codota的存储架构
Codota的存储架构
34 3
|
24天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。