ฉันต้องการใช้ไดรฟ์ 3 TB สองตัวในการตั้งค่า mdadm raid1 (โดยใช้ Debian Sequeeze)
ไดรฟ์ใช้ภาคฮาร์ดแวร์ 4k แทนแบบดั้งเดิม 512 ไบต์
ฉันสับสนเล็กน้อยเพราะในแง่หนึ่งเคอร์เนลรายงาน:
$ 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.
ทำไมการบุก 1 ถึงไม่มีความหมาย?
มองไปที่/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
แก้ไข:ทดสอบรอบ ๆ ฉันสังเกตเห็นสิ่งต่อไปนี้:
ดูเหมือนว่าการซิงค์ครั้งแรกจะทำด้วยขนาดบล็อก 128k (และไม่ 512 ไบต์):
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
นั้นสอดคล้องกันกับขนาดบล็อก (สำหรับ 512bytes ที่คาดว่าจะได้รับผลการทำงาน):
[>....................] 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
ข้อเสนอแนะ)
Googling นิดหน่อยส่งผลให้มีรายงานบางอย่างเกี่ยวกับดิสก์ WD ซึ่งไม่ได้รายงานขนาด 4k - โชคดีที่ดิสก์ 3 TB WD นี้ไม่ได้ทำเช่นนั้น - บางที WD อาจแก้ไขเฟิร์มแวร์ของตนด้วยดิสก์ปัจจุบัน