阵列卡缓存 RAID Cache

news2024/11/24 0:41:08

简介

磁盘阵列(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卡工作正常后再更换故障的硬盘,最大限度保证数据安全。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TypeScript 的魔法技能:satisfies

现在&#xff0c;随着 TS 4.9 的发布&#xff0c;在 TypeScript 中有了一种新的、更好的方式来做类型安全校验。它就是 satisfies &#xff1a; type Route { path: string; children?: Routes } type Routes Record<string, Route>const routes {AUTH: {path: &quo…

MySQL-索引详解(上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️树高千尺&#xff0c;落叶归根人生不易&…

零入门kubernetes网络实战-34->将物理网卡eth0挂载到虚拟网桥上使得内部网络能够跨主机ping通外网的方案

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章模拟一下啊&#xff0c;将宿主机的对外的物理网卡&#xff0c;挂载到虚拟网桥上&#xff0c;测试一下&#xff0c; 网桥管理的内部网络如何跟宿主…

华为OD机试真题 Java 实现【太阳能板最大面积】【2022Q4 100分】,附详细解题思路

一、题目描述 给航天器一侧加装长方形或正方形的太阳能板&#xff08;图中的红色斜线区域&#xff09;&#xff0c;需要先安装两个支柱&#xff08;图中的黑色竖条&#xff09;&#xff0c;再在支柱的中间部分固定太阳能板。 但航天器不同位置的支柱长度不同&#xff0c;太阳…

Linux账号管理与ACL权限设定(二)

使用者身份切换 通常以一般账号登录系统&#xff0c;若有系统维护或软件更新才需要转为root身份来操作。 su 若要完整的切换到新使用者的环境&#xff0c;必须要用 su – username &#xff0c;才会连同环境 PATH/USER/MAIL 等变量都转成新用户的环境。 若仅想执行一次root…

Linux学习[14]默认文本编辑vi/vim介绍常用指令演示指令汇总

文章目录 前言&#xff1a;1. vi介绍2. 指令演示2.1 vi创建文件2.2 添加文本 3. 指令汇总3.1 一般指令模式可用的按钮说明&#xff0c;光标移动、复制贴上、搜寻取代等3.2 进入插入或取代的编辑模式3.3 一般指令模式切换到命令行界面的可用按钮说明 总结 前言&#xff1a; 之前…

pycharm和virtualBox虚拟机的安装(包括本地环境和远程环境配置)

目录 一、安装时需要的软件二、安装virtualBox三、安装pycharm四、创建pycharm本地环境五、创建pycharm远程环境 一、安装时需要的软件 Pycharm&#xff0c;jetbrains-agent-latest破解包&#xff08;破解pycharm&#xff09;;镜像文件ubuntu20&#xff0c;虚拟机virtualBox …

【Android】通过Profiling工具和adb确定app被系统杀死的原因

当您想要确定安卓App被系统杀死的原因时&#xff0c;可以通过以下步骤进行分析&#xff1a; 打开Android Studio中的Profiling工具 在您的项目中&#xff0c;打开Android Studio并进入Profiling工具。点击左上角的“Android Profiler”图标&#xff0c;选择“CPU”或“Memor…

【Linux】Linux编译器 gcc/g++的使用初识动静态链接库

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

chatgpt赋能python:Python处理DICOM文件

Python处理DICOM文件 DICOM (Digital Imaging and Communications in Medicine)是医疗图像和数据的标准&#xff0c;用于存储和交换医学图像和相关信息。在医疗领域中&#xff0c;DICOM文件是医生和医学技师进行诊断和治疗的必要条件。在本文中&#xff0c;我们将介绍如何使用…

Linux下配置Qt6安卓开发环境

安装JDK 选择自己定义JDK安装路径 点击如下图按钮 安装SDK 提示TLS初始化失败 由于HTTPS问题造成无法下载,暂用Android Studio来安装Android SDK 成功安装SDK 安装NDK与命令行工具 正在下载NDK及命令行工具 NDK与工具下载完成 配置QT的Android SDK路径 配置NDK路径 选择ND…

Nginx服务性能和安全优化(念念不忘,必没回响)

一、配置Nginx隐藏版本相关信息 1.隐藏版本号 修改 nginx.conf 文件&#xff0c;在http块中添加字段后&#xff0c;重载服务 获取报文信息并查看&#xff08;浏览器查看或使用命令&#xff09; 2.修改版本号及相关信息 如果做了上一步在nginx.conf 中添加了 server_tokens…

数据结构-二分查找

1.1 什么是算法&#xff1f; 定义 在数学和计算机科学领域&#xff0c;算法是一系列有限的严谨指令&#xff0c;通常用于解决一类特定问题或执行计算 In mathematics and computer science, an algorithm (/ˈlɡərɪəm/) is a finite sequence of rigorous instructions, …

【Spring Cloud Gateway】⑥SpringBoot3.x集成SpringDoc指南

文章目录 背景本地开发环境介绍pom.xml主要依赖application.yml效果预览动态生成swagger文档分组效果预览在线文档 背景 Spring Cloud Gateway使用Netty作为嵌入式服务器&#xff0c;并基于响应式Spring WebFlux。做为微服务网关&#xff0c;多个微服务把API挂在Gateway上&…

轻量实时操作系统学习(二)

306xH系列架构 主系统包含以下部件&#xff1a; maters&#xff1a;RISC-V CPU、DMA、CORESIGHTslaves&#xff1a;嵌入式SYSRAM、嵌入式Flash memory、系统外设 这些模块通过AMBA总线架构互连&#xff0c;如图所示。 TCM_BUS&#xff1a;此总线将RISC-V CPU的TCM接口与存…

STM32学习(十四)

低功耗 降低集成电路的能量消耗。 低功耗特性对用电池供电的产品&#xff1a; 更小电池体积&#xff08;降低了大小和成本&#xff09; 延长电池寿命 电磁干扰更小&#xff0c;提高无线通信质量 电源设计更简单&#xff0c;无需过多考虑散热问题 STM32具有运行、睡眠、停止和…

【SQL Server】数据库开发指南(八)高级数据处理技术 MS-SQL 事务、异常和游标的深入研究

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;#MS-SQL Server 专栏中。 本系列文章列表如下&#xff1a; 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南&#xff08;一&#xff09;数据库设计 【SQL Se…

Flutter 笔记 | Flutter 核心原理(七)The key is the key!

题外话 本文这个标题其实让我想起了电影《蝙蝠侠大战超人&#xff1a;正义黎明》中的一句话&#xff0c;在该片中&#xff0c;从未来穿越回来的闪电侠对蝙蝠侠发出警告&#xff1a; It’s Lois&#xff01; She’s the key&#xff01; 【布鲁斯&#xff0c;是露易丝&#xff…

chatgpt赋能python:Python增量备份:保障数据安全,提高效率

Python增量备份&#xff1a;保障数据安全&#xff0c;提高效率 现今&#xff0c;越来越多的企业和个人都需要使用计算机存储数据&#xff0c;这些数据可能是各种各样的&#xff0c;例如文件、数据库、邮件等等&#xff0c;这些数据的安全保障是至关重要的。 正是基于这样的背…

chatgpt赋能python:Python多行转一行:最简便的方法

Python多行转一行&#xff1a;最简便的方法 Python是一个既神奇又神奇&#xff08;fully magical&#xff09;的编程语言。但有时候&#xff0c;我们用Python编写的程序会产生多行代码&#xff0c;而需要把这些多行代码转换为一行以便于复制和粘贴。这种情况下&#xff0c;我们…