Ich gehe davon aus, dass es sich um diese Überprüfung handelt (Details, die vom Benutzer DeHackEd kopiert wurden ):
Der Hauptzweck ist eine Art "Force" -Befehl, wenn Sie einen Pool mit Ashift = 9 erstellt haben und dann versuchen, eine Festplatte mit 4k-Sektoren auszutauschen. ZFS gefällt das nicht (und das mit gutem Grund). Durch Angabe von -o ashift = 9 wird die Erkennung der Sektorgröße außer Kraft gesetzt und ZFS nimmt dies in Kauf.
[...]
Nein, die Anforderung ist, dass ashift_of (inserting_disk) <= ashift_of (exists_vdev) ist. Andernfalls wird EDOM zurückgegeben und der Vorgang wird nicht fortgesetzt. Der Wert für inserting_disk wird von der Platte selbst gelesen, kann aber mit -o ashift = value mit einem Wert überschrieben werden, der die oben genannten Ungleichungen erfüllt, damit ZFS die Platte akzeptiert.
Der Grund dafür ist, dass das Anbringen einer Festplatte mit zu großer Verschiebung zu einer derartig schwerwiegenden Leistung (für Rotationsmedien ohnehin) führt, dass die Benutzer unglücklich sind. Ich habe es geschafft, mein 500-G-Spiegel (halbgefüllte 1-TB-Laufwerke) brauchte 24 Stunden, um zu resilverieren, wenn er 2 Stunden hätte sein müssen. Dies wurde durch das Mischen von Sektorlaufwerken mit 512 und 4096 Byte verursacht.
[...]
Anders herum. Der Pool hatte eine Verschiebung von 9, aber das Einsetzen einer Scheibe mit 4-k-Sektoren (Verschiebung = 12) führt zu einer Ungleichung von 12 <= 9, was falsch ist. Mit zpool ... -o ashift = 9 wird es 9 <= 9 und ZFS akzeptiert es.
Sie können Ihre Festplatte also mit anhängen sudo zpool attach -o ashift=9 -f watson wwn-0x50014ee058480994 scsi-SATA_ST2000DM001-1CH_Z1F2ZSLP
, aber Ihre Leistung kann darunter leiden. Die Alternative wäre, den Pool mit korrekt ausgerichteten Datenträgern neu zu erstellen oder die Sektorgrößen nicht miteinander zu kombinieren (dh die Verwendung unterschiedlicher Datenträger).