我正在Linux上使用混合RAID进行一些实验。 我的测试包括以下内容:
RAID 0(/ dev / md1)中的2x256GB SSD
RAID 0(/ dev / md2)中的2x256GB HDD
然后,我将md1和md2放入RAID 1(/ dev / md127),并将慢速硬盘(md2)标记为--write-mostly。
本质上,我的目标是从我的SSD中获得最大的性能和磁盘空间,但同时要防止驱动器故障。我了解到,丢失其中一个固态硬盘会意味着我会使用慢速硬盘,但是与丢失所有数据相比,这是我愿意付出的代价。此外,只有几小时才能更换损坏的SSD并修复RAID。
root@s1 / # cat /proc/mdstat
Personalities : [raid0] [raid1] [linear] [multipath] [raid6] [raid5] [raid4] [raid10]
md2 : active raid0 sdd1[1] sdc1[0]
498802688 blocks super 1.2 512k chunks
md127 : active raid1 md1[2] md2[1](W)
498671616 blocks super 1.2 [2/2] [UU]
bitmap: 1/4 pages [4KB], 65536KB chunk
md1 : active raid0 sdb2[1] sda2[0]
498802688 blocks super 1.2 512k chunks
现在,在3个RAID设备上运行一个简单的throghput基准程序,会给我带来令人惊讶的结果:
root@s1 / # hdparm -t /dev/md1
/dev/md1:
Timing buffered disk reads: 2612 MB in 3.00 seconds = 870.36 MB/sec
root@s1 / # hdparm -t /dev/md2
/dev/md2:
Timing buffered disk reads: 812 MB in 3.01 seconds = 270.14 MB/sec
root@s1 / # hdparm -t /dev/md127
/dev/md127:
Timing buffered disk reads: 1312 MB in 3.00 seconds = 437.33 MB/sec
RAID 0 SSD的速度为870 MB /秒
RAID 0 HDD每秒提供270 MB
RAID 1 HYBRID可以提供437 MB /秒的速度。
由于HDD突袭已被标记为--write-mostly,所以我认为纯读取测试根本不会碰到HDD,那么这是怎么回事?我认为混合基准测试将提供与纯RAID 0 SSD类似的结果。
乍一看,它似乎被部分用于读取(即使我告诉它不要在HDD上进行读取),从而以某种方式使HDD减慢了RAID的速度。但是,如果在运行hdparm基准测试时在HDD上运行了文件副本,我将得到相同的结果!如果使用了HDD,我认为如果在基准测试期间将HDD用于其他任务,则基准测试的结果会更慢。
我希望一些Linux团队专家能为我的问题提供一些启示。谢谢!