


사무실 전산관리 담당인데,
사용 1~2년차 정도 된 NVMe SSD 들 대상으로 제조사 안가리고 배드가 엄청나게 나오네요.
로우포맷 돌리고 재검사 해봐도 그대로인걸로 봐서 물리적 손상 확정이고요..
그리고 배드는 없어도 그냥 포맷하고 백업드라이브 용도로 사용하는 몇년된 SSD 들은 읽기 속도가 하드보다 느립니다.
검사해보면 스펙상 읽기속도 5000MB/s 짜리들도 3년넘어간 드라이브들은 15~50MB/s 가 나오네요.
포맷하고 다시쓰면 5000MB/s 근방으로 복구되구요.
용량이 매우 큰 대형 프로젝트(500~800GB) 를 다루는 작업을 하는데 웨어레벨링 생각해서 2TB 이상을 사용함에도...
그리고 프로젝트 용량이 큰거지 개인별로 작업 할땐 수십KB~MB 정도의 파일을 다룰뿐인데..
이게 맞나 싶습니다.
전부 TLC 인데 수명이 개복치 수준이네요.
삼성 SSD 도 별수없고요.
지금 SSD 가격도 천정부지로 올라서 전부 교체 하자니 비용이 상당히 부담되서 고민이네요.
2TB 이상 SSD 가 40~50개쯤 되는데..
아직 전수조사는 하지도 않았지만 이정도 확률이면 뻔하겠고
업무용으로 지금도 쓰고 있는데 언제 다 검사하고 교체하고 포맷하고 미칠지경입니다..
웃긴건 사용한지 7~8년된 512GB 용량의 MLC 드라이브는 굉장히 멀쩡합니다.
스펙대비 속도저하폭도 크지않구요.
쓰기총용량 70TB 정도 한 2TB TLC SSD 보다
80TB 정도 사용한 512GB MLC SSD 가 배드도 없고 상태가 더 좋습니다.
이지경이면 요즘 많이 나오는 QLC 는 안봐도 뻔하겠네요.
처음 알고갑니다.
역시 아무리 기술발전이니 뭐니해도 MLC가 최고군요.
블록마다 수명도 마찬가지로 존재합니다.
SSD 에는 배드가 안생기는줄 아는 분도 많더군요.
'재할당 된 섹터' 혹은 '치환된 섹터' 이런식으로 카운트 수가 표시되는데,
배드섹터가 초기에 몇개 생기는 동안에는 이 여유 섹터로 치환되는 과정이 있어서 배드로 안잡힙니다.
그걸 넘어서면 대체해줄 섹터가 없으니 배드섹터로 잡히게되구요.
배드 검사 프로그램은 '배드가 몇개나 있나' 정도를 확인하는 용도이지,
정확히 어느 블록에 있다를 확인할 용도로 사용하진 않습니다.
위 툴로 배드가 확인되는 드라이브들은 어차피 SMART 확인해봐도 똑같습니다.
말씀대로 논리배드였으면 논리배드 복구툴이나 로우포맷으로 사라졌어야 하는데 그렇지 않더군요.
실제로 로우포맷 돌려서 논리배드 복구후 다시 재투입한 사례들도 여럿 있어서 차이는 확실한 상태입니다.
그리고 HDD SCAN 툴이 지원끊긴지 오래된 프로그램인건 알고 있습니다만,
지원이 여전히 되고있는 다른 툴로 배드 검사해도 결과는 똑같았기때문에 문제는 아니라고 생각했습니다.
HDD SCAN 툴의 문제는 검사 결과가 잘못나오냐가 아니라,
용량지정 검사 세팅에서 TB 단위의 대용량 디스크 대응이 안되어 있어서 전체검사밖에 못한다는 문제뿐이었습니다.
어차피 증상이 있어서 저한테 온 SSD 들이기때문에 툴이 문제냐는 별로 중요하지도 않구요..
확인사살 용도입니다.
증상으로는 보통 인식불량, 속도저하등 하드랑 비슷하겠지요..
지금 위 검사를 통해 발견된 샘플들의 PC 증상도 부팅 불가, 업무중 PC 멈춤, 특정 작업시 엄청난 속도저하 등등입니다.
한편 사용하신 GM HDD Scan 툴의 신뢰성도 재고해 보셔야 할 것 같습니다. LBA 수준에서의 검사밖에 안 되기 때문에 검사할 때마다 컨디션이 매번 달라질 수 있는 데다가, 해당 툴은 고용량 디스크에서 부정확하다는 의견들이 보이더라고요 (기술의 발전으로 블럭 1개당 용량이 커지는데도 고정된 응답시간으로 검사하는 로직이 문제인 것 아닌가 의심됩니다. 블록 크기 183MB를 500ms 내에 전송하려면 전송속도가 367MB/s는 나와야 합니다). 다른 툴에서도 동일하게 오류가 잡히는지 확인해 보시면 좋겠습니다.
로우레벨 포맷이란 것도 결국 펌웨어 레벨에서 개입하지 못하고 OS 수준에서 모든 LBA에 zero-fill하여 GC를 간접적으로 유도하는 것에 불과한데, 최신 펌웨어 로직이 zero-fill에도 바로 PBA 변경을 안 하고 다음 GC까지 기다리는 정책이라면 의미가 없을 수도 있습니다. 이건 제조사 고유의 노하우 영역이라서 과거 SSD가 그랬다고 요즘 것도 똑같다고 단정할 수가 없어 보여요.
+추가: 실제 사용상에서도 이상이 있다고 하시니 뭔가 문제가 있어 보이긴 하네요. 펌웨어에서 GC가 원활히 안되는거 아닌지... 저라면 디스크 전체 영역에 TRIM을 해 볼 것 같습니다. 제로필보다는 확실히 GC를 유도하니까요.
배드가 발견되는 SSD 들은 여유섹터가 100 개라면 치환 완료된 섹터가 100개로 이미 가득찬 상태로 표시됩니다.
적당한 TRIM 툴을 제가 찾지못해서 여태껏 문제입고 되면,
그냥 로우포맷 시도해보고 여전히 문제가 있으면 신품교체 해서 처리하고 있었는데 혹시 추천해주실만한 툴이 있을까요?
TRIM 이라는게 제가 알기로는 전체 공간을 대상으로 리프레시해주는것으로 알고 있는데,
문제가 이미 터지고 나서는 의미가 없고 평상시에 주기적으로 돌려야 할것 같은데 그것도 맞는지 궁금하네요.
SSD 예비 블록은 고작 100개가 아닙니다. SMART에서 100이라고 뜨는 건 퍼센트 단위로 환산된 값일 수 있습니다. 실제로는 전체 메모리 용량의 수%를 오버프로비저닝 공간으로 예비하는 식이라서 치환 가능한 섹터 수가 매우 많습니다. 공장 출고 시점에 Raw 값이 0인데, 치환이 일어날 때마다 점점 늘어나는 식으로 카운트됩니다. 그러다가 더 이상 치환할 여유 섹터가 없어지면 그 SSD가 통째로 쓰기 불가 읽기 전용으로 바뀌어버려요.
다음 블로그가 참고하기 좋아 보이네요: https://cdmanii.com/3620
TRIM은 이 블록 영역에 의미있는 데이터가 더 이상 담겨있지 않으니 마음대로 가비지 컬렉션해도 된다고 펌웨어에게 알려주는 명령입니다. TRIM 명령을 보냈다고 해도 정말로 GC할 지는 펌웨어 정책에 따라 달라집니다. 그동안 정상적으로 TRIM이 되고 있지 않았다면 펌웨어가 신선한 셀을 찾는 게 어려워지면서 점점 입출력 속도가 느려집니다 (SSD의 입출력 속도는 TRIM된 빈 공간이 적을수록 느려집니다)
윈도에서는 내장된 조각모음 유틸리티가 SSD로 인식된 디스크 대상으로 TRIM을 수행하게 됩니다. 정상적으로 TRIM이 되려면 조각모음 정기적으로 예약 수행되어야 하는데, 일부 서드파티 프로그램에서 제멋대로 윈도 예약 작업 기능을 꺼버리면서 방해를 일으킬 수도 있습니다. 조각모음 프로그램에서 마지막 수행 시점이 표시되니 확인해 보시면 좋겠고요.
RAW 값보면 대체로 16진수처럼 보이는데,
제조사에 따라서는 친절히 정수값(퍼센트?)으로 나오는것들도 있어서 그렇게 말씀드렸습니다.
배드가 발견되는 SSD 들 해당 값을 보면 00000000 인 경우는 없었습니다. 말씀주신 부분과 일치합니다.
치환이 가득 차고 나서 락걸리는건 제조사마다 다른것 같은데 삼성은 그렇게 하는거 같습니다.
실제 그 사례로 의심되는 디스크를 지금 하나 가지고 있습니다.
TRIM 은 조각모음에서 하는거였군요..
그렇다면 윈도 기본 설정인 (주1회) 로 모든 PC 가 회전중인데... 어렵네요.
가상머신 SW에서 해당 디스크를 SSD로 인식하게 하는 옵션이 있으면 켜 주시고(sparse 가상 디스크도 하나의 방법이 되겠죠), 게스트 OS에서도 주기적으로 trim/discard가 되도록 설정해 주셔야 합니다.
감사합니다ㅎㅎ
'읽기' 나 단순 '전원인가' 가지고는 속도저하를 막을수 없습니다.
예전에 이 문제가 심각했던 삼성 SSD 가 있었던걸로 기억하고 관련 펌웨어 업데이트까지 있었을거에요.
수명은 이미 정해져있고 그 수명대로 얼마나 더 빨리 도달하느냐가 성능이니까요.
예전 SATA방식때야 읽기 쓰기 속도가 500메가대에 머무니 오래써도 설계수명까지 꽤 오래쓸수 있는 반면에
요즘은 SATA때 속도의 10배 15배 이래버리니 수명까지 15배 더 빨리 달려가게 되는거죠.ㅎ
느린속도+MLC 조합으로 미친듯한 수명확보가 되었을것 같습니다.
hdd에만 있는 줄 알았습니다. ㅎㅎ
사무실에 삼성 SSD 도 많이 있기때문에 제조사 상관없이 배드가 생긴다고 작성한것인데,
지금 제 책상에 꽂으면 포스팅에서 10분이상 지연되고 부팅후 포맷시도하면 CRC 오류만 뜨고 실패하는 삼성 2TB SSD 하나와
배드가 여럿 발견되고 부팅중 1/3 확률로 체크디스크가 동작하는 SSD 중에 하나가 삼성 2TB 제품입니다.
(본문에 언급드린 멀쩡하다는 512GB SSD 도 삼성제품입니다.)
삼성 SSD 라고 해서 낸드 수명이 무제한은 아니지 않나요..?
배드가 생길수 없다는게 어떻게 그럴수가 있는지 순수한 궁금증이 생깁니다.
타사 SSD 중에 문제가 생겨서 저한테 온 SSD 들과 증상이 다르지 않고, 공통점은 모두 배드섹터가 발견됩니다.
bad block이 발생하면 내부적으로 따로 확보 되어 있는 추가 영역의 block과 교체를 합니다. 이를 reserved block 이라고 부릅니다. bad block 을 reserved block 으로 교체를 하기 때문에 배드섹터가 발생하지 않습니다. reserved block이 모두 소진 되면 SSD는 스스로 read only 로 전환하고 모든 write 동작을 실패처리 합니다. 이러면 보통 부팅이 되지 않습니다.
혹시몰라 오래된 c드라이브의 256GB SSD의 크리스탈인포를 돌려봤는데...
여전히 상태 양호하네요.
더구나 지금 읽기/쓰기 양도 적은편이시네요.
1. PC 사용에 문제가 있어서 저한테 입고 (부팅불가, 사용중 불특정시점에 멈춤, 반응이 매우 늦음..)
2. 확인해보면 SSD 가 문제
3. SSD 를 검사해보면 배드카운트 발견
이 순서라서 배드가 없다고 하기에는 이미 유증상 상태로 저한테 옵니다..
그게 그거 아닌가 라고 생각해왔는데 지적하시는 분들이 있어서 스스로 혼란스러워지고 있습니다.
SSD 신뢰성 메커니즘상 수년이상 장기 retention이나 같은 block을 10K번이상 read write하면 문제가 생길 소지가 있지만 (스펙에 기록되어있습니다)
이런 경우는 일반적인 워크로드에서 단기간(1~2년)에 나타나기 어렵고,
배드섹터라는 해석이 잘못되었을가능성이 높습니다.
다만 SSD사용에 문제가 있어서 온건 결국 어떤식으로든 문제가 있는건 사실인건 맞습니다.
대충 확인해보면 1년 평균 읽기/쓰기 사용량이 50TB/30TB 수준이라 이것 자체도 많지만,
이 사용량이 디스크 전체에 고루 매핑되는게 아니라 특정 범위에 매우 집중되는것 같습니다.
매핑 알고리즘이 제조사마다 다른 탓인지 문제 발생 시점은 제조사별로 차이는 보이는데,
시간이 지나면 결국 같은 문제로 수렴하는것으로 보아 사용량을 높게 가져가면 어떻게 되는지 사례를 보여드리는거 같네요.