SSD 초과 프로비저닝-여전히 유지됩니까?


14

(최근은 아니지만) 여러 소스는 드라이브 마모를 줄이기 위해 SSD 공간의 ~ 7 %가 할당되지 않은 상태로 두어야한다고 제안합니다. 지금도 유효합니까 아니면 상황이 변경 되었습니까?


내가 말했듯이 TRIM 가능 문제 때문에 중요합니다. SU 가이 질문에 적합하다고 생각하지만 Linux를 언급하려면 편집이 필요합니다!
sourcejedi

여유 공간은 성능을 향상시킵니다. 드라이브 마모가 과장되어 있으며 아마도 신화입니다. 우수한 품질의 SSD는 10 년 이상 24/7에 쓸 수 있습니다. 이 리뷰에 좋은 기사가 될 수 있습니다 howtogeek.com/165472/... - 빈 블록에 쓰기 상당히 빠른이지만, 부분적으로 채워진 블록에 기록하는 것은, 부분적으로 채워진 블록을 읽고 그 값을 수정 한 다음를 작성 포함 뒤. 파일에 많은 블록이 소비 될 수 있으므로 드라이브에 쓰는 각 파일에 대해이 과정을 여러 번 반복하십시오. ---
Sun

답변:


15

Windows는 일반적으로 TRIM을 사용합니다. 이는 파일 시스템에 X % 여유 공간이있는 한 드라이브에서 X %가 할당되지 않은 것으로 간주 함을 의미합니다. [*] 오버 프로비저닝이 필요하지 않습니다.

예외 : 역사적으로 Sandforce 컨트롤러 / 펌웨어가있는 SSD는 TRIM 후에 전체 성능을 복원하지 못했습니다.

전체 드라이브의 성능 손실은 다른 드라이브보다 훨씬 클 수 있습니다. 이것은 높은 쓰기 증폭과 관련되어 마모를 증가시킵니다. 출처 : Anandtech 리뷰.

따라서 필요한 경우에만 필요합니다.

  • TRIM이 사용 될지 확실하지 않습니다. AFAIK 오래되고 잘못 작동하는 드라이브의 성능 문제로 인해 Linux에서는 기본적으로 여전히 활성화되어 있지 않습니다.
  • 또는 Sandforce 드라이브를 채우는 것에 대해 걱정하고 있으며 스마트 컨트롤러에서 내용을 압축 할 수 없습니다.

Linux에서 TRIM을 사용하는 것은 어렵지 않으며 문제가 거의 없습니다.

다행히도 가장 유명한 브랜드 중 일부는 자체 컨트롤러를 만듭니다. Sandforce 컨트롤러는 예전처럼 인기가 없습니다. Sandforce 문제로 인해 특정 "스마트"컨트롤러 설계에 대해 회의적이었습니다. Sandforce에 사과하지만 영향을받는 정확한 컨트롤러 모델에 대한 참조는 없습니다.


[*] 파일 시스템은 사용 가능한 공간이 충분하여 조각화를 줄입니다. 따라서 두 개의 안전 마진을 함께 추가 할 필요가 없으므로 동일한 여유 공간이 두 가지 모두에 도움이됩니다. 드라이브는 할당되지 않은 공간을 활용하여 성능을 향상시킬뿐 아니라 마모를 방지 할 수 있습니다.


SSD를 설치 한 후에 Sandforce 컨트롤러를 감지 할 수 있습니까?
marmistrz

내가 알고있는 표준 판독 또는 테스트가 없습니다. 드라이브가 무엇인지 알아야하며 찾아보십시오. 내가 볼 수있는 것은 "모델 번호"입니다. 예를 들어 "M4-CT128M4SSD2"와 같은 그놈 디스크에는 일치하기 어려울 수 있습니다. 다시 죄송합니다. 삼성은 자체 컨트롤러를 사용하고 Crucial / Micron은 Marvell을 사용한다고 생각합니다. OCZ / Toshiba는 Sandforce를 포함한 다양한 컨트롤러를 사용했습니다.
sourcejedi

이것은 당신이 실제로 있다고 가정 바로, 파일 시스템에 여유 공간이? : D
endolith

어느 부분에 대해 응답하고 있는지 구체적으로 설명하십시오. 이는 1 년 전이었습니다. "[가설] 징계가없고, 지속적인 남용 을 막기 위해 시스템이 필요 하며, 최고 수위 경보를 설정할 수있는 소프트웨어가 없다 "는 의미라고 생각합니다 . 처음부터 오버 프로비저닝을 고려하는 사람에게는 흥미롭지 만 완벽하게 유효한 비판입니다.
sourcejedi

