MySQL:34 数据库服务器上的RAID存储架构的电池充放电原理

服务器使用多块磁盘组成的RAID阵列的时候,一般会有一个RAID卡,这个RAID卡是带有一个缓存的,这个缓存不是直接用服务器的主内存的那种模式的,而是一种和内存类似的SDRAM,当然也可认为他是基于内存来存储的。

当我们把RAID的缓存模式设置为 write back,这样的话,所有写入到磁盘阵列的数据,会先缓存到RAID卡的缓存里,后续再慢慢写回磁盘阵列里去。这种写缓冲机制可以大大提高数据库磁盘的写性能。

缓存丢失的问题

假设突然断电了,或者服务器自己故障关闭了,那么这个RAID卡的缓存里的数据会丢失吗?此时MySQL写入磁盘的数据是否会丢失?(注意:此时还未写入磁盘)

以上的两个问题是可能存在的,也正是为了解决这种问题,RAID卡一般都配置有独立的锂电池或者是电容,如果服务器突然掉电了,在无法接通电源的情况下,RAID卡自己会基于锂电池来供电运行,然后赶紧把缓存里的数据写入到阵列中的磁盘上去。

由于锂电池是存在性能衰减问题的,所以需要配置定时充放电的,根据厂商不同每隔30天~90天不等,会自动对锂电池充放电一次,这可以延长锂电池的寿命和校准电池容量。

定时充放电可以保证锂电池电量充足,避免无法一次性把缓存里的数据都写回磁盘上去,那就会导致数据丢失了。

充放电导致的性能抖动问题

在锂电池冲放电的过程中,RAID的缓存级别会从write back变成 write through,我们通过RAID写数据的时候,IO就直接写磁盘了,如果写内存的话,性能也就是0.1ms这个级别。但是直接写磁盘,性能就退化10倍到毫秒级了。

所以在生产环境中,一旦RAID锂电池自动充放电,往往会导致你的数据库服务器的RAID存储定期的性能出现几十倍的抖动,简介导致你的数据每隔一段时间就会出现性能几十倍的抖动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值