SSD 파티셔닝의 단점?


79

NickN이라는 이름을 가진 현명한 사람 은 강력한 컴퓨터를 만드는 것에 대한 견해에 대해 긴 포럼 게시물 을 유지 합니다 (매우 까다로운 소프트웨어 인 Microsoft의 Flight Simulator X 재생을 지시 함).

그는 SSD 드라이브에 대한 요점을 요약하고 다음과 같이 목록을 마무리합니다.

SSD를 파티션하지 마십시오

그는 불행히도 이것에 대해 자세히 설명하지는 않지만 왜 그가 이것을 말하는지 궁금합니다. SSD 파티션의 단점은 무엇입니까? (이 문맥에서 파티션을 의미하는 것은> = 2 파티션)


13
글쎄, 당신 그것을 사용하기 위해 그것을 분할해야합니다. 아마도 그는 둘 이상의 파티션을 만들지 않는다는 것을 의미하지만 그 이유는 저를 넘어서는 것이 좋습니다.
ChrisInEdmonton

1
@ChrisInEdmonton 그렇습니다.
MarioDS

4
왜 이것이 중요한지 이해할 수 없습니다. 물리 분할 대신 논리 파티션을 사용하더라도 OS가 파일 시스템 드라이버에 사용할 드라이브 섹션을 알려 주면 파티션은 중요하지 않습니다. 중요한 것은 파티션 정렬이지만 파티션 수와는 관련이 없습니다.
다스 안드로이드

2
HDD 또는 SDD에 관계없이 "매우 작은 드라이브를 분할하지 마십시오"라는 의미 만 추측 할 수 있습니다.
Hennes

6
내가 할 수있는 유일한 다른 옵션은 SSD 컨트롤러가 작업하기 위해 볼륨의 여유 공간이 필요하다고 가정하는 것입니다. 효율적인 디스크 공간이 필요합니다. 마운트 된 볼륨에 여유 공간을 확보하지 마십시오. 오버 프로비저닝을 결정하고 호스트 보호 영역을 설정하기 만하면 됩니다 .
Hennes

답변:


118

SSD는 파일 시스템 수준에서 작동하지 않습니다.

파일 시스템이 사물을 보는 방식과 SSD가 사물을 보는 방식 사이에는 1 : 1 상관 관계가 없습니다.

SSD를 원하는 방식으로 자유롭게 분할하십시오 (각 파티션이 올바르게 정렬되어 있고 최신 OS가이 모든 것을 처리한다고 가정). 그것은 아무 것도 아프지 않으며, 액세스 시간이나 다른 것에 악영향을 미치지 않으며, SSD에 많은 쓰기를하는 것에 대해 걱정하지 않습니다. 그것들은 당신이 하루에 50GB의 데이터를 쓸 수 있도록 가지고 있으며, 그것은 10 년 동안 지속될 것입니다.

에 응답 로빈 후드의 대답은 ,

쓰기 작업이 더 작은 공간에 분산되어 있기 때문에웨어 레벨링에 여유 공간이 충분하지 않기 때문에 "할 수"있지만 전체 드라이브의 경우보다 드라이브의 해당 부분이 더 빨리 마모되는 것은 아닙니다. 추가 파티션 (예 : 이중 부팅)에서 동등한 마모를 수행하지 않는 한 단일 파티션이었습니다.

그건 완전히 틀렸어 해당 파티션 만 읽고 쓰기 때문에 파티션을 닳는 것은 불가능합니다. 이것은 원격으로 SSD의 작동 방식이 아닙니다.

SSD는 파일 시스템보다 훨씬 낮은 수준의 액세스로 작동합니다. SSD는 블록 및 페이지와 함께 작동합니다.

이 경우 실제로 발생하는 것은 특정 파티션에 많은 양의 데이터를 쓰더라도 파일 시스템은 파티션에 의해 제한되지만 SSD는 그렇지 않습니다. SSD의 쓰기 횟수가 많을수록웨어 레벨링을 수행하기 위해 SSD가 스왑 아웃 할 블록 / 페이지 수가 많아집니다. 파일 시스템이 사물을 보는 방식을 덜 신경 쓰지 못했습니다! 즉, 한 번에 데이터가 SSD의 특정 페이지에있을 수 있지만 다른 경우에는 데이터가 다를 수 있습니다. SSD는 데이터가 섞인 위치를 추적하며 파일 시스템은 SSD의 데이터가 실제로 어디에 있는지 전혀 알지 못합니다.

