1.控制器与缓存
一般来说一个存储服务器的组件有:控制框,硬盘框,级联模块,硬盘,接口模块。
控制框:
就是系统插框。
- 产品形态:2U盘控一体 , 4U盘控分离,整机框。
*1U=4.45cm*
下面为控制框视图:
控制器:
控制器是设备中的核心部分,主要负责处理存储业务,接受用户的配置管理命令,保存配置信息,接入硬盘和保存关键信息到保险箱硬盘。
绿色框的两个控制框就是控制器的地方,一般有两个,我们习惯把上面的叫做A控,下面的叫做B控。控制器(无论A控还是B控)里面都是有CPU和Cache缓存。控制器外面的就是接口卡,接口卡也分为两类,一类是以太网接口卡,一类是光纤接口卡。
控制器里面由于有缓存,当我们写入数据的时候,会先把数据的存放位置写入到缓存里面去。如果我们读取数据的时候,缓存有两种可能:
1.缓存命中:缓存命中是指所需的数据或指令已经存在于缓存中,处理器可以直接从缓存中读取。
2.缓存未命中:所需的数据或指令不存在于缓存中,处理器必须从主存中读取。缓存的命中率是衡量缓存性能的重要指标之一,通常一个尽可能地提高缓存命中率。
但是如果此时电源断电了,存放在缓存中还未来得及写入到硬盘中的数据就会丢失,
那为什么不直接写入到硬盘而非要写入缓存先呢?CPU有缓存,磁盘有缓存,显卡有缓存,RAID卡有缓存....缓存无处不在,为什么又要缓存呢?
缓存其实又叫缓冲区,而缓存诞生的原因又涉及到电梯算法。
现在有一个人在22层坐电梯上去,当他到达目的楼层27楼的朋友家时。此时在30层有另外一个人发起了第二个请求,请求到楼顶35层,而这第二个人发起请求的同时,第三个人在1楼也按了电梯想要去到10层。那么电梯会按照第二个人开往30层到达目的地35层还是第三个人返回到第一层在开到第10层呢?
这是个生活中司空见惯的例子,实际上我们如果有留心的话都知道,电梯会优先去到第二个人的位置。这是电梯的处理器将消息都放在缓存中,缓存通过处理消息判断电梯的目标。
在看一个例子:假如硬盘我们写四个请求,我们先写500个扇区,第二个请求写10000个扇区,第三个请求写600个扇区,最后写12000扇区。如果按照请求的先后顺序,我们将会来回写4个不同的位置,但是**如果此时有缓存,我们先把所有请求放在缓存中,并未真正的写入硬盘,当缓存进行了I/O整合,判断好了写入的先后顺序,发现可以先写500扇区,600扇区,10000扇区,120000扇区的顺序,减少不必要的损耗。**
这就是缓存的重要性,但很多时候我们也需要关掉缓存。比如很多时候我们会把RAID卡的缓存关掉。
缓存在内存里面,最大可以达到2TB。
综上所述,缓存在现代服务器中使用的十分频繁且占有重要的地方,但是缓存也存在数据丢失的风险,
**所以就有了BBU**
BBU:后备电池单元。专门给缓存供电,但是也无法长时间持续供电,一般在30分钟到1个小时。
但是BBU也会用完电,为了进一步解决在发明了保险箱盘:
保险箱盘:
这四个有不要插拔标识的就是保险箱盘,存储的操作系统一般就在这四个保险箱盘里面,保险盘一般使用四个硬盘作RAID 10 。
而BBU还会给保险箱盘供电,(要注意不是有特定的保险箱硬盘,而是插入到那个槽位的硬盘就是叫做保险箱盘。)所以,当停电的时候,BBU会给缓存和保险箱盘供电,尽最大可能保障缓存中的数据能够写入到保险箱盘中。
所以在和客户说的时候,我们一般都是建议,保险箱盘宁愿浪费也不要额外写入数据,避免真的出现停电事故的时候,缓存无法写入数据到保险箱盘中。
新的问题又来了,本来缓存中的数据并不是写入到保险箱中的。
所以当来电之后,它会把保险箱盘中的数据读回到缓存,再从缓存写到它该去到地方。
本文来自博客园,作者:kevin的ICT菜鸟之路,转载请注明原文链接:https://www.cnblogs.com/kevinwen25/articles/17954393
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!