Ich möchte zwei 3-TB-Laufwerke in einem mdadm raid1-Setup verwenden (unter Verwendung von Debian Sequeeze).
Die Laufwerke verwenden 4k-Hardware-Sektoren anstelle der herkömmlichen 512-Byte-Sektoren.
Ich bin etwas verwirrt, weil der Kernel zum einen meldet:
$ cat /sys/block/sdb/queue/hw_sector_size
512
Aber andererseits fdisk
berichtet:
# 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
Daher hat der Kernel anscheinend eine Vorstellung davon, dass das Laufwerk 4k-Sektoren verwendet.
Die mdadm
Manpage ist etwas kryptisch in Bezug auf die Blockgröße und 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.
Warum ist es für raid1 nicht sinnvoll?
Betrachtet man /proc/mdstat
, hat das Gerät raid1 md8 2930265424 Blöcke, dh
3000591794176/2930265424/2 = 512
Hat mdadm
dann mit einer Blockgröße von 512 Bytes? (/ 2 weil es ein Zwei-Wege-Spiegel ist)
Und ist die Blockgröße ein anderes Konzept als die Blockgröße?
Versuchen mdadm
, ein Gerät erklären zu lassen :
# 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)
Wo
3000591794176/5860530848 = 512
Mit einer Standardeinstellung mkfs.xfs
auf dem md-Gerät wird Folgendes gemeldet:
sectsz=512
bsize=4096
Ich habe das mit einem Aufruf von korrigiert mkfs.xfs -s size=4096 /dev/md8
Bearbeiten: Testen ein bisschen herum Ich habe festgestellt, folgende Dinge:
Es scheint, dass die anfängliche Neusynchronisierung mit einer Blockgröße von 128 KB (und nicht 512 Byte) durchgeführt wird:
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.
Die angezeigte Geschwindigkeit über /proc/mdstat
ist für diese Blockgröße konsistent (für 512 Byte würde man einen Leistungseinbruch erwarten):
[>....................] resync = 3.0% (90510912/2930265424) finish=381.1min speed=124166K/sec
(Wenn Sie beispielsweise den Schreibcache deaktivieren, sinkt die angezeigte Geschwindigkeit sofort auf 18 m / s.)
Darunter /sys
befinden sich noch einige weitere relevante Dateien hw_sector_size
:
# cat /sys/block/sdb/queue/physical_block_size
4096
# cat /sys/block/sdb/queue/logical_block_size
512
Das bedeutet, dass das Laufwerk den Kernel nicht über seine 4k-Sektorgröße belügt und der Kernel eine gewisse 4k-Sektorunterstützung hat (wie von der Ausgabe fstab -l
vorgeschlagen).
Ein bisschen herum googeln führte zu ein paar Berichten über WD-Festplatten, die nicht die 4-KB-Größe melden - zum Glück tut dies diese 3-TB-WD-Festplatte nicht - vielleicht hat WD ihre Firmware mit aktuellen Festplatten repariert.
quelle