測試環境
IP
RAID級别
DISK number
具體配置
172.20.10.112
RAID1+0
10
2+2+2+2+2
172.20.10.113
RAID5
10個盤組R5
測試工具——Iometer
作業系統——CentOs5.4_x64
檔案系統——無,裸裝置
RAID配置——全部禁用緩存(包括RAID卡級别和磁盤層面的緩存)
172.20.10.112配置如下
Virtual Disk: 1 (Target Id: 1)
Name:
RAID Level: Primary-1, Secondary-0, RAID Level Qualifier-0
Size:9.089 TB
State: Optimal
Stripe Size: 64 KB
Number Of Drives per span:2
Span Depth:5
Default Cache Policy: WriteThrough, ReadAhead, Direct, Write Cache OK if Bad BBU
Current Cache Policy: WriteThrough, ReadAhead, Direct, Write Cache OK if Bad BBU
Access Policy: Read/Write
Disk Cache Policy: Disabled
Encryption Type: None
172.20.10.113配置如下
RAID Level: Primary-5, Secondary-0, RAID Level Qualifier-3
Size:16.362 TB
Number Of Drives:10
Span Depth:1
Default Cache Policy: WriteThrough, ReadAhead, Direct, Write Cache OK if Bad BBU
Current Cache Policy: WriteThrough, ReadAhead, Direct, Write Cache OK if Bad BBU
測試結果——
RAID5-172.20.10.113
block
size
read/write
IOPS
MBps
Average Response
(ms)
Maximum Response Time(ms)
4K
100%write,seq
65.33
0.26
30.6
153
16K
68.40
1.07
29.23
127
64k
33.85
2.12
59
175
RAID1+0-172.20.10.112
4k
244.30
0.95
8.18
158
16k
246.97
3.86
8.09
116
259
16.24
7.69
109.88
<a href="http://taotao1240.blog.51cto.com/attachment/201203/13/731446_1331623079mRZC.png" target="_blank"></a>
說明——橫軸表示Block size,縱軸表示IOPS
分析
RAID5如下——
<a href="http://taotao1240.blog.51cto.com/attachment/201203/13/731446_1331623079vNsA.png" target="_blank"></a>
stripe size=64K,共10個盤,可以推斷出stripe depth=6.4K
block size=4K,即一次IO寫入4K
現在IOmeter一直在以4K/IO的速度寫,不考慮緩存,第1個IO寫4K,那麼第一個stripe depth還剩6.4K-4K=2.4K,那第二個IO再寫4K,則要寫到兩個stripe depth中,分别寫2.4K+1.6K。那麼假如寫1G的檔案,則需要262144個IO。中間還有一個IO中磁頭移動的速度(比如第二個IO,需要寫在2個磁盤中)。
再看RAID1+0,
<a href="http://taotao1240.blog.51cto.com/attachment/201203/13/731446_1331623080AfBx.png" target="_blank"></a>
stripe size=64K,共10個盤,但是做2-2-2-2-2可以推斷出stripe depth=12.8K
第1個IO寫4K,那麼第一個stripe depth還剩12.8-4=8.8K,第二個、三個IO都可以寫到一個stripe depth中,三個IO寫完後,第一個stripe depth還剩0.8K。第4個IO分開寫(0.8+3.2K)。則相對比RAID5來說就省去了2個磁頭在不同磁盤間移動的時間。RAID5中,第2個IO就需要移動磁頭,而RAID1+0中,第4個IO才需要移動磁頭。
是以從這個角度RAID1+0比RAID5的IOPS性能應該要好。因為我們知道IOPS=1/(s/IO),即每個IO處理時間的倒數。 還有一個原因就是RAID5花在校驗上的時間,而RAID1+0隻是單純的條帶,并不做校驗。
還有為什麼RAID5下,block size越大,IOPS越小。這是因為存儲系統的吞吐量是一定的(MBps),而吞吐量=IOPS*block size,是以block size變大,IOPS固然要變小。
注——本篇隻是單純地比較相同硬體配置下RAID1+0和RAID5的性能。以上測試結果均為真實資料!
本文轉自 taojin1240 51CTO部落格,原文連結:http://blog.51cto.com/taotao1240/804646,如需轉載請自行聯系原作者