关于俺5月26号发的《迟来的观后感——伪存储专家谈IOPS》,本来想表达的是存储规划在虚拟化项目中的重要性,但是所举的例子仅是为了辅以说明并没有考虑真实性,所以实际上存在纰漏,且并没有指正,作为MVP、本着严谨的态度,俺思考再三,虽然本公众号只有百来人的关注量,虽然5月26号的微文阅读量可能都没超过100,但是如果刚好您信任我,并按照文中的公式去做了规划,那我就真的是误人子弟了!如果真的较真存储IOPS的计算的话,那么我就来抛砖引玉一下吧:
再次声明,做为伪存储砖家,以下内容仅供参考:
1、 到底IOPS的计算准不准确?
答:仅作参考,总比张口就要多少多少存储资源来得实在,其实iops只能通过测试才能得到,算的都是范围区间,不同厂商的固件,软件,缓存、网络、性能环境都会对iops有较大的偏差。
2、使用下表计算IOPS,到底对不对?
答:其实并没有错,因为该表指的是你的需求IOPS,而非提供的IOPS,这就回答了,为什么Raid 5、6、10都有写惩罚,到这里反而IOPS更多了的问题,Raid 级别的写惩罚:
- Raid0 :1
- Raid1: 2
- Raid5: 4
- Raid6: 6
-
Raid10: 2
比如:你的系统需求是60 IOPS,那么根据这个表去做换算,假设读写2:1(仅仅是假设,实际环境请根据实际来),假设用了Raid 5,那么你实际需求的 IOPS = 60*0.7+4*60*0.3(Raid 5 有-4写惩罚),如果要采用Raid 5级别的存储,那么一个系统实际需求是114 IOPS(假设读写2:1的情况下)。
事实上,关于存储的IOPS可提供的有另外一条公式:
(Drive IOPS × 写% ÷ RAID写惩罚) + (DriveIOPS × 读%)
比如上一篇所讲到的小明,有10块15K SAS,做Raid 6到底能提供多少IOPS,就是(10*140*0.3) ÷ 6 + (10*140*0.7)= 1050 IOPS。
3、那我究竟要怎么规划存储?
首先,一切公式、表格都是没有问题,错就错在我举的例子中运用错了而已,那么较为恰当的应用方式是什么呢?还是说回小明那个问题,10个15K的SAS盘(为简单起见,暂时不考虑容量)做Raid 6到底能不能支撑60个IOPS需求为50的虚拟机?
答:
60个IOPS需求为50的虚拟机,即无Raid级别下,需要3000 IOPS,10块15K 的SAS盘(约1400 IOPS)明显不够。
OK,Raid 6呢?如果3000 IOPS要使用Raid 6级别的存储,实际需要多少IOPS呢(读写比2:1)?
你实际需要:(3000*0.3 / 6)+(3000*0.7)= 2250
做了Raid 6的存储能够提供:(1400*0.3) ÷ 6 + (1400*0.7)= 1050
至于答案,其实不必纠结,因为现如今的存储基本都是中高端存储,多多少少都是带有高速缓存的,即使存储规划做得很细致,实际上性能上的瓶颈只会越来越小,特别是现在有了存储分层、ssd缓存这些技术,IOPS的提升都是成倍数增长。但是,不纠结不代表没作用,至少您的Boss或者决策者问到您,还是有话可说。
还是上一篇的老话,仅提供参考,希望各位看官能够在以后的项目设计中对存储规划部分有一个基本的概念。千错万错,下面这个流程不会错:
if
存储方案IOPS >= 需求IOPS then
print “可以继续考虑容量啦!“
if
存储容量>=需求容量
then
print
“就是这个方案啦!“
else
print
“IOPS满足,但是容量不满足,弃选!“
end if
else
print “连IOPS都不满足,不用考虑容量啦!“
end if
在设计方案中,特别是虚拟化平台项目中,前期的规划特别重要,CPU、内存、网络固然重要,但请千万别忘记存储设计,也不要仅仅对容量进行考虑,否则在日后客户使用过程中肯定也会给您带来麻烦,希望今天的这篇微文能给您以后带来一点点“抛砖引玉“的启发吧:)
(手机微信长按二维码可自动识别)
关注方式
① 复制『微信号或ID』,在『添加朋友』中粘贴搜索号码关注。
② 点击微信右上角的『+』,会出现『添加朋友』,进入『查找公众号』,输入 VMCloud ,即可找到。
③ 红字ID部分长按均可复制。