물리 섹터 크기 4096 HDD에 대한 논리 섹터 크기 최적화 물리 섹터 크기는 4096입니다. 시스템이 기본

많은 새 하드 드라이브 디스크에서 물리 섹터 크기는 4096입니다. 시스템이 기본 논리 섹터 크기 인 512가 아닌 동일한 크기의 논리 섹터 크기를 사용할 수 있습니까?

대량 읽기 및 쓰기 속도가 향상됩니까? 어디서 구성 할 수 있습니까?



답변

512 바이트는 실제로 기본 섹터 크기가 아닙니다. 하드웨어에 따라 다릅니다.

/sys의사 파일 시스템을 통해 디스크가보고하는 물리 / 논리 섹터 크기를 표시 할 수 있습니다 . 예를 들면 다음과 같습니다.

# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512

이 두 값의 차이점은 무엇입니까?

  • physical_block_size드라이브 원자 동작 쓰기 할 수있는 블록의 최소 크기이다.
  • logical_block_size드라이브가 쓸 수있는 작은 크기 (리눅스 커널 문서를 참조)입니다.

따라서 4k 드라이브가있는 경우 스토리지 스택 (파일 시스템 등)이 물리적 섹터 크기보다 크거나 같은 것을 사용하는 것이 좋습니다.

이러한 값은 다음과 같은 최신 버전에도 표시됩니다 fdisk.

# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes

현재 리눅스 배포판에서, (최적 섹터 크기를 고려해야하는) 프로그램 mkfs.xfs은 기본적으로 최적 섹터 크기를 선택합니다 (예 : 4096 바이트).

그러나 옵션을 통해 명시 적으로 지정할 수도 있습니다. 예를 들면 다음과 같습니다.

# mkfs.xfs -f -s size=4096 /dev/sda

또는:

# mkfs.ext4 -F -b 4096 /dev/sda

어쨌든 대부분의 mkfs변형은 실행 중에 사용 된 블록 크기도 표시합니다.

기존 파일 시스템의 경우 다음과 같은 명령으로 블록 크기를 결정할 수 있습니다.

# xfs_info /mnt
[..]
meta-data=                       sectsz=4096
data     =                       bsize=4096
naming   =version 2              bsize=4096
log      =internal               bsize=4096
         =                       sectsz=4096
realtime =none                   extsz=4096

또는:

# tune2fs -l /dev/sda
Block size:               4096
Fragment size:            4096

또는:

# btrfs inspect-internal dump-super /dev/sda | grep size
csum_size             4
sys_array_size        97
sectorsize            4096
nodesize              16384
leafsize              16384
stripesize            4096
dev_item.sector_size  4096

파티션에서 파일 시스템을 만들 때 확인해야 할 또 다른 사항은 파티션 시작 주소가 실제로 물리적 블록 크기에 정렬되어 있는지입니다. 예를 들어, fdisk -l출력을 보고 시작 주소를 바이트로 변환하고 물리적 블록 크기로 나눕니다. 파티션이 정렬 된 경우 알림은 0이어야합니다.


답변

아니요, 가능하지 않거나 중요하지도 않습니다. IO는 일반적으로 어쨌든 4096 바이트 이상의 단위로 수행됩니다.


답변

예, 가능하지만 그렇게하면 드라이브가 훨씬 빨리 채워집니다. 512K 미만의 파일의 경우, 각 파일은 전체 4096K (4MB)를 차지하고 대부분의 파일 시스템 (NTFS 등)이 파일을 섹터를 공유 할 수 없기 때문에 나머지 섹터를 0으로 채 웁니다. 파일 시스템에 가장 적합한 옵션은 가변 섹터 크기를 허용하는 것이지만 MFT (마스터 파일 테이블)의 크기를 늘리고 데이터 손상의 위험을 증가시키면서 데이터를 쉽게 복구하는 기능을 줄입니다. 즉, 경계는 복구 소프트웨어에 의해 완전히 알려지지 않았습니다. 따라서 4096K 논리 섹터 크기는 대용량 파일에 적합하지만 일반적인 일상적인 사용 PC에는 0에 불과합니다. 자, 그 말로 논리 섹터 크기보다 작은 데이터에 대해서는 MFT 자체에 데이터를 저장하는 옵션이 있습니다. 그러나 이것은 MFT가 커지고 데이터가 두 번 기록됨을 의미합니다 (HDD에는 MFT 사본이 두 개 있습니다). 또한 MFT의 최대 크기를 지정해야 최대 값에 도달하거나 드라이브 사용량이 MFT에서 사용할 수있는 용량을 초과 할 때 문제가 발생할 수 있습니다. 이 모든 것은 NTFS 파일 시스템의 사용을 기반으로합니다. 더 밝은면에서 NTFS를 사용하면 4MB 이하의 논리 섹터 크기에 대해 블록 수준의 파일에 대해 기본 압축을 사용할 수 있습니다. 이 제한은 NTFS 압축 작동 방식에 따라 적용됩니다. 논리 섹터 크기에 관계없이 4MB 블록을 읽고 압축합니다. 물론 이것은

자, 이것은 당신에게 약간의 문제를 분명히합니까?


답변

Sector:

1) Logical Sector: Called Native Sector.

Manufacture default setting. user cannot change.

Before 2010 year: 512b/sector

After 2010 year: 4k/sector.

Few manufacture provide HDD tool to change native sector.

2) Physical Sector: Called Cluster(or allocation unit - FAT windows) or Block(Linux/Unix)

User can change physical sector size 512b,1k,2k,4k,... by format or partition tool. Physical sector contains one or few more native sectors.

(example1: if you have HDD 512b/native sector: user can set 4K/Physical sector. this mean 1 cluster = 4 native sector)

(example2: if you have HDD 4K/native sector: user can set 4K/Physical sector. this mead 1 cluster = 1 native sector)

3) File system deal with Physical sector(or block or Cluster) only.


답변