简单RAID磁盘阵列测试
2014-04-24 by dongnan
开始之前
整理笔记,发现早期的raid
测试笔记,整理并记录帮助有需要的朋友。
RAID5
硬件: Dell r610 perc 6i卡 4 * 300G 15k sas 硬盘(0,1,2,3)
。
特性: RAID5
不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5
的各个磁盘上,
并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
测试
- 拔掉
2
号硬盘virtual disk
仍然存在,可以正常进入VmWare ESXi
系统。 - 更换新硬盘后将,自动
rebuild
重建,重建期间可以重启计算机。
小结
RAID5
只允许一块硬盘损坏,所以热备盘总是和RAID5
阵列对应起来,当某个硬盘损坏热备盘将自动启用。
RAID10
硬件: Dell r610 perc 6i卡 4 * 300G 15k sas 硬盘(0,1,2,3)
。
特性: RAID10
将自动创建 span0
与 span1
两个组,硬盘 0
、1
分在 span0
组,2
、3
分在 span1
组。
测试
- 拔掉
span0
组磁盘1
,span1
组virtual disk
仍然存在,可以正常进入VmWare ESXi
系统。 - 拔掉
span0
组磁盘0、1
, 提示virtual disk
丢失,不能进入VmWare ESXi
系统。 - 更换新硬盘后将,自动
rebuild
重建,重建期间可以重启计算机。
小结
RAID10
是先做镜象
然后再做条带
(先做两个raid1
然后再把两个 raid1
做成 raid0
)
,允许不同span
组各坏掉1块硬盘,但同span
组硬盘不能同时坏掉。
RAID重建与全局热备
硬件: Dell r710 perc 6i卡 4 * 1T 7.2k sas 硬盘(0,1,2,3)0-2 三块硬盘做 Raid5,3号硬盘做hotspare 热备盘
。
设置方法
将新的硬盘设置为 global hot spare
(全局热备), 稍等片刻将自动开启 rebuild
。
热备盘测试
- 拔掉
0
号硬盘virtual disk
仍然存在,raid 5
允许一块硬盘损坏。 3
号硬盘(hotspare
)开始自动rebuild
,rebuild
期间可以重启计算机。- 重建结束后,硬盘(
1、2、3
)组成新的virtual disk
,其中3
号硬盘原为hotspare
热备盘。 0
号硬盘位插入一块新硬盘,0
号硬盘与3
号硬盘开始替换,0
号硬盘与3
号硬盘灯狂闪。- 在
PD Mgmt
(物理磁盘管理界面)中可以看到0
号硬盘state
为Replacing
(替换),右下角可以看到Replacing PD --:00:03
(0与3号硬盘)。 - 替换结束后,
virtual disk
仍由硬盘最初的0、1、2
三块硬盘组成,3
号硬盘仍然做hotspare
热备盘。
重建时间
以本次测试的Raid5
为例,重建时间大概是4-5
小时,磁盘越大重建的时间越长,相反磁盘越小重建时间越段。
小结
当某个硬盘损坏,hotspare
热备盘将自动Rebuild
,等待rebuild
结束后可以将损坏的硬盘替换成新硬盘,
新硬盘与热备盘开始Replacing
,这样hotsapre
始终存在,安全性大大增加。
磁盘状态是Foreign
硬件: Dell r610 perc 6i卡 4 * 300G 15k sas 硬盘(0,1,2,3)
。
数据重要先备份数据,恢复步骤如下:
- 在
controller 0
上按F2
,选择foreign config-import
硬盘即可。
RAID缓存策略测试
支持两种缓存策略: write-through
与 write-back
硬件配置
磁盘: 300GB SAS 15K * 6块
Raid: Dell Perc6i /256MB Cache/级别 5/条带 1MB
CPU: XEON E5405 * 2颗,共8核心
内存: 16GB
网络: BCM 5709(GB) * 4块,双网卡绑定,模式0
操作系统: CentOS 6.5 amd64
软件:NFS
write-through 测试
设置,级别:RAID5 写缓存:关闭
顺序写
time dd if=/dev/zero of=testio bs=1M count=20480
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 530.59 s, 40.5 MB/s
real 9m27.210s
user 0m0.017s
sys 0m33.575s
顺序读
time dd if=testio of=/dev/null bs=1M
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 154.403 s, 139 MB/s
real 2m34.419s
user 0m0.010s
sys 0m13.937s
设置,级别:RAID10 写缓存:关闭
顺序写
time dd if=/dev/zero of=testio bs=1M count=20480
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 71.7583 s, 299 MB/s
real 1m11.760s
user 0m0.010s
sys 0m28.234s
顺序读
time dd if=testio of=/dev/null bs=1M
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 81.5824 s, 263 MB/s
real 1m21.587s
user 0m0.011s
sys 0m14.700s
write-back 测试
设置,级别:RAID5 写缓存:开启
顺序写
time dd if=/dev/zero of=testio bs=1M count=20480
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 44.1236 s, 487 MB/s
real 0m44.135s
user 0m0.016s
sys 0m29.396s
顺序读
time dd if=testio of=/dev/null bs=1M
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 138.335 s, 155 MB/s
real 2m18.355s
user 0m0.015s
sys 0m14.481s
设置,级别:RAID10 写缓存:开启
顺序写
time dd if=/dev/zero of=testio bs=1M count=20480
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 69.1151 s, 311 MB/s
real 1m9.117s
user 0m0.005s
sys 0m28.306s
顺序读
time dd if=testio of=/dev/null bs=1M
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 81.6012 s, 263 MB/s
real 1m21.612s
user 0m0.005s
sys 0m14.880s
小结
- RAID10级别
write-through
与write-back
顺序读/写差距并不是非常大。 - RAID5级别
write-through
与write-back
顺序写相差10
倍还多,顺序读相差不大。 write-back
模式下,RAID5 比 RAID10 顺序写更快。write-back
模式下,RAID10 比 RAID5 顺序读更快。
硬件决定IO吞吐量
环境
物理机
DELL PowerEdge R730XD 服务器
CPU: E5-2620V4 8核16线程 2.1G * 2
内存: 160G 16GB * 10
磁盘: 300G SAS硬盘 * 10
RAID: H730P 1G缓存(Raid级别 10,条带/写缓存默认)
电源: 750W 热插拔电源 * 2
系统: XenServer 7.2 版本
虚拟机
# 此虚拟机独享宿主机全部资源
4vcpu
8GB内存
1TB磁盘
测试
顺序写
# 第1次测试
time dd if=/dev/zero of=testio bs=1M count=20480
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 22.7536 s, 944 MB/s
real 0m23.531s
user 0m0.007s
sys 0m13.385s
# 第2次测试
time dd if=/dev/zero of=testio bs=1M count=20480
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 22.2226 s, 966 MB/s
real 0m23.273s
user 0m0.009s
sys 0m13.574s
# 第3次测试
time dd if=/dev/zero of=testio bs=1M count=20480
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 22.6108 s, 950 MB/s
real 0m22.745s
user 0m0.005s
sys 0m12.449s
顺序写3
次测试平均值: 953.3 MB/s
顺序读
# 第1次测试
time dd if=testio of=/dev/null bs=1M
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 24.831 s, 865 MB/s
real 0m24.870s
user 0m0.011s
sys 0m8.821s
# 第2次测试
time dd if=testio of=/dev/null bs=1M
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 24.7821 s, 867 MB/s
real 0m24.799s
user 0m0.008s
sys 0m8.758s
# 第3次测试
time dd if=testio of=/dev/null bs=1M
20480+0 records in
20480+0 records out
21474836480 bytes (21 GB) copied, 24.7333 s, 868 MB/s
real 0m24.743s
user 0m0.006s
sys 0m8.808s
顺序读3
次测试平均值: 867.0 MB/s
小结
在本次测试样例中,相同的条件下(详见环境),RAID10
顺序写入速度大于顺序读取速度。