더 쉽게 만들려면 : 파티션 1에 파일을 작성한다고 가정하십시오. OS는 파일 시스템에 스토리지 요구 사항을 알려주고 파일 시스템은 "섹터"를 할당 한 다음 SSD에 X 공간이 필요하다는 것을 알려줍니다 . 파일 시스템은에서 파일을보고 논리 블록 주소 (123)의 (예를 들어) (LBA). SSD는 LBA 123이 블록 / 페이지 # 500을 사용하고 있음을 기록합니다 (예 :). 따라서 OS에서이 특정 파일이 필요할 때마다 SSD는 사용중인 정확한 페이지에 대한 포인터를 갖습니다. 이제 SSD에 계속 쓰고 쓰고 레벨링이 시작되고 블록 / 페이지 # 500이라고하면 블록 / 페이지 # 2300에서 사용자를 더 잘 최적화 할 수 있습니다. 이제 OS가 동일한 파일을 요청하고 파일 시스템이 이번에 LBA 123을 다시 요청하면 SSD는 # 500이 아닌 블록 / 페이지 # 2300을 반환합니다.

하드 드라이브와 마찬가지로 낸드-플래시 SSD는 순차적 액세스이므로 추가 파티션에서 쓰거나 읽은 데이터는 단일 파티션으로 쓰인 데이터보다 훨씬 멀리 떨어져 있습니다. 일반적으로 파티션에 여유 공간이 남아 있기 때문입니다. . 추가 파티션에 저장된 데이터의 액세스 시간이 늘어납니다.

아니요, 다시 잘못되었습니다. Robin Hood는 SSD가 어떻게 작동하는지 생각하는 대신 파일 시스템 측면에서 생각하고 있습니다. 다시 말하지만, 파일 시스템이 SSD가 데이터를 저장하는 방법을 알 수있는 방법은 없습니다. 여기에는 "먼 거리"가 없습니다. SSD는 정보를 저장하는 실제 방식이 아니라 파일 시스템의 눈에만 있습니다. SSD가 다른 NAND 칩에 데이터를 분산시킬 수 있으며 사용자는 액세스 시간이 증가하지 않습니다. NAND의 병렬 특성으로 인해 이전보다 훨씬 빨라질 수 있지만 여기서는 나노초를 말합니다. 깜박이고 놓쳤다.

전체 공간이 적 으면 조각난 파일을 작성하는 데 어려움이 있지만 성능에 미치는 영향은 적지 만 일반적으로 낸드 플래시 SSD의 조각 모음은 드라이브의 수명을 다하기 때문에 나쁜 생각으로 간주됩니다. 물론 어떤 파일 시스템을 사용 하느냐에 따라 조각화가 매우 적습니다. 가능한 빠른 시간 내에 파일을 덤프하지 않고 파일을 전체적으로 쓰도록 설계 되었기 때문입니다.

아니야, 미안; 다시 이것은 잘못되었습니다. 파일 시스템의 파일보기와 동일한 파일의 SSD보기는 원격으로 가깝지 않습니다. 파일 시스템은 파일이 최악의 경우 조각난 것으로 볼 수 있지만, 동일한 데이터의 SSD보기는 거의 항상 최적화됩니다.

따라서 조각 모음 프로그램에서 해당 LBA를보고이 파일을 실제로 조각화해야합니다. 그러나 SSD의 내부에 대한 실마리가 없기 때문에 100 % 잘못되었습니다. 그것이 조각 모음 프로그램이 SSD에서 작동하지 않는 이유이며, 조각 모음 프로그램은 언급 된 것처럼 불필요한 쓰기도 유발합니다.

SSD 코딩 기사 는 SSD 작동 방식에 대한 기술적 인 지식을 원한다면 어떻게 진행되고 있는지에 대한 좋은 개요입니다.

FTL (Flash Translation Layer)의 실제 작동 방식에 대한 "약식"에 대한 자세한 내용  은 Flash Memory Summit 사이트 에서 PDF ( Solid State Drive Design ) 의 펌웨어 및 플래시 변환 계층의 중요 역할 을 읽어보십시오 .

그들은 또한 다음과 같은 많은 다른 논문들을 가지고 있습니다 :

작동 방식에 대한 다른 문서 : 플래시 메모리 개요  (PDF). "데이터 쓰기"섹션 (26-27 페이지)을 참조하십시오.

