如何优化RAID控制器提升存储性能
- 格式:doc
- 大小:20.50 KB
- 文档页数:3
目前存储行业中很多公司都在开发与存储优化相关的产品和技术,既有优化主机端访问的方案,也有提升SAN存储性能的技术,这是一个很有潜力的领域。
在这里,本文将要介绍一些能够有效提升存储性能的方法,而以往我们却经常忽视它们。
首先,排除故障网络存储的应用环境是相当复杂的,各种不同的硬件和软件要能够顺利的实现互操作。
所以,导致存储系统性能不佳的最常见的原因可能是配置错误,也可能是一个或多个组件发生故障。
因此,优化存储性能的第一步就是要看看现有的存储I/O 堆栈是不是有问题。
检查服务器和存储阵列的日志,看看是否有物理设备故障告警、I/O 重传、路径切换以及超时等明确的提示。
再试着去逐个分析故障组件,从与线缆相关的连接组件开始。
收发端口以及线缆的问题不容易发现,但通常会严重的影响性能。
在遭受物理冲击的时候,这些东西经常会损坏,因此,在数据中心里安装、迁移或搬走设备时要特别的小心。
1.更新固件和驱动程序厂商会不断的通过软件升级来修复产品中的bug 并增加新功能。
聪明的做法是把存储网络中所有组件的驱动程序和固件都升级到最新版本,定期做,提前测试、调试和升级。
我们看到Microsoft 和VMware 都在积极地为其产品—Windows 和vSphere 的存储部分增加新的性能增强特性,但通常我们看不到太多的宣传。
比如Microsoft 推出的SMB2 .0 和2.1 ,可以明显的提升Windows文件共享的性能,尤其是在低带宽的网络环境中。
还有新版的VMFS和NTFS文件系统在性能和可扩展性方面也有改善。
所以,平时要多浏览存储方面的博客和媒体,以便了解最新的相关动态。
要注意的是,并不是所有的版本升级都值得我们花费时间和精力,而且有时候升级的风险还很高。
所以,首先要确保所有相关的厂商能够支持你现有的设备及配置,并且有充分的测试,绝对不能在生产系统中使用测试版代码。
作为一个系统管理员,我倾向于保守一些,我会等到有其他人出了相关验证报告之后,自己才会尝试升级,以免冒险。
数据库性能调优中的瓶颈定位与解决方法在进行数据库性能调优时,识别和解决瓶颈是一个至关重要的步骤。
数据库瓶颈会导致性能下降,影响应用程序的响应时间,降低用户体验。
本文将介绍数据库性能调优中常见的瓶颈,并提供相应的解决方法,帮助您更好地优化数据库性能。
一、磁盘IO瓶颈磁盘IO瓶颈是数据库性能调优中经常遇到的问题。
它指的是当数据库需要大量的读写操作时,磁盘无法以足够高的速度响应请求,导致性能下降。
下面是一些解决磁盘IO瓶颈的方法:1. 使用RAID技术:RAID可以将多个磁盘组合成一个逻辑磁盘,从而提高数据的读写速度和容错能力。
常见的RAID级别有RAID 0、RAID 1、RAID 5等,根据应用需求选择合适的RAID级别。
2. 使用SSD磁盘:相比于传统的机械磁盘,固态硬盘(SSD)具有更快的读写速度和更低的延迟。
将数据库的存储设备替换为SSD磁盘可以显著提高数据库的性能。
3. 使用分区和索引:通过将数据分成较小的块并使用索引进行访问,可以减少对磁盘的IO操作,提高数据库的查询和更新性能。
二、查询优化瓶颈查询是数据库最常见的操作,但是不正确的查询方式和缺乏优化可能导致性能下降。
以下是一些解决查询优化瓶颈的方法:1. 使用合适的索引:索引可以加快查询速度,但是过多或者过少的索引都会对数据库性能产生负面影响。
根据实际查询需求和数据分布情况,选择合适的索引来优化查询性能。
2. 避免全表扫描:全表扫描是指没有使用索引,而是对整个表进行扫描的查询操作。
全表扫描通常会导致性能下降,尽量避免全表扫描,使用索引来加速查询。
3. 使用合适的算法:对于一些复杂的查询,选择适当的算法可以提高查询性能。
例如,对于大数据集合的连接操作,可以考虑使用哈希连接或者排序合并连接来加快查询速度。
三、内存不足瓶颈数据库的内存不足可能导致瓶颈,因为内存是数据库缓存和执行查询所需的关键资源。
以下是一些解决内存不足瓶颈的方法:1. 增加内存容量:将更多的内存分配给数据库,可以提高缓存的效果,降低磁盘IO的需求,从而提高查询和更新操作的性能。
存储效率的五种提升方法存储效率的五种提升方法在不购买新的存储设备前提下,要减少不必要的文件,减少系统所使用的空间这的确十个问题,为了解决此问题,本文介绍了优化存储效率最大化的五个方法。
优化存储效率的方法:1、使用存储管理软件存储管理软件可以不断监测和优化使用存储。
当然,你也可以简单地搜索硬盘中的大文件,如MP3,图片,或PST文件。
总之找出不需要或可以存储在其他存储设备中的文件,把它们存储在如本地电脑硬盘中,这往往有助于整理出大量的闲置空间。
又或者,您可以发送电子邮件通知企业中的员工将所有的用户档案和闲置的电子邮件下载到本地驱动器上的保存。
这将大大降低邮件服务器的存储空间。
同样的,你也可以制定一个执行策略来存储个人文件,确保他们不占用公司的网络空间。
优化存储效率的方法:2、使用重复数据删除或压缩您可以使用删除重复数据的方法来管理存储数据。
重复扫描存储系统,寻找重复的文件,并删除多余的文件副本。
另外还可以通过压缩数据的方法,从而减少所占用的空间,如字处理或其他文本文件。
而媒体文件,他们往往已经被压缩。
优化存储效率的方法:3、从未使用的空间创建存储您可以使用廉价或免费的软件,如Linux操作系统,重新利用旧设备作为存储服务器。
这个方案涉及在旧的服务器上安装Windows或Linux,并且将其变成一个文件服务器。
如果你有一个或多个闲置在身边的老系统,可以让他们快速运行起来。
同时,还可以将几个老系统的驱动器放入一台服务器中,因为旧的系统通常都是容量较小的硬盘驱动器。
一旦系统运行起来,你可以利用它存储任何类型的文件,您可以使用他们作为二级存储设备,为保存重要的应用,如电子邮件,数据库,协作或更新,提供更高的存储性能。
优化存储效率的方法:4、将文件移动到二级存储(辅助存储设备)许多企业都有为重要应用配备的高性能存储设备,如光纤通道或iSCSIRAID 系统,但常常是被用在不需要高速存储的应用程序占用。
您可以使用存储管理应用程序或手动移动数据到二级存储,以腾出大量的空间,节省昂贵的设备开支。
BIOS设置磁盘阵列RAID磁盘阵列RAID(Redundant Array of Independent Disks)是一种数据存储技术, 通过将多个磁盘组合在一起,以提升数据读写速度和冗余性。
RAID技术广泛应用于数据中心和企业服务器中,以提供更高的性能和可靠性。
在使用RAID技术之前,我们需要在计算机的BIOS中进行相应的设置,以便正确地配置磁盘阵列。
1. 进入BIOS设置首先,您需要按下计算机开机时显示的快捷键进入BIOS设置界面。
这个快捷键通常是Del键或F2键,但具体的快捷键可能因计算机品牌和型号而异。
一旦您进入了BIOS设置界面,就可以开始设置RAID了。
2. 找到磁盘设置选项在BIOS设置界面中,您需要找到相关的磁盘设置选项。
这些选项通常位于"Advanced"(高级)或"Storage"(存储)部分。
您可能需要浏览不同的菜单和子菜单来找到磁盘设置选项。
3. 启用RAID模式一旦您找到了磁盘设置选项,您需要将磁盘控制器的模式从"IDE"(IDE模式)或"AHCI"(高级主机控制器接口)改为"RAID"。
这将启用计算机的RAID功能。
4. 配置磁盘阵列RAID技术有不同的级别,如RAID 0,RAID 1,RAID 5等。
在BIOS中,您需要找到磁盘阵列配置选项,并选择您想要创建的RAID级别。
- RAID 0:该级别通过将数据分散存储在多个磁盘上以提高读写速度,但没有冗余性。
它需要至少两个磁盘。
- RAID 1:该级别通过在多个磁盘之间进行镜像备份来提供冗余性,但读写速度不如RAID 0。
它需要至少两个磁盘。
- RAID 5:该级别通过分布式存储校验数据来提供数据冗余性和读写速度。
它需要至少三个磁盘。
5. 配置其他选项(可选)除了RAID级别之外,您还可以配置其他选项,如热备份(hot spare)和缓存(cache)。
RAID :性能增强的磁盘阵列配置方案RAID(Redundant Array of Independent Disks)是一种通过将多个硬盘组合在一起形成磁盘阵列来提高存储性能和数据冗余的技术。
RAID有不同的级别,每个级别都有不同的特点和适用场景。
在本文中,我们将重点讨论几种常见的RAID配置方案,以及它们如何增强性能。
1. RAID 0:大幅提升读写速度RAID 0是最简单的RAID级别之一,它将两个或更多的硬盘组合在一起,并将数据分割成块,然后分别写入每个硬盘。
由于数据的并行读写操作,RAID 0将大幅提升存储系统的读写速度。
然而,RAID 0没有冗余功能,一旦其中一个硬盘出现故障,所有数据都将丢失。
2. RAID 1:提供数据冗余和备份RAID 1使用镜像技术,将相同的数据同时写入两个或多个硬盘。
这样,当其中一个硬盘出现故障时,系统可以从其他硬盘中获取相同的数据。
RAID 1提供了数据的冗余和备份功能,使得系统更加可靠。
然而,RAID 1并不能提升系统的读写速度,因为所有数据都要同时写入多个硬盘。
3. RAID 5:提供读取性能和数据冗余RAID 5是一种将数据分布在多个硬盘上并提供容错能力的RAID级别。
RAID 5至少需要三个硬盘,其中一个硬盘用于存储奇偶校验信息。
奇偶校验信息允许在一个硬盘故障的情况下恢复数据。
RAID 5在读取方面具有良好的性能,但在写入方面可能会稍慢。
4. RAID 10:融合RAID 1和RAID 0的优势RAID 10是将RAID 1和RAID 0结合起来的一种配置方案,它同时提供数据冗余和读写性能的优势。
RAID 10需要至少四个硬盘,它将硬盘分成两组,每组都是一个独立的RAID 1阵列,然后将这两个RAID 1阵列组成一个RAID 0阵列。
这样做的好处是不仅可以提供数据的冗余和备份功能,还可以大幅提升系统的读写性能。
5. RAID 6:提供更高的容错能力RAID 6是在RAID 5基础上进一步增强的配置方案,它使用两个奇偶校验信息来提供更高的容错能力。
虚拟机存储性能优化的实用技巧虚拟化技术的快速发展使得虚拟机成为了企业中不可或缺的一部分。
然而,随着虚拟机数量的增加和业务需求的提升,存储性能往往成为制约虚拟化环境性能的一个瓶颈。
为了解决这一问题,我们可以采取一些实用的技巧来对虚拟机存储性能进行优化。
1. 使用SSD固态硬盘传统的机械硬盘对于高负载的IO操作来说速度相对较慢,而SSD固态硬盘则具有更高的读写速度和更低的访问延迟。
因此,将虚拟机的存储介质从传统硬盘升级为SSD固态硬盘可以显著提升虚拟机的存储性能。
当然,SSD固态硬盘价格较高,因此可以根据业务需求和预算情况进行选择。
2. 使用RAID级联技术RAID级联技术是通过将多个物理硬盘组合成一个逻辑卷,从而提升存储性能和可靠性。
通过RAID级联技术,可以实现数据的并行写入和读取,从而提高虚拟机对存储的访问速度。
不同的RAID级别有不同的读写性能和数据冗余能力,可以根据具体情况选择适合的RAID级别。
3. 优化存储IO调度算法存储IO调度算法直接影响到虚拟机对存储的访问效率。
在虚拟化环境中,许多虚拟机可能共享同一个物理存储设备,因此,合理选择和配置存储IO调度算法是非常重要的。
在Linux系统中,可以通过修改/sys/block/device/queue/scheduler文件来选择合适的调度算法。
常用的调度算法有noop、deadline和cfq等,对不同的场景进行适配可以提高存储性能。
4. 使用存储加速技术存储加速技术可以通过缓存和预读等方式来提升存储性能。
虚拟机中常用的存储加速技术包括缓存技术、数据预读技术和写入加速技术等。
例如,通过配置虚拟机的磁盘缓存策略,可以将磁盘读写操作缓存在内存中,从而减少对物理磁盘的IO操作,提高存储性能。
5. 进行定期的性能监控和调优进行定期的性能监控和调优是保持虚拟机存储性能高效的关键。
通过监控虚拟机的实时性能指标,如存储IO吞吐量、延迟和队列长度等,可以及时发现存储性能问题并进行调优。
磁盘阵列服务器及存储解决方案服务器及存储解决方案目录前言 ..................................................................... (3)第一章需求分析 ..................................................................... (4)(一)、系统现状 ..................................................................... . (4)(二)、需求分析 ..................................................................... . (4)(三)、方案设计原则 ..................................................................... .. (4)(四)、方案概述 ..................................................................... ........................................ 5 第二章存储解决方案 ..................................................................... .. (7)(一)、采用UIT SV1600磁盘阵列的理由 (7)内置阵列卡技术和外置独立磁盘阵列技术比较 (7)UIT SV1600磁盘阵列系统 ..................................................................... .................... 9 第三章售后服务承诺 ..................................................................... (29)前言随着计算机信息管理系统的广泛应用,给人民的生产和生活带来了极大的方便。
了解电脑硬盘阵列(RAID)如何提升数据存储性能与冗余性电脑硬盘阵列(RAID)是一种通过将多个硬盘组合起来工作来提升数据存储性能和提供数据冗余性的技术。
本文将详细介绍RAID的各种级别和其工作原理,以及它如何在数据存储方面发挥作用。
一、RAID的概述RAID,全称为“Redundant Array of Independent Disks”,即独立磁盘冗余阵列。
它旨在通过同时使用多个硬盘来提升数据存储性能和增强数据的容错能力。
RAID可以通过数据分布和冗余化来提高系统性能和可靠性。
二、RAID的级别RAID有多种级别,每个级别都有其独特的特点和适用场景。
下面将介绍几个常见的RAID级别:1. RAID 0RAID 0是最简单的RAID级别,它通过将数据分块地存储到多个硬盘上来提升读写速度。
RAID 0具有良好的性能,但没有冗余功能,一旦某个硬盘出现故障,所有数据将会丢失。
2. RAID 1RAID 1是一种镜像级别的RAID,它要求至少使用两个硬盘。
RAID 1通过将数据同时写入两个硬盘来实现数据冗余,从而提供更高的可靠性。
当其中一个硬盘出现故障时,系统可以自动切换到另一个硬盘继续工作。
3. RAID 5RAID 5通过将数据和校验信息分布存储在多个硬盘上来实现数据冗余和性能提升。
RAID 5至少需要三个硬盘。
当其中一个硬盘出现故障时,RAID 5可以根据校验信息恢复数据。
RAID 5是一种性能和冗余兼顾的RAID级别。
4. RAID 10RAID 10是RAID 1和RAID 0的结合,需要至少四个硬盘。
RAID 10将数据同时写入多对镜像硬盘,然后再将镜像硬盘组合成一个RAID 0阵列。
RAID 10提供了优秀的性能和较高的冗余性。
三、RAID的工作原理RAID使用不同的技术和算法来实现数据的分布和冗余。
下面将介绍几种常见的RAID技术:1. 块级分布在RAID中,数据被分成固定大小的块,然后分布存储在不同的硬盘上。
服务器性能调优技巧提升系统响应速度与吞吐量随着互联网的发展,服务器承载的压力也越来越大。
为了提供更好的用户体验和满足不断增长的网络请求,服务器性能调优变得至关重要。
本文将介绍一些有效的技巧,帮助提升服务器的响应速度和吞吐量。
一、硬件优化1. 选择适合的服务器硬件:在购买服务器时,要根据业务需求选择适合的硬件配置。
考虑到预算和性能需求,合理选择处理器、内存、硬盘等硬件。
2. RAID 阵列配置:使用 RAID 技术可以将多个硬盘组合为一个独立的逻辑驱动器,提高磁盘的读写性能和数据冗余能力。
3. 网络带宽优化:确保服务器与用户的网络连接通畅。
选择高速、稳定的网络提供商,优化网络带宽的使用方式,避免带宽浪费和瓶颈。
二、操作系统优化1. 使用最新操作系统版本:不断更新操作系统的版本,可以获得更好的性能和安全性。
及时安装更新和补丁,以修复系统漏洞和提高性能。
2. 禁用不必要的服务和进程:关闭不需要的服务和进程,避免它们占用系统资源和内存。
通过精简系统,可以提高服务器的性能。
3. 调整内核参数:根据服务器的硬件和网络环境,调整操作系统内核的参数。
合理设置 TCP 缓冲区大小、最大连接数等参数,提高网络传输效率。
三、应用程序优化1. 代码优化:不断优化应用程序的代码,提高其性能效率和运行速度。
避免重复计算和冗余操作,使用高效的算法和数据结构。
2. 数据库优化:合理设计数据库结构,优化查询语句和索引,避免全表扫描和慢查询。
使用数据库连接池和缓存技术,提高数据库的性能和响应速度。
3. 静态资源优化:减少静态资源(如图片、CSS、JavaScript)的加载时间。
使用文件压缩和缓存技术,减小文件大小和数量,提升页面加载速度。
四、负载均衡与缓存1. 负载均衡:通过负载均衡技术,将请求分发到多个服务器上,实现请求的均衡负载。
有效利用服务器资源,提高系统吞吐量和并发处理能力。
2. CDN 加速:使用 CDN(内容分发网络)技术,将静态资源缓存到离用户最近的节点上。
硬件RAID与软件RAID的比较与选择RAID(冗余磁盘阵列)是一种数据存储技术,通过将多个物理磁盘组合成一个逻辑磁盘来提高数据的可靠性和性能。
在RAID中,硬件RAID与软件RAID是两种常见的实现方式,在选择适合自己需求的RAID方案时,了解它们的特点和比较是非常重要的。
1. 硬件RAID硬件RAID是通过专用的RAID控制器来实现的。
这些控制器通常有自己的处理器和缓存,能够独立于主机进行RAID计算和管理。
硬件RAID的主要优点包括:- 性能:硬件RAID的处理器和缓存提供了更高的性能,可以提升数据的读写速度,特别是在处理大量IO请求时表现优异。
- 可靠性:硬件RAID控制器具备多种数据保护机制,如磁盘冗余、热备份和错误纠正等。
这些机制可以确保数据的安全性和可靠性。
- 管理:硬件RAID控制器通常配备了可视化的管理界面,方便用户进行配置和监控。
同时,由于控制器独立于主机,更换主机时不需要重新配置RAID。
然而,硬件RAID也存在一些限制和劣势:- 成本:硬件RAID需要专用的RAID控制器,对硬件要求较高,因此成本较高。
- 易用性:硬件RAID的配置和管理相对复杂,需要具备一定的技术知识和经验。
- 扩展性:硬件RAID的扩展性有限,当需要增加存储容量时,需要更换控制器或添加额外的硬件。
2. 软件RAID软件RAID是通过操作系统的软件来实现的,没有独立的RAID控制器。
软件RAID的特点和优势包括:- 成本:相比硬件RAID,软件RAID无需额外的硬件设备,因此成本较低。
- 灵活性:软件RAID可以根据需要进行配置和管理,不受硬件限制,更易于扩展和升级。
- 易用性:软件RAID的配置和管理相对简单,由操作系统提供GUI或命令行工具进行操作,用户可以快速上手。
然而,软件RAID也有一些局限性和劣势:- 性能:由于软件RAID依赖于操作系统的处理能力,对CPU的占用相对较高,可能会对系统性能产生一定影响,尤其是在处理大量IO请求时。
如何优化RAID控制器提升存储性能
调整RAID控制器并没有象有些厂商吹嘘的那么困难,甚至不需要专业的技术支持就可以搞定。
许多参数都与缓存和缓存利用率,以及众所周知的RAID LUN 相关,本文不针对具体的RAID控制器优化,但阅读本文一样很有帮助,至少你知道有哪些参数经过调整对I/O性能有益。
优化RAID控制器需要考虑的地方包括:LUN创建和RAID级别,缓存调整和配置。
关于RAID级别与性能有关的文章已经很多,这里就不再重复了,主要谈一下RAID的调优,如果你想通过配置RAID优化存储性能,不管是安装在PC服务器上的RAID控制器,还是高端企业级存储阵列,阅读本文之后,你将有清晰的方向。
首先我们来看看RAID控制器的种类,目前我们常见的有以下三种:
1、企业级“Active/Active”:这种控制器允许你从任何主机向任何LUN写入数据,不会造成性能下降,它通常具备很大的镜像缓存(一般会超过32GB),这种控制器支持热插播硬盘,正常运行时间很长,现在与控制器通信一般是走光纤通道(FC)或以太网光纤通道(FCoE)。
2、中端“主动/被动”:这种控制器对于每个LUN来说都有两个侧面,一个主动侧面,它是主要路径,一个被动侧面,用于故障转移,你通常需要在主要和故障转移侧之间分割LUN,平均划分你的系统,缓存可以在控制器上镜像,但这种控制器的弹性没有企业级控制器好。
3、RAID主机卡:这种卡插入到PCIe插槽,通过SAS或SATA数据线连接到硬盘,它没有独立的处理器,而企业级和中端控制器都有,它们支持的硬盘数量也没有前两种控制器多,此外,要想故障转移到另一个控制器也是不可能的,你系统的弹性完全取决于你的PCIe插槽和控制器卡。
RAID缓存调整和配置
可以从三个方面调整RAID缓存:
调整缓存,读优先,写在后。
调整缓存块大小。
调整缓存镜像(对于中端控制器来说特别重要)。
读优先,写在后:你可能会认为这样调整后不会产生实质性效果,但事实证明不是你想象的那样,如果读优先,它会认为数据是连续的,这样可以为数据分配连续的地址空间,RAID控制器不知道文件系统或数据的拓扑结构,它只知道连续块地址。
如果你的文件系统分配单元小于RAID条带尺寸,如果同时有多个文件写入,这些文件将会在这些RAID条带上变成碎片。
例如,如果文件系统分配尺寸是64KB,RAID 5 8+1条带大小是512KB,同时有多个文件写入,RAID控制器做得最多的事情就是读取你请求的数据,在这里是64KB,也可能是另一个64KB,如果你连续读,直到读完整个条带,这就是读优先,另一方面,如果你只读一个64KB的块,条带中剩余部分的数据来自其它文件,那么读优先只有害处,只有RAID条带大小和文件系统分配单元相匹配时,实施读优先才会获得很好的性能。
写在后:将块读入缓存以便写入内容,当数据命中缓存时向写入程序发送一个响应,这里的关键是数据在RAID条带上必须是对齐的,如果没有对齐,RAID 必须完成“读-修改-写入”(读入条带数据,修改成新数据,再写入条带),这样的
后果是开销大,延迟严重,RAID缓存的目的本来就是为了隐藏写入磁盘的延迟,当数据命中缓存时接收确认。
调整写在后通常需要针对读优先指定需要分配多少缓存空间,此外还需要指定可读或写的最小缓存块大小。
调整RAID缓存块大小
缓存块大小是可以读入缓存的最小数据量,例如,在一块磁盘上的一个RAID 分配单元可能是32KB,你可能会认为该磁盘的所有I/O单元都是32KB,但如果缓存块大小是4KB,那对该磁盘的最小读或写大小应该是4KB,而不是32KB,它是今天磁盘扇区大小的8倍,如果你的文件系统分配单元很大,你的写入请求也很大,但缓存块大小很小,就可能会降低RAID的性能。
我所见过的大多数RAID控制器都是这样,缓存块越小速度越慢,因为它们没有足够的处理器能力管理所有的块,也许等下一代控制器上市会改变这一现状(因为处理性能将会提升)。
只有在RAID分配单元中数据处于非对齐状态时,缓存块小一点更好。
想象一下以小的请求写,大的请求读,文件系统分配单元和条带大小匹配时会是什么状况,发生多个连续写操作时,文件系统不会产生严重的碎片,并且读优先将会起作用,如果读比写更大,读优先也有帮助,所有RAID控制器会认为读是连续的,因此在调整读操作时,你需要知道读和写请求大小,并确定同一时间有多少文件写入,如果同一时间只有一个文件写入,数据将很可能是连续分配的,直到文件系统产生碎片,读优先将会带来很大的好处。
另一方面,如果有多个文件写入,并且写入大小和文件系统分配单元比条带尺寸小,这时读优先的作用就很小,甚至毫无作用。
归结起来就是:读优先适用于写和分配单元相等,或者当有多个文件写入时,大于RAID的条带尺寸。
调整缓存镜像
在许多中端RAID产品中,写缓存镜像是一个常见的功能,所有写入内容全部镜像到RAID控制器中,控制器处理I/O请求,将其写入控制器的另一半缓存中,如果数据在条带上是完全对齐的,有些厂商在控制器上使用一些技术绕过缓存写入请求,但在普通环境中是具有写缓存镜像的,每一次写操作都要写入到缓存,在向I/O请求发出确认前再写入到另一个缓存,写缓存镜像因此通常会降低性能,因为写入其它缓存存在延迟,并会占用一定的带宽,每个缓存必须镜像到其它缓存,因此缓存空间利用率会下降一半。
如果厂商提供了读或写缓存调整参数,可以根据负载和可靠性考虑进行微调。
我经常听到的一个问题是用户到底应不应该使用写缓存镜像,这要根据你对数据可靠性的需要而定。
假设你正在写一个文件,将数据写入一个没有写缓存镜像系统的缓存,如果这个时候整个控制器出现故障(从缓存到磁盘),你的应用程序会被告知写入成功,但数据却没有来得及写入磁盘。
虽然这种事故发生的几率非常小,但仍然是可能发生的,我就有幸见过一次。
如果你对同一个文件再执行一个写入操作,你可能会遭遇I/O错误,大多数RAID这个时候会意识到它们不能从缓存写入到磁盘,因此会暴露错误,有的RAID 控制器会故障转移到可以工作的一侧,你的操作得以成功完成,但实际上已经有一个文件已经丢失了,但你的应用程序却不知道,如果文件少写入了内容,这可能会引发后续一系列的连锁反应,这也是为什么写缓存镜像默认启用的原因。
调整写缓存镜像需要指定为写入操作保留多少缓存空间,写缓存镜像开关应该开启,如果控制器损坏,想要找出损坏的数据或缺少的数据几乎是不可能的。
其实只要掌握一点RAID控制器的常识,调整它就不难了。
我们需要记住的
是,如果同时有多个文件写入,文件系统分配单元很小时,读优先是没有用的,最糟糕的一个例子就是Windows上的NTFS。
如果文件系统分配单元很大,与条带尺寸相当,或大于条带尺寸,读优先将会对性能起到很大的帮助。