Ideale Server-Konfig für externen Speicher

Wenn bei einem Raid-Z die Schreibrate gleich der langsamsten Platte ist - wie sieht das dann bei einem Mirror aus?
Wenn man z.B. ein SD-Mirror aus einer Optane und einer SATA-SSD macht - oder für die Daten ein Mirror aus einer HDD und einer SATA-SSD macht - Ist dann auch die Schreibrate gleich der lansamsten Einheit?
 
Wenn bei einem Raid-Z die Schreibrate gleich der langsamsten Platte ist
Wer hat das denn gesagt? Ich schrieb nur:
Die (sync-) IOPS sind und bleiben (höchstens, "write penalty") die einer Platte.
Damit ist die maximale Anzahl der unabhängigen Schreibvorgänge gemeint. Sequenzielles asynchrones Schreiben in einem Vorgang schafft viel mehr Durchsatz als eine einzelne Platte - für N Platten maximal = (N-1) * DurchsatzEinerPlatte.

wie sieht das dann bei einem Mirror aus?
Auf einem Mirror werden dieselben Daten auf beide Platten geschrieben. Jede Platte braucht dazu ungefähr gleich lange. Auch die Anzahl der synchronen Schreib-IOPS ist identisch mit der Anzahl einer Platte.

Lesen geht hingegen doppelt so schnell, weil unterschiedliche Datenbereiche der angeforderten Datei von beiden Platten gleichzeitig gelesen werden können. (Natürlich nur bei identischen Platten, nicht bei deinem Beispiel SATA/NVMe - da kommt irgendein Mittelwert heraus.)

Wenn man z.B. ein SD-Mirror aus einer Optane und einer SATA-SSD macht - oder für die Daten ein Mirror aus einer HDD und einer SATA-SSD macht - Ist dann auch die Schreibrate gleich der lansamsten Einheit?
Ja! Die "habe-fertig" Meldung kommt erst dann, wenn die Daten auf beiden Datenträgern gesichert wurde. Der langsamere verzögert das zwangsweise.
 
Last edited:
  • Like
Reactions: Johannes S
Damit ist die maximale Anzahl der unabhängigen Schreibvorgänge gemeint. Sequenzielles asynchrones Schreiben in einem Vorgang schafft viel mehr Durchsatz als eine einzelne Platte - für N Platten maximal = (N-1) * DurchsatzEinerPlatte.
Schlauscheißermodusergänzung:
Selbstverständlich durch die maximale Leistung deiner System/Platten-Anbindung begrenzt.
 
Last edited:
Selbstverständlich durch die maximale Leistung deiner System/Platten-Anbindung begrenzt.
Ja, sicher.

Es gibt natürlich noch weitere Voraussetzungen. Aber Hinweise wie "nicht mit Sata-I (150 MB/s)" oder auf "der Prozess, der die Daten liefert, muss schnell genug arbeiten können", verkomplizieren diese Diskussion doch nur weiter, oder? ;-)
 
  • Like
Reactions: Johannes S
Ich schrieb nur:
Sorry dann hab ich dich falsch verstanden.
Was ich auch noch nicht ganz verstanden hab (bzw. unterschiedliche Informationen dazu gefunden hab): wie ist es bei unterschiedlichen Plattengrößen?
innerhalb eines RAID-z oder innerhalb eines Mirrors sollten die Platten/SSDs gleich groß sein - ansonsten kann man nur den maximalen Platz der kleinsten Platte nutzen. Wie aber ist es bei einem Stripe über zwei mirrors? was ist, wenn ein mirror deutlich größer als ein anderer ist und beide im gleichen pool hängen? Kann ich dann wirklich nur das n-fache des kleinsten mirrors nutzen?
 
Nun ein Ungleichgewicht bei den ZFS RaidZ oder Mirror bei der VDEV Größe führt ab einer Stelle zu keinem Vorteil, das Lesezugriffe auf alle N-VDEV gleichmäßig verteilt werden können.
Somit sinkt der Daten-Durchsatz ab diesem Zeitpunkt.
Mein Backup, kein PBS, ZFS Pool besteht aus 2x VDEV[0,1] aus RaidZ1 mit je 3x HDD als Stripe Setup.
Dazu gibt's noch eine VDEV2 als ZFS Special Device mit SATA3 SSDs.
Damit kann ich dann meine 2.5 GBit/s Anbindung Auslasten.
Hier liegen nur die ZFS Metadaten des Pools, also keine "kleinen" Dateien.
 