비디오가 더 중요하다면 플래시 메모리 및 관련 슬라이드 에서 주소 변환을 최적화하는 효율적인 페이지 수준 FTL을 참조하십시오 .


안녕하세요, 정보를 백업하는 소스에 대한 링크를 추가 할 수 있습니까? 다른 대답이 실제로 틀린 것일 수도 있지만, 당신 옳다 는 것을 알 방법이 없습니다 .
MarioDS

4
에서 윈도우 내부 구조 여섯 번째 에디션., 2 부, 채널. 9 (Storage Management) 및 12 (File Systems)에서 파일에 대한 I / O 요청이 파일 시스템 드라이버, 볼륨 드라이버 및 디스크 드라이버 (SSD에도 사용됨)를 통과하는 방법을 배울 수 있습니다. FSD는 파일 내 블록을 파티 토인 내 블록으로 변환합니다. 볼륨 드라이버는 후자를 디스크 내 블록, 즉 LBA로 변환합니다. 따라서 요청이 디스크 드라이버에 도달 할 때까지 모든 파일 및 파티션 관련 컨텍스트는 사라집니다. 디스크 파일이나 파티션을 인식 할 수 없습니다. 해당 정보는 요청에 있지 않기 때문입니다.
Jamie Hanrahan

5
RobinHood는 또한 "하드 드라이브 낸드-플래시 SSD와 같은 순차적 액세스"와 같은 주장으로 착각했습니다 . 이들은 랜덤 액세스 장치입니다. 이들이 순차적 액세스라면 "읽기 또는 쓰기 블록 n"이라고 말할 수 없습니다. 액세스 할 수있는 유일한 블록은 바로 다음 블록이거나 방금 액세스 한 블록 일 수 있습니다. 내부적으로 NAND-Flash SSD는 한 번에 큰 "페이지"로만 데이터를 쓸 수 있지만 순차적으로 액세스 할 수는 없습니다. 테이프 는 순차적 액세스입니다. 찾아 봐
Jamie Hanrahan 2016 년

내 답변에있는 첫 번째 링크 외에도 다른 pdf를 추가했습니다.
타임 트윈

1
@TimeTwin Man, 나는 당신의 대답을 다시 읽을수록 로빈 후드의 대답을 맹목적으로 믿는 느낌이 들었습니다. 신뢰할 수있는 사이트와 많은 찬사를 받았더라도 정보에 대한 비판을 유지해야하는 이유를 상기시켜줍니다. 이 사이트에서 다소 화려한 작품을 만들고, 홍보 부스트를 즐기고, (확인 된) 지식을 계속 전파하십시오.
MarioDS

15

대답이 간단하고 SSD에 대한 일반적인 지식을 직접 따르는 경우 여기에 매우 긴 답변이 있습니다. 답을 이해하기 위해 솔리드 스테이트 드라이브 의 Wikipedia 용어를 읽는 것 이상은 필요하지 않습니다 .

조언 "파티션하지 마십시오 SSD"는 말이되지 않습니다.

(지금은 먼) 과거에 운영 체제는 SSD를 잘 지원하지 않았으며, 특히 파티셔닝이 소거 블록의 크기에 따라 파티션을 정렬하는 데주의하지 않았습니다.

OS 논리 디스크 섹터가 물리적 SSD 블록간에 분할 될 때 이러한 정렬 부족으로 인해 OS가 하나만 업데이트하려고 할 때 SSD가 두 개의 물리적 섹터를 플래시해야하므로 디스크 액세스 속도가 느려지고 웨어 레벨링이 증가 합니다.

현재 SSD는 훨씬 더 커지고 있으며 운영 체제는 지우기 블록 및 정렬에 대해 모두 알고 있으므로 문제가 더 이상 존재하지 않습니다. 이 조언은 한 번 파티션 정렬에서 오류를 피하기위한 것이었지만 오늘날 이러한 오류는 거의 불가능합니다.

사실, SSD 분할에 대한 논쟁은 오늘날 기존 디스크와 동일
합니다. 데이터를보다 잘 구성하고 분리하는 것입니다.

예를 들어, 별도의 작은 파티션에 운영 체제를 설치하면 OS를 크게 업데이트 할 때 예방 조치로 백업 이미지를 만드는 데 편리합니다.


4

SSD 파티셔닝에 대한 결점은 없으며, 파티션되지 않은 공간을 남겨두면 실제로 수명을 연장 할 수 있습니다.

마모 레벨링은 모든 장치 블록에 적용됩니다 (아래 링크 된 HP 백서 참조).

