ZNS란
1. ZNS란?
Zoned Namespace의 약자로, Namespace를 Zone 단위로 나눠 사용하는 기술을 말한다.
여기서 Namespace는 논리 블록으로 포맷할 수 있는 비휘발성 메모리의 양을 뜻한다.
컴퓨터 탐색기에 보이는 C:\ D:\가 각각 하나의 네임스페이스라고 이해하면 쉽다.
2. ZNS 등장 배경
흔히 4차 산업의 핵심기술을 ABCD라고 이야기 한다. 이때 AI, Big Data, Cloud 기술들은 모두 ‘D’ 데이터센터를 통해 동작한다. 이렇듯 데이터센터는 4차 산업의 밑바탕이라고 해도 과언이 아니다. 때문에 데이터센터의 성능과 비용 효율을 높이기 위해 치열한 기술경쟁을 벌이고 있다.
과거 데이터센터는 하나의 성능 좋은 컴퓨터(Server)에서 하나의 운영체제와 응용프로그램을 구동했다. 반면 차세대 데이터센터는 하드웨어 풀(pool) 위에 다수의 가상 운영체제와 응용프로그램이 구동되는 형태이다. 즉, 다양한 종류의 프로그램이 하나의 저장 장치를 동시에 읽고 쓰는 것이다. 따라서 데이터센터에서는 속도뿐 아니라 다중 사용 환경(multi-tenant)에서도 서로 간섭 없이 일정한 성능을 제공하는 서비스 품질을 갖춘 저장장치가 요구된다.
SSD는 HDD(Hard Disk Driver)에 비해 굉장히 빠른 속도를 자랑하는 저장장치이다. 하지만 SSD 역시 때때로 Garbage Collection이 발생한다는 약점이 있다. 가비지 컬렉션이 발생하면 진행 중이던 읽기, 쓰기 동작이 잠시 멈추기 때문에 서비스 품질이 떨어지게 된다. 이러한 이유로 응용프로그램 사이의 성능 간섭과 가비지 컬렉션 발생 문제를 해결할 기술을 고민해 왔다. 이후 해결책으로 등장한 것이 바로 차세대 기업용 SSD 표준 솔루션인 ZNS 솔루션이다.
SSD의 Garbage Collection이란?
SSD를 사용해 데이터를 저장하고 삭제하다 보면 불가피하게 낭비되는 공간, Garbage가 발생한다. NAND Flash의 쓰기 및 지우기의 단위가 다르고, 덮어쓰기가 불가하다는 특성때문에 발생하는 것이다.
SSD의 효율적인 자원 활용을 위해 종종 Garbage가 있는 NAND Block에서 유효한 데이터만 복사하여 다른 NAND Block으로 모아 저장한 후, Garbage가 있는 NAND Block을 지워 재활용한다. 이를 ‘Garbage Collection’이라고 부른다.
3. ZNS는 기존의 SSD와 저장방법이 어떻게 다를까?
ZNS 솔루션에서는 기존 SSD와 저장 방법이 다르다. 기존 SSD에서는 여러 응용프로그램이 논리적으로 각자 원하는 영역에 데이터를 저장하더라도, 실제로 하나의 NAND Block에 순차적으로 데이터가 저장된다. 이렇게 되면 하나의 NAND Block에 여러 데이터가 섞여 저장되므로 데이터 변경 시 Garbage 발생을 피할 수 없다.
반면, ZNS SSD에서는 여러 응용프로그램이 각자 정해진 존(Zone)에 순차적으로 데이터를 저장한다. 여기서 존은 논리적인 공간과 더불어 실제 NAND Block에서도 나누어져 있는다. 하나의 존 안에는 비슷한 데이터끼리 모여 있으며, 순차적으로 저장했다가 존 단위로 지우기 때문에 Garbage가 발생하지 않는다. 따라서 가비지 컬렉션이 불필요하고 이로 인한 오버헤드를 제거할 수 있다.
4. ZNS 솔루션
일반적인 SSD는 가비지 컬렉션을 수행하는데, 이때 SSD 내부에서는 추가적인 쓰기가 발생한다. 이렇게 쓰기의 양이 증폭되는 정도를 WAF(Write Amplification Factor)라고 한다. 일반 SSD에서는 WAF가 무려 4를 넘어가기도 한다. 반면 ZNS 솔루션이 적용된 SSD는 Garbage가 발생하지 않기 때문에 가비지 컬렉션이 필요치 않으며 WAF 역시 1이다.
WAF(Write Amplification Factor)
SSD에서 가비지 컬렉션 등의 이유로 내부에서 추가적인 쓰기가 발생하는 정도를 뜻한다. WAF가 1에 근접할 수록 효율적이다.
WAF = (NAND Flash에서 실제 기록한 양) / (호스트에서 요청한 기록 양)
4.1 ZNS 솔루션의 장점
- SSD를 무려 4배 오래 사용할 수 있다.
: SSD를 Write할 수 있는 횟수에 한계가 있는데 ZNS 솔루션은 기존에 비해 적게 Write하므로 그만큼 오래 사용할 수 있다. 각 응용프로그램이 독립적인 존을 사용하고 가비지 컬렉션에 의한 읽기, 쓰기 동작의 정지가 발생하지 않는다. - 저장 속도가 30% 향상된다.
- 서비스 품질의 안정성이 25% 향상된다.
- ZNS의 효율적인 저장구조로 인해 SSD내 OP영역을 총 SSD 용량의 6%만큼 줄일 수도 있다.
OP(Over Provision) 영역
사용자에게 보여주지 않고 숨겨 놓은 예비 영역으로 가비지 컬렉션 등 SSD 내부 관리를 위한 영역이다. - D램을 효율적으로 사용할 수 있다
: 기존 SSD의 D램에는 Addressing과 NAND 사이 Mapping 정보를 담은 table이 있는데, 이 table은 D램 사용량의 많은 부분을 차지할 정도로 크다. 반면 ZNS는 SSD를 동일 크기의 존 단위로 나눠서 사용하고 존 내에서 append로만 write하므로 mapping table이 필요하지 않다. 때문에 D램을 매우 효율적으로 사용할 수 있다.