缓存数据可以避免昂贵的磁盘寻道
顺序读:
顺序读一般只扫描一次数据,所以缓存顺序读作用不大,除非可以完全吧顺序读的数据缓存起来,顺序读比随机读快的多
内存中的顺序读速度也比随机读要快
找到有效的内存、磁盘比例
查看缓存命中率,缓存命中率实际上也决定使用了多少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缓存占比