DKU-StarLab / SolidStateSquad

This is a study group studying SSD, FTL, and FEMU in 2024.
8 stars 3 forks source link

5. Design Tradeoffs for SSD Reliability #7

Closed Student5421 closed 1 month ago

Student5421 commented 1 month ago

Motivation

SSD의 기반 기술인 Flash Memory의 신뢰성이 기술이 발전함(높은 밀도의 SSD가 개발)에 따라 감소하고 있다. SSD는 Data re-read, Background data scrubbing , Error correction code, Redundancy scheme .. 등과 같이 신뢰성을 향상시키기 위한 여러 기법들을 적용하는데 이러한 기법들은 SSD의 성능을 감소시키거나 복구 실패와 같은 문제가 발생한다.

Proposal

논문에서는 이러한 신뢰성을 위한 기법들의 tradeoff를 분석하고 이러한 기술들을 통합적으로 관리하여 적절하게 사용을 하기 위한 Holistic Reliability Management(HRM)을 제안한다. HRM은 Cost-benefit Scrubbing, Conditional Redundancy, Selective ECC+Data re-read와 같이 상황에 맞는 기술들을 사용하여 신뢰성을 보장하고자 한다.

Results

HRM은 각각의 기술들을 이론적으로 최상인 경우와 통합적으로 관리하는 경우, 여러 워크로드에서 성능을 평가하고 성능이 향상됨을 보인다.

min-seong-kim commented 1 month ago

논문에서 사용한 3가지 SSD 모델들은 종합적으로 Reliability가 높은 편인가요?

neokkk commented 1 month ago

Data redundancy가 full data recovery를 제공하지 않기 때문에, host의 management 레벨에서 HA를 위한 여러 기법을 사용하고 있다면 SSD 내부에서 높은 수준의 reliability를 제공하지 않아도 괜찮지 않을까요?

day-e0n commented 1 month ago

Oracle Scrubber가 실제로 구현 가능하지 않은데 실제 일반 스크러버를 사용했을 때 성능이 얼마나 낮은가요 ?

Student5421 commented 1 month ago

논문에서 사용한 3가지 SSD 모델들은 종합적으로 Reliability가 높은 편인가요?

먼저 3x-nm MLC, 2y-nm MLC, 72-layer TLC 모두 실제 사용되는 플래시 메모리 기술입니다. 어느 정도 신뢰성과 성능이 보장되지만 위 3개의 플래시 메모리 기술은 차이가 있습니다.

3x-nm MLC 보다 높은 밀도와 성능을 제공하기 위해 2y-nm MLC가 개발되었으며, 밀도에 따른 성능과 신뢰성은 반비례 관계입니다. 따라서, 성능은 2y-nm MLC가 신뢰성은 3x-nm MLC가 더 좋으며, TLC는 더 높은 용량을 확보하기 위한 기술이지만, 성능과 내구성은 MLC 보다 떨어집니다.

이러한 이유로, ECC와 같은 신뢰성을 위한 기술들이 적용되고 있으며, 논문에서는 이 기술들의 tradeoff를 분석하고 통합적으로 관리될 필요가 있음을 제안합니다.

Student5421 commented 1 month ago

Data redundancy가 full data recovery를 제공하지 않기 때문에, host의 management 레벨에서 HA를 위한 여러 기법을 사용하고 있다면 SSD 내부에서 높은 수준의 reliability를 제공하지 않아도 괜찮지 않을까요?

SSD 내부에서 높은 수준의 신뢰성을 제공하지 않아도 호스트의 레벨에서 HA(High Availbaility)를 위해 여러 기법을 사용하는 경우 데이터의 보호가 가능할 수 있지만, 아래와 같은 점들을 고려해 보아야 합니다.

  1. SSD 내부의 신뢰성이 낮은 경우, 데이터 오류가 발생할 가능성이 증가하며, 호스트에서 HA 기법을 사용하더라도, SSD에서 발생한 오류가 복구되지 않으면 전체 데이터에 영향을 줄 수 있습니다. 예를 들어, 여러 SSD에 데이터를 중복으로 저장하는 경우, 하나의 SSD에서 데이터 손실은 문제가 없지만, 여러 SSD에서 동시에 데이터 손실이 나는 경우 완전한 데이터 손실이 발생할 수 있습니다. 확률은 낮지만 HA는 이런 경우를 전부 고려해야 하기 때문에 SSD의 신뢰성은 중요합니다.

  2. SSD의 신뢰성이 낮을 경우, SSD 내부에서 오류 수정 및 재읽기 과정에서 성능 저하가 발생할 수 있습니다. 즉, 신뢰성이 낮을 경우 각각의 SSD에서는 이를 해결하고자 하며, 이는 성능 저하로 발생할 수 있습니다.

  3. SSD의 신뢰성이 낮을 수록 호스트의 HA 관리의 어려움과 비용이 증가합니다. 따라서, SSD의 신뢰성은 HA를 위한 관리에 영향을 줄 수 있습니다.

그러나, SSD의 신뢰성과 HA를 위한 기법들 간의 Tradeoff는 고려해 볼 필요가 있습니다. SSD의 신뢰성을 위한 오버헤드가 크다면, 호스트의 HA 레벨에서 이를 보완할 수 있지만, 결국 SSD의 신뢰성은 호스트의 HA 레벨에 영향을 주게 됩니다.

따라서, SSD 내부에서 높은 수준의 신뢰성을 제공하지 않는 경우에도 호스트 레벨에서 HA 기법을 통해 데이터 보호를 강화할 수 있지만, 신뢰성을 높이는 것은 중요합니다. 신뢰성과 HA는 상호 보완적인 관계에 있으며, 최상의 결과를 위해서는 두 가지 모두를 고려해야 합니다.

Student5421 commented 1 month ago

Oracle Scrubber가 실제로 구현 가능하지 않은데 실제 일반 스크러버를 사용했을 때 성능이 얼마나 낮은가요?

Oracle Scrubber 대신 일반 스크러버를 사용할 경우 아래와 같은 성능 저하 요인이 존재합니다.

I/O 작업 증가: 일반 스크러버는 데이터를 물리적으로 삭제하기 위해 추가적인 I/O 작업을 수행해야 하므로, 그에 따라 성능이 저하될 수 있습니다. 특히, 여러 번의 쓰기 작업이 필요할 경우 더욱 그렇습니다.

쓰기 속도 저하: SSD의 경우, 쓰기 작업이 더디게 진행될 수 있으며, 이는 쓰기 내구성에 영향을 미칠 수 있습니다. 일반 스크러버는 데이터 블록을 여러 번 덮어쓰는 경우가 많아, 성능이 저하될 수 있습니다.

시스템 자원 소모: 스크러빙 작업이 CPU 및 메모리와 같은 시스템 자원을 소모하게 되어, 다른 애플리케이션의 성능에 영향을 미칠 수 있습니다.

일반 스크러버를 사용할 경우, 10~50% 정도의 성능이 저하될 수 있으며, 이는 스크러버의 구현 방식에 따라 다릅니다.

yeojin5 commented 1 month ago

scrubbing이 발생하는 trigger가 뭔가요? 또한 HRM에서 사용한 cost benefit scrubbing의 cost는 어떻게 결정되는건가요?