OS 의존성 문제기존의 SATA와 같은 프로토콜은 OS가 I/O 요청과 데이터 전송을 직접 관리하도록 되어 있음OS 소프트웨어 스택의 개입은 SSD의 빠른 데이터 접근 속도를 제한하며, 특히 고부하 환경에서 성능 저하의 원인향후 발전 방향SSD 제조사들은 이러한 병목 문제를 해결하기 위해, OS의 개입을 최소화하고 SSD와 애플리케이션 간의 직접 통신을 지원하는 새로운 Host-interface protocol 을 도입하고 있음NVMe와 같은 최신 프로토콜은 이러한 문제를 해결하여, SSD의 잠재적인 성능을 최대한 활용할 수 있도록 설계됨→ 기존 HDD용으로 설계된 호스트 인터페이스 프로토콜이 최신 SSD의 고성능을 발휘하는 데 있어 제약 요인으로 작용하고 있음.그러니까! 제조사들 사이에서는 이제 OS의..
3D Stacking을 통해 쌓아 올린 NAND Flash memory는 MLC, TLC, QLC 처럼 단일 셀에 많은 정보를 기록하기 위해 저장 밀도가 점점 높아지고 있다.Error를 복구하기 위해 Read-Retry 방식을 통해 조정된 읽기 전압을 찾아서 읽기를 시도한다.→ Read request에 대해 계속 반복 수행하다보니 Latency가 너무 커지게 된다.실험을 통해 현대 SSD에서 널리 사용되는 2가지 고급 기술을 사용해 이 Read latency를 줄일 수 있는 방법을 발견하였다.CACHE READ 명령어NAND Flash 칩이 연속적인 읽기 작업을 파이프라인으로 수행할 수 있게 한다.강력한 ECC 엔진최종 Retry 단계에서 ECC Margin을 통해 칩 단위의 읽기 작업의 수를 좀 줄일 ..
당시 NVMe SSD가 시장에 나왔지만 여전히 기존 시뮬레이터는 이를 반영하지 못함.해서 2018년에 MQSim이라는 시뮬레이터를 공개하면서 나온 논문이다.또한 기존 시뮬레이터들은 gc 같은 SSD 유지보수 알고리즘을 명확히 포착하지 못하는 모습을 보임.I/O 요청의 전체 엔드투엔드 latency도 포착하지 않아서 보고되는 NVMe SSD의 성능과 큰 차이가 있을 수 있음.→ 이런걸 반영한 MQSim의 등장높은 throughput과 빠른 response time, 그리고 cost의 감소로 서버에서는 HDD보단 SSD를 쓰는 경향이 많이 생기고 있다.기존 SSD는 SATA 프로토콜을 많이 썼는데, 이게 IOPS 측면에서 좀 느려지는 경향을 보임.그래서 나온게 NVMe 프로토콜이다!기존 SSD의 high t..
Virtualization의 경우→ Guest OS가 자신이 가상 머신 위에서 돌아가고 있다는 것을 모르는 상태.Paravirtualization의 경우→ Guest OS가 자신이 가상 머신 위에서 돌아가고 있다는 것을 아는 상태.기본 레이아웃리눅스 머신 위에 KVM과 Qemu를 사용한 Guest OS가 올라와 있고,Qemu를 통해 가상 디바이스를 Guest OS에게 보여주는 형태Qemu에서 Full Virtualization을 하는 경우 우선소프트웨어로 하드웨어를 에뮬레이션 해야 하고커널 → 유저, 유저 → 커널로 데이터 카피가 여러 번 발생하게 된다.이러한 데이터 카피 과정에서 많은 Context Switch 오버헤드가 발생한다.반면 Paravirtualization을 하는 경우는→ Guest OS의..