IO 블록 크기 이해

IO 블록 크기 이해

hdparm -I /dev/sda산출:

Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes

stat일부 파일 출력:

Size: 509           Blocks: 8          IO Block: 4096   regular file

IO 블록4096인가요? 이것은 512바이트의 물리적 섹터 크기와 동일하지 않습니까?

답변1

아니요. 디스크 블록 크기는 디스크에서 처리되는 데이터 블록의 크기를 나타냅니다. 파일에 쓰는 경우 CPU/마더보드는 디스크의 어느 섹터에 어떤 바이트를 써야 하는지 드라이브 컨트롤러에 알려야 합니다. 이는 512바이트 블록에서만 발생할 수 있습니다.

논리 섹터 크기와 물리 섹터 크기의 차이점은 다음과 같습니다. 물리 섹터 크기는 디스크에 있는 데이터의 물리적 구성 크기입니다. 논리 섹터 크기는 CPU/마더보드의 블록이 드라이버 컨트롤러 카드와 일치할 수 있음을 의미합니다(일반적으로 마더보드의 일부이기도 하지만 OS는 여전히 디스크 읽기/쓰기 작업을 수행할 때 생성되어야 하는 블록 크기를 알아야 합니다).

물리적 섹터 크기도 수십 년 동안 위조되어 왔으며 정확한 세부 사항은 하드 드라이브 제조업체의 영업 비밀입니다. 하지만 이 가짜 데이터는 디스크 표준(SCSI, PATA, SATA 등)의 일부이기 때문에 운영 체제는 여전히 이 가짜 데이터에 대해 알아야 합니다. 따라서 대부분의 경우 물리적 섹터 크기는 실제 의미가 없습니다.

일부 최신 광 디스크의 새로운 발전은 512 대신 4096 논리 섹터를 사용한다는 것입니다. 이는 일부 이전 ATA 프로토콜의 섹터 번호가 32비트 크기이므로 디스크가 40억 섹터(= 2테라바이트)를 수용할 수 없기 때문에 필요합니다. 처리되지 않습니다.

stat 명령은 파일 시스템의 블록 크기를 표시합니다. 또한 대부분의 파일 시스템은 시스템의 데이터를 블록으로 구성합니다. 싱글바이트 파일을 생성하는 경우 디스크에 4096바이트를 할당해야 합니다. Reiserfs와 같은 비블록 지향 파일 시스템은 여전히 ​​블록으로 구성되어 있지만 할당 가능한 최소 디스크 크기는 32바이트에 불과합니다. 따라서 1바이트 파일은 reiserfs 파일 시스템에서 32바이트만 할당합니다.

관련 정보