linux write 刷新,Linux write through 和write back

本文详细解释了磁盘缓存中Write-Through与Write-Back两种模式的工作原理,对比了两者的效率与可靠性,特别是对于数据一致性的影响。当磁盘控制器电量不足时,系统会自动从Write-Back模式切换到Write-Through模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一次在启动虚拟机的时候,发现有如下提示,drive cache: write through. 这究竟是什么意思呢?

6d2403f69f8b42702ef41ce7d6caba0f.png

Write-Through 模式:

1. DB向Cell发送一个写请求, cellsrv进行验证确认其请求有效;

2. cellsrv将发送指令将其写入到物理磁盘;

3. 写完成以后,给DB确认已经写成功;

4. cellsrv判断次数据是否适合缓存到cache中,如果满足条件则缓存,否则不缓存。

a3ed8fb6739cf77c84856a44888dce74.png

Write-Back 模式:

1. DB向Cell发送一个写请求, cellsrv进行验证确认其请求有效;

2. cellsrv将发送指令将其写入到磁盘Cache;

3. 将此数据的状态置为dirty的状态。(直到下次临界条件将脏数据刷新到磁盘,并判断此数据是否适合缓存,如果不适合,刷新完成以后会丢弃,刷新和缓存过程是异步的,并不在步骤3来完成)

4. 写完成以后,给DB确认已经写成功;

Write-Back 模式明显更高效,因为写数据到cache的速度比写到物理磁盘速度要快几个数量级。但是cache属于挥发性设备,无法持久的保存数据,所以需要磁盘控制器/Flash卡有独立的电源模块作为驱动将cache中的数据写回到磁盘。如果没有电源模块,则原本保存在cache中的数据并无法保障总能成功写入到磁盘,如果这个时候主机发生掉电,则可能造成数据不一致。为了保证数据的一致性,如果磁盘控制器或者flash卡的电量不足,则会自动从write-back模式转到write through 模式, 进而对系统的I/O造成影响。在exadata中可以使用exachk工具来检查,以下是Exachk中磁盘raid控制器电池不足导致自动切换到write-through的告警。

f80b7bfab4ed13890a6a7211db3245eb.png

f9d90bd7944cdddafa096ee7e08f7bf3.png

实际上可以在BIOS中强行修改磁盘控制器的wirte-back或者write-through模式,但是为了保证数据的一致性,我们并不建议这么做。如果出现了以上问题,正确的做法应该是开一个sr,上传对应的exachk报告要求更换电池。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值