수명 테스트가 진행되면서 각 부분을 읽을 때 필요한 정보들을 조금씩 올리도록 하겠습니다.
인용 부분의 저작권은 인용 출처에 있습니다.
본 글은 이방인(ebangin127)의 개인적인 해석을 포함하고 있습니다.절대 본 글이 JESD 등 인용문에 대한 절대적인 해석이 될 수 없음을 알려드립니다.
1. JEDEC이란?
JEDEC은 Joint Electron Device Engineering Council의 약자로, 미국 전자 산업 협회와 국제 전자 제조업체 협회가 세운 반도체 표준을 지정하는 곳입니다. 우리에게 잘 알려진 DDR DRAM 표준이 이 곳에서 지정되고 있으며, 이번에 다룰 수명 표준의 경우도 여기서 지정했습니다.
2. Enterprise Workload
우리는 사실 사용자 환경임에도 불구하고, 엔터프라이즈 환경 기준(Enterprise Workload)이 더 많이 알려진 기준일 것으로 보입니다. 개인용 제품은 표준 테라바이트 환산 수명(TBW)를 공개하지 않고 두리뭉실하게 하루에 몇 기가로 몇 년(3편에서 왜 이런식인지도 설명을 하도록 하겠습니다), 이렇게 표현하기 때문에 우리가 인터넷으로 검색해서 볼 수 있는 사실상의 모든 TBW 수명의 정체입니다.
먼저 수명 체크를 시작하기 전에 유효한 데이터로 전체 사용자 공간을 채워야 합니다. 예시로 볼 때, 쓰기와 동시에 진행되는 읽기의 경우 미리 기록된 데이터가 없을 시 에러를 낼 것으로 보기 때문으로 보입니다. 그렇지 않은 경우(읽기에 오류가 발생하지 않는 경우) 포맷된 SSD로도 조건을 충족시킬 수 있다고 합니다.
– 파일 크기는 512Byte : 4% / 1K~3.5K : 0.5K당 1% / 4K 67% / 8K 10% / 16K 7% / 32K 3% / 64K 3%
[그림 1] 4K 비율이 압도적으로 큽니다.
1K~3.5K까지 0.5K 단위로 1%씩 배치한 것이 이색적입니다.
– 4K보다 큰 데이터는 4K 정렬로 전송
4K 정렬은 4K 단위라는 것이 아닌, 4K 경계에 맞추어 보내라는 것입니다. 즉, 파티션 틀어짐 등으로 섹터 경계에 맞지 않는 데이터를 보내서는 안 된다는 것이지요.
– LBA 100% 사용할 것
아래의 Trim 금지와 함께 엔터프라이즈 환경 기준이 사용자 환경 기준과 큰 차이를 보이는 부분입니다. 즉 처음부터 OP로 지정하지 않은 이상 여유 공간으로 인한 유사 OP 효과를 허용하지 않겠다는 것이지요.
– UNMAP, TRIM 사용 불가
TRIM 등의 기술을 금지하여 순수하게 웨어 레벨링과 기본으로 잡혀있는 OP를 통한 수명을 측정하도록 하고 있습니다.
– 처음 5% 영역에 50% / 다음 15% 영역에 30% / 나머지 영역에 20% 할애할 것
[그림 2] LBA 사용 비율
실제로 OS 영역 등의 일부분을 읽는 비율이 다른 곳 전체를 읽는 비율보다 많으므로 이런 설정을 도입한 것으로 보입니다.
– 각각 SSD에 오프셋을 적용해야함
사실상 SSD가 여러개 필요한 부분입니다. 간단하게 표현하면
(각 문자는 5% 단위)
SSD 1 : A B B B C C C C C C C C C C C C
SSD 2 : C A B B B C C C C C C C C C C C
SSD 3 : C C A B B B C C C C C C C C C C
…
이런 식으로 다른 배치를 통해 전체 영역에 대한 수명을 측정해야 한다는 것이지요.
– 위에서 말한 영역 사항 접근 순서는 순서대로 하던 랜덤하게 하던 관계없음
즉 처음 5% 영역 -> 다음 15% 영역 -> 마지막 영역 이런 식으로 번갈아 쓰던, 섹터 순서대로 쓰던 관계 없다는 의미입니다.
– 100% 엔트로피를 가지는 랜덤이지만, LBA 번호를 표기하는 등 몇 바이트만 바꾸는 건 허용(암호화된 데이터를 모사하기 위함. 예제로 vdbench를 보여주고 있습니다)
암호화된 데이터를 모사하기 위함이라고 직접 언급하고 있습니다. 그러므로 Blum Blum Shub과 같은 패턴을 예측하기 힘든 랜덤 알고리즘이 Mersenne Twister와 같은 예측 가능한 랜덤 알고리즘보다 나을 것으로 보입니다.
비슷한 기준으로 이 표준 전에 나왔던 SPC-1이 있는데, 이 기준은 다음과 같습니다.
– 4K 단위, 모두 랜덤(정렬 단위를 ‘사용자에 맞게’라는 이유로 바꿔서는 안됩니다)– 60% 쓰기, 40% 읽기
실 사용 예시로 HGST의 SSD 수명 평가 방법입니다. 표준과 다르거나 새로 추가한 부분은 볼드처리했습니다.
• Random workload definition: IO size of 4KB or 8KB, 4K-aligned, full-volume random (access is uniformly distributed across the full drive volume)
• Drive is 100% full – all LBA used, no LBA Trimmed / Unmapped (JESD219A)
• Data is completely random, e.g. not compressible (JESD219A)
• End-of-life, power-off data retention of 3 months in 40DegC storage temperature (JESD218A)
• UBER of 1 block in 10E16 Bytes read (JESD218A)
• Allowed performance degradation at end of rated product life <10%
참고 자료
Ulrich Hansen, The SSD Endurance Race: Who’s Got the Write Stuff?
JEDEC, JESD219A – Solid-State Drive (SSD) Endurance Workloads