정적 마모 레벨링에서 장치에서 사용 가능한 모든 플래시의 모든 블록은 마모 레벨링 작업에 참여합니다. 이렇게하면 모든 블록이 같은 양의 마모를받을 수 있습니다. 정적 마모 레벨링은 데스크톱 및 노트북 SSD에서 가장 자주 사용됩니다.

이를 통해 파티션의 마모 수준이 중요하지 않다는 결론을 내릴 수 있습니다. 이것은 HDD 및 컨트롤러의 관점에서 파티션이 실제로 존재하지 않기 때문에 의미가 있습니다. 블록과 데이터 만 있습니다. 파티션 테이블도 동일한 블록 (MBR 용 드라이브의 첫 번째 블록)에 기록됩니다. 그런 다음 테이블을 읽고 OS가 데이터를 쓸 블록을 결정하고 그렇지 않은 블록을 결정합니다. OS는 LBA를 사용하여 각 블록에 고유 번호를 부여하는 블록을 확인합니다. 그러나 컨트롤러는웨어 레벨링 방식을 고려하여 논리적 블록을 실제 물리적 블록에 매핑합니다.

동일한 백서에서 장치의 수명을 연장 할 수있는 좋은 제안이 있습니다.

다음으로 드라이브를 초과 프로비저닝하십시오. 장치 총 용량의 일부만 분할하여 수명을 늘릴 수 있습니다. 예를 들어 256GB 드라이브가있는 경우 240GB로만 분할하십시오. 이것은 드라이브의 수명을 크게 연장시킵니다. 20 % 초과 프로비저닝 수준 (파티션 만 200GB)은 수명을 연장시킵니다. 경험적으로 볼 때 드라이브의 오버 프로비저닝을 두 배로 늘릴 때마다 드라이브 내구성에 1x가 추가됩니다.

이것은 분할되지 않은 공간조차도웨어 레벨링에 사용되므로 위의 요점을 더욱 입증합니다.

출처 : 기술 백서-SSD 내구성 ( http://h20195.www2.hp.com/v2/getpdf.aspx/4AA5-7601ENW.pdf )


1

디스크 섹터는 오랫동안 512 바이트였으며, 기계 디스크는 섹터를 읽고 쓰는 데 걸리는 시간에 영향을 미치는 유일한 것은 탐색 지연이라는 특성을 가지고 있습니다. 따라서 기계식 하드 드라이브의 주요 최적화 단계는 탐색을 최소화하기 위해 블록을 순차적으로 읽고 쓰는 것입니다.

플래시는 기계식 하드 드라이브와 크게 다릅니다. 원시 플래시 레벨에는 블록이 아니라 페이지와 "삭제 블록"이 있습니다 (Linux MTD 용어에서 빌리기 위해). 한 번에 한 페이지를 플래시하도록 쓰거나 한 번에 플래시 블록을 지울 수 있습니다.

플래시의 일반적인 페이지 크기는 2KB이고 지우기 블록의 일반적인 크기는 128KB입니다.

그러나 SATA SSD는 OS에 512 바이트 섹터 크기로 작동하는 인터페이스를 제공합니다.

페이지와 섹터간에 1 : 1 매핑이있는 경우 파티션 테이블이 홀수 페이지 또는 지우기 블록 중간에있는 페이지에서 시작된 경우 어떻게 문제가 발생하는지 확인할 수 있습니다. x86 페이징 하드웨어와 일치하기 때문에 OS가 4Kbyte 청크의 드라이브에서 데이터를 가져 오는 것을 선호한다는 것을 감안할 때, 그러한 4Kbyte 블록이 지우개 블록을 걸 수있는 방법을 확인할 수 있습니다. 성능 저하

그러나 SSD 펌웨어는 1 : 1 매핑을 유지하지 않고 PBA (실제 블록 주소)를 LBA (논리 블록 주소)로 변환합니다. 즉, 섹터 5000 또는 다른 특정 섹터가 실제로 플래시에서 쓰여지는 위치를 알 수 없음을 의미합니다. 사전에 지워진 지우개 블록에 항상 쓰려고 시도하기 위해 설계 상 뒤에서 많은 일을하고 있습니다. 펌웨어를 해체하지 않고 정확히 무엇을하는지 알 수는 없지만 펌웨어가 완전히 정크가 아니면 펌웨어가이 문제를 해결합니다.

4Kn 하드 드라이브에 대해 들어 보셨을 것입니다. 이들은 내부적으로 4Kbytes의 섹터 크기를 사용하지만 여전히 운영 체제에 512 바이트 섹터 인터페이스를 제공하는 기계식 하드 드라이브입니다. 더 많은 데이터를 수용하기 위해 플래터에서 섹터 간 격차가 더 작아야하기 때문에 이것이 필요합니다.

즉, 내부적으로 항상 4K 섹터를 읽고 쓰지만 OS에서 숨 깁니다. 이 경우 4KByte 경계에 해당하는 섹터에 쓰지 않으면 각 읽기 / 쓰기로 인해 두 개의 내부 4KByte 섹터를 읽고 다시 쓰게되므로 속도 저하가 발생합니다. 그러나 이것은 SSD에는 적용되지 않습니다.

어쨌든 이것이 SSD를 파티션하지 않는 것이 좋습니다 이유를 생각할 수있는 유일한 상황입니다. 그러나 적용되지 않습니다.


-1

이 답변이 무시하는 것은 Windows SSD 최적화입니다. 이것이 파티셔닝이 더 나아진다는 것을 알 수는 없지만 Windows 드라이브와 같은 파티션 된 C 드라이브의 경우 다음을 수행 할 수 있습니다.

  1. 색인 생성
  2. 마지막 액세스 시간을 추적 할 필요가 없습니다
  3. 오래된 8 자 도스 이름을 저장할 필요가 없습니다.
  4. Windows 휴지통 우회

인덱싱을 끄면 검색 속도가 저하 될뿐만 아니라 파일 내부를 검색 할 수 없습니다. 좋은 제안이 아닙니다.
Richard

-2

나는이 답변을 명확하게하는 데 도움이 될 수있는 배경 정보를 결정했지만 약간의 OCD를 보았으므로 끝으로 건너 뛰고 필요할 경우 되돌아 갈 수 있습니다. 나는 조금 알고 있지만 SSD의 전문가는 아니므로 누군가 실수를 발견하면 편집 하십시오. :).

