Saya ingin menggunakan dua drive 3 TB dalam pengaturan mdadm raid1 (menggunakan Debian Sequeeze).
Drive menggunakan sektor perangkat keras 4k, bukan yang tradisional 512 byte.
Saya agak bingung karena di satu sisi kernel melaporkan:
$ cat /sys/block/sdb/queue/hw_sector_size
512
Tetapi di sisi lain fdisk
melaporkan:
# 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
Jadi, tampaknya kernel memiliki beberapa gagasan bahwa drive menggunakan sektor 4k.
The mdadm
Halaman manusia adalah sedikit samar tentang ukuran chunk dan 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.
Mengapa itu tidak berarti untuk raid1?
Melihat /proc/mdstat
, perangkat raid1 md8 memiliki 2930265424 blok, yaitu
3000591794176/2930265424/2 = 512
Apakah mdadm
kemudian menggunakan bloksize 512 byte? (/ 2 karena itu cermin dua arah)
Dan apakah chunk-size konsep yang berbeda dari blocksize?
Mencoba mdadm
menjelaskan perangkat:
# 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)
Dimana
3000591794176/5860530848 = 512
Dengan default mkfs.xfs
pada perangkat md, ia melaporkan:
sectsz=512
bsize=4096
Saya mengoreksi ini dengan panggilan mkfs.xfs -s size=4096 /dev/md8
Sunting: Menguji sedikit sekitar saya perhatikan hal-hal berikut:
Tampaknya sinkronisasi ulang awal dilakukan dengan ukuran blok 128k (dan bukan 512 byte):
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.
Kecepatan yang ditampilkan melalui /proc/mdstat
konsisten untuk ukuran blok itu (untuk 512 bit, orang akan mengharapkan kinerja yang baik):
[>....................] resync = 3.0% (90510912/2930265424) finish=381.1min speed=124166K/sec
(Misalnya ketika menonaktifkan cache tulis, kecepatan yang ditampilkan segera turun menjadi 18 m / detik)
Di bawah /sys
sebenarnya ada beberapa file yang lebih relevan selain hw_sector_size
:
# cat /sys/block/sdb/queue/physical_block_size
4096
# cat /sys/block/sdb/queue/logical_block_size
512
Itu berarti bahwa drive tidak berbohong kepada kernel tentang ukuran sektor 4k dan kernel memiliki dukungan sektor 4k (seperti yang fstab -l
disarankan oleh output ).
Googling sedikit sekitar menghasilkan beberapa laporan tentang disk WD, yang tidak melaporkan ukuran 4k - untungnya disk WD 3 TB ini tidak melakukan itu - mungkin WD memperbaiki firmware mereka dengan disk saat ini.