SSD 수명 테스트, 무엇이 문제인가?

2012년에 내가 올렸던 글 중에 SSD 수명 관련 자료(13년 9월 후로 사실상 정지)라는 글이 있었다.

올린 뒤로 해당 글은 다른 곳에서 몰려온 사람들로 인해 인산인해를 이뤘다. 온갖 커뮤니티에 올라갔던 건 물론이고, SSD 업체 내부망에서도 돌았던 것으로 보인다(삼성 인트라넷망인 마이싱글 링크가 한동안 리퍼러를 가득 메울 정도였다). 그 때는 물론 나도 SSD에 대한 기본 지식이 매우 부족할 때였으니, 해당 글이 어느 정도 사람들의 궁금증을 해결해줬으리라 생각했다.

실제로 그 뒤로 이런 방식의 쓰기 반복 테스트는 매우 유행했다. 국내 SSD 커뮤니티 중 하나인 SSDSAMO에서 몇몇 사람들이 이런 테스트에 도전하기도 했다. 그러나 얼마 가지 못하여 해당 방식의 테스트는 수많은 논쟁에 휩싸이게 된다.

SSD 수명 테스트는, 원래 어려운 게 맞다.


말 그대로다. SSD 수명 테스트는, 원래 어렵다. 특히 일반 사용자들에게는 더욱.

내가 JESD218/219에 대한 글을 올렸을 때에도 반향은 크지 않았다. 그렇게 하기 어렵기 때문이다. 나 조차도 그렇게 가야 한다는 방향 제시만 했을 뿐, 많은 걸 바꾸지는 못했고 나 자신도 사실 아직 잘 모른다. 해당 표준을 연구하면서 본 여러 논문에 의하면, JEDEC 표준도 SSD 수명에 대한 모든 걸 담고 있진 못할 거다. 그럼에도 불구하고 그 표준만을 적용하기도 쉽지 않은 게 현실이다.

리텐션 테스트용 핫플레이트

장비가 필요하다. 우선 리텐션 테스트를 위해 제대로 된 가열 기구가 필요하다. 싼 거 쓰면 안 되냐고? 가져와서 측정해보라. 온도가 널뛰기를 할테니. SSD도 대규모로 필요하다. 예전에 계산 해 보았을 때 최소한 백 수십개가 필요하다는 결과를 얻었었다. 또한 그 SSD들이 가열 기구로 들어간 뒤 결과를 대조할 대상도 필요할 테니 디스크 이미지를 보관할 곳도 필요하다. 대량의 SSD에 대해 일괄적으로 진행해야 할 테니 내가 1개 진행했을 때와는 비교도 안 될 규모의 제품들이 필요할 거다. 이게 다 비용이다.

시간도 필요하다. 왜 업체의 TBW가 정해진 숫자로 나오는 지 아는가? 이 테스트는 목표 TBW와 목표 사용 기간을 모두 지정하고 시작하는 테스트다. 즉 해당 TBW보다 더 갔을 때는, 고려하지 않는 테스트다.

다음으로, 지식도 필요하다. 이는 꽤 높은 허들인데, 당시 경험에 의하면 표준 문서 자체도 어렵다. 어느 정도냐면 해당 분야 전공 학부생도 혀를 내두르는 수준이다. 아마도 해당 분야를 깊이 연구한 대학원생 이상 정도는 되어야 무리없이 연구를 진행할 수 있지 않을까 싶다.

마지막으로 치명적인 문제가 있다. 테스트를 진행해서 얻을 수 있는 의의가 크게 없다. 업체 테스트를 재현하면 많은 경우 통과할 게 분명하다. 이는 사용자의 다음과 같은 욕구를 충족해주지 못한다.

사용자가 테스트를 통해 바랐던 것, 그것은 수명에 대한 위안


나를 포함한 많은 사람들이 테스트 결과를 보고 말했다. 이렇게 SSD 수명은 충분하다고(이에 대해서는 이따 말하겠다).

당시 사람들은 업체가 공개한 TBW가 예상보다 그리 크지 않음에 패닉 상태에 빠져있었다. 게시판마다 이렇게 쓰면 수명을 많이 쓰게 될 지에 대한 질문글이 넘쳐났다. 나와 내 주변 사람들이 그렇듯, 결국 사람들은 SSD를 자신의 워크로드에 맞추어 대충 썼을 게 분명하지만 말이다.

그걸 채울 수 있는지 없는지는 제쳐두고라도, 사람들은 위안을 얻고 싶었다. 그 때 SSD는 비쌌기 때문이다. 수 백 년을 써도 다 쓰지 못할 양이라는 댓글들이 말하는 SSD 수명의 신화(?)는 이렇게 만들어졌다. 물론 나를 포함해 많은 사람들이 이제는 자신의 사용량이 그렇게 크지 않음을 알게 되었지만, 그 당시에는 어쨌든 그렇게 멀어보이는 양은 안심을 주기에 충분했다. 안타깝게도 이는 후일 나올 제품들의 TBW 수명 후퇴를 불러오게 된다.

저렴한 대안, 반복 쓰기 테스트


테스트는 힘든데, SSD 수명을 확인하고 싶다. 이런 환경 하에서, 반복 쓰기 테스트는 위의 문제들을 한 큐에 날려버릴 수 있는 방식임이 분명했다.

