简介
磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
RAID卡电路板上的一块存储芯片,与硬盘盘片相比,具有极快的存取速度,实际上就是相对低速的硬盘盘片与相对高速的外部设备(例如内存)之间的缓冲器。缓存的大小与速度是直接关系到RAID卡的实际传输速度的重要因素,大缓存能够大幅度地提高数据命中率从而提高RAID卡整体性能。多数RAID卡都配备了一定数量的内存作为高速缓存使用。不同的RAID卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等,这取决于磁盘阵列产品的应用范围。
RAID结构
- RAID处理器是一个PCI从设备,接受并执行来自系统的命令。同时占用PCI中断,代表SCSI磁盘子系统向系统提出中断请求,请求占用PCI总线,返回对系统命令的响应,如输送SCSI硬盘上的数据。
- SCSI控制器为连接磁盘设备的统一扩充接口。
- RAID中也有缓存(CACHE MEMORY),提供缓存数据、预读(Read-ahead)和回写(Write-back)功能,提高磁盘IO性能。
- XOR芯片:专门用来做RAID 3、5、6等这类校验型RAID的校验数据计算用的。
RAID Cache
阵列卡缓存是阵列卡先将数据传输到缓存,再由缓存和外边数据总线交换数据的一种过程,实际指的是相对低速的硬盘盘片与相对高速的外部设备之间的缓冲器。
阵列卡缓存的主要作用是,加快数据读写速度,提高磁盘的效用,避免不必要的等待时间,可以减少操作所带来的延迟提高系统性能得到更好的响应时间,所以阵列卡缓存的作用是非常大的。
- Write Through和Write Back是阵列卡Cache的两种使用方式,也称为透写和回写。
- Write Through 透写:系统的写磁盘操作并不利用阵列卡的Cache,而是直接与磁盘进行数据的交互,写操作根本不使用缓存,数据总是直接写入磁盘,影响写入性能。
- Write Back(Write Cache) 回写:利用阵列Cache作为系统与磁盘间的二传手,系统先将数据交给Cache,然后再由Cache将数据传给磁盘;数据不是直接被写入磁盘,而是写入缓存。从应用程序的角度看,比等待完成磁盘写入操作要快的多。因此,可以提高写性能。由控制器将缓存内未写入磁盘的数据写入磁盘。
- 生产环境中的配置要根据具体的业务类型及环境进行配置,比如:如果有外置UPS电源,选Write Back,如果没有外置电源,并且对数据安全性要求很高,不要求太高性能,就选Write Through。
- Write Back with BBU:此是阵列卡配有Battery Backup模块元时的可选项,它的作用是用以在系统断电时保护Cache中的数据,避免断电造成中间数据的丢失。
注意
表面上看,Write Cache方式比Write Through 方式的读、写性能都要好,但是也要看磁盘访问方式和磁盘负荷了。
Write Back(Write Cache)方式通常在磁盘负荷较轻时速度更快。
负荷重时,每当数据被写入缓存后,就要马上再写入磁盘以释放缓存来保存将要写入的新数据,这时如果数据直接写入磁盘,控制器会以更快的速度运行。因此,负荷重时,将数据先写入缓存反而会降低吞吐量。
简单来说 ,Write Back(Write Cache)这种先写入缓存再写入磁盘的方式,如果在I/O繁忙,CPU负载高的时,相对比直接写入磁盘,反而效率会更低。
缓存策略Cache Policy
- No-Read-Ahead(非预读)指定控制器在当前逻辑驱动器中不使用预读方式。
- Read-ahead(预读)指定控制器在当前逻辑驱动器中使用预读方式。
- Adaptive(自适应)指定如果最近两次的磁盘访问出现在连续的扇区内,则控制器开始采用Read-ahead(预读)。 如果所有的读取请求都是随机的,则该算法回复到No-Read-Ahead(非预读),但仍要判断所有的读取请求是否有按顺序操作的可能。
Cache Policy(高速缓存策略) 适合在特定逻辑驱动器上读取。 它并不影响Read ahead(预读)高速缓存。 - Cached I/O(高速缓存I/O)指定所有读取数据在高速缓存存储器中缓存。
- Direct I/O(直接I/O)指定读取数据不在高速缓存存储器中缓存。 此为默认设置。 它不会代替高速缓存策略设置。数据被同时传送到高速缓存和主机。 如果再次读取同一数据块,则从高速缓存存储器读取
Write Policy(写入策略) 将高速缓存方法设置为回写或通过写。 - 在Write-Back(Write Cache)(回写)高速缓存中,当控制器高速缓存已接收到某个事务中的所有数据时,该控制器将数据传输完成信号发送给主机。
- 在Write-Through(透写)高速缓存中,当磁盘子系统已接收到一个事务中的所有数据时,该控制器将数据传输完成信号发送给主机。
Write-through(通过写)高速缓存与Write-back(回写)高速缓存相比具有数据安全的优势,但Write-back(回写)高速缓存比起Write-through(通过写)又有性能上的优势。
RAID 电池
RAID 电池的作用:
- 用以在系统断电时保护Cache中的数据,避免断电造成中间数据的丢失。
- 那在更换RAID卡电池之前,服务器虽然已经下线,无数据写入,但还有一部分数据存在RAID cache中,并未写入硬盘中;但一般RAID卡电池坏掉后,RAID卡会自动将写缓存(即write back)禁止,变为write through方式,会使写性能有一定的下降,但不影响数据安全。
- 若RAID电池和某块硬盘同时出现故障,应先更换RAID卡电池,待服务器重启成功,RAID卡工作正常后再更换故障的硬盘,最大限度保证数据安全。