SSD의 TRIM 및 파일 조각화

SSD의 TRIM 및 파일 조각화

나는트림 테스트에 의해 제안프로스트슈츠그리고 또한 발견여기. 결과 1MB 파일은 매우 조각화되어 있습니다. 어떻게 그렇게 될수 있니 ?

내 유일한 저장 장치 /dev/sda는 삼성 500GB SSD입니다. "TRIM 준비"되어 있으며 커널 fstrim/etc/cron.weekly. 그럼에도 불구하고 나는 호기심 때문에 테스트를 실행하고 싶었습니다. 테스트를 통해 알파 문자로 채워진 1MB 파일인 Trim.test가 생성되었습니다 y.

파일 생성 후 디스크에서 파일의 정확한 위치를 확인했습니다.

> cd /
> yes | sudo dd iflag=fullblock bs=1M count=1 of=trim.test
> sudo filefrag -s -v trim.test

Filesystem type is: ef53
Filesystem cylinder groups approximately 177
File size of trim.test is 1048576 (256 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..      15:    2816076..   2816091:     16:             merged
   1:       16..      31:     170064..    170079:     16:    2816092: merged
   2:       32..      63:     170848..    170879:     32:     170080: merged
   3:       64..     127:     168269..    168332:     64:     170880: merged
   4:      128..     255:     170112..    170239:    128:     168333: merged,eof
trim.test: 5 extents found, perfection would be -1 extent

파일을 지우고 절차를 반복하면 이런 현상이 반복됩니다.1MB 파일이 어떻게 그렇게 심하게 조각화될 수 있습니까?

답변1

TRIM 및 단편화 문제에 대해 기웃거리며 읽은 후 내 질문에 대답하는 것이 다른 사람들에게 도움이 될 수 있습니다.

TRIM에 대해 읽으면서 파일 조각화에 대한 언급이 자주 나옵니다. 두 가지 측면 모두 SSD 스토리지 성능에 대한 타당한 질문의 원천이지만 두 가지 문제는 서로 다릅니다.

  • 파일 조각화파티션 내의 저장 매체에 분산된 물리적 블록을 사용하여 서로 다른 비연속 쓰기 영역의 HDD 또는 SSD에 기록되는 하나의 파일로 구성됩니다. SSD의 특정 맥락에서 우리는 이것이 TRIM의 작업이나 심지어 TRIM의 스토리지 관리 수준과 아무 관련이 없다는 것을 알게 될 것입니다.웨어 레벨링(WL)은 TRIM과 달리 SSD에 항상 존재하는 낮은 수준의 저장 매체 관리를 위한 또 다른 프로세스입니다. SSD의 내부 데이터 관리는 비휘발성 플래시 메모리 셀(예: SSD의 셀) 및 해당 블록(플래시 블록)에 섹터를 할당한다는 점에서 HDD의 내부 데이터 관리와 근본적으로 다릅니다. 파일 조각화에 직접적인 영향을 미칩니다.
  • 손질새로운 쓰기 작업(Wops)을 위해 SSD에 최소 한 번 기록된 물리적 블록을 준비하므로 Wop이 발생하기 직전에 대상 블록을 실제로 지울 필요가 없습니다(TRIM이 없는 설정의 경우). 이를 위해서는 SSD에 TRIM 지원 하드웨어 컨트롤러가 있어야 합니다. 항상 그런 것은 아닙니다. 첫 번째 사용 단계 이후(즉, SSD가 아직 상대적으로 새롭고 모든 블록이 아직 한 번 이상 기록되지 않은 경우) Wops는 속도 안정기에 도달할 때까지 속도가 느려집니다. 이 단계에서 경험상 TRIM은 TRIM을 활성화하지 않은 동일한 하드웨어와 관련하여 TRIM 지원 SSD의 쓰기 시간을 대략 절반으로 줄인다는 것입니다.

Wops 동안 SSD는 HDD와 상당히 다르게 작동합니다. HDD는 Wop 이전에 블록을 삭제할 필요가 없습니다. SSD는 항상 그렇습니다. 시간이 많이 걸립니다. TRIM은 파일이 수정되고 볼륨의 다른 영역으로 이동된 후 해제된 블록을 사전 삭제하여 TRIM 가능 SSD에서 최근 해제된 블록을 사전 조정함으로써 시간 소모를 줄이는 데 도움이 됩니다. 이는 현실을 단순화한 관점이지만, 비전문가 사용자가 하드웨어 및 하위 수준 하드웨어 관리에 대한 결정을 내리기 위해 대략적으로 신뢰할 수 있는 관점입니다. 읽어...

TRIM은 SSD의 조각화와 관련이 있습니까?
- 짧은 답변: 아니요, 관련이 없습니다.
- 긴 답변: 조각화는 WL(웨어 레벨링)과 관련이 있지만 아직은또 다른SSD의 수명을 최적화하는 프로세스입니다. WL은 볼륨/파티션 내 전체 SSD의 여유/사용 가능/예약되지 않은 블록 공간에 대해 Wops를 균질화하는 데 필수적입니다. 이는 각 Wop이 반도체 층의 작은 영역에 상대적으로 큰 전압을 적용하여 해당 SSD의 셀을 노화시켜 수명을 단축시키기 때문입니다. (저는 이것이 SSD의 대부분에 발생하는 열로 인한 결함과 관련이 있다고 생각하지만 이는 주제에서 벗어났습니다.)

Wops가 HDD와 마찬가지로 SSD에서도 관리된다면 저장 매체의 특정 영역은 다른 영역보다 오래 전에 마모되어 작동 불가능한 블록, 용량 손실, 데이터 손실 및 오류로 이어질 것입니다. WL은 실제로 특정 SSD 파티션의 모든 블록에 동일한 양의 Wop이 적용되고 전체 SSD의 사용 가능한 파티션 공간에 걸쳐 마모가 "평준화"되도록 보장합니다. 그런 의미에서 SSD의 수명을 효과적으로 늘리는 동시에 수명이 다할 때까지 전체 용량을 유지합니다.

WL 모드에는 정적 및 동적의 두 가지가 있습니다. 이것위키(독일어)에서는 WL이 꺼진 동일한 하드웨어에 비해 SSD의 수명이 다할 때 쓰기 주기 수가 정적 WL의 경우 100배, 동적 WL의 경우 25배 증가할 수 있다고 명시합니다.

WL은 Wops(SSD의 수명을 정의하는 제한 매개변수)를 파티션 내부의 전체 SSD 저장 공간에 최대한 균일하게 물리적으로 분산시키기 때문에 필연적으로 데이터 조각화에 기여하게 됩니다. 이는 지정된 SSD 파티션 전체에 기록된 블록을 최적화하여 배포한다는 주요 목표를 달성하기 위해 수행됩니다. SSD에 저장된 모든 파일은 기존 HDD에 있는 것보다 훨씬 더 많이 조각화될 수 있다는 점을 이해하게 됩니다.그러나 조각화는 SSD의 성능 저하로 이어지지 않습니다.

WL의 작동 방식에는 다른 결과가 있습니다. 즉, SSD 볼륨이 클수록 특정 사용 조건에서 수명이 길어집니다. 사용자에게 있어 "사용 조건"은 주로 다음을 의미합니다.
- SSD 파티션에서 사용된 공간의 양
- Wop의 빈도, 즉 저장 매체의 쓰기 액세스가 얼마나 심한지.
이는 실제로 다음과 같은 장점이 있습니다.
- lx 스왑, /home, /tmp 및 /var를 HDD에 배치하고 나머지 OS는 더 작은 SSD에서 행복하게 사용할 수 있습니다.
- SSD에서 Wops가 너무 작은 파티션을 만들지 마세요. 예를 들어 스왑이 SSD에 있어야 하고 lx-swap이 DRAM 크기의 두 배로 설정하는 것이 가장 좋다는 내용을 읽었다면 4배로 설정하세요. 내 계산이 맞는지는 모르겠지만 일반적인 생각은 이것이 스왑 공간 수명을 두 배로 늘릴 것이라는 것입니다. 스왑이 필요한 많은 작업(DB 사용량이 많은 서버 등)을 수행하는 경우 물론 가스 버너를 SSD로 가져가는 아이디어가 마음에 들지 않는 한 스왑 및 /tmp를 HDD로 옮기는 것을 고려하십시오.

한편 TRIM은 다가오는 새로운 Wop을 위해 SSD 블록을 준비합니다. 해당 셀을 삭제하고(실제로 작업은 블록 수준에서 발생함) 새 Wop에 대해 한 번 작성된 셀을 사전 조건화하고 시작합니다.쓰레기 수거필요할 때. 그런 의미에서 TRIM은 WL 컨트롤러에 의해 하위 수준으로 관리되는 새로 해제된(그리고 적어도 한 번 사용된) 블록의 분포 맵을 주시합니다.

결론:

  • 조각화는 중요하지 않습니다. SSD 성능에는 지장이 없습니다. SSD는 필요하지 않습니다(참조SSD에 대한 인텔의 이야기) 조각 모음 형태의 관리 기능도 도움이 되지 않습니다. OS가 무엇이든 조각 모음을 끄십시오. 지금.
  • SSD가 TRIM을 지원하는 경우 TRIM은 중요하고 유익합니다. 오늘날 소수의 브랜드가 TRIM 가능 SSD를 제공합니다. 이 스레드를 처음부터 읽었다면 평판이 좋은 브랜드 중 하나 이상의 이름을 알고 있을 것입니다. 또한 몇 년 전에는 저널링이 실제로 1세대 SSD를 사용할 때 TRIM이 제공하는 일부 이점에 반했기 때문에 ext2가 ext3보다 더 나은 옵션으로 간주되었습니다. 더 이상 그렇지 않으며 ext4에는 실제로 TRIM + Garbage Collection이 권장됩니다.

HTH.

관련 정보