mysql数据库服务器与RAID存储架构

本文探讨了RAID存储架构在数据库服务器中的应用,特别是在MySQL数据库中的角色。RAID技术用于提高磁盘性能和提供数据冗余,而其锂电池在断电时确保数据完整性。然而,锂电池的定期充放电可能导致数据库性能抖动。解决方案包括关闭自动充放电、手动触发充放电或更换为电容。文章提到了RAID0、RAID1和RAID10等不同级别的优缺点,并针对RAID10架构的锂电池问题提出了优化建议。
摘要由CSDN通过智能技术生成

数据库服务器使用的RAID存储架构

  • mysql数据库就是一个软件,底层就是磁盘来存储数据,基于内存来提升数据读写性能。

  • mysql运行过程中,他需要使用CPU,内存,磁盘和网卡这些硬件,但是不能直接使用,都是通过调用操作系统提供的接口,依托于操作系统来使用和运行的,然后linux操作系统负责操作底层的硬件。
    在这里插入图片描述

  • 一般来说,很多数据库部署在机器上的时候,存储都是搭建的RAID存储架构;在存储层面往往回在机器上搞多块磁盘,然后引入RAID这个技术,RAID:管理机器里的多块磁盘的一种磁盘阵列技术。
    在这里插入图片描述

  • 当我们往磁盘里写数据的时候,通过RAID技术可以通过我们选择一块磁盘写入,在读取数据的时候,我们也知道从哪块磁盘去读取。RAID还可以实现数据冗余机制。

  • RAID磁盘冗余阵列技术里,可以把你写入的同样一份数据,在两块磁盘上都写入,这样让两块磁盘上的数据一样,作为冗余备份,然后当你一块磁盘坏掉的时候,可以从另一块磁盘读取冗余数据出来,这一切都是RAID技术自动帮你管理的。
    在这里插入图片描述

RAID存储架构的电池充放电原理

  • 服务器使用多块磁盘组成的RAID阵列的时候,一般会有一个RAID卡,这个RAID卡是带有一个缓存的,这个缓存不是直接用我们的服务器的主内存的那种模式,他是一种类似于内存的SDRAM

  • 我们可以吧RAID的缓存模式设置为write back,这样的话,所有写入到磁盘阵列的数据,先会缓存在RAID卡的缓存中,后续慢慢再写入磁盘阵列里去,这种机制可以大幅度提升我们的数据库磁盘的写性能。
    在这里插入图片描述

  • 如果突然断电了,或者服务器自己故障了,那么这个RAID卡的缓存里的数据会突然丢失,为了解决这个问题,RAID卡一般都配置有自己独立的锂电池或者电容,如果服务器突然掉电了,RAID卡自己是基于锂电池来供电运行的,然后他赶紧把缓存里的数据写入到阵列中的磁盘上去。
    在这里插入图片描述

  • 锂电池是存在性能衰减问题的,所以一般来说锂电池都是要配置定时充放电的,也就是说每隔30~90天,就会自动对锂电池充放电一次。锂电池在充放电过程中,RAID的缓存级别会从write back变成write through,我们通过RAID写数据的时候,IO就直接写磁盘了,如果写内存的话,性能是0.1ms这个级别,如果是直接写磁盘,性能就退化到毫秒级了。

  • 这个时候一旦RAID锂电池子自动充放电,往往会导致你的数据库服务器的RAID存储定期的性能出现几十倍的抖动,间接导致你的数据库每隔一段时间就会出现性能几十倍的抖动。

RAID锂电池充放电导致MYSQL数据库性能抖动的优化

  • RAID 0:没有冗余备份,磁盘坏了就会丢失一部分数据

  • RAID 1:两块磁盘为镜像关系,你写的所有数据,在两块磁盘上面都有,形成了数据冗余。一块磁盘坏了,另一块磁盘上面还有数据;一块磁盘如果压力很大,可以让读请求路由到另外一块磁盘上去,分担压力。

  • RAID 10:RAID 0 + RAID 1
    在这里插入图片描述

  • 对于RAID 10架构,它必然内部是有一个锂电池,然后这个锂电池默认一段时间进行一次充放电,所以每次充放电的时候,导致RAID写入时不经过缓存,性能会急剧下降,所以我们发现线上数据库每隔一段时间会有一次剧烈的性能抖动,数据库性能下降了10倍。

  • 可以用linux命令查看RAID硬件设备的日志。

解决RAID锂电池充放电导致的存储性能抖动的解决方案

  • 给RAID卡把锂电池换成电容,佃农是不用频繁充放电,不会导致充放电的性能抖动。单身很容易老化,而且更换困难,一般不用这个
  • 关闭RAID自动充放电;写一个脚本,脚本每隔一段时间自动在晚上凌晨的业务低峰时期,脚本手动触发充放电,这样可以避免业务高峰期的时候RAID自动充放电引起性能抖动。
  • 充放电时不要关闭write back,可以和第二个策略配合起来使用。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值