7

최신 SSD 컨트롤러는 일반적으로 일상적인 사용에 오버 프로비저닝이 필요하지 않을 정도로 똑똑합니다. 그러나 주로 데이터 센터 환경에서 오버 프로비저닝이 권장되는 상황이 여전히 있습니다. 오버 프로비저닝이 유용한 이유를 이해하려면 SSD 작동 방식을 이해해야합니다.

SSD는 데이터를 쓸 때 플래시 메모리의 한계를 극복해야합니다

SSD는 NAND 플래시 메모리 라는 메모리 유형을 사용합니다 . 하드 드라이브와 달리 데이터가 포함 된 NAND 셀은 직접 덮어 쓸 수 없습니다. 드라이브는 새 데이터를 쓰기 전에 기존 데이터를 지워야합니다. 의 SSD는 데이터를 쓰는 동안 또한, 페이지 크기가 일반적으로 4킬로바이트 KB 16, 그들은에만 호출 페이지의 큰 그룹에서 데이터를 삭제할 수 있습니다 블록 현대의 SSD의 크기가 여러 매크로 블럭에 일반적으로 수백 KB 크기.

NAND는 또한 제한된 쓰기 내구성을 가지고 있습니다. 블록을 지우고 불필요 하게 많은 수의 쓰기를 수신하는 블록이 없도록 하기 위해 불필요하게 데이터를 다시 쓰지 않도록 드라이브는 쓰기, 특히 작은 임의 쓰기를 다른 블록으로 분산시킵니다. 쓰기가 이전 데이터를 대체하면 이전 페이지가 유효하지 않은 것으로 표시됩니다. 블록의 모든 페이지가 유효하지 않은 것으로 표시되면, 드라이브는 유효한 데이터를 다시 쓰지 않고도 자유롭게 지울 수 있습니다.

SSD는 최적의 기능을 수행하기 위해 여유 공간이 필요하지만 모든 워크로드가 여유 공간을 유지하는 데 도움이되는 것은 아닙니다

드라이브에 사용 가능한 공간이 거의 없거나없는 경우 쓰기를 분산시킬 수 없습니다. 대신, 드라이브에 쓰기가 전송 될 때 드라이브는 즉시 블록을 지우고 해당 블록 내의 유효한 데이터를 다른 블록으로 다시 작성해야합니다. 이로 인해 드라이브로 전송되는 것보다 NAND에 더 많은 데이터가 기록되며, 이는 쓰기 증폭 이라고 알려진 현상 입니다. 쓰기 증폭은 특히 온라인 트랜잭션 처리 (OLTP) 와 같은 임의의 쓰기 집약적 인 워크로드에서 두드러 지며 성능 및 내구성이 저하되므로 최소한으로 유지해야합니다.

쓰기 증폭을 줄이기 위해 대부분의 최신 시스템은 TRIM 이라는 명령을 지원합니다.이 명령은 더 이상 유효한 데이터를 포함하지 않는 블록을 드라이브에 알려 주어 지울 수 있습니다. 그렇지 않으면 드라이브가 운영 체제에 의해 논리적으로 삭제 된 데이터가 여전히 유효하다고 가정해야하므로 드라이브가 충분한 여유 공간을 유지할 수 없게됩니다.

그러나 드라이브가 외부 인클로저 (대부분의 인클로저가 TRIM을 지원하지 않음)에 있거나 드라이브가 이전 운영 체제와 함께 사용되는 경우와 같이 TRIM이 불가능한 경우가 있습니다. 또한 고집 중 랜덤 쓰기 워크로드에서 기본 NAND의 넓은 영역에 쓰기가 분산되므로 드라이브가 거의 가득 차지 않은 경우에도 강제로 데이터를 다시 쓰고 쓰기 보조 증폭이 발생할 수 있습니다.

최신 SSD는 이전 드라이브보다 쓰기 증폭이 훨씬 적지 만 일부 워크로드는 여전히 초과 프로비저닝의 이점을 얻을 수 있습니다

가장 초기의 SSD는 훨씬 덜 성숙한 펌웨어를 사용하여 필요한 것보다 훨씬 자주 데이터를 다시 쓰는 경향이있었습니다. 초기 Indilinx 및 JMicron 컨트롤러 ( JMF602는 말더듬 및 심연 랜덤 쓰기 성능으로 악명이 높음)는 집중적 인 랜덤 쓰기 워크로드에서 극도로 높은 쓰기 증폭으로 인해 때로는 100 배를 초과했습니다. 1MB 만 쓰려고 할 때 NAND에 100MB가 넘는 데이터를 쓰는 것을 상상해보십시오! 최신 SSD 에서는 처리 능력 향상, 플래시 관리 알고리즘 개선 및 TRIM 지원을 갖춘 최신 컨트롤러가 이러한 상황을 훨씬 더 잘 처리 할 수 ​​있지만, 대량의 랜덤 쓰기 워크로드로 인해 쓰기 증폭이 10 배 이상 증가 할 수 있습니다 .

