Estou fazendo alguns experimentos com RAID híbrido no Linux. Meu teste consiste no seguinte:
SSD de 2x256 GB em RAID 0 ( /dev/md1
)
2 discos rígidos de 256 GB em RAID 0 ( /dev/md2
)
Então transformei md1 e md2 em um RAID 1 ( /dev/md127
) e marquei o HDD lento (md2) como --write-mostly.
Essencialmente, meu objetivo é obter o máximo desempenho E espaço em disco dos meus SSDs, mas ao mesmo tempo estar "protegido" contra falhas na unidade. Entendo que perder um dos SSDs significaria que eu voltaria a usar HDDs lentos, mas esse é um preço que estou disposto a pagar em comparação com a perda de todos os dados. Além disso, levaria apenas algumas horas até que os SSDs quebrados fossem substituídos e o RAID reparado.
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
Agora, executar um benchmark de rendimento simples nos 3 dispositivos RAID fornece resultados surpreendentes:
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
SSD RAID 0 oferece 870 MB/s
HDD RAID 0 oferece 270 MB/s
RAID 1 HYBRID oferece 437 MB/seg.
Como o ataque ao HDD foi marcado como --write-mostly, presumo que um teste de leitura puro não afetaria o HDD, então o que está acontecendo aqui? Eu presumiria que o benchmark híbrido daria resultados semelhantes aos do SSD RAID 0 puro.
À primeira vista, parece que o HDD de alguma forma está desacelerando o RAID, sendo parcialmente usado para leitura (mesmo que eu tenha dito para não fazer leituras no HDD). No entanto, se eu tiver uma cópia de arquivo em execução nos HDDs enquanto executo o benchmark hdparm, obtenho o mesmo resultado! Se os HDDseramusados, eu presumiria que o benchmark daria resultados ainda mais lentos se os HDDs fossem usados para outras tarefas durante o benchmark.
Espero que algum especialista em Linux RAID possa esclarecer meu problema.