배경 정보:

SSD 란 무엇입니까? :

SSD 또는 솔리드 스테이트 드라이브는 움직이는 부품이없는 저장 장치입니다. SSD라는 용어는 하드 드라이브 대안으로 사용하기위한 낸드 플래시 기반 솔리드 스테이트 드라이브를 의미하기도하지만 실제로는 SSD의 한 형태 일뿐 아니라 가장 인기있는 SSD도 아닙니다. 가장 널리 사용되는 SSD 유형은 USB 스틱 (플래시 드라이브) 및 메모리 카드와 같은 낸드 플래시 기반 이동식 미디어이며 SSD라고는 거의하지 않습니다. SSD는 램 기반 일 수도 있지만 대부분의 램 드라이브는 실제 하드웨어와 달리 소프트웨어로 생성됩니다.

Nand-Flash SSD가 하드 드라이브 대안으로 사용되는 이유는 무엇입니까? :

운영 체제 및 소프트웨어를 실행하려면 빠른 저장 매체가 필요합니다. 이것은 램이 작용하는 곳이지만, 역사적으로 램은 비싸고 CPU는 대량으로 처리 할 수 ​​없었습니다. 운영 체제를 실행하거나 프로그램을 실행하면 저장 장치가 충분히 빠르지 않기 때문에 현재 필요한 데이터 부분이 램에 복사됩니다. 느린 저장 장치에서 램으로 데이터가 복사 될 때까지 기다려야하므로 병목 현상이 발생합니다. 모든 낸드 플래시 SSD가 기존 하드 드라이브보다 우수한 성능을 제공하는 것은 아니지만 액세스 시간, 읽기 속도 및 쓰기 속도를 높여 병목 현상을 줄이는 데 도움이되는 드라이브입니다.

낸드 플래시 란? :

플래시 저장 장치는 자기를 사용하지 않고 전기를 사용하여 데이터를 저장하는 저장 매체입니다. Nand-Flash는 NAND 게이트웨이를 사용하는 플래시 스토리지입니다. 랜덤 액세스 인 A nor-Flash와 달리 Nand-Flash는 순차적으로 액세스됩니다.

Nand-Flash SSD는 데이터를 어떻게 저장합니까? :