Last edited:
  • Like
Reactions: Johannes S and UdoB
Wie aber ist es bei einem Stripe über zwei mirrors? was ist, wenn ein mirror deutlich größer als ein anderer ist und beide im gleichen pool hängen? Kann ich dann wirklich nur das n-fache des kleinsten mirrors nutzen?
Die Kapazität ist natürlich immer die Summe aller vdevs. Egal wie groß sie sind - also explizit auch bei unterschiedlichen Größen.

Aber - wie @news schon schrieb - der optimale Effekt der doppelten IOPS reduziert sich. Vermutlich proportional.

Konkretes Beispiel: zweimal 2 TB plus zweimal 8 TB, jeweils als Mirror, ergeben 10 TB Kapazität. (Netto/brutto ignorieren wir mal.)

Aber da auf das kleinere vdev nur 20% der Daten passen, kann doch auch die Gesamtperformance im Durchschnitt nur 120% betragen, statt 200% bei vier gleich großen Platten. Das 8 TB vdev muss doch viel mehr arbeiten, als das kleinere 2 TB vdev.

Daraus folgt die Empfehlung, dass alle Platten / vdevs gleich groß sein sollten. Das ist aber keinesfalls ein "muss"!

Disclaimer: ich habe das jetzt nicht wirklich getestet...
 
  • Like
Reactions: Johannes S
Ich glaub, ich krieg nen Vogel:
jetzt ist endlich die Hardware gekommen, nachdem UPS die unnötig in der Gegend rumgefahren hat, hab endlich neun gleiche Platten frei gemacht (WDC WD121KRYZ-01W0RB0), ein Stripe über 4 Mirrors gebastelt und eine global Hotspare hinzugefügt. Und als ich dann zwei SSDs (KIOXIA-EXCERIA SATA SSD) als special vdev hinzufügen will, dann geht das nicht: "adding devices with different physical sector sizes is not allowed"
Die WDs haben 4096 (4K Advanced Format) und die KIOXIA-EXCERIA "nur" 512
War es das mit dem SD oder gibt es noch eine Möglichkeit die SSDs zu verwenden?
Oder kann man das SP später nachrüsten?
Die WDs runterzustufen macht ja wahrscheinlich auch keinen Sinn?
Code:
# hdparm -I /dev/disk/by-id/ata-WDC_WD121KRYZ-01W0RB0_xxx | grep Sector
        Logical  Sector size:                   512 bytes
        Physical Sector size:                  4096 bytes
        Logical Sector-0 offset:                  0 bytes
# hdparm -I /dev/disk/by-id/ata-KIOXIA-EXCERIA_SATA_SSD_xxx | grep Sector
        Logical  Sector size:                   512 bytes
        Physical Sector size:                   512 bytes
        Logical Sector-0 offset:                  0 bytes
 
Ich glaub, ich krieg nen Vogel:
jetzt ist endlich die Hardware gekommen, nachdem UPS die unnötig in der Gegend rumgefahren hat, hab endlich neun gleiche Platten frei gemacht (WDC WD121KRYZ-01W0RB0), ein Stripe über 4 Mirrors gebastelt und eine global Hotspare hinzugefügt. Und als ich dann zwei SSDs (KIOXIA-EXCERIA SATA SSD) als special vdev hinzufügen will, dann geht das nicht: "adding devices with different physical sector sizes is not allowed"
Die WDs haben 4096 (4K Advanced Format) und die KIOXIA-EXCERIA "nur" 512
War es das mit dem SD oder gibt es noch eine Möglichkeit die SSDs zu verwenden?
Oder kann man das SP später nachrüsten?
Die WDs runterzustufen macht ja wahrscheinlich auch keinen Sinn?
Code:
# hdparm -I /dev/disk/by-id/ata-WDC_WD121KRYZ-01W0RB0_xxx | grep Sector
        Logical  Sector size:                   512 bytes
        Physical Sector size:                  4096 bytes
        Logical Sector-0 offset:                  0 bytes
# hdparm -I /dev/disk/by-id/ata-KIOXIA-EXCERIA_SATA_SSD_xxx | grep Sector
        Logical  Sector size:                   512 bytes
        Physical Sector size:                   512 bytes
        Logical Sector-0 offset:                  0 bytes
Andersherum wird ein Schuh draus. Verpasse der Kioxia eine 4096 Sektorgröße. 512 ist kalter Kompatibilitäts-Kaffee.
 
Last edited: