RIAD级别选择与IOPS计算

[摘要]

经历过n多项目的设计和实施, 发现很多售前/售后工程师对RAID的特性都没有深入的了解, 基本上不假思索就用RAID5, 到实施时候建议使用一些R1, R 1/0时发现磁盘数目没用买够, 下面简单介绍一些RAID类型选择的知识和磁盘数目计算的办法.

关于RAID类型的细节就不赘述了, 请看wwmiao发布的帖子
http://bbs.loveunix.net/viewthread.php?tid=70988&extra=page%3D1

[正文]

假设存储上有只有一个应用的情况, 以满足以下条件三年内的负载情况
应用逻辑读写负载为 S (IOPS), 该值最好用系统检测工具进行最繁忙时段的多次监控取每次平均值的最大者
读:写比例=R:W
每年复杂增量百分比: C

假设每磁盘可提供的IOPS 为 P (10000转速磁盘IOPS为130~150IOPS/disk, 15000转的150~180 IOPS/disk, 各厂商说法上有所区别)
因为容量都比较好估算, 所以主要从性能上考虑

1. 主要RAID类型的特点与IOPS估算

 因为RAID 0写性能是最好的,但是没有数据容错, 一般企业环境下很少使用, (除了数据安全性要求不高的地方), 所以这里不作过多论述.
a. RAID 1 和 RAID 1/0
  逻辑读 1次 <= 物理读1次, 因为可以有两个磁盘读可以提供数据读
  逻辑写 1次 = 物理写2次
  适合顺序读写的应用, RAID 1可以丢失一块盘. RAID 1/0 最多可以丢失组成RAID 1/0中的一半盘, 但不能避免同时损坏两个互为镜像盘的情况.
  对一个需要S个IOPS的应用, 计算RAID 1的实际IOPS T 要求:
   T=[S×R/(R+W)+2×S×W/(R+W)]×(1+C)3
  磁盘数目: T/P向上取整
注意: R1/0盘数应为偶数, R1就只两个盘, 没啥好说的. **为乘方操作符
 b. RAID 5
  逻辑读 1次 <= 物理读1次, 因为可以有两个磁盘读可以提供数据读, 和RAID1/0类似
  逻辑写 1次 = 物理写4次, 为什么是4, 这是很多初学者都不能理解的地方, 去看看链接中R 3 和 R 5的写过程就知道了.
  适合顺序读写的应用, 最多可以丢失组成RAID 5中的一个盘
  对一个需要S个逻辑IOPS的应用, 计算RAID 1的实际IOPS T 要求:
   T=[S×R/(R+W)+4×S×W/(R+W)]×(1+C)3
  磁盘数目: T/P向上取整

2. RAID类型的选择, 逻辑盘LUN的分布

 对于顺序读写而且写性能要求高的应用, 选择RAID 1, 或RAID 1/0, 如果是顺序写要求高的数据, 应单独在一个RAID组中, 避免磁头来回移动. 典型的有Oracle的 redo log, Exchange 的 Transaction log等 日志型的数据.
 对于有备份, 没有容错要求, 读写性能要求高的用RAID 0, 比如实时数据采集.
 对于读要求高于写要求, 容量上有考虑的, 选择RAID 5. 随机写要求不高的都可以使用. 如数据库文件.

3. 单个硬盘的IOPS怎么算的?

设定硬盘的转速是 R rpm ,硬盘的寻道时间为Ts,,磁头定位时间为 Th ,硬盘的外部时间为 Tm ,磁盘存储时间为 Td,
Td=Th+Tm
ThTs+(1/2×60/R) (想想为什么?)
Td=Ts+(1/2×60/R)+Tm
同时:
在单个硬盘中 TmTs
TdTs+(1/2×60/R)

单个磁盘的随机 IOPS1/Td=1/Ts+(1/2×60/R)IO/s

那么,我们就可以算出单个硬盘的 吞吐量

假设 1个扇区 的大小为 S , 而1 个cluster 是由 N 个连续的扇区组成的因此磁盘的吞吐量 =IOPS×S×N=1/Ts+(1/2×60/R)×S×NMB/s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值