SSD심층정보 첫글(http://www.ilbe.com/3054601815" target="_blank">http://www.ilbe.com/3054601815) 제목을 특이하게 지어가지고 "다음글은 웨어레벨링 2부냐?" 할텐데 그게아니라 SSD 시리즈의 2부다.

이게 미리 기획하고 작성하는 글이었으면 좀 체계적으로 구성을 했을텐데 그러지 못한게 아쉽다. 나중에 생각조각모음 업데이트때 분류를 다시 해야할것 같다.

 

 

 

SMART (Self-Monitoring, Analysis and Reporting Technology) : 자가 진단, 분석, 보고 기술

 

 

 

[서문] 저장장치는 공장출하시엔 단순한 부품에 지나지 않지만, 사용자가 구입후 사용하기 시작하면 세상에 하나밖에 없는 물건이 되어버린다.

그래서 사용하다가 고장나게되면 다른 부품은 그냥 버리고 새 제품으로 교체하면 그만이지만 유독 저장장치만은 저장된 데이터에 따라

제품 본래값어치의 수십~수백배의 돈을 들여서 복구를 시도하는 일도 종종 발생한다. 이처럼 저장장치는 사용자의 중요한 데이터를 담고있는 그릇인 것이다.

 

 

 

[본문] 이런 장치적 특성때문에, 고장나면 교체하면 그만인 다른 부품들과는 다르게 특별대우를 할수밖에 없다. 그래서 등장한것이 SMART Information 기능이다.

SSD는 물론이고 HDD도 마찬가지다. 다만 이 글(http://www.ilbe.com/3044226626" target="_blank">http://www.ilbe.com/3044226626)의 서문에서 밝혔듯, HDD는 상태파악은 가능하지만 예상수명을 계산하기는

불가능하다. SSD는 어림짐작이 가능하지만 HDD는 현상태가 좋은지 나쁜지 그것말고는 직접적으로 뭔가 더 알아내기는 힘들다. 어느정도의 노하우가 필요하다.

 

Part 1. SMART의 개요

항상 S470을 예로 들어서 질리는듯해서 이번엔 다른걸 예로 들어보겠다. 여기서 사용할 제품은 PlayWares의 TLC수명리뷰에 사용했던 삼성 840 120GB 제품이다.

ac3806f22cc45d4e4f6807231dbfe8b3.png

출처 : PlayWares http://www.playwares.com/xe/25552049 / S14DNEACA05374N

 

딱봐도 뭔가 S470보다 항목이 많아졌다. 하지만 거의 중복되거나 안봐도되는 데이터이므로 겁먹을 필요는 없다. 중요한 정보만 찝어서 보면 되는거다.

Raw항목을 가만히 보면 수치가 일치하는 이름만 다른 항목이 몇개 보인다. Raw "1C1"의 값을 보이는 ID 05, B3, B7이 그러하다. 똑같은걸 여러개 집어넣은 이유는

Smart Viewer마다 참조하는 값이 조금씩 다른데, 하나의 이름(ID)으로만 특정값을 제시하면 그 값을 못찾고 못보여주는 프로그램이 일부 있어서 그렇다.

딱히 직접 해석해서 보여주는게 아닌, CDI처럼 그냥 존재하는 항목은 다 보여주는 뷰어는 해당없다. 그냥 사람이 보기에 거추장스러울 뿐. 알아서 보면된다.

특정값 해석은 앞서 먼저 글(http://www.ilbe.com/3044226626" target="_blank">http://www.ilbe.com/3044226626)에서 다뤘으므로 먼저 읽고오자. 다른 SSD들도 저 두가지 값만 참조하면 상태예측은 충분하다.

 

먼저글에서 언급했던 URBC(ID B3)는 유저영역에서 발생한 데드셀을 예비영역이나 OP영역에서 정상셀로 주소치환하여 대체된 갯수를 나타낸다.

역시 먼저 설명했던 WLC(ID B1)는 장치에 지금까지 기록된 데이터의 양을 대략적으로 계산하여 가늠해볼 수 있는 지표다. 이 두개가 가장 중요하다.

추가적으로 몇개 더 알아보자면,

Airflow Temperature(ID BE)는 현재온도이며, ECC Error Rate/CRC Error Count(ID C3/C7)은 구동중 발생하여 ECC/CRC엔진에서 교정한 에러갯수를 나타낸다.

POR Recovery Count(ID EB)는 전원이 갑자기 끊겨 정상종료되지 못한 횟수를 보여준다. 그런데 쓰다보면 그런적이 없는데도 카운트가 올라갈때가 있다...?!

 

그리고 삼성전자제품 기준으로 830에서부터 지원하기 시작한 TBW값이 있다. CDI기준으로 오른쪽 위에 Total Host Writes라고 표시해주는 값이 그것이다.

이것은 WLC값으로 일일이 계산해야하는 불편을 해결하기 위해 추가된 기능이며, 쓰기수명이 정확히 정해져있는 SSD를 중고거래 할때에 참고하면 좋다.

다만 이것은 셀에 직접적으로 기록된 양이 아니라 Data Write 명령을 받을때 컨트롤러차원에서 직접 카운팅 한거라 WLC값과는 어느정도의 차이가 발생한다.

WL과 GC의 세팅성향에 따라 TBW보다 WLC가 낮을수도, 높을수도 있다. 자세한것은 책에 어쨌든 관리는 컨트롤러가 알아서 하니까 수명은 걱정하지마라.

 

한가지 참고할 사항! 짤방에 보이는 TBW값은 88.63TB밖에(?) 안되는데 WLC값으로 계산한 기록값은 242.5TB(112GB*2217(16진수8A9)/1024)로 나온다?!

이유는 삼성 840/840Pro 발매초기에 초기펌웨어에 존재했던 TBW 카운팅버그때문에 기록값이 리셋되서 그런것이다. PlayWares에서도 이유를 밝히고있다.

해당 수명리뷰에서는 실제데이터 212TB를 기록했다고 주장하는데 왜 계산값이 242.5TB인거냐 궁금하다면 http://www.ilbe.com/3054601815" target="_blank">http://www.ilbe.com/3054601815 이 글을 읽어봐라.

기록된 데이터를 웨어레벨링 작업때문에 이리저리 옮기면서, 낸드플래시에게는 컴퓨터가 실제 쓰기요청한 데이터양보다 더 많이 쓰기작업이 일어났기 때문이다.

 

Part 2. 왜 해석이 어려운가

SMART Information이 누굴 타겟으로 개발됐는지가 문제다. 애초에 시스템 관리자들을 위해서 나온 기능이다보니 설명도 투박하고 수치값도 불친절하다.

가장 큰 문제는 수치를 표시하는 방법에 있는데, SMART를 내가 개발한게 아니라서 나도 개발자한테 왜 이렇게 한거냐고 따져묻고싶은 심정이다.

그것이 뭐냐하면 현재/최악/경계 수치다. 단어뜻이 와닿지도 않을뿐더러 표시방법에도 문제가 있어서, 최악/경계수치는 해당값이 없으면 옆에있는

현재 수치를 그냥 끌어와서 보여준다. 값이 없다고 '---'를 보여주는건 양반이다. 그래서 더욱 헷갈려하는거다. 위의 840을 봐라. 장치온도를 빼곤 두 값이 동일하다.

 

이러니 초보자들은 현재/최악 수치가 같으니까 "지금 고장나는거 아냐?", 새제품도 현재/최악 수치가 동일하니 "새제품이 왜이래? 불량아냐?"하고 오해한다.

그러니까 알아두자. 현재/최악 값이 같은건 장치가 지금 고장나려고 그러는게 아니라, 최악에 해당수치가 없으니까 그냥 옆 수치를 끌어와서 보여줘서 그런거다.

다만 경계 수치의 경우 실제로 고장이 임박한 상황의 수치를 나타내는건데, 현재 수치가 경계 수치값에 가까워졌다면 장치고장을 예상하고 사용하는것이 좋다.

 

예외적으로 온도항목(ID BE)을 보면 최악 수치가 정해져 있는것이 보이는데, 이게 눈치껏 보면 섭씨 100도를 기준으로 %비율로 나타낸것을 알수있다.

16진수 28 = 10진수 40. 섭씨 40도 기준으로 현재상태 60%인거다. 이는 삼성전자 제품의 경우다. 다른 제조사의 제품인 경우에는 알아서 눈치껏 판단해야 한다.

그런데 최악에 해당하는 값이 54%이지? 계산하면 46도가 나오는데, 따라서 삼성SSD 840제품의 경우 46도부터 온도경고에 해당하는 수치란걸 파악할수있다.

 

 

 

SMART Information에 목말랐던 게이라면 재밌게 읽었을거다. 항상 읽어줘서 고맙다!