Linux에서 하이브리드 RAID를 사용하여 몇 가지 실험을 하고 있습니다. 내 테스트에는 다음이 포함됩니다.
RAID 0(/dev/md1)의 2x256GB SSD
256GB 하드 드라이브 2개, RAID 0(/dev/md2)
그런 다음 md1과 md2를 RAID 1(/dev/md127)로 만들고 느린 HDD(md2)를 --write-mostly로 표시했습니다.
기본적으로 내 목표는 SSD에서 최대 성능과 디스크 공간을 확보하는 동시에 드라이브 오류로부터 "안전"해지는 것입니다. SSD 중 하나를 잃어버리면 더 느린 HDD를 사용해야 한다는 것을 알지만, 모든 데이터를 잃는 것에 비해 그 정도는 기꺼이 지불할 의향이 있습니다. 게다가 손상된 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 장치에서 간단한 처리량 벤치마크를 실행하면 놀라운 결과가 나옵니다.
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는 870MB/초를 제공합니다.
RAID 0 HDD는 270MB/초를 제공합니다.
RAID 1 하이브리드는 437MB/초를 제공합니다.
HDD raid에 --write-mostly가 표시되어 있으므로 읽기 전용 테스트에서는 HDD에 전혀 영향을 미치지 않을 것으로 가정하는데 여기서 무슨 일이 벌어지고 있는 걸까요? 하이브리드 벤치마크는 순수 RAID 0 SSD와 비슷한 결과를 제공할 것이라고 가정합니다.
얼핏 보면 HDD가 부분적으로 읽기용으로 사용되어(HDD에서 읽지 말라고 했는데도) 어떻게든 RAID 속도를 늦추는 것처럼 보입니다. 그러나 hdparm 벤치마크를 실행하는 동안 HDD에서 파일 복사본을 실행하면 동일한 결과가 나타납니다! HDD를 사용하는 경우 벤치마크 중에 HDD를 다른 작업에 사용하면 벤치마크 결과가 느려질 것이라고 가정합니다.