Nand-Flash 스토리지는 블록으로 구성되며 해당 블록은 셀로 분할되며 셀에는 페이지가 포함됩니다. 자성을 사용하여 데이터를 저장하는 하드 드라이브와 달리 플래시 매체는이 데이터를 덮어 쓸 수 없으므로 전기를 사용합니다. 공간을 재사용하려면 데이터를 삭제해야합니다. 장치는 개별 페이지를 지울 수 없습니다. 삭제는 블록 수준에서 발생해야합니다. 이미 사용 된 블록에 데이터를 쓸 수 없기 때문에 (모든 페이지가 아니더라도) 전체 블록을 먼저 지워야하며, 이제 빈 블록에 데이터를 페이지에 쓸 수 있습니다. 문제는 삭제하고 싶지 않은 데이터를 포함하여 해당 페이지에 이미있는 데이터가 손실된다는 것입니다. 이 기존 데이터가 유지되지 않도록하려면 블록 삭제를 수행하기 전에 다른 위치에 복사해야합니다.

하드 드라이브에서는 자기 판을 사용하여 데이터를 저장합니다. 비닐 레코드와 마찬가지로 판에는 트랙이 있으며이 트랙은 섹터라고하는 섹션으로 나뉩니다. 섹터는 특정 양의 데이터를 보유 할 수 있습니다 (일반적으로 512 바이트이지만 일부 최신 데이터는 4KB 임). 파일 시스템 섹터를 적용하면 할당 크기 또는 클러스터 크기라고하는 지정된 크기에 따라 클러스터로 그룹화되고 파일이 클러스터에 작성됩니다. 섹터를 분할하여 섹터 크기보다 작은 클러스터를 만들 수도 있습니다. 파일이 여러 클러스터에 쓰여진 후 클러스터에서 사용되지 않은 공간은 사용할 수 없으며 다음 파일은 새 클러스터에서 시작됩니다. 많은 사용 불가능한 공간을 피하기 위해 사람들은 일반적으로 더 작은 클러스터 크기를 사용하지만 큰 파일을 쓸 때 성능이 저하 될 수 있습니다. 낸드 플래시 SSD에는 자기 판이 없습니다. 그들은 메모리 블록을 통과하는 전기를 사용합니다. 블록은 페이지를 포함하는 셀로 구성됩니다. 페이지에는 X 용량 (일반적으로 4KB)이 있으므로 페이지 수에 따라 블록 용량 (일반적으로 512KB)이 결정됩니다. SSD에서 페이지는 하드 드라이브의 섹터와 동일합니다. 두 페이지는 모두 가장 작은 스토리지 부문을 나타 내기 때문입니다.

마모 레벨링이란? :

Nand-Flash 스토리지 블록은 쓰기가 가능하고 제한된 횟수만큼 지워질 수 있습니다 (라이프 사이클이라고 함). 드라이브의 용량 감소 (불량 블록)로 인한 피해를 방지하려면 블록을 최대한 고르게 마모시키는 것이 좋습니다. 제한된 수명주기는 Nand-Flash 기반 SSD를 사용하는 경우 많은 사람들이 운영 체제에 페이지 파일 또는 스왑 파티션을 갖지 말 것을 권장하는 주된 이유입니다 (장치에서 램으로의 빠른 데이터 전송 속도도 중요합니다) 그 제안을 고려하십시오).

오버 프로비저닝이란 무엇입니까? :

Over Provisioning (오버 프로비저닝)은 사용 가능한 공간이 얼마나 많은지와 비교하는 것의 차이를 정의합니다. 낸드 플래시 기반 저장 장치는 쓰레기 처리에 사용할 빈 블록이 있다고 보증하기 위해 장치보다 작다고 주장합니다. 동적 여유 프로비저닝이라고하는 두 번째 종류의 초과 프로비저닝이 있는데, 이는 단순히 표시된 여유 공간 내의 알려진 여유 공간을 나타냅니다. 동적 오버 프로비저닝에는 운영 체제 수준과 드라이브 컨트롤러 수준의 두 가지 유형이 있습니다. 운영 체제 수준에서 Trim을 사용하여 블록을 해제 한 다음 즉시 쓸 수 있습니다. 컨트롤러 수준에서 할당되지 않은 드라이브 공간 (파티션되지 않은 파일 시스템 없음)을 사용할 수 있습니다. 더 많은 여유 블록이 있으면 즉시 쓸 수 있기 때문에 드라이브를 최상의 성능으로 유지하는 데 도움이됩니다.

쓰기 증폭이란 무엇입니까? :