우선 장비라고는 SSD와 수명을 측정할 컴퓨터만 있으면 충분했다. 물론 비용은 필요하다. 그러나 SSD에 열정을 가지고 있는 사람이라면 이 정도는 손에 닿는 수준인 것이다. 그렇지 않았다면 세계에서 그렇게 많은 테스트가 이루어졌을 리 만무하다.

지식도 프로슈머 정도 수준이면 충분했다. 해당 테스트에 등장하는 물리량 치고 프로슈머 수준에서 더 올라가는 물리량이 있던가. SSD에 대해 잘 아는 사용자 정도면 이해하는 데 큰 무리가 없었다.

물론 장점이 이렇게 많으면 단점이 있는 법, 크게 단순화 된 방법은 큰 반동을 가져오게 된다.

아무리 눈대중이라지만, 너무 심하다


우선, ‘데이터 유지’에 대한 고려가 없어도 너무 없는 테스트였다. 쓰기 한계를 재겠다는 목표에만 목을 매단 나머지, 테스트의 본질을 잊어버린 결과였다. SSD에 데이터는 쓰면 끝이 아니다. SSD는 저장 장치다. 저장을 할 때 의미가 있는 것이다.

이는 찬찬히 짚어보면, 단순히만 생각해봐도 알 수 있는 것이었다. 배터리를 100% 충전하고 몇 개월간 여행을 갔다온다고 생각해보자. 자연히 방전되는 양이 있지 않겠는가? SSD도 마찬가지다. 충전해놓고 가만히 있으면 자연히 방전되는 양이 있는 것. 물론 세세한 부분은 꽤 다르지만 아주 높은 수준에서 추상화하면 결국 그런 이야기다.

JEDEC 표준 문서에 보면, 사용자 환경에서 데이터는 최소한 1년을 갈 수 있어야 한다. 그런데 사용자 테스트는 어떠했나. 연속이다. DRAM도 아니고, 초반의 테스트는 써놓고는 제대로 써졌는지조차 고려를 하지 않았다. 오로지 SSD 내부 쓰기 알고리즘만이 제대로 써지기는 했는지 테스트하는 데 그쳤다.

또한 해당 테스트는 SSD 공간을 연속으로 사용한다. 사실 SSD 입장에서 전체 공간을 연속으로 사용하는 case는 최적의 워크로드 중 하나일 것이다. 일단 이런 경우는 모든 공간이 균등하게 사용된다. 또한 어떤 페이지를 덮어씌우는 것 같은 문제가 일어나지 않는다. IO 단위가 크기 때문에 처리 부담도 적다. FTL 알고리즘이 거의 손댈 필요조차 없는 천상의 워크로드다. 흔히 이 테스트가 연속으로 쓴다는 비현실적 상황을 가정해서 현실 워크로드에서 더 나은 결과가 나올 거라고들 하지만, 그 생각은 틀렸다. 이런 상황은 비현실적인 건 맞지만 SSD에게 현실보다 훨씬 더 쉽다는 의미에서 비현실적이다.

나중에 군 생활 중 JEDEC 표준 문서를 찬찬히 보면서 나 또한 바깥의 현 인식이 무언가가 심각하게 잘못되었음을 느꼈다. 그러니 해당 분야에 종사하는 사람들은 얼마나 더 잘못을 많이 볼 수 있었을까. 지금 생각하면 부끄러운 일이다.

그럼에도 불구하고


그럼에도 불구하고 이 방식으로 측정한 결과들의 의의는 존재했다.

대체로 이 테스트에서 빨리 죽는 것들은 제대로 테스트 해도 빨리 죽었다. 이 테스트에서 빨리 죽은 걸로 평가된 모 제품은, 내가 인수해서 JESD 방식으로 테스트하자 리텐션 테스트는 고사하고 하루 저녁도 버티지 못했다. 그리고 결국 실제로도 엄청난 혹평 속에 후순위로 밀려났다. 현실 워크로드에서도 비슷한 문제를 보인 거다.

이처럼 테스트 결과는 해당 제품의 펌웨어 안정성 등을 평가하는 데는 비교적 유용한 자료였다. SSD의 실제 수명을 알기에는 쉽지 않았지만, 죽어가는 과정에서 보여주는 여러가지 문제점들은 해당 SSD의 내부를 엿보게 하는데 충분했다.

다만 여전히 안타까운 점은, 대다수의 사용자들이 결과를 읽는 방식이었다. 결과로 점프하는  걸 좋아하는 본성에 따라, 몇 TiB 버텼대! 하고는 나머지는 읽어보지도 않았다는 점이다. 이렇게 읽었다면 그 사람은 그 결과를 안 읽은 것과 동일하거나, 안 읽은 것보다 못한 인식을 갖게 된다.

대안은 있을까


문제는 제대로 된 테스트가 쉽지 않다는 거다. 계도를 하려면 나부터 잘 해야 하는데, 그러기가 쉽지 않다. 나도 지식이 한참 부족할 뿐더러, 자금도 없다. 군대 가기 전 마지막 몸부림으로 1개 제품에 대해서 테스트를 시도해 본 게 고작이다.

TLC 시대가 되면서 예전보다 더 많은 제품들이 성능 상에 문제가 생기고 있다. 이는 수명도 예외는 아니다. 위에서 언급한 하루살이 SSD 또한 이런 시대가 아니었으면 나오지 못했을 거다. 물론 이는 원가 절감에 대한 압박 때문이겠지만, 품질이 점점 낮아지고 있는 것 또한 사실이다.

테스트가 던지는 질문은 아직 해결되지 못했다. 나는 아직 답을 찾고 있다.