|
[필독] 처음 오시는 분을 위한 안내 (735) |
정은준1 |
2014-05 |
5139141 |
0 |
2014-05
5139141
1 정은준1
|
|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1673629 |
25 |
2015-12
1673629
1 백메가
|
58261 |
킹스톤 메모리 AS 방법 (1) |
catstyle |
2015-05 |
5271 |
0 |
2015-05
5271
1 catstyle
|
58260 |
동영상 스트리밍 서버 문의 (10) |
블루스카이 |
2020-03 |
5271 |
0 |
2020-03
5271
1 블루스카이
|
58259 |
세상 살다보니 이런걸 물을 일이 생기네요 (7) |
신민철 |
2008-01 |
5271 |
28 |
2008-01
5271
1 신민철
|
58258 |
운영 환경 최적화 관련 소프트웨어 (2) |
박찬혁 |
2006-05 |
5271 |
20 |
2006-05
5271
1 박찬혁
|
58257 |
신림역 근처 모임가질만한 곳 |
윤치열 |
2012-12 |
5271 |
0 |
2012-12
5271
1 윤치열
|
58256 |
오메가 3 성분표가 이렇게 나오는데 뭐가 더 좋은 것인가요? (5) |
늘파란 |
2017-05 |
5271 |
0 |
2017-05
5271
1 늘파란
|
58255 |
MS가 거짓말을 하고 있는건지.... (9) |
isaiah |
2016-01 |
5271 |
0 |
2016-01
5271
1 isaiah
|
58254 |
이더리움 채굴기와 비트 채굴기가 다른가요? 가격은 어떻게 되는지요? (5) |
으라차차차 |
2018-01 |
5271 |
0 |
2018-01
5271
1 으라차차차
|
58253 |
외부에서 접근 불가한 회사서버의 특정파일을 메일로 발송하기 (2) |
박노성 |
2009-04 |
5271 |
0 |
2009-04
5271
1 박노성
|
58252 |
xp 64비트에서 최대 절전모드가 나오지가 않습니다. 이거 어떻게해야 되나요? (1) |
박진국 |
2009-01 |
5271 |
1 |
2009-01
5271
1 박진국
|
58251 |
멜론파일을?? (2) |
기영 |
2009-04 |
5271 |
0 |
2009-04
5271
1 기영
|
58250 |
인증서 문제는 언제 고쳐지나요? (8) |
김연희 |
2014-11 |
5271 |
0 |
2014-11
5271
1 김연희
|
58249 |
3Dmax 입문 서적 추천받고싶습니다. (1) |
김승권 |
2008-09 |
5271 |
26 |
2008-09
5271
1 김승권
|
58248 |
39160의 SCSI 하드 sync, bus가 제대로 잡혔는지 궁금합니다. (4) |
이동관 |
2008-12 |
5271 |
3 |
2008-12
5271
1 이동관
|
58247 |
LED 플리커링 (7) |
돌아온푸우 |
2016-04 |
5271 |
0 |
2016-04
5271
1 돌아온푸우
|
58246 |
버추얼박스로 해놀로지 돌리던걸 HYPER-V 로 이전가능한가요? |
나비z |
2014-12 |
5271 |
0 |
2014-12
5271
1 나비z
|
58245 |
근래 옵테론 1XX 공구 하는 곳 없나요? (2) |
최종헌 |
2006-01 |
5271 |
6 |
2006-01
5271
1 최종헌
|
58244 |
펜티엄D 925 CPU 쓰는 보드 중 PCI-X 있는 보드 (4) |
손경화 |
2008-07 |
5270 |
15 |
2008-07
5270
1 손경화
|
58243 |
up2date후 마벨카드 잡다가 다운비슷한 증상.. 그래도 드라이브를 설치완료? (5) |
박기두 |
2006-04 |
5270 |
51 |
2006-04
5270
1 박기두
|
58242 |
하드가 무지 뜨거운데 정상인가요.. (15) |
정송환 |
2006-06 |
5270 |
12 |
2006-06
5270
1 정송환
|
물른 Trim이 안 되어도 GC는 되므로 관리는 됩니다
우리가 화일 지우기등을 해도 화일 목록과 해당 기록 위치로의 링크만 사라진거지 블록셀 단위에서는 아직 그대로 남아있죠
그래서 지워도 실제 기록된 영역만 바뀌지 않았다면 데이타 복원이 가능한거죠
낸드는 물리적 영역에 새로운 기록을 위해 초기화 과정을 거처야 하기 때문에 쓰기할때 그때 한다면 기록 속도가 느려지겠죠
그래서 빈 시간에 미리미리 해놓습니다
트림을 하고 안하고에 따라 기본적으로 쓰기속도의 차이가 납니다
USB는 기본적으로 트림이라는 개념이 없었으나 외장디스크에도 SSD를 많이 쓰게되니 SCSI 외장장치의 트림 명령을 가져와서
UASP라는 규약으로 트림을 지원하게 바뀌었습니다 단 OS와 해당 외장하드가 양쪽 모두 지원해야합니다
윈 8부터인가 지원이고 외장하드에는 UASP 지원이라고 표기합니다 장치관리자에는 SCSI 저장장치라 뜨던가....
트림과 웨어레블링은 그리 크게 상관관계가 없기 때문에 수명과는 크게 상관없고 쓰기 속도에 더 관계가 있습니다
셀의 균등 쓰기는 낸드의 컨트롤러 칩에서 한다고 보시면 됩니다
USB메모리나 플래시 메모리가 SSD보다 빨리 죽는건 상대적으로 컨트롤러 성능이 SSD의 컨트롤러만큼의 웨어레블링
관리능력이 안되기 때문입니다 그래서 저렴하죠
1. 트림을 안하면/없다면,
지우기 성능은 동일하고,
지워진 부분에 화일 내용을 쓰는 경우에,
기존 내용을 지워야 함으로, 쓰기 성능이 이 시점에서 저하 되는 건지요 ?
2. 트림과 관계 없이,
대용량 화일을 쓰는 경우에,
트림 작업이 끝났거나, 쓰기 가능한 곳에 먼저 데이타 쓰기를 마치고,
이후에 트림 작업이 필요한 부분에 쓰기 작업이 이루어 지는지요 ?
3. 트림은 지우기가 필요한 부분에 OS에서 한가한(알아서) 시점에 해당 지우기 부분을 지우는 건지요 ?
그렇다면, 가비지 콜랙션은 동일한 작업이지만, SSD 컨트롤러에서 자체적으로(알아서) 해당 작업을 진행하는 건지요 ?
레이드 구성한 경우에, SSD를 OS에서 Trim이 불가할 것이니 가비지 콜렉션이 유용(유일)할 거 같아서요
4. 외장 SSD에서 TRIM을 쓰려면, USB/썬더볼트가 아니고 eSATA면 가능할런지요 ?
그 동안 나름 답을 찾지 못했던 부분을 고수님께 조심스레 여쭈어 봅니다. 꾸벅
감사합니다
트림 작업의 알고리즘은 거의 콘트롤러 칩 회사의 기술 기밀이고 정확하게 어떤 식으로 행해는지에 대한 자료는
찾아봐도 개론적인 것만 나오지 데테일한 부분까지는 나오지 않습니다 표준 프론토콜 명령어 규약만 있지
그게 논리적, 물리적으로 어떻게 디테일하게 구현되는지는 사실 자사 콘트롤러 칩 개발부서 연구진이 아니면
알 수도 없습니다............
소프트웨어와 하드웨어적인 거라 자기 영역의 기술은 비밀로 지키며 규약등에서 협업이 정말 필요한 부분만 서로 공개해서
표준화하고 만들고 뭐 그런 식입니다
그래서 칩마다 성능이나 호환성이 있고 같은 칩이라도 갖다가 쓰는 제조사 바이오스 능력에 따라 또 그러한 차이가........
샌디포스 같은 칩 갖다쓰던 OCZ는 펌웨어 잘못 만들어서 해당 파트가 부도가 났고 인텔은 그걸로 저렴이 제품군 버전 만들어 잘 팔아 먹었죠
삼성도 에보버전 처음 만들때 컨트롤러 칩 성능저하 때문에 말이 있었죠
재작년인가 전문 기술 기고가가 윈도우10에선가 디프래그가 SSD에 필요한가 관해서 논쟁이 있었고 결국 윈도우 기술 부서에 문의해서
정리된 글을 올린 적이 있었죠 대충 답은 디프래그시 SSD 감지해서 디스크 같은 화일 배치가 아닌 트림으로 바뀌고 화일의 논리적 문제를
해결 해줘서 잠재적 문제를 없애주기에 하는게 좋다였다가 결론 이었던걸로.......ㅋ
요즘은 그래서 디프레그먼트라 안하고 옵티마이징이라 하죠
트림 https://www.crucial.kr/articles/about-ssd/what-is-trim
가비지콜렉션 https://www.crucial.kr/articles/about-ssd/active-garbage-collection
https://kr.transcend-info.com/embedded/Essay-21 (좀 더 기술적 설명)
SSD에서 쓰기를 위한 트림과 가비지 콜렉션은 서로 얽혀 있음 즉 분리해서 볼 수 없음 (낸드 저장장치의 블록과 페이지 단위 때문에)ㅣ
어느 싯점에서 어떻게 일어나는지는 설명으론 모호
인텔 IRST 레이드하고 기타 유명 고가 레이드 카드들은 드라이버에서 트림을 지원하게 바뀌었습니다 레이드가 트림 안된다는 건 옛날 이야기
USB 외장은 윈 8 이상에 UASP 지원장치쓰면 트림 됨, 썬더볼트는 잘 모르겠음
E-SATA 는 기존 SATA를 밖으로만 빼놓은거므로 윈7 이상 AHCI 드라이버로 돌아간다면 트림 됨
2. 데이터를 기록하는 건 트림과 관계없이 블록의 수명을 고려해서 이루어집니다.
즉 수명이 많이 남은 블록에 먼저 쓰고 해당 블록에 데이터가 있다면 다른 곳에 재배치하고 쓰는 식으로 동작합니다.
3. 가베지 콜렉팅과 트림은 다릅니다.
가베지 콜렉팅은 플래시 메모리 상에 데이터가 지워진 블록들을 초기화하는 작업이고,
트림은 OS상에서 삭제된 데이터의 위치를 SSD의 콘트롤러에 알려줘서 불필요한 웨어레벨링을 방지하고 가베지 콜렉팅을 하도록 하는 겁니다.
트림은 웨어레벨링과 깊은 연관이 있습니다.
플래시 메모리의 각 블록은 쓰기를 할 수록 수명이 줄어듭니다.
그래서 특정 블록에 쓰기 작업이 집중되면 먼저 죽어서 다른 블록의 수명이 남아 있음에도 플래시 메모리 전체를 사용하지 못할 가능성도 있습니다.
이를 피하기 위해서 각 블록을 고르게 쓰기 작업을 하는게 웨어 레벨링이죠.
예를 들어,
플래시 메모리에 A/B/C/D 블록이 있다면 A에 1번 기록하면, B~D에도 순차적으로 1번씩 기록하는 식이죠.
그런데 A에 계속 보존하는 데이터 a1이 있을 때, B에 b1을 기록을 하고 지우고 C에 c1을 기록을 하는 식으로 빈 영역에만 기록을 한다면
A와 B~D의 수명 차이가 발생하게 됩니다. - 동적 웨어 레벨링
이를 막기 위해서 A에 a1이 있더라도 b1을 기록할 때
a1을 D에 옮기고, A에도 b1을 기록하는 식으로 전체적으로 수명을 맞추게 만들었습니다. - 정적 웨어 레벨링
이 때 문제가 되는게 파일 시스템에서 파일의 삭제 작업 속도를 높이기 위해서
OS에서 파일을 삭제하면 저장장치의 실제 데이터를 지우는게 아니라 파일 테이블 상의 정보만 일부 삭제하는 식으로 되어 있다는 점 입니다.
위의 예에서 OS에서 a1을 삭제했더라도 블록 A에 데이터가 들어있다고 판단을 하기 때문에
이미 삭제된 a1을 D에 옮기고 A에 b1을 기록하는 무의미한 동작을 하게 되는 거죠.
그러면 쓸데없는 기록 작업 때문에 블록의 수명이 줄어들고, b1을 쓰는 속도도 떨어지는 겁니다.
트림은 이렇게 이미 삭제된 데이터를 정리해서 불필요하게 웨어 레벨링 작업이 발생하는걸 막는게 목적 입니다.
a1을 삭제하고 일정 기간이 지나면 SSD의 컨트롤러에 블록 A가 비어 있다고 얘기하는거죠.
그러면 b1을 기록할 때 그냥 A에 쓰기만 하면 되니까 처리 속도가 빨라지는 겁니다.
TLC QLC 낸드 모듈에서 일어나는 불필요한 쓰기 막는 방법도 있기 때문에 뭐라 딱 정해져 있다고 보기는 힘들거 같습니다
말씀하신 건 컨트롤러가 웨어레벨링을 오직 데이타 저장용 낸드플래시 모듈 자원만 가지고 한다는 조건에서만 해당 될겁니다
SSD의 각 방식에 대헤 이래저래 이견이 많은 건 제조사에 따라 여러 다른 방법이 총 동원되어 낸드플래시의 속도와 수명을
늘린다는거에 기인한다고 봅니다
가령 인텔의 H10 같은 건 OLC 낸드에다가 옵테인 메모리 32G 캐쉬를 쓰는 식으로 QLC에서 쓰기를 최대한 줄이는 방법으로 수명을
늘립니다 옵테인 P램은 낸드플래시가 아니라 트림이 없다더군요 그럼에도 수명은 넘사벽이죠 H10 쓰기 보증 수명 보면
다른 회사의 QLC 심지어 TLC도 넘어 MLC 제품과 비교해도 비슷하거나 넘습니다 결국 가비지 콜렉트나 웨어레블링 과정중
불가피한 쓰기를 옵테인 캐시 영역에 가져와서하는 방식으로 QLC 영역에서 쓰기 횟수를 최대한 줄인다는 추정이 가능하죠
비록 단종이지만 삼성의 850 PRO도 MLC인데 10년 보증을 할 정도의,, 수명 테스트 한 걸 보면 다른 삼성 제품군보다 쓰기 수명 스펙을
압도해버리는 넘사벽의 수명을 보여줍니다 https://dpg.danawa.com/bbs/view?boardSeq=231&listSeq=3406177&past=Y
인텔의 DC 제품군도 일반 사용자 제품보다 보증 쓰기가 엄청 납니다
그래서 워낙 컨트롤러 칩 제조사의 노하우에 따라 또한 각 제품에 적용한 방법에 따라 딱히 이러하다고 말하기는 어렵다고 말한거죠
가비지 콜렉트나 웨어레블링등이 어떤 자원을 이용해 어떤 알고리즘과 어떤 메커니즘므로 일어나는지는 기술 비밀이고
소비자가 볼 수 있는 건 스펙상 쓰기수명 더 나아가 그 정도 수명을 다 쓸 수도 없으니 극한 테스터의 막장 수명 테스트
로 간접 체험이나 해보는 수준이죠
갠적으론 비공개된 걸로 왈가왈부보다는 리얼라이프 극한 막장 수명 테스터를 가장 신뢰 합니다.....^^
(조건을 어떻게 잡느냐에 따라 변수가 너무 많음....)
근데 이것도 100% 장담을 못하는게 트림을 언제 할지는 OS 드라이버와 SSD 컨트롤러 칩간에
상호작용으로 결정되는거라서.....
SSD에 따라 이 체크 프로그램이 체크한 싯점보다 자동 트림이 나중에 일어나는데 체크한 싯점에선 안 일어날수도 있어서...
체크시 된다는 되는건데, 안된다는건 나중에 될 수도 있다는 의미더군요
그래도 레지스트리 값을 읽는게 아닌 실 데이타 기록으로 테스트 하는거라 참조용으로 많이 쓰더군요
쓰기를 빨리 하기 위해서는 미리 지워 놓은 깨끗한 page들이 많이 있어야 합니다. 이 작업이 GC입니다. page에는 쓰기가 된 공간도 있고 비어 있는 공간도 있는데, 이것들을 깨끗한 다른 페이지로 꽉꽉 채워 옮기면 빈 page들을 확보할 수 있겠지요. 이 GC 작업을 하는데 있어서 trim을 하게 되면 훨씬 효율적으로 할 수 있습니다. trim을 하지 않으면 이리 저리 여러번 옮겨야 할 것을 단번에 옮길 수 있게 해 줍니다.(필요한 데이터인지 파일시스템에서 이미 지워진 불필요한 데이터인지를 판별할 수 있게 해 줌)
trim을 하지 않게 되어 GC를 비효율적으로 하게 되면 데이터를 이리 저리 옮기면서 썼다 지웠다를 여러번 하게 되어 성능도 저하되고 수명도 확 줄어듭니다.
trim을 하지 않더라도 overprovisioning을 많이 하게 되면 GC를 효율적으로 할 수 있습니다. usb에 물려 사용하거나 raid로 묶는 경우 다는 아니지만 trim이 안되는 경우가 대부분입니다. trim이 안되는 방식으로 사용하려면 일반용이 아닌 기업용 ssd를 사용하는 것이 좋습니다. 일반용을 사용해야 한다면 overprovisioning를 충분히 해 주는 것이 좋습니다. 가령 960GB 짜리라면 800GB만 사용하는 정도로 줄여주면 좋습니다.
일반용과 기업용은 endurance를 측정하는 기준이 다릅니다. 일반용은 trim을 하는 것을 전제로 측정하는 값이고, 기업용은 trim을 하지 않는 것을 가정하고 측정하는 값입니다.