Nand-Flash 매체는 블록을 쓰기 전에 삭제해야하므로 삭제되지 않는 블록 내의 모든 데이터는 가비지 처리를 통해 새 블록으로 복사해야합니다. 이러한 추가 쓰기를 쓰기 증폭이라고합니다.

트림이란? :

운영 체제는 기존 하드 드라이브를 염두에두고 구축되었습니다. 기존 하드 드라이브는 데이터를 직접 덮어 쓸 수 있습니다. 파일을 삭제하면 운영 체제는 파일을 삭제 된 것으로 표시하지만 (덮어 쓰기해도 됨) 쓰기 작업이 수행 될 때까지 데이터는 계속 존재합니다. Nand-Flash 기반 SSD에서는 데이터를 먼저 지워야하므로 문제가됩니다. 삭제는 블록 수준에서 발생하므로 삭제되지 않은 추가 데이터가있을 수 있습니다. 쓰레기 처리는 삭제되지 않은 데이터를 빈 블록에 복사 한 다음 해당 블록을 지울 수 있습니다. 이 작업에는 시간이 걸리고 불필요한 쓰기 (쓰기 증폭)가 발생합니다! 이 문제를 해결하기 위해 Trim이라는 기능이 만들어졌습니다. 트림은 운영 체제에 SSD를 알리는 힘을 제공합니다 쓰기 작업을 요청하지 않은 기간 동안 운영 체제에서 삭제 된 것으로 표시 한 데이터가 포함 된 페이지가있는 블록을 지우려면. 가비지 콜렉션은 그 일을 수행하므로 결과 블록이 해제되므로 먼저 지울 필요가없는 블록에 쓰기가 발생하여 프로세스가 더 빨라지고 쓰기 증폭이 최소화됩니다. 이것은 파일 단위로 수행되지 않습니다. 트림은 논리 블록 주소 지정을 사용합니다. LBA는 지울 섹터 (페이지)를 지정하고 지우는 블록 수준에서 발생합니다. 쓰기 증폭을 최소로 줄입니다. 이것은 파일 단위로 수행되지 않습니다. 트림은 논리 블록 주소 지정을 사용합니다. LBA는 지울 섹터 (페이지)를 지정하고 지우는 블록 수준에서 발생합니다. 쓰기 증폭을 최소로 줄입니다. 이것은 파일 단위로 수행되지 않습니다. 트림은 논리 블록 주소 지정을 사용합니다. LBA는 지울 섹터 (페이지)를 지정하고 지우는 블록 수준에서 발생합니다.

귀하의 질문에 대한 답변 "SSD 파티션의 단점?"

램 기반 SSD :

그들이 무작위로 액세스하기 때문에 절대 단점이 없습니다!

낸드 플래시 기반 SSD :

내 마음에 오는 유일한 단점은 다음과 같습니다.

  1. 쓰기 작업이 더 작은 공간에 분산되어 있기 때문에웨어 레벨링에 여유 공간이 충분하지 않기 때문에 "할 수는 있지만"드라이브 전체의 경우보다 드라이브의 해당 부분이 더 빨리 마모되는 것은 아닙니다. 추가 파티션에 대해 동등한 마모를 수행하지 않는 한 단일 파티션이었습니다 (예 : 이중 부팅).

  2. 하드 드라이브와 마찬가지로 낸드-플래시 SSD는 순차적 액세스이므로 추가 파티션에서 쓰거나 읽은 데이터는 단일 파티션으로 쓰인 데이터보다 훨씬 멀리 떨어져 있습니다. 일반적으로 파티션에 여유 공간이 남아 있기 때문입니다. . 추가 파티션에 저장된 데이터의 액세스 시간이 늘어납니다.

  3. 전체 공간이 적 으면 조각난 파일을 작성하는 데 어려움이 있지만 성능에 미치는 영향은 적지 만 일반적으로 낸드 플래시 SSD의 조각 모음은 드라이브의 수명을 다하기 때문에 나쁜 생각으로 간주됩니다. 물론 어떤 파일 시스템을 사용 하느냐에 따라 조각화가 매우 적습니다. 가능한 빠른 시간 내에 파일을 덤프하지 않고 가능한 한 전체 파일을 쓰도록 설계 되었기 때문입니다.

