io设备选取

缓存数据可以避免昂贵的磁盘寻道

顺序读:

顺序读一般只扫描一次数据,所以缓存顺序读作用不大,除非可以完全吧顺序读的数据缓存起来,顺序读比随机读快的多
内存中的顺序读速度也比随机读要快

找到有效的内存、磁盘比例

查看缓存命中率,缓存命中率实际上也决定使用了多少cpu,所以评估命中率最好的方法是查看cpu使用率。如果cpu使用了99%的时间工作,使用了1%的时间等待io,那缓存命中率还是不错的

什么时候用闪存

固态存储更适合使用在任何使用大量随机io工作负载的场景下。随机io通常是由于数据量大于服务器内存导致的。闪存设备可以大大缓解这种问题.固态存储使用非易失性闪存芯片组成,而不是磁盘。所以他们也被称为非易失随机访问内存

1)闪存的读能力好于写能力
2)比硬盘驱动器更好的顺序读写能力
3)闪存设备可以支持更多的并发操作,只有在大量并发的情况下,闪存才能正真的实现最高吞吐量

RAID0特点:

  • 至少需要两块磁盘
  • 数据条带化分布到磁盘,高的读写性能,100%高存储空间利用率
  • 数据没有冗余策略,一块磁盘故障,数据将无法恢复
  • 应用场景:
    • 对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储。

RAID1特点:

  • 至少需要2块磁盘
  • 数据镜像备份写到磁盘上(工作盘和镜像盘),可靠性高,磁盘利用率为50%
  • 读性能可以,但写性能不佳
  • 一块磁盘故障,不会影响数据的读写
  • 应用场景:
    • 对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。

RAID5特点:

  • 至少需要3块磁盘
  • 数据条带化存储在磁盘,读写性能好,磁盘利用率为(n-1)/n
  • 以奇偶校验(分散)做数据冗余
  • 一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据(消耗性能)
  • 是目前综合性能最佳数据保护解决方案
  • 兼顾了存储性能、数据安全和存储成本等各方面因素(性价比高
  • 适用于大部分的应用场景

RAID6特点:

  • 至少需要4块磁盘
  • 数据条带化存储在磁盘,读取性能好,容错能力强
  • 采用双重校验方式保证数据的安全性
  • 如果2块磁盘同时故障,可以通过两个校验数据来重建两个磁盘的数据
  • 成本要比其他等级高,并且更复杂
  • 一般用于对数据安全性要求非常高的场合

RAID10特点:

  • RAID10是raid1+raid0的组合
  • 至少需要4块磁盘
  • 两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
  • 兼顾数据的冗余(raid1镜像)和读写性能(raid0数据条带化)
  • 磁盘利用率为50%,成本较高

6. 总结

类型 读写性能 可靠性 磁盘利用率 成本
RAID0 最好 最低 100% 较低
RAID1 读正常;写两份数据 50%
RAID5 读:近似RAID0 写:多了校验 RAID0<RAID5<RAID1 (n-1)/n RAID0<RAID5<RAID1
RAID6 读:近似RAID0 写:多了双重校验 RAID6>RAID5 RAID6<RAID5 RAID6>RAID1
RAID10 读:RAID10=RAID0 写:RAID10=RAID1 50% 最高

1. 软RAID

软RAID运行于操作系统底层,将SCSI或者IDE控制器提交上来的物理磁盘,虚拟成虚拟磁盘,再提交给管理程序来进行管理。软RAID有以下特点:

  • 占用内存空间
  • 占用CPU资源
  • 如果程序或者操作系统故障就无法运行

**总结:**基于以上缺陷,所以现在企业很少用软raid。

2. 硬RAID

通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID。RAID卡就是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的。不同的RAID卡支持的RAID功能不同。支持RAlD0、RAID1、RAID4、RAID5、RAID10不等。

raid条带大小

最佳的条带大小取决于工作负载和硬件,理论上,对于随机io来说,拥有较大的块大小是很好的,这意味着从单个驱动器中可以满足更多的读需求。如果块大小小于要读取的数据量,则必须要设计多个驱动器(类似于oralce的块大小与数据的关系)

1)raid可以缓存预读取
2)缓存写操作
3)以上功能可以在raid控制器中分配raid缓存占比

猜你喜欢

转载自blog.csdn.net/weixin_39735909/article/details/127570292