제 이의 공간
Consideration concerning multi-stream SSD ( 멀티스트림 SSD에 대한 고찰 ) 본문
먼저 SSD에 대해 간단히 알아보자.
SSD의 컨트롤러에는 Flash Translation Layer(FTL)라는 계층이 존재한다.
FTP은 섹터기반의 OS, 파일시스템, 어플리케이션 으로부터 SSD를 사용할 수 있게 해준다. ( 논리주소 와 물리주소 매핑 )
또한 update 작업시 HDD와 달리 업데이트가 불가능하고,
write단위 와 erase단위가 다른 SSD에게 FTP는 Garbage Collection & Wear Leveling을 제공함으로써 SSD의 상태와 수명을 관리해준다.
이때, SSD의 성능에 영향을 주는 요소는 Garbage Collection 작업에 대한 오버헤드라고 볼 수 있다.
Garbage Collection은 invaild 페이지가 일정량 쌓인 경우 수행된다.
( invaild 페이지의 발생은 기존의 데이터에 대한 업데이트가 발생했을 때, FTP의 Wear Leveling으로 업데이트의 데이터가 다른 page에 쓰여지고 기존의 데이터의 page를 invaild하게 함으로서 만들어진다 )
따라서, Garbage Collection은 업데이트 작업이 많이 일어나는 환경에서 자주 발생할 수 있음을 알 수 있다.
결국 업데이트 작업에 빈도에 따라 Garbage Collection의 발생빈도가 달라지는 것을 추론할 수 있다.
이러한 배경속에서 멀티스트림 SSD가 등장하였다.
멀티스트림 SSD의 핵심은 데이터 빈도에 따라 스트림을 나누어 Garbage Collection에 대한 오버헤드를 줄이는데 있다.
간단히 말하면, 자주 사용하는 데이터들 끼리 같은 블럭내의 페이지에 저장하고, 자주 사용하지 않은 데이터들 끼리 또한 같은 블럭내의 저장하는 방식이다.
이렇게 된다면 invaild 페이지가 여러블럭에 퍼지지 않음으로, Garbage Collection에 대한 오버헤드가 줄어든다.
멀티스트림 SSD에 대한 성능분석 논문들을 살펴보면 약 1.5~2배 정도의 성능이점을 보인다.
실제로 일반 SSD가 Garbage Collection으로 인해 성능저하가 일어나는 시점은 스토리지 공간이 부족해지는 시점에서 성능이 급격히 떨어진다.
따라서, 멀티스트림 SSD가 일반 SSD에 비해 뛰어난 성능을 보이기 위해서는 스토리지 공간의 압박이 큰 상황이 전제가 되어야할 것이다.
따라서, 멀티스트림 SSD에 대한 이점을 일반적으로 얻기위해서는
결국 위와 같은 상황이 전제되는 워크로드 찾거나, 멀티스트림 SSD를 버퍼로 사용하는 경우,
멀티스트림 SSD에 대한 성능적 이점을 얻을 수 있을 것이다.
그럼에도 멀티스트림 SSD는 lifetime에 있어서의 이점은 의심에 여지가 없다.