오버 프로비저닝은 임의 쓰기를 처리하고 데이터를 강제로 다시 쓰지 않도록 드라이브에 더 많은 여유 공간을 제공합니다. 모든 SSD는 최소한 어느 정도 오버 프로비저닝됩니다. 일부 는 GB와 GiB의 차이 만 사용 하여 드라이브와 작업 할 수있는 예비 공간의 약 7 %를 제공하고 다른 일부는 특정 응용 프로그램의 요구에 맞게 성능을 최적화하기 위해 더 많은 프로비저닝을 제공합니다. 예를 들어 쓰기가 많은 OLTP 또는 데이터베이스 워크로드를위한 엔터프라이즈 SSD는 512GiB의 물리적 NAND를 갖지만 비슷한 양의 NAND를 가진 일반 소비자 SSD의 480GB에서 512GB가 아니라 400GB의 광고 용량을 가질 수 있습니다.

워크로드가 특히 까다 롭거나 TRIM이 지원되지 않는 환경에서 드라이브를 사용하는 경우 일부 공간을 사용하지 않도록 드라이브를 분할하여 공간을 수동으로 초과 프로비저닝 할 수 있습니다. 예를 들어, 512GB SSD를 400GB로 분할하고 남은 공간을 할당하지 않으면 드라이브는 할당되지 않은 공간을 예비 공간으로 사용합니다. 그러나이 할당되지 않은 공간은 이전에 기록 된 경우 잘 려야합니다. 그렇지 않으면 드라이브가 차지한 공간을 드라이브가 인식하므로 아무런 이점이 없습니다. (파티션 유틸리티는이 작업을 수행하기에 충분히 똑똑해야하지만 100 % 확신 할 수는 없습니다. "Windows가 파티션되지 않은 (포맷되지 않은) 공간을 SSD에서 다듬습니까?"참조 )

정상적인 소비자 인 경우 일반적으로 오버 프로비저닝이 필요하지 않습니다.

TRIM이 지원되는 일반적인 소비자 환경에서 SSD의 용량이 70-80 % 미만이며 랜덤 쓰기로 인해 지속적으로 다운되지 않고 쓰기 증폭은 일반적으로 문제가되지 않으며 오버 프로비저닝은 일반적으로 필요하지 않습니다.

궁극적으로 대부분의 소비자는 쓰기 증폭이 높더라도 대부분의 SSD의 서비스 수명 내에서 NAND를 마모시키기에 디스크에 거의 충분한 데이터를 쓰지 않기 때문에 수면을 잃을 일이 아닙니다.


1

추가 공간의 크기는 SSD 드라이브 모델마다 크게 다르지만 일반적으로 여전히 그렇습니다.


이것에 대한 참조가 있습니까?
Léo Lam

특정 드라이브에 대한 참조를 의미합니까? 많은 드라이브 (SSD뿐만 아니라)에는 공개 기술 참조가 있지만 죄송합니다. 검색 할 시간이 없습니다. 그러나 일반적인 참조에 관심이 있다면 다음을 확인하십시오 : samsung.com/global/business/semiconductor/minisite/SSD/…
Tomasz Klim

1
그렇습니다. 모든 드라이브에 대해 이것이 사실인지 또는 특정 모델이나 브랜드에만 해당되는지 궁금합니다. 다른 답변은 최근 드라이브에서 더 이상 프로비저닝이 더 이상 필요하지 않음을 시사합니다.
Léo Lam

다른 대답은 정확하지 않습니다. 실제로 Sandforce 컨트롤러가있는 드라이브에는 추가 공간이 충분했습니다. 완벽하게 사실입니다. 그러나 다른 SSD 컨트롤러는 추가 공간을 사용하지 않습니다. 이것은 아마 변하지 않을 것입니다.
Tomasz Klim

1
삼성 SSD 문서에서 : "추가 성능 향상을 위해 추가 공간을 수동으로 별도로 설정하는 옵션이 항상 있습니다 (예 : 까다로운 워크로드에서)"(예 : " 까다로운 작업량 ".
sourcejedi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.