mdadm raid1 및 4k 드라이브의 블록 크기(또는 블록 크기)는 얼마입니까?

mdadm raid1 및 4k 드라이브의 블록 크기(또는 블록 크기)는 얼마입니까?

mdadm raid1 설정(Debian Sequeeze 사용)에서 2개의 3TB 드라이브를 사용하고 싶습니다.

이러한 드라이브는 기존의 512바이트 섹터 대신 4k 하드웨어 섹터를 사용합니다.

한편으로는 커널이 다음과 같이 보고하기 때문에 나는 약간 혼란스럽습니다.

$ cat /sys/block/sdb/queue/hw_sector_size
512

그러나 반면에 fdisk보고서는 다음과 같이 말했습니다.

# fdisk -l /dev/sdb
Disk /dev/sdb: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

그래서 커널은 드라이브가 4k 섹터를 사용한다는 것을 알고 있는 것 같습니다.

매뉴얼 mdadm페이지는 블록 크기와 raid1에 대해 약간 비밀스럽습니다.

   -c, --chunk=
          Specify chunk size of kibibytes.  The default when  creating  an
          array  is 512KB.  To ensure compatibility with earlier versions,
          the default when Building and array with no persistent  metadata
          is  64KB.   This  is  only  meaningful  for RAID0, RAID4, RAID5,
          RAID6, and RAID10.

raid1에는 왜 의미가 없습니까?

보기 /proc/mdstat, raid1 장치 md8에는 2930265424 블록이 있습니다. 즉

3000591794176/2930265424/2 = 512

mdadm그렇다면 512바이트의 블록 크기를 사용해야 합니까 ? (양방향 거울이기 때문에/2)

블록 크기와 블록 크기는 다른 개념인가요?

허락하려고mdadm 설명하다장치:

# mdadm -E /dev/sdb -v -v
Avail Dev Size : 5860531120 (2794.52 GiB 3000.59 GB)
Array Size : 5860530848 (2794.52 GiB 3000.59 GB)

어디

3000591794176/5860530848 = 512

mkfs.xfs기본적으로 MD 장치에서는 다음을 보고합니다.

sectsz=512
bsize=4096

전화해서 문제를 해결했어요mkfs.xfs -s size=4096 /dev/md8

편집하다:몇 가지 테스트를 거친 후 다음 사항을 발견했습니다.

초기 재동기화는 512바이트 대신 128k의 블록 크기를 사용하여 수행된 것 같습니다.

md: resync of RAID array md8
md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync.
md: using 128k window, over a total of 2930265424 blocks.

표시된 속도는 /proc/mdstat이 블록 크기에 대해 일관됩니다(512바이트의 경우 성능 저하가 예상됨).

[>....................]  resync =  3.0% (90510912/2930265424) finish=381.1min speed=124166K/sec

(예를 들어 쓰기 캐싱이 비활성화되면 표시되는 속도는 즉시 18m/초로 떨어집니다.)

그 외에도 /sys실제로 아래에 더 많은 관련 문서가 있습니다 hw_sector_size.

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

이는 드라이버가 4k 섹터 크기에 관해 커널에 거짓말을 하지 않고 커널이 일부 4k 섹터 지원을 가지고 있음을 의미합니다( fstab -l출력에서 제안됨).

인터넷 검색을 통해 4k 크기를 보고하지 않은 WD 디스크에 대한 몇 가지 보고서가 나타났습니다. 다행히도 이 3TB WD 디스크는 그렇게 하지 않았습니다. 아마도 WD가 현재 디스크의 펌웨어를 수정했을 수도 있습니다.

답변1

기본적으로 전체 디스크가 하나의 블록이므로 블록 크기는 raid1에서 작동하지 않습니다. 즉, 4k 물리적 섹터 크기에 대해 걱정할 필요가 없습니다. 최신 버전의 mdadm은 커널의 정보를 사용하여 데이터의 시작 부분이 4kb 경계에 정렬되도록 합니다. 1.x 메타데이터 형식을 사용하고 있는지 확인하세요.

관련 정보