블록이 더 이상 필요하지 않을 때 Linux 파일 시스템은 블록 장치에 이를 알립니까?

블록이 더 이상 필요하지 않을 때 Linux 파일 시스템은 블록 장치에 이를 알립니까?

전통적으로 저장 장치(하드 드라이브)에는 단순히 덮어쓰는 것 외에는 데이터를 "삭제"하는 메커니즘이 없는 것으로 간주되었습니다. 블록 장치에 기본 저장소가 더 이상 필요하지 않다는 알림을 보내는 것이 유용한 몇 가지 이론적 시나리오를 볼 수 있지만 이를 수행하는 메커니즘은 없습니다.

예:

  • 거의 모든 최신 SSD는웨어 레벨링수명을 연장하기 위해. 이는 보고된 크기보다 더 많은 내부 메모리 블록을 갖고 그 사이를 반복함으로써 달성할 수 있습니다. 그러나 SSD가 블록이 더 이상 필요하지 않다는 메시지를 받으면 순환할 수 있는 더 큰 풀을 제공합니다.
  • RAM에 생성된 파일 시스템(tmpfs 제외) 파일 삭제 시 파일 시스템이 불필요한 공간을 보고할 수 없으면 기본 램디스크는 할당된 공간을 사용 가능한 RAM에 반환할 수 없습니다.
  • 스왑 솔루션(예: 사용)즈람스왑 공간에서 페이지가 더 이상 사용되지 않을 때 블록 장치에 알려야 합니다. 그렇지 않으면 RAM에 많은 "정크"가 남게 됩니다.

이거 비슷한 개념인거 같은데FALLOC_FL_PUNCH_HOLE. 그러나 내가 거기에서 읽은 바에 따르면 이는 순전히 파일 시스템의 파일에서 공간 할당을 해제하는 것입니다. 즉, 사용자 공간 애플리케이션은 공간이 필요하지 않음을 파일 시스템에 알릴 수 있습니다. 하지만 이는 파일 시스템이 블록 장치에 공간이 필요하지 않음을 알리는 것과는 다릅니다.아니면 그럴까요?

그렇다면 모든 경우에 해결 방법이 있습니까? 아니면 블록이 더 이상 필요하지 않을 때 파일 시스템과 스왑이 블록 장치에 알릴 수 있는 메커니즘이 있습니까?

답변1

Linux에서 파일 시스템은 다음을 사용하여 하나 이상의 블록이 더 이상 필요하지 않음을 블록 계층에 알릴 수 있습니다.blkdev_issue_discard. 실제로, 해당 동작이 요청될 때 파일 시스템에서 블록을 삭제하는 데 사용됩니다. 일반적으로 "discard" 옵션을 사용하여 파일 시스템을 마운트합니다. 이 요청은 중간 계층에서 삭제를 전파하는 데에도 사용됩니다.예를 들어MD 레이어에서

이는 기본적으로 수행되지 않습니다.ext4맨페이지"충분한 테스트가 완료될 때까지 기본적으로 꺼져 있습니다"라고 나와 있지만너무 차많은 SSD가 지속적인 하락을 잘 처리하지 못하므로 권장되는 접근 방식은 다음을 실행하는 것입니다.fstrim대신에. 대부분의 파일 시스템의 기본 동작은 해당 콘텐츠가 삭제될 때 기본 레이어에 이 사실을 알리지 않고 내부적으로 블록을 사용되지 않은 것으로 표시하는 것입니다. 이를 통해 파일 시스템별 "삭제 취소" 유틸리티를 사용하든, 다음과 같은 블록 장치 탐색 도구를 사용하든 실수로 삭제한 후 파일 내용을 복구할 수 있습니다.사진 기록. 추가 처리 없이 사용되지 않은 블록을 표시하면 파일을 빠르게 삭제할 수도 있습니다.

블록이 더 이상 필요하지 않을 때 명시적으로 삭제하지 않으면 파일 시스템이 많은 처리를 수행하지 않는다는 사실은 씬 프로비저닝에 예상보다 더 많은 작업이 필요하다는 것을 의미합니다. 따라서 Xen에는 Ext3 파일 시스템 씬 프로비저닝에 대한 특정 지원이 포함되어 있습니다. 즉, 블록 계층은 자신이 저장된 파일 시스템을 "알고" 이를 사용하여 파일 시스템이 명시적으로 아무 것도 알려주지 않고도 원치 않는 블록을 식별합니다. VMware에서 씬 프로비저닝, 즉 씬 프로비저닝된 블록 장치의 스토리지 요구 사항을 줄이기 위해 사용되지 않는 블록을 식별하려면 사용되지 않는 블록을 비우고 분석 도구를 실행해야 합니다. SAN 기반 씬 프로비저닝 시스템도 유사한 지원을 제공합니다. (드롭 지원으로 씬 프로비저닝이 더 쉬워졌습니다. 씬 프로비저닝된 볼륨은 정리 지원을 알리고 파일 시스템이 나머지 작업을 수행합니다.)

FALLOC_FL_PUNCH_HOLE설명했듯이 파일 시스템 수준 작업이지만 기본 파일 시스템이 이를 지원하고 적절한 삭제 옵션으로 마운트되면 블록이 삭제됩니다.

관련 정보