Linux 블록 장치가 정리 가능한지 어떻게 알 수 있나요?

Linux 블록 장치가 정리 가능한지 어떻게 알 수 있나요?

fstrimLinux 블록 장치를 마운트해야 하며 그다지 장황하지 않습니다. blkdiscard보시다시피, 여기에는 쓰기 작업도 필요합니다.

실제로 무언가를 다듬거나 놓으려고 하지 않고도 블록 장치가 다듬기/드롭을 지원하는지 어떻게든 알 수 있나요?

답변1

장치의 최대 폐기 크기를 확인할 수 있습니다.예를 들어

$ cat /sys/block/X/queue/discard_max_hw_bytes

( X적절하게 교체).

0보다 큰 값이 표시되면이 장치는 폐기를 지원합니다:

0 값은 discard_max_hw_bytes장치가 폐기 기능을 지원하지 않음을 나타냅니다.

최대값지원됨discard_max_bytes드롭 크기는 다음과 같이 동일한 디렉터리에 표시됩니다. 이는 드롭 대기 시간을 제한하기 위해 하드웨어가 지원하는 것보다 작을 수 있습니다(한도를 변경하기 위해 작성할 수 있음).

discard_max_hw_bytes장치의 하드웨어 제한 이지만 이 설정은 소프트웨어 제한입니다. 일부 장치는 대량 폐기를 발행할 때 큰 대기 시간을 나타냅니다. 더 낮은 값을 설정하면 Linux가 더 작은 폐기를 발행하게 되고 대규모 폐기 작업으로 인한 대기 시간을 줄이는 데 도움이 될 수 있습니다.

이는 디스크뿐만 아니라 루프 장치, 장치 매퍼 장치 등 다양한 블록 장치에 적용됩니다.

답변2

hdparm명령을 사용하면 디스크 장치에서 하위 수준 명령을 실행할 수 있습니다.

이 옵션 hdparm -I /dev/sda(또는 sda 대신 블록 장치 삽입)은 드라이브에서 정보를 쿼리합니다. 드라이브에서 지원하는 작업을 나열하는 섹션이 있습니다.

hdparm -I /dev/sda | grep TRIMTRIM 지원 드라이버에서 실행하면 다음이 출력됩니다.

    *    Data Set Management TRIM supported (limit 1 block)

출력에는 다른 유용한 정보가 많이 있으며 hdparm 명령은 매우 유용합니다.

hdparm이는 장치에서 SATA 명령을 실행하도록 설계된 SATA 및 일부 SCSI 장치에만 적용됩니다 .

답변3

장치가 정리/폐기를 지원하는지 확인하려면 Linux 유틸리티를 사용할 수도 있습니다 lsblk. 장치의 삭제 제한(예: granularitymax_sectors)이 0이 아닌 경우 삭제/가지치기 지원이 활성화됩니다.

$ lsblk -D
NAME      DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda              0      512B       2G         0

관련 정보