Tôi muốn sử dụng hai ổ đĩa 3 TB trong thiết lập mdadm raid1 (sử dụng Debian Sequeeze).
Các ổ đĩa sử dụng các lĩnh vực phần cứng 4k thay vì 512 byte truyền thống.
Tôi hơi bối rối vì một mặt kernel báo cáo:
$ cat /sys/block/sdb/queue/hw_sector_size
512
Nhưng mặt khác fdisk
báo cáo:
# 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
Vì vậy, có vẻ như kernel có một số ý tưởng rằng ổ đĩa sử dụng các sector 4k.
Các mdadm
trang người đàn ông là một chút khó hiểu về kích thước đoạn và 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.
Tại sao nó không có ý nghĩa cho raid1?
Nhìn vào /proc/mdstat
, thiết bị raid1 md8 có 2930265424 khối, tức là
3000591794176/2930265424/2 = 512
Có mdadm
sử dụng sau đó một kích thước khối 512 byte? (/ 2 vì nó là gương hai chiều)
Và kích thước chunk là một khái niệm khác với kích thước khối?
Đang cố gắng mdadm
giải thích một thiết bị:
# 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)
Ở đâu
3000591794176/5860530848 = 512
Với mặc định mkfs.xfs
trên thiết bị md, nó báo cáo:
sectsz=512
bsize=4096
Tôi đã sửa lỗi này bằng một cuộc gọi của mkfs.xfs -s size=4096 /dev/md8
Chỉnh sửa: Kiểm tra một chút xung quanh tôi nhận thấy những điều sau đây:
Có vẻ như việc đồng bộ lại ban đầu được thực hiện với kích thước khối là 128k (chứ không phải 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.
Tốc độ được hiển thị thông qua /proc/mdstat
phù hợp với kích thước khối đó (đối với 512byte, người ta sẽ mong đợi một cú đánh hiệu suất):
[>....................] resync = 3.0% (90510912/2930265424) finish=381.1min speed=124166K/sec
(Ví dụ: khi tắt bộ đệm ghi, tốc độ hiển thị ngay lập tức giảm xuống 18m / giây)
Bên dưới /sys
thực tế có một số tập tin liên quan hơn bên cạnh hw_sector_size
:
# cat /sys/block/sdb/queue/physical_block_size
4096
# cat /sys/block/sdb/queue/logical_block_size
512
Điều đó có nghĩa là ổ đĩa không nói dối với kernel về kích thước cung 4k của nó và kernel có hỗ trợ sector 4k (như đầu ra của fstab -l
đề xuất).
Googling một chút xung quanh dẫn đến một vài báo cáo về các đĩa WD, không báo cáo kích thước 4k - may mắn thay, đĩa WD 3 TB này không làm điều đó - có lẽ WD đã sửa phần sụn của chúng bằng các đĩa hiện tại.