차세대 SSD 캐싱 기법

연구 배경

현존하는 대부분의 운영체제는 리눅스와 같이 일체형 구조를 가지고 있다. 하지만, 이러한 kernel의 구조는 코어 수가 증가하면 커널 내부의 lock contention 문제로 성능이 저하되는 것으로 많은 연구 논문에서 지적되어 왔다. 코어 수 증가로 보다 많은 프로세스의 수행이 가능한 환경에서는 I/O의 횟수 증가 역시 기하급수적으로 증가할 것으로 예상되며, 이는 disk I/O의 가용성에 많은 영향을 줄 것으로 예측해 볼 수 있다. 또한, CPU 발전 속도 대비 디스크 장치의 발전 속도가 현저하게 낮고, 전체 성능에서 I/O로 인한 병목이 가장 큰 부분을 차지하고 있는 점을 고려하면, 매니코어 하드웨어 및 운영체제에서 이에 대한 문제점에 대해 상세히 분석하여 타 연구에서 개선할 수 있는 방향의 제시가 필요하다. 따라서 본 연구주제에서는 매니코어 프로세서 환경에서 리눅스 운영체제의 disk I/O 성능향상을 위한 분석과 개선 방안에 대하여 연구한다. 주 내용으로 disk I/O의 성능 향상을 위하여 현존하는 storage 장치 중 가장 빠르다고 알려진 SSD를 적극 활용하고, 이를 보다 효율적으로 활용할 수 있는 방안으로 SSD를 HDD의 caching 장치로 활용하는 방안을 제시하고자 한다.

연구 내용

  • CMF 제안

SSD caching S/W들은 sequential data operation일 경우에 workload가 SSD cache의 크기보다 클 경우에 replacement가 많이 발생하게 되어 performance degradation된다. 이러한 문제를 예방하기 위해서, EnhanceIO를 기반으로 한 Cache Miss Frequency(이하 CMF)를 제안한다. CMF는 주기적으로 cache의 hit rate을 확인하고 낮을 경우에, cache의 mode를 변경하게 된다. 그래서 sequential data operation 발생하는 경우에도 performance degradation을 예방하게 된다

  • CMF 구조

CMF는 EnhanceIO를 기반으로 하기 때문에 기본적으로 EnhanceIO와 동일하다. 추가적으로 performance degradation을 예방하기 위한 mechanism이 포함되어 있다. 그림 9와 같이 CMF의 구조는 storage로 쓰이는 HDD와 cache로 쓰이는 SSD를 하나의 장치로 보고 있다. 그리고 kernel에서 enhanceIO 모듈이 동작하고, 이 모듈로 인해, SSD cache 장치가 동작하게 된다.

Fig1

  • CMF 요소 기술

CMF는 EnhanceIO을 기반으로 한 mechanism이다. CFM의 알고리즘은 그림 10에서 보여주고 있다. Cache 장치를 생성하게 되면, 초당 operation을 확인 하게 된다. 다음으로 cache mode를 확인하고 write-back일 경우 write와 read의 수를 확인하며, 그 수가 200,000이 넘을 경우에 hit rate을 확인한다. Hit rate이 20보다 낮을 경우, cache hit가 발생하지 않아, 성능 저하가 예상되므로, write-back mode에서 read-only mode로 변경한다. Cache mode가 read-only일 경우, 일정한 시간이 경과된 이후에 write-back mode로 변경을 해준다. 이후 이 과정을 반복한다. Kernel level에서 동작하고 있는 모듈이 있다. 그 중에서 enhanceio.ko 모듈이 있으며, 그 모듈에서 kthread()를 이용해서 kernel thread를 생성한다. thread를 생성하여, SSD cache 장치를 모니터링 하게 만들었으며, CMF의 알고리즘이 동작하게 되어 있다.

Fig2

  • 실험 환경
    • CPU : Intel® Xeon® CPU E7-8870 2.30GHz * 120core
    • MEM : 800GB
    • HDD : SATA 7200 rpm ~130MB throughput
    • SSD : SATA Samsung 840 EVO ~ 500MB throughput
    • Kernel : Linux 3.19
  • 실험

HDD, SSD, EnhanceIO와 CMF를 이용하여 AIM7 benchmark로 실험한 결과를 나타낸 그래프이다. x축은 20~120 코어의 수를 나타내며, 세로축은 Jobs/min을 나타낸다. 기존의 EnhanceIO(EIO) 대비 CMF의 성능 향상을 볼 수 있다. 특히 80 core와 100 core일 경우 EIO는 SSD에 비해 그래프가 많이 내려가는 반면, CMF는 SSD와 유사한 그래프를 보여준다.

Fig3

연구 결과물