여러 파티션을 사용하는 것은 좋지만 일부 쓰기 작업에 쓰기 작업이 많고 다른 파티션이 거의없는 경우웨어 레벨링이 문제가 될 수 있습니다. 사용하지 않을 공간을 분할하지 않고 동적 오버 프로비저닝을 위해 공간을 남겨두면 블록을 비우고 순차적 데이터를 작성하는 것이 더 쉬워지기 때문에 성능이 향상 될 수 있습니다. 그러나 프로비저닝 공간을 초과하여 마모 레벨링에 대한 1 위를 차지할 것이라는 보장은 없습니다.

이 스레드의 다른 사람들은 분할이 동적 오버 프로비저닝에 대한 Trim의 기여에 어떤 영향을 미치는지에 대해 논의했습니다. TRIM은 삭제 플래그가 지정된 섹터 (페이지)를 지적하는 데 사용되므로 가비지 처리로 인해 해당 블록을 자유롭게 지울 수 있습니다. 이 여유 공간은 해당 파티션이 파일 시스템에서 사용하는 클러스터의 일부이기 때문에 THAT 파티션 내에서만 동적 오버 프로비저닝 역할을합니다. 다른 파티션에는 자체 파일 시스템이 있습니다. 그러나 파일 시스템이 없거나 드라이브 용량에 표시되는 장소에 데이터가 기록되므로 초과 프로비저닝에 대한 전체 아이디어가 약간 불분명하기 때문에 나는 이것에 대해 완전히 틀릴 수 있습니다. 이것은 파일 시스템 내의 블록에 대한 최종 옵토 마이닝 된 쓰기 작업 전에 오버 프로비저닝 공간이 일시적으로 사용되는지 궁금합니다. 물론 파일 시스템 내에서 동적 오버 프로비저닝에 대한 Trim의 기여는 이미 사용 가능한 공간에 있으므로 직접 쓸 수 있기 때문에 일시적이지 않습니다. 그것은 적어도 내 이론이다. 아마도 파일 시스템에 대한 나의 이해가 잘못 되었습니까? 이것에 대해 자세히 설명하는 리소스를 찾을 수 없습니다.


17
"1. 쓰기 작업이 더 작은 공간 (...)으로 분산되므로웨어 레벨링에는 여유 공간이 충분하지 않습니다." SSD 컨트롤러 (적어도 SSD 및 Trim 을 지원하는 운영 체제에서)에 의해웨어 레벨링이 낮은 수준에서 수행되므로 이는 사실이 아닌 것 같습니다 . superuser.com/a/901521/517270
misko321

4
NAND 기반 메모리는 블록에 무작위로 액세스 할 수 있습니다. 허용되지 않는 것은 블록 내부의 비트에 무작위로 액세스하는 것입니다. 따라서 파티션은 블록 크기의 배수이기 때문에 무작위로 액세스 할 수 있습니다 (적어도 사용자가 메모리를 엉망으로 만들지 않은 경우, 즉 어떤 일이 일어나고 있는지 모르는 파티션 응용 프로그램 사용)
Miguel Angelo

5
포인트 1과 2는 완전히 거짓으로 보인다
underscore_d

-14

아니요, 이치에 맞습니다.

SSD의 속도는 사용중인 파티션의 사용 가능한 공간에 직접 연결됩니다. 드라이브를 작은 섹션으로 분할하면 여유 공간이 부족하여 SSD의 효율성이 떨어집니다.

따라서 SSD 파티션의 단점은 없지만 드라이브에 여유 공간이 없다는 단점이 있습니다.

이 수퍼 유저 게시물을 참조하십시오 .


1
논리 파티션을 생성한다고해서 반드시 채워지는 것은 아닙니다. 이 작업을 수행 할 때 자동으로 여유 공간을 잃는 방법을 모르겠습니다.
MarioDS

1
OS는 어떤 블록을 사용할 수 있고 어떤 블록이 사용 가능한지 알고 있으며 드라이브는이를 사용할 수 없습니다. 파티션을 나누면 OS에 사용 가능한 여유 블록이 줄어 듭니다. 성능이 저하됩니다. TRIM은 OS에 의해 파티션 레벨에서 실행됩니다.
Mark Lopez

10
그러나 할 수 있습니다. 이것이 바로 TRIM의 목적입니다. TRIM은 섹터 레벨에서 실행되며 SSD는 파티션을 신경 쓰지 않습니다. 섹터 (일명 플래시 셀)에만 관심이 있습니다. 따라서 파티션은 성능에 무시할만한 영향 (파일 시스템 오버 헤드가 사용하는 공간) 만 있습니다.
Daniel B

1
실제로 HDD는 파티션을 만들면 안되는 것입니다
Suici Doga
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.